@droppii-org/chat-mobile 0.2.99 → 0.2.100

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.
@@ -62,6 +62,16 @@ const FOLLOW_SETTLE_MS = 200;
62
62
  // and the last message stays behind the keyboard.
63
63
  const FOLLOW_TAIL_FRAMES = 3;
64
64
 
65
+ // How long after a new message the list keeps re-anchoring to the end as the
66
+ // content settles. A row's real height is not known when the message is
67
+ // inserted — LegendList still has it at `estimatedItemSize`, deliberately a
68
+ // lower bound — so the scroll that fires with the message computes its target
69
+ // against content that is too short and can move nothing at all. The real
70
+ // height lands a few hundred ms later (measured: 297ms, leaving the last
71
+ // message 55px behind the composer). Long enough to cover that, short enough
72
+ // that it cannot interfere with a scroll the user starts afterwards.
73
+ const NEW_MESSAGE_ANCHOR_MS = 1000;
74
+
65
75
  // Passed as the list's `keyboardOffset` to switch KeyboardChatScrollView's own
66
76
  // native `contentInset` off while leaving the rest of the component in place.
67
77
  // Its `getEffectiveHeight` interpolates the live keyboard height into
@@ -125,9 +135,15 @@ export const ChatListLegend = /*#__PURE__*/memo(({
125
135
  // drop Android's repeat events before they reach React.
126
136
  const keyboardInsetRef = useRef(0);
127
137
  const [keyboardInset, setKeyboardInset] = useState(0);
138
+ // True while the keyboard-following loop below is driving the list.
139
+ const isFollowingKeyboardRef = useRef(false);
140
+ // Deadline until which content growth should re-anchor to the end, and
141
+ // the content height the last growth was measured against.
142
+ const anchorToEndUntilRef = useRef(0);
143
+ const lastContentHeightRef = useRef(0);
128
144
  // The keyboard's live height, written on the UI thread and sampled from
129
- // the JS thread by the tween below, so the content tracks the keyboard's
130
- // real position instead of a guessed easing curve.
145
+ // the JS thread by the following loop, so the content tracks where the
146
+ // keyboard actually is instead of a guessed easing curve.
131
147
  //
132
148
  // `useGenericKeyboardHandler` rather than `useKeyboardHandler` /
133
149
  // `useReanimatedKeyboardAnimation`: those call `useResizeMode()`, which
@@ -135,8 +151,6 @@ export const ChatListLegend = /*#__PURE__*/memo(({
135
151
  // already owns that here. The worklet only writes a SharedValue; calling
136
152
  // `runOnJS` (or anything that reaches JS) from a keyboard worklet
137
153
  // reliably crashes Reanimated with a reentrant-lock assertion.
138
- // True while the keyboard-following loop below is driving the list.
139
- const isFollowingKeyboardRef = useRef(false);
140
154
  const liveKeyboardHeight = useSharedValue(0);
141
155
  useGenericKeyboardHandler({
142
156
  onMove: e => {
@@ -406,6 +420,24 @@ export const ChatListLegend = /*#__PURE__*/memo(({
406
420
  layoutMeasurement
407
421
  } = e.nativeEvent;
408
422
  const isAtBottom = contentOffset.y + layoutMeasurement.height >= contentSize.height - 100;
423
+ // A row that finishes measuring after the message was inserted grows
424
+ // the content under a scroll that has already run, leaving the newest
425
+ // message short of the end — behind the composer, since that is
426
+ // exactly the room the keyboard padding reserves. Re-aim at the new
427
+ // end each time that happens, for as long as the window is open.
428
+ const grew = contentSize.height > lastContentHeightRef.current;
429
+ lastContentHeightRef.current = contentSize.height;
430
+ // Measured against the true end, not `isAtBottom`: that carries a
431
+ // 100px tolerance for the scroll-to-bottom button, and the shortfall
432
+ // here is smaller than it (55px measured) while still being enough to
433
+ // leave the newest message behind the composer.
434
+ const distanceFromEnd = contentSize.height - contentOffset.y - layoutMeasurement.height;
435
+ if (grew && distanceFromEnd > 1 && Date.now() < anchorToEndUntilRef.current) {
436
+ scrollMessageToEnd({
437
+ animated: true,
438
+ closeKeyboard: false
439
+ });
440
+ }
409
441
 
410
442
  // Debounce animation updates
411
443
  if (scrollDebounceRef.current) {
@@ -420,7 +452,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
420
452
  ChatMessageAPI.markConversationAsRead(conversationId || '');
421
453
  }
422
454
  }, 50);
423
- }, [buttonOpacity, conversationId]);
455
+ }, [buttonOpacity, conversationId, scrollMessageToEnd]);
424
456
  const handleScrollToBottom = useCallback(() => {
425
457
  if (hasMoreNew) {
426
458
  onLoadMoreOld?.(false);
@@ -636,6 +668,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
636
668
  // one is.
637
669
  const shouldFire = previousLastMessageId !== null && !!lastMessageId && !moreOldLoadingRef.current && isAtBottomRef.current;
638
670
  if (!shouldFire) return;
671
+ anchorToEndUntilRef.current = Date.now() + NEW_MESSAGE_ANCHOR_MS;
639
672
  scrollMessageToEnd({
640
673
  animated: true,
641
674
  closeKeyboard: false
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useMemo","useEffect","useRef","useState","ActivityIndicator","DeviceEventEmitter","StyleSheet","useWindowDimensions","Animated","useSharedValue","useAnimatedStyle","withTiming","Easing","KeyboardAwareLegendList","KeyboardEvents","useGenericKeyboardHandler","KContainer","KColors","KSpacingValue","KLabel","KRadiusValue","KImage","precomputeLegendListData","getMessageRenderId","LegendChatMessage","LegendChatDay","LegendChatLoadEarlier","useChatDetailContext","getFlowInputButtonsNodes","InputButtonFlow","useResetFlow","useRunFlow","useSendMessage","ChatEvent","useMessageStore","useChatContext","messageStyles","MessageType","PeerType","useUserStore","ChatMessageAPI","resolveImageDisplayDims","ChatImageDimens","CHAT_IMAGE_VIEW_SOURCE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ROW_MARGIN_CLUSTER_END","ROW_MARGIN_IN_CLUSTER","BUTTON_FADE_CONFIG","duration","easing","out","ease","CONTENT_PADDING_VERTICAL","FOLLOW_FALLBACK_MS","FOLLOW_SETTLE_MS","FOLLOW_TAIL_FRAMES","DISABLE_NATIVE_KEYBOARD_INSET","getRowMarginBottom","position","ChatListLegend","messages","conversationId","customMessageItemFactory","onLoadMoreOld","moreOldLoading","hasMoreOld","onLoadMoreNew","hasMoreNew","onMediaPress","onPressUrl","onLongPress","listRef","freeze","scrollMessageToEnd","keyboardOffset","isLoading","currentUserId","s","user","userID","windowWidth","width","isBotConversation","conversationFlow","conversation","isGroupConversation","peerType","Group","messageDataMap","retryMessage","lastMessageId","last","length","clientMsgID","serverMsgID","mutate","runFlow","resetFlow","buttonOpacity","isAtBottomRef","scrollDebounceRef","undefined","keyboardInsetRef","keyboardInset","setKeyboardInset","isFollowingKeyboardRef","liveKeyboardHeight","onMove","e","value","height","onEnd","rowRefsMap","Map","hasUserScrolledRef","hasCorrectedInitialPaddingRef","previousLastMessageIdRef","moreOldLoadingRef","current","messagesRef","showBadge","setShowBadge","highlightedId","setHighlightedId","highlightTimerRef","revealedMessageId","setRevealedMessageId","applicationType","searchMessages","handleMessageLongPress","messageId","message","node","get","measureInWindow","x","y","groupPosition","onRunFlow","payload","onResetFlow","handleMessagePress","prev","renderItem","item","index","isOutgoing","sendID","isLastMessage","isLastIncoming","messageData","dayStart","timeBreak","createdAt","showSenderGutter","showName","showAvatar","flowInputButtonsNodes","havingBotMessage","flowCurrentStep","children","View","ref","set","delete","style","messageRowRight","messageRowLeft","marginBottom","collapsable","createdAtTime","onRetry","onPress","isHighlighted","isTimeRevealed","nodeData","error","__DEV__","console","styles","errorRow","Text","typo","maintainVisiblePositionConfig","data","getItemType","isCustom","contentType","getFixedItemSize","rowMargin","candidateSize","PictureMessage","VideoMessage","getDimensions","MessageListThumbnail","listExtraData","flowStepId","id","handleStartReached","getState","handleEndReached","moreNewLoading","handleScrollBeginDrag","handleScroll","contentOffset","contentSize","layoutMeasurement","nativeEvent","isAtBottom","clearTimeout","setTimeout","markConversationAsRead","handleScrollToBottom","animated","closeKeyboard","contentContainerStyle","content","paddingBottom","animatedButtonStyle","opacity","pointerEvents","pendingSettle","pendingFrame","clearPending","cancelAnimationFrame","followKeyboard","to","startedAt","Date","now","startedFrom","Math","max","abs","tailFrames","step","live","reached","timedOut","moved","done","settleTo","scrollToEnd","requestAnimationFrame","applyInset","nextInset","willShow","addListener","willHide","remove","previousLastMessageId","shouldFire","handleListLoad","bottomSubscription","ScrollToBottom","subscription","ScrollToMessage","clientMessageId","findIndex","m","scrollToIndex","viewPosition","finally","startClientMsgId","flex","center","background","white","color","primary","normal","size","container","estimatedItemSize","keyExtractor","String","recycleItems","extraData","alignItemsAtEnd","alwaysRender","top","maintainScrollAtEnd","maintainVisibleContentPosition","drawDistance","automaticallyAdjustContentInsets","keyboardLiftBehavior","scrollEventThrottle","onScroll","onScrollBeginDrag","onLoad","scrollIndicatorInsets","right","ListHeaderComponent","onStartReached","onStartReachedThreshold","onEndReached","onEndReachedThreshold","initialScrollAtEnd","scrollToBottomButton","Touchable","activeOpacity","buttonInner","accessible","accessibilityLabel","accessibilityRole","VectorIcons","name","black","badge","displayName","create","paddingVertical","flexGrow","bottom","zIndex","borderRadius","round","backgroundColor","justifyContent","alignItems","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","padding","palette","w400","borderWidth"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatListLegend.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useMemo","useEffect","useRef","useState","ActivityIndicator","DeviceEventEmitter","StyleSheet","useWindowDimensions","Animated","useSharedValue","useAnimatedStyle","withTiming","Easing","KeyboardAwareLegendList","KeyboardEvents","useGenericKeyboardHandler","KContainer","KColors","KSpacingValue","KLabel","KRadiusValue","KImage","precomputeLegendListData","getMessageRenderId","LegendChatMessage","LegendChatDay","LegendChatLoadEarlier","useChatDetailContext","getFlowInputButtonsNodes","InputButtonFlow","useResetFlow","useRunFlow","useSendMessage","ChatEvent","useMessageStore","useChatContext","messageStyles","MessageType","PeerType","useUserStore","ChatMessageAPI","resolveImageDisplayDims","ChatImageDimens","CHAT_IMAGE_VIEW_SOURCE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ROW_MARGIN_CLUSTER_END","ROW_MARGIN_IN_CLUSTER","BUTTON_FADE_CONFIG","duration","easing","out","ease","CONTENT_PADDING_VERTICAL","FOLLOW_FALLBACK_MS","FOLLOW_SETTLE_MS","FOLLOW_TAIL_FRAMES","NEW_MESSAGE_ANCHOR_MS","DISABLE_NATIVE_KEYBOARD_INSET","getRowMarginBottom","position","ChatListLegend","messages","conversationId","customMessageItemFactory","onLoadMoreOld","moreOldLoading","hasMoreOld","onLoadMoreNew","hasMoreNew","onMediaPress","onPressUrl","onLongPress","listRef","freeze","scrollMessageToEnd","keyboardOffset","isLoading","currentUserId","s","user","userID","windowWidth","width","isBotConversation","conversationFlow","conversation","isGroupConversation","peerType","Group","messageDataMap","retryMessage","lastMessageId","last","length","clientMsgID","serverMsgID","mutate","runFlow","resetFlow","buttonOpacity","isAtBottomRef","scrollDebounceRef","undefined","keyboardInsetRef","keyboardInset","setKeyboardInset","isFollowingKeyboardRef","anchorToEndUntilRef","lastContentHeightRef","liveKeyboardHeight","onMove","e","value","height","onEnd","rowRefsMap","Map","hasUserScrolledRef","hasCorrectedInitialPaddingRef","previousLastMessageIdRef","moreOldLoadingRef","current","messagesRef","showBadge","setShowBadge","highlightedId","setHighlightedId","highlightTimerRef","revealedMessageId","setRevealedMessageId","applicationType","searchMessages","handleMessageLongPress","messageId","message","node","get","measureInWindow","x","y","groupPosition","onRunFlow","payload","onResetFlow","handleMessagePress","prev","renderItem","item","index","isOutgoing","sendID","isLastMessage","isLastIncoming","messageData","dayStart","timeBreak","createdAt","showSenderGutter","showName","showAvatar","flowInputButtonsNodes","havingBotMessage","flowCurrentStep","children","View","ref","set","delete","style","messageRowRight","messageRowLeft","marginBottom","collapsable","createdAtTime","onRetry","onPress","isHighlighted","isTimeRevealed","nodeData","error","__DEV__","console","styles","errorRow","Text","typo","maintainVisiblePositionConfig","data","getItemType","isCustom","contentType","getFixedItemSize","rowMargin","candidateSize","PictureMessage","VideoMessage","getDimensions","MessageListThumbnail","listExtraData","flowStepId","id","handleStartReached","getState","handleEndReached","moreNewLoading","handleScrollBeginDrag","handleScroll","contentOffset","contentSize","layoutMeasurement","nativeEvent","isAtBottom","grew","distanceFromEnd","Date","now","animated","closeKeyboard","clearTimeout","setTimeout","markConversationAsRead","handleScrollToBottom","contentContainerStyle","content","paddingBottom","animatedButtonStyle","opacity","pointerEvents","pendingSettle","pendingFrame","clearPending","cancelAnimationFrame","followKeyboard","to","startedAt","startedFrom","Math","max","abs","tailFrames","step","live","reached","timedOut","moved","done","settleTo","scrollToEnd","requestAnimationFrame","applyInset","nextInset","willShow","addListener","willHide","remove","previousLastMessageId","shouldFire","handleListLoad","bottomSubscription","ScrollToBottom","subscription","ScrollToMessage","clientMessageId","findIndex","m","scrollToIndex","viewPosition","finally","startClientMsgId","flex","center","background","white","color","primary","normal","size","container","estimatedItemSize","keyExtractor","String","recycleItems","extraData","alignItemsAtEnd","alwaysRender","top","maintainScrollAtEnd","maintainVisibleContentPosition","drawDistance","automaticallyAdjustContentInsets","keyboardLiftBehavior","scrollEventThrottle","onScroll","onScrollBeginDrag","onLoad","scrollIndicatorInsets","right","ListHeaderComponent","onStartReached","onStartReachedThreshold","onEndReached","onEndReachedThreshold","initialScrollAtEnd","scrollToBottomButton","Touchable","activeOpacity","buttonInner","accessible","accessibilityLabel","accessibilityRole","VectorIcons","name","black","badge","displayName","create","paddingVertical","flexGrow","bottom","zIndex","borderRadius","round","backgroundColor","justifyContent","alignItems","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","padding","palette","w400","borderWidth"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatListLegend.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAQf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AActC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAyE7C,UAAU,2BAA4B,SAAQ,aAAa;IACzD,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,6QAkBtB,2BAA2B,iCAi0B/B,CAAC"}
1
+ {"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAQf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,KAAK,aAAa,EAEnB,MAAM,8BAA8B,CAAC;AActC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAmF7C,UAAU,2BAA4B,SAAQ,aAAa;IACzD,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,6QAkBtB,2BAA2B,iCA01B/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.99",
3
+ "version": "0.2.100",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -69,7 +69,7 @@
69
69
  "example-legacy": "yarn workspace @droppii-org/chat-mobile-example-legacy"
70
70
  },
71
71
  "dependencies": {
72
- "@droppii/openim-rn-client-sdk": "git+ssh://git@github.com/droppii/open-im-sdk-reactnative.git#v1.0.0-rc39",
72
+ "@droppii/openim-rn-client-sdk": "git+ssh://git@github.com/droppii/open-im-sdk-reactnative.git#v1.0.0-rc40",
73
73
  "@legendapp/list": "^3.3.10",
74
74
  "axios": "^1.16.1",
75
75
  "lodash": "^4.18.1",
@@ -103,6 +103,16 @@ const FOLLOW_SETTLE_MS = 200;
103
103
  // and the last message stays behind the keyboard.
104
104
  const FOLLOW_TAIL_FRAMES = 3;
105
105
 
106
+ // How long after a new message the list keeps re-anchoring to the end as the
107
+ // content settles. A row's real height is not known when the message is
108
+ // inserted — LegendList still has it at `estimatedItemSize`, deliberately a
109
+ // lower bound — so the scroll that fires with the message computes its target
110
+ // against content that is too short and can move nothing at all. The real
111
+ // height lands a few hundred ms later (measured: 297ms, leaving the last
112
+ // message 55px behind the composer). Long enough to cover that, short enough
113
+ // that it cannot interfere with a scroll the user starts afterwards.
114
+ const NEW_MESSAGE_ANCHOR_MS = 1000;
115
+
106
116
  // Passed as the list's `keyboardOffset` to switch KeyboardChatScrollView's own
107
117
  // native `contentInset` off while leaving the rest of the component in place.
108
118
  // Its `getEffectiveHeight` interpolates the live keyboard height into
@@ -182,9 +192,15 @@ export const ChatListLegend = memo(
182
192
  // drop Android's repeat events before they reach React.
183
193
  const keyboardInsetRef = useRef(0);
184
194
  const [keyboardInset, setKeyboardInset] = useState(0);
195
+ // True while the keyboard-following loop below is driving the list.
196
+ const isFollowingKeyboardRef = useRef(false);
197
+ // Deadline until which content growth should re-anchor to the end, and
198
+ // the content height the last growth was measured against.
199
+ const anchorToEndUntilRef = useRef(0);
200
+ const lastContentHeightRef = useRef(0);
185
201
  // The keyboard's live height, written on the UI thread and sampled from
186
- // the JS thread by the tween below, so the content tracks the keyboard's
187
- // real position instead of a guessed easing curve.
202
+ // the JS thread by the following loop, so the content tracks where the
203
+ // keyboard actually is instead of a guessed easing curve.
188
204
  //
189
205
  // `useGenericKeyboardHandler` rather than `useKeyboardHandler` /
190
206
  // `useReanimatedKeyboardAnimation`: those call `useResizeMode()`, which
@@ -192,8 +208,6 @@ export const ChatListLegend = memo(
192
208
  // already owns that here. The worklet only writes a SharedValue; calling
193
209
  // `runOnJS` (or anything that reaches JS) from a keyboard worklet
194
210
  // reliably crashes Reanimated with a reentrant-lock assertion.
195
- // True while the keyboard-following loop below is driving the list.
196
- const isFollowingKeyboardRef = useRef(false);
197
211
  const liveKeyboardHeight = useSharedValue(0);
198
212
  useGenericKeyboardHandler(
199
213
  {
@@ -559,6 +573,26 @@ export const ChatListLegend = memo(
559
573
  const isAtBottom =
560
574
  contentOffset.y + layoutMeasurement.height >=
561
575
  contentSize.height - 100;
576
+ // A row that finishes measuring after the message was inserted grows
577
+ // the content under a scroll that has already run, leaving the newest
578
+ // message short of the end — behind the composer, since that is
579
+ // exactly the room the keyboard padding reserves. Re-aim at the new
580
+ // end each time that happens, for as long as the window is open.
581
+ const grew = contentSize.height > lastContentHeightRef.current;
582
+ lastContentHeightRef.current = contentSize.height;
583
+ // Measured against the true end, not `isAtBottom`: that carries a
584
+ // 100px tolerance for the scroll-to-bottom button, and the shortfall
585
+ // here is smaller than it (55px measured) while still being enough to
586
+ // leave the newest message behind the composer.
587
+ const distanceFromEnd =
588
+ contentSize.height - contentOffset.y - layoutMeasurement.height;
589
+ if (
590
+ grew &&
591
+ distanceFromEnd > 1 &&
592
+ Date.now() < anchorToEndUntilRef.current
593
+ ) {
594
+ scrollMessageToEnd({ animated: true, closeKeyboard: false });
595
+ }
562
596
 
563
597
  // Debounce animation updates
564
598
  if (scrollDebounceRef.current) {
@@ -578,7 +612,7 @@ export const ChatListLegend = memo(
578
612
  }
579
613
  }, 50);
580
614
  },
581
- [buttonOpacity, conversationId]
615
+ [buttonOpacity, conversationId, scrollMessageToEnd]
582
616
  );
583
617
 
584
618
  const handleScrollToBottom = useCallback(() => {
@@ -814,6 +848,7 @@ export const ChatListLegend = memo(
814
848
 
815
849
  if (!shouldFire) return;
816
850
 
851
+ anchorToEndUntilRef.current = Date.now() + NEW_MESSAGE_ANCHOR_MS;
817
852
  scrollMessageToEnd({ animated: true, closeKeyboard: false });
818
853
  }, [lastMessageId, scrollMessageToEnd]);
819
854