stream-chat-react-native-core 5.23.0-beta.1 → 5.23.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Channel/Channel.js +587 -384
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +174 -180
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +6 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js +36 -0
- package/lib/commonjs/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +30 -36
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +45 -45
- package/lib/commonjs/i18n/hi.json +43 -43
- package/lib/commonjs/i18n/it.json +43 -43
- package/lib/commonjs/i18n/nl.json +43 -43
- package/lib/commonjs/i18n/ru.json +45 -45
- package/lib/commonjs/i18n/tr.json +45 -45
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +587 -384
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +174 -180
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +6 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js +36 -0
- package/lib/module/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.js.map +1 -0
- package/lib/module/components/MessageOverlay/MessageOverlay.js +30 -36
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +45 -45
- package/lib/module/i18n/hi.json +43 -43
- package/lib/module/i18n/it.json +43 -43
- package/lib/module/i18n/nl.json +43 -43
- package/lib/module/i18n/ru.json +45 -45
- package/lib/module/i18n/tr.json +45 -45
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +6 -1
- package/lib/typescript/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.d.ts +4 -0
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +45 -45
- package/lib/typescript/i18n/hi.json +43 -43
- package/lib/typescript/i18n/it.json +43 -43
- package/lib/typescript/i18n/nl.json +43 -43
- package/lib/typescript/i18n/ru.json +45 -45
- package/lib/typescript/i18n/tr.json +45 -45
- package/package.json +1 -1
- package/src/components/Channel/Channel.tsx +237 -61
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +1 -0
- package/src/components/MessageList/MessageList.tsx +193 -181
- package/src/components/MessageList/__tests__/useMessageList.test.tsx +5 -2
- package/src/components/MessageList/hooks/useMessageList.ts +8 -1
- package/src/components/MessageList/hooks/useShouldScrollToRecentOnNewOwnMessage.ts +44 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +1 -6
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +45 -45
- package/src/i18n/hi.json +43 -43
- package/src/i18n/it.json +43 -43
- package/src/i18n/nl.json +43 -43
- package/src/i18n/ru.json +45 -45
- package/src/i18n/tr.json +45 -45
- package/src/version.json +1 -1
|
@@ -11,7 +11,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _reactNative = require("react-native");
|
|
14
|
-
var
|
|
14
|
+
var _useMessageList2 = require("./hooks/useMessageList");
|
|
15
|
+
var _useShouldScrollToRecentOnNewOwnMessage = require("./hooks/useShouldScrollToRecentOnNewOwnMessage");
|
|
15
16
|
var _InlineLoadingMoreIndicator = require("./InlineLoadingMoreIndicator");
|
|
16
17
|
var _InlineLoadingMoreRecentIndicator = require("./InlineLoadingMoreRecentIndicator");
|
|
17
18
|
var _InlineLoadingMoreThreadIndicator = require("./InlineLoadingMoreThreadIndicator");
|
|
@@ -74,7 +75,7 @@ var InvertedCellRendererComponent = function InvertedCellRendererComponent(props
|
|
|
74
75
|
__self: _this,
|
|
75
76
|
__source: {
|
|
76
77
|
fileName: _jsxFileName,
|
|
77
|
-
lineNumber:
|
|
78
|
+
lineNumber: 98,
|
|
78
79
|
columnNumber: 3
|
|
79
80
|
}
|
|
80
81
|
}));
|
|
@@ -152,24 +153,31 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
152
153
|
listContainer = _theme$messageList.listContainer,
|
|
153
154
|
messageContainer = _theme$messageList.messageContainer,
|
|
154
155
|
screenPadding = theme.screenPadding;
|
|
156
|
+
var myMessageThemeString = (0, _react.useMemo)(function () {
|
|
157
|
+
return JSON.stringify(myMessageTheme);
|
|
158
|
+
}, [myMessageTheme]);
|
|
155
159
|
var modifiedTheme = (0, _react.useMemo)(function () {
|
|
156
160
|
return (0, _ThemeContext.mergeThemes)({
|
|
157
161
|
style: myMessageTheme,
|
|
158
162
|
theme: theme
|
|
159
163
|
});
|
|
160
|
-
}, [
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
164
|
+
}, [myMessageThemeString, theme]);
|
|
165
|
+
var _useMessageList = (0, _useMessageList2.useMessageList)({
|
|
166
|
+
noGroupByUser: noGroupByUser,
|
|
167
|
+
threadList: threadList
|
|
168
|
+
}),
|
|
169
|
+
processedMessageList = _useMessageList.processedMessageList,
|
|
170
|
+
rawMessageList = _useMessageList.rawMessageList;
|
|
165
171
|
var messageListLengthBeforeUpdate = (0, _react.useRef)(0);
|
|
166
|
-
var messageListLengthAfterUpdate =
|
|
172
|
+
var messageListLengthAfterUpdate = processedMessageList.length;
|
|
167
173
|
var topMessageBeforeUpdate = (0, _react.useRef)();
|
|
168
|
-
var
|
|
174
|
+
var latestNonCurrentMessageBeforeUpdateRef = (0, _react.useRef)();
|
|
175
|
+
var topMessageAfterUpdate = rawMessageList[0];
|
|
176
|
+
var shouldScrollToRecentOnNewOwnMessageRef = (0, _useShouldScrollToRecentOnNewOwnMessage.useShouldScrollToRecentOnNewOwnMessage)(rawMessageList, client.userID);
|
|
169
177
|
var _useState = (0, _react.useState)(false),
|
|
170
178
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
171
|
-
|
|
172
|
-
|
|
179
|
+
autoscrollToRecent = _useState2[0],
|
|
180
|
+
setAutoscrollToRecent = _useState2[1];
|
|
173
181
|
var onStartReachedTracker = (0, _react.useRef)({});
|
|
174
182
|
var onEndReachedTracker = (0, _react.useRef)({});
|
|
175
183
|
var onStartReachedInPromise = (0, _react.useRef)(null);
|
|
@@ -182,14 +190,13 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
182
190
|
var channelResyncScrollSet = (0, _react.useRef)(true);
|
|
183
191
|
var scrollToDebounceTimeoutRef = (0, _react.useRef)();
|
|
184
192
|
var initialScrollSettingTimeoutRef = (0, _react.useRef)();
|
|
185
|
-
var
|
|
186
|
-
var messageIdToScrollToRef = (0, _react.useRef)();
|
|
193
|
+
var onScrollEventTimeoutRef = (0, _react.useRef)();
|
|
187
194
|
var messageIdLastScrolledToRef = (0, _react.useRef)();
|
|
188
195
|
var _useState5 = (0, _react.useState)(false),
|
|
189
196
|
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
190
197
|
hasMoved = _useState6[0],
|
|
191
198
|
setHasMoved = _useState6[1];
|
|
192
|
-
var _useState7 = (0, _react.useState)((_getLastReceivedMessa = (0, _getLastReceivedMessage.getLastReceivedMessage)(
|
|
199
|
+
var _useState7 = (0, _react.useState)((_getLastReceivedMessa = (0, _getLastReceivedMessage.getLastReceivedMessage)(processedMessageList)) == null ? void 0 : _getLastReceivedMessa.id),
|
|
193
200
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
194
201
|
lastReceivedId = _useState8[0],
|
|
195
202
|
setLastReceivedId = _useState8[1];
|
|
@@ -228,15 +235,6 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
228
235
|
onStartReachedTracker.current = {};
|
|
229
236
|
onEndReachedTracker.current = {};
|
|
230
237
|
});
|
|
231
|
-
var tempDisablePaginationTrackersRef = (0, _react.useRef)(function (messageListLength) {
|
|
232
|
-
clearTimeout(tempDisablePaginationTrackersTimeoutRef.current);
|
|
233
|
-
onStartReachedTracker.current[messageListLength] = true;
|
|
234
|
-
onEndReachedTracker.current[messageListLength] = true;
|
|
235
|
-
tempDisablePaginationTrackersTimeoutRef.current = setTimeout(function () {
|
|
236
|
-
onStartReachedTracker.current[messageListLength] = false;
|
|
237
|
-
onEndReachedTracker.current[messageListLength] = false;
|
|
238
|
-
}, 1000);
|
|
239
|
-
});
|
|
240
238
|
(0, _react.useEffect)(function () {
|
|
241
239
|
setScrollToBottomButtonVisible(false);
|
|
242
240
|
}, [disabled]);
|
|
@@ -259,17 +257,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
259
257
|
}
|
|
260
258
|
}, [loading, scrollToBottomButtonVisible, isInitialScrollDone]);
|
|
261
259
|
(0, _react.useEffect)(function () {
|
|
262
|
-
var
|
|
263
|
-
var lastReceivedMessage = (0, _getLastReceivedMessage.getLastReceivedMessage)(messageList);
|
|
264
|
-
var hasNewMessage = lastReceivedId !== (lastReceivedMessage == null ? void 0 : lastReceivedMessage.id);
|
|
265
|
-
var isMyMessage = (lastReceivedMessage == null ? void 0 : (_lastReceivedMessage$ = lastReceivedMessage.user) == null ? void 0 : _lastReceivedMessage$.id) === client.userID;
|
|
260
|
+
var lastReceivedMessage = (0, _getLastReceivedMessage.getLastReceivedMessage)(processedMessageList);
|
|
266
261
|
setLastReceivedId(lastReceivedMessage == null ? void 0 : lastReceivedMessage.id);
|
|
267
262
|
var scrollToBottomIfNeeded = function scrollToBottomIfNeeded() {
|
|
268
263
|
var _topMessageBeforeUpda;
|
|
269
|
-
if (!client || !channel ||
|
|
264
|
+
if (!client || !channel || rawMessageList.length === 0) {
|
|
270
265
|
return;
|
|
271
266
|
}
|
|
272
|
-
if (
|
|
267
|
+
if ((_topMessageBeforeUpda = topMessageBeforeUpdate.current) != null && _topMessageBeforeUpda.created_at && topMessageAfterUpdate != null && topMessageAfterUpdate.created_at && topMessageBeforeUpdate.current.created_at < topMessageAfterUpdate.created_at) {
|
|
273
268
|
channelResyncScrollSet.current = false;
|
|
274
269
|
setScrollToBottomButtonVisible(false);
|
|
275
270
|
resetPaginationTrackersRef.current();
|
|
@@ -297,23 +292,61 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
297
292
|
}
|
|
298
293
|
messageListLengthBeforeUpdate.current = messageListLengthAfterUpdate;
|
|
299
294
|
topMessageBeforeUpdate.current = topMessageAfterUpdate;
|
|
300
|
-
}, [hasNoMoreRecentMessagesToLoad, messageListLengthAfterUpdate, topMessageAfterUpdate == null ? void 0 : topMessageAfterUpdate.id]);
|
|
295
|
+
}, [threadList, hasNoMoreRecentMessagesToLoad, messageListLengthAfterUpdate, topMessageAfterUpdate == null ? void 0 : topMessageAfterUpdate.id]);
|
|
301
296
|
(0, _react.useEffect)(function () {
|
|
302
|
-
|
|
303
|
-
|
|
297
|
+
if (!rawMessageList.length) return;
|
|
298
|
+
var notLatestSet = !threadList && channel.state.messages !== channel.state.latestMessages;
|
|
299
|
+
if (notLatestSet) {
|
|
300
|
+
latestNonCurrentMessageBeforeUpdateRef.current = channel.state.latestMessages[channel.state.latestMessages.length - 1];
|
|
301
|
+
setAutoscrollToRecent(false);
|
|
302
|
+
setScrollToBottomButtonVisible(true);
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
var latestNonCurrentMessageBeforeUpdate = latestNonCurrentMessageBeforeUpdateRef.current;
|
|
306
|
+
latestNonCurrentMessageBeforeUpdateRef.current = undefined;
|
|
307
|
+
var latestCurrentMessageAfterUpdate = rawMessageList[rawMessageList.length - 1];
|
|
308
|
+
if (!latestCurrentMessageAfterUpdate) {
|
|
309
|
+
setAutoscrollToRecent(true);
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
var didMergeMessageSetsWithNoUpdates = (latestNonCurrentMessageBeforeUpdate == null ? void 0 : latestNonCurrentMessageBeforeUpdate.id) === latestCurrentMessageAfterUpdate.id;
|
|
313
|
+
setAutoscrollToRecent(!didMergeMessageSetsWithNoUpdates);
|
|
314
|
+
if (!didMergeMessageSetsWithNoUpdates) {
|
|
315
|
+
var shouldScrollToRecentOnNewOwnMessage = shouldScrollToRecentOnNewOwnMessageRef.current();
|
|
316
|
+
if (shouldScrollToRecentOnNewOwnMessage) {
|
|
317
|
+
setTimeout(function () {
|
|
318
|
+
var _flatListRef$current2;
|
|
319
|
+
(_flatListRef$current2 = flatListRef.current) == null ? void 0 : _flatListRef$current2.scrollToOffset({
|
|
320
|
+
animated: true,
|
|
321
|
+
offset: 0
|
|
322
|
+
});
|
|
323
|
+
}, 150);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}, [rawMessageList, threadList]);
|
|
304
327
|
var shouldApplyAndroidWorkaround = inverted && _reactNative.Platform.OS === 'android';
|
|
305
328
|
var renderItem = function renderItem(_ref2) {
|
|
306
329
|
var _message$user;
|
|
307
330
|
var index = _ref2.index,
|
|
308
331
|
message = _ref2.item;
|
|
309
332
|
if (!channel || channel.disconnected || !channel.initialized && !channel.offlineMode) return null;
|
|
333
|
+
var unreadCount = channel.countUnread();
|
|
310
334
|
var lastRead = channel.lastRead();
|
|
311
335
|
function isMessageUnread(messageArrayIndex) {
|
|
312
|
-
var
|
|
313
|
-
|
|
314
|
-
|
|
336
|
+
var isLatestMessageSetShown = !!channel.state.messageSets.find(function (set) {
|
|
337
|
+
return set.isCurrent && set.isLatest;
|
|
338
|
+
});
|
|
339
|
+
var msg = processedMessageList == null ? void 0 : processedMessageList[messageArrayIndex];
|
|
340
|
+
if (!isLatestMessageSetShown) {
|
|
341
|
+
if (channel.state.latestMessages.length !== 0 && unreadCount > channel.state.latestMessages.length) {
|
|
342
|
+
return messageArrayIndex <= unreadCount - channel.state.latestMessages.length - 1;
|
|
343
|
+
} else if (lastRead && msg.created_at) {
|
|
344
|
+
return lastRead < msg.created_at;
|
|
345
|
+
}
|
|
346
|
+
return false;
|
|
347
|
+
} else {
|
|
348
|
+
return messageArrayIndex <= unreadCount - 1;
|
|
315
349
|
}
|
|
316
|
-
return false;
|
|
317
350
|
}
|
|
318
351
|
var isCurrentMessageUnread = isMessageUnread(index);
|
|
319
352
|
var showUnreadUnderlay = !channel.muteStatus().muted && isCurrentMessageUnread && scrollToBottomButtonVisible;
|
|
@@ -324,7 +357,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
324
357
|
__self: _this,
|
|
325
358
|
__source: {
|
|
326
359
|
fileName: _jsxFileName,
|
|
327
|
-
lineNumber:
|
|
360
|
+
lineNumber: 628,
|
|
328
361
|
columnNumber: 11
|
|
329
362
|
}
|
|
330
363
|
}, _react["default"].createElement(MessageSystem, {
|
|
@@ -335,48 +368,33 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
335
368
|
__self: _this,
|
|
336
369
|
__source: {
|
|
337
370
|
fileName: _jsxFileName,
|
|
338
|
-
lineNumber:
|
|
371
|
+
lineNumber: 629,
|
|
339
372
|
columnNumber: 13
|
|
340
373
|
}
|
|
341
374
|
})), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
|
|
342
375
|
__self: _this,
|
|
343
376
|
__source: {
|
|
344
377
|
fileName: _jsxFileName,
|
|
345
|
-
lineNumber:
|
|
378
|
+
lineNumber: 634,
|
|
346
379
|
columnNumber: 43
|
|
347
380
|
}
|
|
348
381
|
}));
|
|
349
382
|
}
|
|
350
383
|
var wrapMessageInTheme = client.userID === ((_message$user = message.user) == null ? void 0 : _message$user.id) && !!myMessageTheme;
|
|
351
|
-
|
|
384
|
+
var renderDateSeperator = (0, _useMessageList2.isMessageWithStylesReadByAndDateSeparator)(message) && message.dateSeparator && _react["default"].createElement(InlineDateSeparator, {
|
|
352
385
|
date: message.dateSeparator,
|
|
353
386
|
__self: _this,
|
|
354
387
|
__source: {
|
|
355
388
|
fileName: _jsxFileName,
|
|
356
|
-
lineNumber:
|
|
357
|
-
columnNumber:
|
|
358
|
-
}
|
|
359
|
-
}), _react["default"].createElement(_ThemeContext.ThemeProvider, {
|
|
360
|
-
mergedStyle: modifiedTheme,
|
|
361
|
-
__self: _this,
|
|
362
|
-
__source: {
|
|
363
|
-
fileName: _jsxFileName,
|
|
364
|
-
lineNumber: 601,
|
|
365
|
-
columnNumber: 9
|
|
366
|
-
}
|
|
367
|
-
}, _react["default"].createElement(_reactNative.View, {
|
|
368
|
-
testID: "message-list-item-" + index,
|
|
369
|
-
__self: _this,
|
|
370
|
-
__source: {
|
|
371
|
-
fileName: _jsxFileName,
|
|
372
|
-
lineNumber: 602,
|
|
373
|
-
columnNumber: 11
|
|
389
|
+
lineNumber: 641,
|
|
390
|
+
columnNumber: 32
|
|
374
391
|
}
|
|
375
|
-
}
|
|
392
|
+
});
|
|
393
|
+
var renderMessage = _react["default"].createElement(Message, {
|
|
376
394
|
goToMessage: goToMessage,
|
|
377
|
-
groupStyles: (0,
|
|
395
|
+
groupStyles: (0, _useMessageList2.isMessageWithStylesReadByAndDateSeparator)(message) ? message.groupStyles : [],
|
|
378
396
|
isTargetedMessage: targetedMessage === message.id,
|
|
379
|
-
lastReceivedId: lastReceivedId === message.id ? lastReceivedId : undefined,
|
|
397
|
+
lastReceivedId: lastReceivedId === message.id || message.quoted_message_id ? lastReceivedId : undefined,
|
|
380
398
|
message: message,
|
|
381
399
|
onThreadSelect: onThreadSelect,
|
|
382
400
|
showUnreadUnderlay: showUnreadUnderlay,
|
|
@@ -387,71 +405,46 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
387
405
|
__self: _this,
|
|
388
406
|
__source: {
|
|
389
407
|
fileName: _jsxFileName,
|
|
390
|
-
lineNumber:
|
|
391
|
-
columnNumber:
|
|
392
|
-
}
|
|
393
|
-
}))), !shouldApplyAndroidWorkaround && (0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) && message.dateSeparator && _react["default"].createElement(InlineDateSeparator, {
|
|
394
|
-
date: message.dateSeparator,
|
|
395
|
-
__self: _this,
|
|
396
|
-
__source: {
|
|
397
|
-
fileName: _jsxFileName,
|
|
398
|
-
lineNumber: 620,
|
|
399
|
-
columnNumber: 36
|
|
400
|
-
}
|
|
401
|
-
}), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
|
|
402
|
-
__self: _this,
|
|
403
|
-
__source: {
|
|
404
|
-
fileName: _jsxFileName,
|
|
405
|
-
lineNumber: 622,
|
|
406
|
-
columnNumber: 41
|
|
408
|
+
lineNumber: 643,
|
|
409
|
+
columnNumber: 7
|
|
407
410
|
}
|
|
408
|
-
})
|
|
409
|
-
|
|
411
|
+
});
|
|
412
|
+
return wrapMessageInTheme ? _react["default"].createElement(_react["default"].Fragment, null, shouldApplyAndroidWorkaround && renderDateSeperator, _react["default"].createElement(_ThemeContext.ThemeProvider, {
|
|
413
|
+
mergedStyle: modifiedTheme,
|
|
410
414
|
__self: _this,
|
|
411
415
|
__source: {
|
|
412
416
|
fileName: _jsxFileName,
|
|
413
|
-
lineNumber:
|
|
417
|
+
lineNumber: 660,
|
|
414
418
|
columnNumber: 9
|
|
415
419
|
}
|
|
416
|
-
},
|
|
417
|
-
|
|
420
|
+
}, _react["default"].createElement(_reactNative.View, {
|
|
421
|
+
testID: "message-list-item-" + index,
|
|
418
422
|
__self: _this,
|
|
419
423
|
__source: {
|
|
420
424
|
fileName: _jsxFileName,
|
|
421
|
-
lineNumber:
|
|
422
|
-
columnNumber:
|
|
425
|
+
lineNumber: 661,
|
|
426
|
+
columnNumber: 11
|
|
423
427
|
}
|
|
424
|
-
}), _react["default"].createElement(
|
|
425
|
-
goToMessage: goToMessage,
|
|
426
|
-
groupStyles: (0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) ? message.groupStyles : [],
|
|
427
|
-
isTargetedMessage: targetedMessage === message.id,
|
|
428
|
-
lastReceivedId: lastReceivedId === message.id || message.quoted_message_id ? lastReceivedId : undefined,
|
|
429
|
-
message: message,
|
|
430
|
-
onThreadSelect: onThreadSelect,
|
|
431
|
-
showUnreadUnderlay: showUnreadUnderlay,
|
|
432
|
-
style: [{
|
|
433
|
-
paddingHorizontal: screenPadding
|
|
434
|
-
}, messageContainer],
|
|
435
|
-
threadList: threadList,
|
|
428
|
+
}, renderMessage)), !shouldApplyAndroidWorkaround && renderDateSeperator, insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
|
|
436
429
|
__self: _this,
|
|
437
430
|
__source: {
|
|
438
431
|
fileName: _jsxFileName,
|
|
439
|
-
lineNumber:
|
|
440
|
-
columnNumber:
|
|
432
|
+
lineNumber: 665,
|
|
433
|
+
columnNumber: 41
|
|
441
434
|
}
|
|
442
|
-
}))
|
|
443
|
-
|
|
435
|
+
})) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
|
|
436
|
+
testID: "message-list-item-" + index,
|
|
444
437
|
__self: _this,
|
|
445
438
|
__source: {
|
|
446
439
|
fileName: _jsxFileName,
|
|
447
|
-
lineNumber:
|
|
448
|
-
columnNumber:
|
|
440
|
+
lineNumber: 669,
|
|
441
|
+
columnNumber: 9
|
|
449
442
|
}
|
|
450
|
-
}), insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
|
|
443
|
+
}, shouldApplyAndroidWorkaround && renderDateSeperator, renderMessage), !shouldApplyAndroidWorkaround && renderDateSeperator, insertInlineUnreadIndicator && _react["default"].createElement(InlineUnreadIndicator, {
|
|
451
444
|
__self: _this,
|
|
452
445
|
__source: {
|
|
453
446
|
fileName: _jsxFileName,
|
|
454
|
-
lineNumber:
|
|
447
|
+
lineNumber: 675,
|
|
455
448
|
columnNumber: 41
|
|
456
449
|
}
|
|
457
450
|
}));
|
|
@@ -462,14 +455,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
462
455
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
463
456
|
while (1) switch (_context.prev = _context.next) {
|
|
464
457
|
case 0:
|
|
465
|
-
if (!(
|
|
458
|
+
if (!(processedMessageList != null && processedMessageList.length && onStartReachedTracker.current[processedMessageList.length])) {
|
|
466
459
|
_context.next = 2;
|
|
467
460
|
break;
|
|
468
461
|
}
|
|
469
462
|
return _context.abrupt("return");
|
|
470
463
|
case 2:
|
|
471
|
-
if (
|
|
472
|
-
onStartReachedTracker.current[
|
|
464
|
+
if (processedMessageList != null && processedMessageList.length) {
|
|
465
|
+
onStartReachedTracker.current[processedMessageList.length] = true;
|
|
473
466
|
}
|
|
474
467
|
callback = function callback() {
|
|
475
468
|
onStartReachedInPromise.current = null;
|
|
@@ -508,14 +501,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
508
501
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
509
502
|
while (1) switch (_context2.prev = _context2.next) {
|
|
510
503
|
case 0:
|
|
511
|
-
if (!(
|
|
504
|
+
if (!(processedMessageList != null && processedMessageList.length && onEndReachedTracker.current[processedMessageList.length])) {
|
|
512
505
|
_context2.next = 2;
|
|
513
506
|
break;
|
|
514
507
|
}
|
|
515
508
|
return _context2.abrupt("return");
|
|
516
509
|
case 2:
|
|
517
|
-
if (
|
|
518
|
-
onEndReachedTracker.current[
|
|
510
|
+
if (processedMessageList != null && processedMessageList.length) {
|
|
511
|
+
onEndReachedTracker.current[processedMessageList.length] = true;
|
|
519
512
|
}
|
|
520
513
|
callback = function callback() {
|
|
521
514
|
onEndReachedInPromise.current = null;
|
|
@@ -548,13 +541,15 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
548
541
|
return _ref4.apply(this, arguments);
|
|
549
542
|
};
|
|
550
543
|
}();
|
|
551
|
-
var
|
|
544
|
+
var onUserScrollEvent = function onUserScrollEvent(event) {
|
|
545
|
+
var nativeEvent = event.nativeEvent;
|
|
546
|
+
clearTimeout(onScrollEventTimeoutRef.current);
|
|
547
|
+
var offset = nativeEvent.contentOffset.y;
|
|
548
|
+
var visibleLength = nativeEvent.layoutMeasurement.height;
|
|
549
|
+
var contentLength = nativeEvent.contentSize.height;
|
|
552
550
|
if (!channel || !channelResyncScrollSet.current) {
|
|
553
551
|
return;
|
|
554
552
|
}
|
|
555
|
-
var offset = event.nativeEvent.contentOffset.y;
|
|
556
|
-
var visibleLength = event.nativeEvent.layoutMeasurement.height;
|
|
557
|
-
var contentLength = event.nativeEvent.contentSize.height;
|
|
558
553
|
var isScrollAtStart = offset < 100;
|
|
559
554
|
var isScrollAtEnd = contentLength - visibleLength - offset < 100;
|
|
560
555
|
if (isScrollAtStart) {
|
|
@@ -563,47 +558,59 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
563
558
|
if (isScrollAtEnd) {
|
|
564
559
|
maybeCallOnEndReached();
|
|
565
560
|
}
|
|
561
|
+
};
|
|
562
|
+
var handleScroll = function handleScroll(event) {
|
|
563
|
+
var offset = event.nativeEvent.contentOffset.y;
|
|
566
564
|
var isScrollAtBottom = offset <= 150;
|
|
567
|
-
var
|
|
568
|
-
var
|
|
565
|
+
var notLatestSet = channel.state.messages !== channel.state.latestMessages;
|
|
566
|
+
var showScrollToBottomButton = !threadList && notLatestSet || !isScrollAtBottom || !hasNoMoreRecentMessagesToLoad;
|
|
567
|
+
setScrollToBottomButtonVisible(showScrollToBottomButton);
|
|
568
|
+
var shouldMarkRead = !threadList && !notLatestSet && offset <= 0 && hasNoMoreRecentMessagesToLoad && channel.countUnread() > 0;
|
|
569
569
|
if (shouldMarkRead) {
|
|
570
570
|
markRead();
|
|
571
571
|
}
|
|
572
|
-
|
|
573
|
-
};
|
|
574
|
-
var handleScroll = function handleScroll(event) {
|
|
575
|
-
onScrollEvent(event);
|
|
572
|
+
setInitialScrollDone(false);
|
|
576
573
|
if (onListScroll) {
|
|
577
574
|
onListScroll(event);
|
|
578
575
|
}
|
|
579
576
|
};
|
|
580
577
|
var goToNewMessages = function () {
|
|
581
578
|
var _ref5 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() {
|
|
579
|
+
var isNotLatestSet;
|
|
582
580
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
583
581
|
while (1) switch (_context3.prev = _context3.next) {
|
|
584
582
|
case 0:
|
|
583
|
+
isNotLatestSet = channel.state.messages !== channel.state.latestMessages;
|
|
584
|
+
if (!(isNotLatestSet && hasNoMoreRecentMessagesToLoad)) {
|
|
585
|
+
_context3.next = 5;
|
|
586
|
+
break;
|
|
587
|
+
}
|
|
588
|
+
loadChannelAroundMessage({});
|
|
589
|
+
_context3.next = 12;
|
|
590
|
+
break;
|
|
591
|
+
case 5:
|
|
585
592
|
if (hasNoMoreRecentMessagesToLoad) {
|
|
586
|
-
_context3.next =
|
|
593
|
+
_context3.next = 11;
|
|
587
594
|
break;
|
|
588
595
|
}
|
|
589
596
|
resetPaginationTrackersRef.current();
|
|
590
|
-
_context3.next =
|
|
597
|
+
_context3.next = 9;
|
|
591
598
|
return reloadChannel();
|
|
592
|
-
case
|
|
593
|
-
_context3.next =
|
|
599
|
+
case 9:
|
|
600
|
+
_context3.next = 12;
|
|
594
601
|
break;
|
|
595
|
-
case
|
|
602
|
+
case 11:
|
|
596
603
|
if (flatListRef.current) {
|
|
597
604
|
flatListRef.current.scrollToOffset({
|
|
598
605
|
offset: 0
|
|
599
606
|
});
|
|
600
607
|
}
|
|
601
|
-
case
|
|
608
|
+
case 12:
|
|
602
609
|
setScrollToBottomButtonVisible(false);
|
|
603
610
|
if (!threadList) {
|
|
604
611
|
markRead();
|
|
605
612
|
}
|
|
606
|
-
case
|
|
613
|
+
case 14:
|
|
607
614
|
case "end":
|
|
608
615
|
return _context3.stop();
|
|
609
616
|
}
|
|
@@ -616,23 +623,15 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
616
623
|
var scrollToIndexFailedRetryCountRef = (0, _react.useRef)(0);
|
|
617
624
|
var failScrollTimeoutId = (0, _react.useRef)();
|
|
618
625
|
var onScrollToIndexFailedRef = (0, _react.useRef)(function (info) {
|
|
619
|
-
var _flatListRef$current$, _flatListRef$current$2;
|
|
620
626
|
if (!flatListRef.current) return;
|
|
621
|
-
var dataLength = (_flatListRef$current$ = flatListRef.current.props) == null ? void 0 : (_flatListRef$current$2 = _flatListRef$current$.data) == null ? void 0 : _flatListRef$current$2.length;
|
|
622
|
-
if (dataLength) {
|
|
623
|
-
tempDisablePaginationTrackersRef.current(dataLength);
|
|
624
|
-
}
|
|
625
627
|
flatListRef.current.scrollToOffset({
|
|
626
628
|
animated: false,
|
|
627
629
|
offset: info.averageItemLength * info.index
|
|
628
630
|
});
|
|
629
631
|
failScrollTimeoutId.current = setTimeout(function () {
|
|
630
632
|
try {
|
|
631
|
-
var _flatListRef$
|
|
632
|
-
|
|
633
|
-
tempDisablePaginationTrackersRef.current(dataLength);
|
|
634
|
-
}
|
|
635
|
-
(_flatListRef$current2 = flatListRef.current) == null ? void 0 : _flatListRef$current2.scrollToIndex({
|
|
633
|
+
var _flatListRef$current3;
|
|
634
|
+
(_flatListRef$current3 = flatListRef.current) == null ? void 0 : _flatListRef$current3.scrollToIndex({
|
|
636
635
|
animated: false,
|
|
637
636
|
index: info.index,
|
|
638
637
|
viewPosition: 0.5
|
|
@@ -643,7 +642,6 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
643
642
|
scrollToIndexFailedRetryCountRef.current = 0;
|
|
644
643
|
} catch (e) {
|
|
645
644
|
if (!onScrollToIndexFailedRef.current || scrollToIndexFailedRetryCountRef.current > MAX_RETRIES_AFTER_SCROLL_FAILURE) {
|
|
646
|
-
console.log("Scrolling to index failed after " + MAX_RETRIES_AFTER_SCROLL_FAILURE + " retries", e);
|
|
647
645
|
scrollToIndexFailedRetryCountRef.current = 0;
|
|
648
646
|
return;
|
|
649
647
|
}
|
|
@@ -652,61 +650,56 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
652
650
|
}
|
|
653
651
|
}, WAIT_FOR_SCROLL_TO_OFFSET_TIMEOUT);
|
|
654
652
|
});
|
|
655
|
-
var goToMessage =
|
|
656
|
-
var indexOfParentInMessageList =
|
|
653
|
+
var goToMessage = function goToMessage(messageId) {
|
|
654
|
+
var indexOfParentInMessageList = processedMessageList.findIndex(function (message) {
|
|
657
655
|
return (message == null ? void 0 : message.id) === messageId;
|
|
658
656
|
});
|
|
659
657
|
if (indexOfParentInMessageList !== -1 && flatListRef.current) {
|
|
660
658
|
clearTimeout(failScrollTimeoutId.current);
|
|
661
659
|
scrollToIndexFailedRetryCountRef.current = 0;
|
|
662
|
-
|
|
660
|
+
messageIdLastScrolledToRef.current = messageId;
|
|
661
|
+
setTargetedMessage(messageId);
|
|
663
662
|
flatListRef.current.scrollToIndex({
|
|
664
663
|
animated: true,
|
|
665
664
|
index: indexOfParentInMessageList,
|
|
666
665
|
viewPosition: 0.5
|
|
667
666
|
});
|
|
668
|
-
messageIdLastScrolledToRef.current = messageId;
|
|
669
|
-
setTargetedMessage(messageId);
|
|
670
667
|
return;
|
|
671
668
|
}
|
|
672
|
-
messageIdToScrollToRef.current = messageId;
|
|
673
669
|
loadChannelAroundMessage({
|
|
674
670
|
messageId: messageId
|
|
675
671
|
});
|
|
676
|
-
|
|
677
|
-
}, [messageList]);
|
|
672
|
+
};
|
|
678
673
|
(0, _react.useEffect)(function () {
|
|
679
674
|
scrollToDebounceTimeoutRef.current = setTimeout(function () {
|
|
680
675
|
if (initialScrollToFirstUnreadMessage) {
|
|
681
676
|
clearTimeout(initialScrollSettingTimeoutRef.current);
|
|
682
677
|
initialScrollSettingTimeoutRef.current = setTimeout(function () {
|
|
683
678
|
setInitialScrollDone(true);
|
|
684
|
-
},
|
|
679
|
+
}, 2000);
|
|
685
680
|
}
|
|
686
|
-
var messageIdToScroll
|
|
681
|
+
var messageIdToScroll;
|
|
687
682
|
if (targetedMessage && messageIdLastScrolledToRef.current !== targetedMessage) {
|
|
688
683
|
messageIdToScroll = targetedMessage;
|
|
689
684
|
}
|
|
690
685
|
if (!messageIdToScroll) return;
|
|
691
|
-
var indexOfParentInMessageList =
|
|
686
|
+
var indexOfParentInMessageList = processedMessageList.findIndex(function (message) {
|
|
692
687
|
return (message == null ? void 0 : message.id) === messageIdToScroll;
|
|
693
688
|
});
|
|
694
689
|
if (indexOfParentInMessageList !== -1 && flatListRef.current) {
|
|
695
690
|
clearTimeout(scrollToDebounceTimeoutRef.current);
|
|
696
691
|
clearTimeout(failScrollTimeoutId.current);
|
|
697
|
-
|
|
692
|
+
messageIdLastScrolledToRef.current = messageIdToScroll;
|
|
698
693
|
scrollToIndexFailedRetryCountRef.current = 0;
|
|
699
694
|
flatListRef.current.scrollToIndex({
|
|
700
695
|
animated: false,
|
|
701
696
|
index: indexOfParentInMessageList,
|
|
702
697
|
viewPosition: 0.5
|
|
703
698
|
});
|
|
704
|
-
messageIdToScrollToRef.current = undefined;
|
|
705
|
-
messageIdLastScrolledToRef.current = messageIdToScroll;
|
|
706
699
|
}
|
|
707
|
-
},
|
|
708
|
-
}, [targetedMessage, initialScrollToFirstUnreadMessage
|
|
709
|
-
var messagesWithImages = legacyImageViewerSwipeBehaviour &&
|
|
700
|
+
}, 50);
|
|
701
|
+
}, [targetedMessage, initialScrollToFirstUnreadMessage]);
|
|
702
|
+
var messagesWithImages = legacyImageViewerSwipeBehaviour && processedMessageList.filter(function (message) {
|
|
710
703
|
var isMessageTypeDeleted = message.type === 'deleted';
|
|
711
704
|
if (!isMessageTypeDeleted && message.attachments) {
|
|
712
705
|
return message.attachments.some(function (attachment) {
|
|
@@ -743,11 +736,11 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
743
736
|
};
|
|
744
737
|
var onScrollBeginDrag = function onScrollBeginDrag(event) {
|
|
745
738
|
!hasMoved && selectedPicker && setHasMoved(true);
|
|
746
|
-
|
|
739
|
+
onUserScrollEvent(event);
|
|
747
740
|
};
|
|
748
741
|
var onScrollEndDrag = function onScrollEndDrag(event) {
|
|
749
742
|
hasMoved && selectedPicker && setHasMoved(false);
|
|
750
|
-
|
|
743
|
+
onUserScrollEvent(event);
|
|
751
744
|
};
|
|
752
745
|
var refCallback = function refCallback(ref) {
|
|
753
746
|
flatListRef.current = ref;
|
|
@@ -761,7 +754,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
761
754
|
if (debugRef.current.setEventType) debugRef.current.setEventType('send');
|
|
762
755
|
if (debugRef.current.setSendEventParams) debugRef.current.setSendEventParams({
|
|
763
756
|
action: thread ? 'ThreadList' : 'Messages',
|
|
764
|
-
data:
|
|
757
|
+
data: processedMessageList
|
|
765
758
|
});
|
|
766
759
|
}
|
|
767
760
|
var renderListEmptyComponent = (0, _react.useCallback)(function () {
|
|
@@ -771,7 +764,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
771
764
|
__self: _this,
|
|
772
765
|
__source: {
|
|
773
766
|
fileName: _jsxFileName,
|
|
774
|
-
lineNumber:
|
|
767
|
+
lineNumber: 1069,
|
|
775
768
|
columnNumber: 7
|
|
776
769
|
}
|
|
777
770
|
}, _react["default"].createElement(EmptyStateIndicator, {
|
|
@@ -779,7 +772,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
779
772
|
__self: _this,
|
|
780
773
|
__source: {
|
|
781
774
|
fileName: _jsxFileName,
|
|
782
|
-
lineNumber:
|
|
775
|
+
lineNumber: 1073,
|
|
783
776
|
columnNumber: 9
|
|
784
777
|
}
|
|
785
778
|
}));
|
|
@@ -790,14 +783,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
790
783
|
__self: _this,
|
|
791
784
|
__source: {
|
|
792
785
|
fileName: _jsxFileName,
|
|
793
|
-
lineNumber:
|
|
786
|
+
lineNumber: 1081,
|
|
794
787
|
columnNumber: 7
|
|
795
788
|
}
|
|
796
789
|
}, _react["default"].createElement(FooterComponent, {
|
|
797
790
|
__self: _this,
|
|
798
791
|
__source: {
|
|
799
792
|
fileName: _jsxFileName,
|
|
800
|
-
lineNumber:
|
|
793
|
+
lineNumber: 1082,
|
|
801
794
|
columnNumber: 9
|
|
802
795
|
}
|
|
803
796
|
}));
|
|
@@ -808,14 +801,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
808
801
|
__self: _this,
|
|
809
802
|
__source: {
|
|
810
803
|
fileName: _jsxFileName,
|
|
811
|
-
lineNumber:
|
|
804
|
+
lineNumber: 1090,
|
|
812
805
|
columnNumber: 7
|
|
813
806
|
}
|
|
814
807
|
}, _react["default"].createElement(HeaderComponent, {
|
|
815
808
|
__self: _this,
|
|
816
809
|
__source: {
|
|
817
810
|
fileName: _jsxFileName,
|
|
818
|
-
lineNumber:
|
|
811
|
+
lineNumber: 1091,
|
|
819
812
|
columnNumber: 9
|
|
820
813
|
}
|
|
821
814
|
}));
|
|
@@ -827,7 +820,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
827
820
|
__self: _this,
|
|
828
821
|
__source: {
|
|
829
822
|
fileName: _jsxFileName,
|
|
830
|
-
lineNumber:
|
|
823
|
+
lineNumber: 1101,
|
|
831
824
|
columnNumber: 7
|
|
832
825
|
}
|
|
833
826
|
}, _react["default"].createElement(LoadingIndicator, {
|
|
@@ -835,7 +828,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
835
828
|
__self: _this,
|
|
836
829
|
__source: {
|
|
837
830
|
fileName: _jsxFileName,
|
|
838
|
-
lineNumber:
|
|
831
|
+
lineNumber: 1102,
|
|
839
832
|
columnNumber: 9
|
|
840
833
|
}
|
|
841
834
|
}));
|
|
@@ -847,7 +840,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
847
840
|
__self: _this,
|
|
848
841
|
__source: {
|
|
849
842
|
fileName: _jsxFileName,
|
|
850
|
-
lineNumber:
|
|
843
|
+
lineNumber: 1109,
|
|
851
844
|
columnNumber: 30
|
|
852
845
|
}
|
|
853
846
|
});
|
|
@@ -856,7 +849,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
856
849
|
__self: _this,
|
|
857
850
|
__source: {
|
|
858
851
|
fileName: _jsxFileName,
|
|
859
|
-
lineNumber:
|
|
852
|
+
lineNumber: 1110,
|
|
860
853
|
columnNumber: 46
|
|
861
854
|
}
|
|
862
855
|
});
|
|
@@ -877,13 +870,13 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
877
870
|
__self: _this,
|
|
878
871
|
__source: {
|
|
879
872
|
fileName: _jsxFileName,
|
|
880
|
-
lineNumber:
|
|
873
|
+
lineNumber: 1126,
|
|
881
874
|
columnNumber: 5
|
|
882
875
|
}
|
|
883
876
|
}, _react["default"].createElement(FlatList, (0, _extends2["default"])({
|
|
884
877
|
CellRendererComponent: shouldApplyAndroidWorkaround ? InvertedCellRendererComponent : undefined,
|
|
885
878
|
contentContainerStyle: [styles.contentContainer, additionalFlatListProps == null ? void 0 : additionalFlatListProps.contentContainerStyle, contentContainer],
|
|
886
|
-
data:
|
|
879
|
+
data: processedMessageList,
|
|
887
880
|
extraData: disabled || !hasNoMoreRecentMessagesToLoad,
|
|
888
881
|
inverted: shouldApplyAndroidWorkaround ? false : inverted,
|
|
889
882
|
keyboardShouldPersistTaps: "handled",
|
|
@@ -892,10 +885,11 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
892
885
|
ListFooterComponent: ListFooterComponent,
|
|
893
886
|
ListHeaderComponent: ListHeaderComponent,
|
|
894
887
|
maintainVisibleContentPosition: {
|
|
895
|
-
autoscrollToTopThreshold:
|
|
888
|
+
autoscrollToTopThreshold: autoscrollToRecent ? 10 : undefined,
|
|
896
889
|
minIndexForVisible: 1
|
|
897
890
|
},
|
|
898
891
|
maxToRenderPerBatch: 30,
|
|
892
|
+
onMomentumScrollEnd: onUserScrollEvent,
|
|
899
893
|
onScroll: handleScroll,
|
|
900
894
|
onScrollBeginDrag: onScrollBeginDrag,
|
|
901
895
|
onScrollEndDrag: onScrollEndDrag,
|
|
@@ -913,7 +907,7 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
913
907
|
__self: _this,
|
|
914
908
|
__source: {
|
|
915
909
|
fileName: _jsxFileName,
|
|
916
|
-
lineNumber:
|
|
910
|
+
lineNumber: 1130,
|
|
917
911
|
columnNumber: 7
|
|
918
912
|
}
|
|
919
913
|
})), !loading && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_reactNative.View, {
|
|
@@ -921,28 +915,28 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
921
915
|
__self: _this,
|
|
922
916
|
__source: {
|
|
923
917
|
fileName: _jsxFileName,
|
|
924
|
-
lineNumber:
|
|
918
|
+
lineNumber: 1181,
|
|
925
919
|
columnNumber: 11
|
|
926
920
|
}
|
|
927
921
|
}, _react["default"].createElement(StickyHeaderComponent, {
|
|
928
922
|
__self: _this,
|
|
929
923
|
__source: {
|
|
930
924
|
fileName: _jsxFileName,
|
|
931
|
-
lineNumber:
|
|
925
|
+
lineNumber: 1182,
|
|
932
926
|
columnNumber: 13
|
|
933
927
|
}
|
|
934
928
|
})), !disableTypingIndicator && TypingIndicator && _react["default"].createElement(TypingIndicatorContainer, {
|
|
935
929
|
__self: _this,
|
|
936
930
|
__source: {
|
|
937
931
|
fileName: _jsxFileName,
|
|
938
|
-
lineNumber:
|
|
932
|
+
lineNumber: 1185,
|
|
939
933
|
columnNumber: 13
|
|
940
934
|
}
|
|
941
935
|
}, _react["default"].createElement(TypingIndicator, {
|
|
942
936
|
__self: _this,
|
|
943
937
|
__source: {
|
|
944
938
|
fileName: _jsxFileName,
|
|
945
|
-
lineNumber:
|
|
939
|
+
lineNumber: 1186,
|
|
946
940
|
columnNumber: 15
|
|
947
941
|
}
|
|
948
942
|
})), _react["default"].createElement(ScrollToBottomButton, {
|
|
@@ -952,14 +946,14 @@ var MessageListWithContext = function MessageListWithContext(props) {
|
|
|
952
946
|
__self: _this,
|
|
953
947
|
__source: {
|
|
954
948
|
fileName: _jsxFileName,
|
|
955
|
-
lineNumber:
|
|
949
|
+
lineNumber: 1189,
|
|
956
950
|
columnNumber: 11
|
|
957
951
|
}
|
|
958
952
|
})), _react["default"].createElement(NetworkDownIndicator, {
|
|
959
953
|
__self: _this,
|
|
960
954
|
__source: {
|
|
961
955
|
fileName: _jsxFileName,
|
|
962
|
-
lineNumber:
|
|
956
|
+
lineNumber: 1196,
|
|
963
957
|
columnNumber: 7
|
|
964
958
|
}
|
|
965
959
|
}));
|
|
@@ -1066,7 +1060,7 @@ var MessageList = function MessageList(props) {
|
|
|
1066
1060
|
__self: _this,
|
|
1067
1061
|
__source: {
|
|
1068
1062
|
fileName: _jsxFileName,
|
|
1069
|
-
lineNumber:
|
|
1063
|
+
lineNumber: 1254,
|
|
1070
1064
|
columnNumber: 5
|
|
1071
1065
|
}
|
|
1072
1066
|
}));
|