@droppii-org/chat-mobile 0.2.108 → 0.2.110

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.
Files changed (114) hide show
  1. package/lib/module/screens/ChatInfo/ChatInfo.js +12 -3
  2. package/lib/module/screens/ChatInfo/ChatInfo.js.map +1 -1
  3. package/lib/module/screens/ChatInfo/ChatInfoActions.js +45 -40
  4. package/lib/module/screens/ChatInfo/ChatInfoActions.js.map +1 -1
  5. package/lib/module/screens/ChatInfo/ChatInfoProfile.js +11 -7
  6. package/lib/module/screens/ChatInfo/ChatInfoProfile.js.map +1 -1
  7. package/lib/module/screens/chat-detail/ChatDetail.js +42 -7
  8. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  9. package/lib/module/screens/chat-detail/ChatListLegend.js +249 -49
  10. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  11. package/lib/module/screens/chat-detail/hooks/createUnreadMarkReadGate.js +32 -0
  12. package/lib/module/screens/chat-detail/hooks/createUnreadMarkReadGate.js.map +1 -0
  13. package/lib/module/screens/chat-detail/hooks/useMarkConversationRead.js +180 -0
  14. package/lib/module/screens/chat-detail/hooks/useMarkConversationRead.js.map +1 -0
  15. package/lib/module/screens/chat-detail/hooks/useUnreadAnchorSeen.js +88 -0
  16. package/lib/module/screens/chat-detail/hooks/useUnreadAnchorSeen.js.map +1 -0
  17. package/lib/module/screens/chat-detail/hooks/useUnreadDeeplinkCheck.js +59 -0
  18. package/lib/module/screens/chat-detail/hooks/useUnreadDeeplinkCheck.js.map +1 -0
  19. package/lib/module/screens/chat-detail/hooks/useUnreadIndicator.js +105 -0
  20. package/lib/module/screens/chat-detail/hooks/useUnreadIndicator.js.map +1 -0
  21. package/lib/module/screens/chat-detail/hooks/useUnreadIndicatorInList.js +157 -0
  22. package/lib/module/screens/chat-detail/hooks/useUnreadIndicatorInList.js.map +1 -0
  23. package/lib/module/screens/chat-detail/legend/LegendChatUnreadButton.js +140 -0
  24. package/lib/module/screens/chat-detail/legend/LegendChatUnreadButton.js.map +1 -0
  25. package/lib/module/screens/chat-detail/legend/LegendChatUnreadDivider.js +51 -0
  26. package/lib/module/screens/chat-detail/legend/LegendChatUnreadDivider.js.map +1 -0
  27. package/lib/module/services/message.js +30 -0
  28. package/lib/module/services/message.js.map +1 -1
  29. package/lib/module/store/message.js +25 -4
  30. package/lib/module/store/message.js.map +1 -1
  31. package/lib/module/store/unreadIndicator.js +26 -0
  32. package/lib/module/store/unreadIndicator.js.map +1 -0
  33. package/lib/module/translation/resources/i18n.js +2 -0
  34. package/lib/module/translation/resources/i18n.js.map +1 -1
  35. package/lib/module/types/chat.js.map +1 -1
  36. package/lib/module/types/unreadIndicator.js +2 -0
  37. package/lib/module/types/unreadIndicator.js.map +1 -0
  38. package/lib/module/utils/markReadPolicy.js +25 -0
  39. package/lib/module/utils/markReadPolicy.js.map +1 -0
  40. package/lib/module/utils/promise.js +16 -0
  41. package/lib/module/utils/promise.js.map +1 -1
  42. package/lib/module/utils/unreadAnchor.js +57 -0
  43. package/lib/module/utils/unreadAnchor.js.map +1 -0
  44. package/lib/module/utils/unreadIndicatorState.js +96 -0
  45. package/lib/module/utils/unreadIndicatorState.js.map +1 -0
  46. package/lib/typescript/src/screens/ChatInfo/ChatInfo.d.ts.map +1 -1
  47. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts +2 -1
  48. package/lib/typescript/src/screens/ChatInfo/ChatInfoActions.d.ts.map +1 -1
  49. package/lib/typescript/src/screens/ChatInfo/ChatInfoProfile.d.ts +2 -1
  50. package/lib/typescript/src/screens/ChatInfo/ChatInfoProfile.d.ts.map +1 -1
  51. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  52. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +4 -1
  53. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  54. package/lib/typescript/src/screens/chat-detail/hooks/createUnreadMarkReadGate.d.ts +9 -0
  55. package/lib/typescript/src/screens/chat-detail/hooks/createUnreadMarkReadGate.d.ts.map +1 -0
  56. package/lib/typescript/src/screens/chat-detail/hooks/useMarkConversationRead.d.ts +39 -0
  57. package/lib/typescript/src/screens/chat-detail/hooks/useMarkConversationRead.d.ts.map +1 -0
  58. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadAnchorSeen.d.ts +26 -0
  59. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadAnchorSeen.d.ts.map +1 -0
  60. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadDeeplinkCheck.d.ts +17 -0
  61. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadDeeplinkCheck.d.ts.map +1 -0
  62. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadIndicator.d.ts +21 -0
  63. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadIndicator.d.ts.map +1 -0
  64. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadIndicatorInList.d.ts +35 -0
  65. package/lib/typescript/src/screens/chat-detail/hooks/useUnreadIndicatorInList.d.ts.map +1 -0
  66. package/lib/typescript/src/screens/chat-detail/legend/LegendChatUnreadButton.d.ts +8 -0
  67. package/lib/typescript/src/screens/chat-detail/legend/LegendChatUnreadButton.d.ts.map +1 -0
  68. package/lib/typescript/src/screens/chat-detail/legend/LegendChatUnreadDivider.d.ts +7 -0
  69. package/lib/typescript/src/screens/chat-detail/legend/LegendChatUnreadDivider.d.ts.map +1 -0
  70. package/lib/typescript/src/services/message.d.ts +8 -0
  71. package/lib/typescript/src/services/message.d.ts.map +1 -1
  72. package/lib/typescript/src/store/message.d.ts.map +1 -1
  73. package/lib/typescript/src/store/unreadIndicator.d.ts +10 -0
  74. package/lib/typescript/src/store/unreadIndicator.d.ts.map +1 -0
  75. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  76. package/lib/typescript/src/types/chat.d.ts +3 -0
  77. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  78. package/lib/typescript/src/types/events.d.ts +17 -1
  79. package/lib/typescript/src/types/events.d.ts.map +1 -1
  80. package/lib/typescript/src/types/unreadIndicator.d.ts +45 -0
  81. package/lib/typescript/src/types/unreadIndicator.d.ts.map +1 -0
  82. package/lib/typescript/src/utils/markReadPolicy.d.ts +27 -0
  83. package/lib/typescript/src/utils/markReadPolicy.d.ts.map +1 -0
  84. package/lib/typescript/src/utils/promise.d.ts +6 -0
  85. package/lib/typescript/src/utils/promise.d.ts.map +1 -1
  86. package/lib/typescript/src/utils/unreadAnchor.d.ts +33 -0
  87. package/lib/typescript/src/utils/unreadAnchor.d.ts.map +1 -0
  88. package/lib/typescript/src/utils/unreadIndicatorState.d.ts +26 -0
  89. package/lib/typescript/src/utils/unreadIndicatorState.d.ts.map +1 -0
  90. package/package.json +2 -2
  91. package/src/screens/ChatInfo/ChatInfo.tsx +10 -1
  92. package/src/screens/ChatInfo/ChatInfoActions.tsx +47 -39
  93. package/src/screens/ChatInfo/ChatInfoProfile.tsx +17 -12
  94. package/src/screens/chat-detail/ChatDetail.tsx +58 -5
  95. package/src/screens/chat-detail/ChatListLegend.tsx +314 -46
  96. package/src/screens/chat-detail/hooks/createUnreadMarkReadGate.ts +41 -0
  97. package/src/screens/chat-detail/hooks/useMarkConversationRead.ts +197 -0
  98. package/src/screens/chat-detail/hooks/useUnreadAnchorSeen.ts +105 -0
  99. package/src/screens/chat-detail/hooks/useUnreadDeeplinkCheck.ts +68 -0
  100. package/src/screens/chat-detail/hooks/useUnreadIndicator.ts +112 -0
  101. package/src/screens/chat-detail/hooks/useUnreadIndicatorInList.ts +181 -0
  102. package/src/screens/chat-detail/legend/LegendChatUnreadButton.tsx +165 -0
  103. package/src/screens/chat-detail/legend/LegendChatUnreadDivider.tsx +52 -0
  104. package/src/services/message.ts +42 -0
  105. package/src/store/message.ts +23 -5
  106. package/src/store/unreadIndicator.ts +38 -0
  107. package/src/translation/resources/i18n.ts +2 -0
  108. package/src/types/chat.ts +3 -0
  109. package/src/types/events.ts +18 -1
  110. package/src/types/unreadIndicator.ts +49 -0
  111. package/src/utils/markReadPolicy.ts +55 -0
  112. package/src/utils/promise.ts +20 -0
  113. package/src/utils/unreadAnchor.ts +87 -0
  114. package/src/utils/unreadIndicatorState.ts +131 -0
@@ -22,7 +22,6 @@ import { useChatContext } from "../../context/index.js";
22
22
  import { messageStyles } from "./legend/messageTypes.js";
23
23
  import { MessageType, PeerType } from '@droppii/openim-rn-client-sdk';
24
24
  import { useUserStore } from "../../store/index.js";
25
- import { ChatMessageAPI } from "../../services/index.js";
26
25
  import { resolveImageDisplayDims } from "../../components/messages/imageMessage/index.js";
27
26
  import ChatImageDimens, { CHAT_IMAGE_VIEW_SOURCE } from "../../utils/chatImageDimens.js";
28
27
  import { ChatTypingIndicator } from "./ChatTypingIndicator.js";
@@ -30,6 +29,17 @@ import { useGuardedPress } from "../../hooks/useGuardedPress.js";
30
29
  import { useDismissKeyboardFirst } from "../../hooks/useDismissKeyboardFirst.js";
31
30
  import { useTimelinePressGuard } from "../../context/TimelinePressGuardContext.js";
32
31
  import { perfMark } from "../../utils/perf-marker.js";
32
+ import { useMarkConversationRead } from "./hooks/useMarkConversationRead.js";
33
+ import { createUnreadMarkReadGate } from "./hooks/createUnreadMarkReadGate.js";
34
+ import { useUnreadIndicatorInList } from "./hooks/useUnreadIndicatorInList.js";
35
+ import { LegendChatUnreadDivider } from "./legend/LegendChatUnreadDivider.js";
36
+ import { LegendChatUnreadButton } from "./legend/LegendChatUnreadButton.js";
37
+
38
+ // Safety net: a jump that never reports back can't keep the pill logic and
39
+ // the window-reload edge stuck. Long enough for a slow 3-call search plus the
40
+ // unread jump's older-history paging.
41
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
42
+ const JUMP_IN_FLIGHT_TIMEOUT_MS = 20000;
33
43
 
34
44
  // Cluster spacing: a wide gap after the message that closes a cluster, a tight
35
45
  // one between messages inside it. These override the flat margin on the row
@@ -37,7 +47,6 @@ import { perfMark } from "../../utils/perf-marker.js";
37
47
  // which adds only a bottom margin and no vertical padding — so a fixed-size
38
48
  // item's true rendered height stays `content height + this margin`, and
39
49
  // getFixedItemSize can keep folding it in.
40
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
41
50
  const ROW_MARGIN_CLUSTER_END = KSpacingValue['0.5rem'];
42
51
  const ROW_MARGIN_IN_CLUSTER = KSpacingValue['0.25rem'];
43
52
  const BUTTON_FADE_CONFIG = {
@@ -105,7 +114,10 @@ export const ChatListLegend = /*#__PURE__*/memo(({
105
114
  renderConversationViewHeader,
106
115
  dismissAreaTouchProps,
107
116
  isComposerPanelOpen = false,
108
- onDismissAreaScrollBeginDrag
117
+ onDismissAreaScrollBeginDrag,
118
+ unreadToken = null,
119
+ unreadTokenRef,
120
+ deeplinkTargetId
109
121
  }) => {
110
122
  const currentUserId = useUserStore(s => s.user?.userID);
111
123
  const windowWidth = useWindowDimensions().width;
@@ -217,6 +229,68 @@ export const ChatListLegend = /*#__PURE__*/memo(({
217
229
  applicationType
218
230
  } = useChatContext();
219
231
  const searchMessages = useMessageStore(s => s.searchMessages);
232
+
233
+ // True once the list has loaded (onLoad); false while it's remounting
234
+ // under the spinner. Read by the mark-read policy.
235
+ const listLoadedRef = useRef(false);
236
+ // A ScrollToMessage jump is running (in-window scroll or search fallback).
237
+ const jumpInFlightRef = useRef(false);
238
+ // Bumped on every ScrollToMessage, to tell whether a search re-emitted.
239
+ const scrollEventSeqRef = useRef(0);
240
+ const jumpInFlightTimerRef = useRef(null);
241
+ const setJumpInFlight = useCallback(inFlight => {
242
+ jumpInFlightRef.current = inFlight;
243
+ if (jumpInFlightTimerRef.current) {
244
+ clearTimeout(jumpInFlightTimerRef.current);
245
+ jumpInFlightTimerRef.current = null;
246
+ }
247
+ if (!inFlight) return;
248
+ jumpInFlightTimerRef.current = setTimeout(() => {
249
+ jumpInFlightTimerRef.current = null;
250
+ jumpInFlightRef.current = false;
251
+ }, JUMP_IN_FLIGHT_TIMEOUT_MS);
252
+ }, []);
253
+ const markReadGate = useMemo(() => unreadTokenRef ? createUnreadMarkReadGate(unreadTokenRef) : undefined, [unreadTokenRef]);
254
+ const {
255
+ requestMarkRead,
256
+ flushMarkRead
257
+ } = useMarkConversationRead({
258
+ conversationId,
259
+ isAtBottomRef,
260
+ listLoadedRef,
261
+ hasMoreNew: !!hasMoreNew,
262
+ deeplinkTargetId,
263
+ gate: markReadGate
264
+ });
265
+
266
+ // A session that begins already open (bot thread: no lookup) has no
267
+ // resolve transition for the gate to report, so retry a pending
268
+ // mark-read when it lands. Flush-only: landing is not a trigger.
269
+ useEffect(() => {
270
+ if (unreadToken != null) flushMarkRead('gate-open');
271
+ }, [unreadToken, flushMarkRead]);
272
+ const {
273
+ unreadAnchorRowId,
274
+ isPillVisible,
275
+ viewabilityConfig,
276
+ handleViewableItemsChanged,
277
+ checkAnchorSeen,
278
+ markPositionSettled,
279
+ jumpToFirstUnread
280
+ } = useUnreadIndicatorInList({
281
+ messages,
282
+ unreadToken,
283
+ isLoading: !!isLoading,
284
+ hasMoreOld: !!hasMoreOld,
285
+ moreOldLoading: !!moreOldLoading,
286
+ onLoadMoreOld,
287
+ isBotConversation,
288
+ listRef,
289
+ jumpInFlightRef,
290
+ setJumpInFlight
291
+ });
292
+ // With a composer panel open the tap only dismisses it (DROPPII-30577).
293
+ const onPressUnreadPill = useGuardedPress(jumpToFirstUnread, shouldSwallowPress);
220
294
  const handleMessageLongPress = useCallback((messageId, message) => {
221
295
  if (shouldSwallowPress()) return;
222
296
  const node = rowRefsMap.current.get(messageId);
@@ -278,8 +352,12 @@ export const ChatListLegend = /*#__PURE__*/memo(({
278
352
  if ((isLastMessage && conversationFlow?.havingBotMessage === false || isLastIncoming) && isBotConversation) {
279
353
  flowInputButtonsNodes = getFlowInputButtonsNodes(conversationFlow?.flowCurrentStep);
280
354
  }
355
+
356
+ // The first unread row always carries its time label, under the
357
+ // divider.
358
+ const isUnreadAnchor = messageId === unreadAnchorRowId;
281
359
  return /*#__PURE__*/_jsxs(_Fragment, {
282
- children: [(dayStart || timeBreak) && /*#__PURE__*/_jsx(LegendChatDay, {
360
+ children: [isUnreadAnchor && /*#__PURE__*/_jsx(LegendChatUnreadDivider, {}), (isUnreadAnchor || dayStart || timeBreak) && /*#__PURE__*/_jsx(LegendChatDay, {
283
361
  createdAt: createdAt
284
362
  }), /*#__PURE__*/_jsx(KContainer.View, {
285
363
  ref: node => {
@@ -323,7 +401,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
323
401
  })
324
402
  });
325
403
  }
326
- }, [currentUserId, lastMessageId, messageDataMap, isGroupConversation, isBotConversation, onMediaPress, onPressUrl, onLongPress, handleMessageLongPress, customMessageItemFactory, onResetFlow, onRunFlow, conversationFlow?.flowCurrentStep, conversationFlow?.havingBotMessage, retryMessage, highlightedId, revealedMessageId, handleMessagePress]);
404
+ }, [currentUserId, lastMessageId, messageDataMap, isGroupConversation, isBotConversation, onMediaPress, onPressUrl, onLongPress, handleMessageLongPress, customMessageItemFactory, onResetFlow, onRunFlow, conversationFlow?.flowCurrentStep, conversationFlow?.havingBotMessage, retryMessage, highlightedId, revealedMessageId, handleMessagePress, unreadAnchorRowId]);
327
405
 
328
406
  // `maintainVisibleContentPosition` anchors a prepend to whatever native
329
407
  // view sits at the top. Default `drawDistance` (250px) doesn't survive a
@@ -359,6 +437,9 @@ export const ChatListLegend = /*#__PURE__*/memo(({
359
437
  // Both separators add chrome above the row that this function does not
360
438
  // account for, and a resolved size is never re-measured.
361
439
  if (messageData?.dayStart || messageData?.timeBreak) return undefined;
440
+ // Same for the unread divider. A late anchor changes this function's
441
+ // identity, which makes LegendList re-measure the row.
442
+ if (messageId === unreadAnchorRowId) return undefined;
362
443
 
363
444
  // Incoming rows in a group chat carry an avatar column and a sender
364
445
  // name whose height this function cannot predict — measure them.
@@ -401,7 +482,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
401
482
  return undefined;
402
483
  }
403
484
  return candidateSize;
404
- }, [messageDataMap, customMessageItemFactory, currentUserId, isGroupConversation, lastMessageId, isBotConversation, conversationFlow?.flowCurrentStep, windowWidth]);
485
+ }, [messageDataMap, customMessageItemFactory, currentUserId, isGroupConversation, lastMessageId, isBotConversation, conversationFlow?.flowCurrentStep, windowWidth, unreadAnchorRowId]);
405
486
 
406
487
  // LegendList only re-renders an item when [itemKey, item, extraData]
407
488
  // changes. Cluster position depends on a message's NEIGHBOURS, which can
@@ -412,8 +493,9 @@ export const ChatListLegend = /*#__PURE__*/memo(({
412
493
  flowStepId: conversationFlow?.flowCurrentStep?.id ?? '',
413
494
  lastMessageId,
414
495
  highlightedId,
415
- revealedMessageId
416
- }), [messageDataMap, conversationFlow?.flowCurrentStep?.id, lastMessageId, highlightedId, revealedMessageId]);
496
+ revealedMessageId,
497
+ unreadAnchorRowId
498
+ }), [messageDataMap, conversationFlow?.flowCurrentStep?.id, lastMessageId, highlightedId, revealedMessageId, unreadAnchorRowId]);
417
499
  const handleStartReached = useCallback(() => {
418
500
  // Both thresholds are checked continuously, including at mount before
419
501
  // any gesture — `hasUserScrolledRef` is what keeps that from firing a
@@ -432,8 +514,10 @@ export const ChatListLegend = /*#__PURE__*/memo(({
432
514
  }, [hasMoreNew, onLoadMoreNew]);
433
515
  const handleScrollBeginDrag = useCallback(() => {
434
516
  hasUserScrolledRef.current = true;
517
+ // The user has taken over: whatever is on screen now is real.
518
+ markPositionSettled();
435
519
  onDismissAreaScrollBeginDrag?.();
436
- }, [onDismissAreaScrollBeginDrag]);
520
+ }, [onDismissAreaScrollBeginDrag, markPositionSettled]);
437
521
  const handleScroll = useCallback(e => {
438
522
  // The keyboard-following loop re-pins to the end on every frame, so
439
523
  // the list is at the bottom for the whole transition by construction.
@@ -461,7 +545,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
461
545
  // here is smaller than it (55px measured) while still being enough to
462
546
  // leave the newest message behind the composer.
463
547
  const distanceFromEnd = contentSize.height - contentOffset.y - layoutMeasurement.height;
464
- if (grew && distanceFromEnd > 1 && Date.now() < anchorToEndUntilRef.current) {
548
+ if (grew && distanceFromEnd > 1 && !jumpInFlightRef.current && Date.now() < anchorToEndUntilRef.current) {
465
549
  scrollMessageToEnd({
466
550
  animated: true,
467
551
  closeKeyboard: false
@@ -473,15 +557,18 @@ export const ChatListLegend = /*#__PURE__*/memo(({
473
557
  clearTimeout(scrollDebounceRef.current);
474
558
  }
475
559
  scrollDebounceRef.current = setTimeout(() => {
476
- if (isAtBottomRef.current !== isAtBottom) {
560
+ const wasAtBottom = isAtBottomRef.current;
561
+ if (wasAtBottom !== isAtBottom) {
477
562
  isAtBottomRef.current = isAtBottom;
478
563
  buttonOpacity.value = withTiming(isAtBottom ? 0 : 1, BUTTON_FADE_CONFIG);
479
564
  }
480
- if (isAtBottom) {
481
- ChatMessageAPI.markConversationAsRead(conversationId || '');
482
- }
565
+ // Edge-triggered: each call is a server round-trip since rc43.
566
+ if (isAtBottom && !wasAtBottom) requestMarkRead('reached-bottom');
567
+ // Covers slow scrolling while the anchor row stays viewable (no
568
+ // viewability change event). Cheap unless that row is viewable.
569
+ checkAnchorSeen();
483
570
  }, 50);
484
- }, [buttonOpacity, conversationId, scrollMessageToEnd]);
571
+ }, [buttonOpacity, scrollMessageToEnd, requestMarkRead, checkAnchorSeen]);
485
572
  const handleScrollToBottom = useCallback(() => {
486
573
  if (hasMoreNew) {
487
574
  onLoadMoreOld?.(false);
@@ -499,7 +586,8 @@ export const ChatListLegend = /*#__PURE__*/memo(({
499
586
  buttonOpacity.value = withTiming(0, BUTTON_FADE_CONFIG);
500
587
  isAtBottomRef.current = true;
501
588
  setShowBadge(false);
502
- }, [hasMoreNew, onLoadMoreOld, scrollMessageToEnd, buttonOpacity]);
589
+ requestMarkRead('fab');
590
+ }, [hasMoreNew, onLoadMoreOld, scrollMessageToEnd, buttonOpacity, requestMarkRead]);
503
591
 
504
592
  // `paddingBottom` here replaces the one `styles.content` sets via
505
593
  // `paddingVertical`, so the base spacing has to be added back or the last
@@ -691,9 +779,26 @@ export const ChatListLegend = /*#__PURE__*/memo(({
691
779
  // sent or received). Skipped while prepending old history or scrolled
692
780
  // away from the bottom. `moreOldLoading` is read via ref, not a
693
781
  // dependency, so its own start/finish toggle doesn't re-run this.
782
+ const prevLoadingRef = useRef(!!isLoading);
694
783
  useEffect(() => {
784
+ const wasLoading = prevLoadingRef.current;
785
+ prevLoadingRef.current = !!isLoading;
786
+ // Keep the previous id through the spinner.
787
+ if (isLoading) return;
695
788
  const previousLastMessageId = previousLastMessageIdRef.current;
696
789
  previousLastMessageIdRef.current = lastMessageId;
790
+ if (previousLastMessageId === lastMessageId) return;
791
+ // An id change landing with the spinner ending is a window replace
792
+ // (searchMessages / initial fetch), not a new message. Re-aiming at the
793
+ // end here would yank a jump back to the bottom mid-scroll.
794
+ if (wasLoading) return;
795
+
796
+ // Outside `shouldFire`, so it also counts during an old-history prepend.
797
+ // Not for the first id: that's whatever window the list mounted with.
798
+ const last = messagesRef.current[messagesRef.current.length - 1];
799
+ if (previousLastMessageId !== null && last && last.sendID !== currentUserId) {
800
+ requestMarkRead('incoming');
801
+ }
697
802
 
698
803
  // null → a real id is the initial fetch landing (initialScrollAtEnd +
699
804
  // handleListLoad's job), not a new message; a real id → a different
@@ -705,54 +810,144 @@ export const ChatListLegend = /*#__PURE__*/memo(({
705
810
  animated: true,
706
811
  closeKeyboard: false
707
812
  });
708
- }, [lastMessageId, scrollMessageToEnd]);
813
+ }, [lastMessageId, isLoading, scrollMessageToEnd, currentUserId, requestMarkRead]);
814
+
815
+ // A divider appearing late grows the content under a list resting at the
816
+ // end, pushing the last message behind the composer. Re-arm the existing
817
+ // grow → re-aim path in handleScroll; no new scroll call.
818
+ const prevUnreadRowIdRef = useRef(null);
819
+ useEffect(() => {
820
+ const prev = prevUnreadRowIdRef.current;
821
+ prevUnreadRowIdRef.current = unreadAnchorRowId;
822
+ // Only for a list genuinely resting at the true end — never under a
823
+ // jump (a deeplink window lands at its end before scrolling away).
824
+ if (!prev && unreadAnchorRowId && isAtBottomRef.current && !jumpInFlightRef.current && !hasMoreNew && listLoadedRef.current) {
825
+ anchorToEndUntilRef.current = Date.now() + NEW_MESSAGE_ANCHOR_MS;
826
+ }
827
+ }, [unreadAnchorRowId, hasMoreNew]);
828
+
829
+ // The list unmounts under the spinner; `handleListLoad` handles the
830
+ // remount.
831
+ useEffect(() => {
832
+ if (isLoading) listLoadedRef.current = false;
833
+ }, [isLoading]);
709
834
  const handleListLoad = useCallback(() => {
710
- if (hasCorrectedInitialPaddingRef.current) return;
835
+ // Set on every list mount, before the one-shot below.
836
+ listLoadedRef.current = true;
837
+ if (hasCorrectedInitialPaddingRef.current) {
838
+ // A remount after a reload. One that isn't a jump (FAB on a
839
+ // `hasMoreNew` window, a failed search) lands at the end via
840
+ // `initialScrollAtEnd`; a jump owns its own landing.
841
+ requestAnimationFrame(markPositionSettled);
842
+ if (!jumpInFlightRef.current) {
843
+ isAtBottomRef.current = true;
844
+ buttonOpacity.value = withTiming(0, BUTTON_FADE_CONFIG);
845
+ requestMarkRead('window-reload');
846
+ }
847
+ return;
848
+ }
711
849
  hasCorrectedInitialPaddingRef.current = true;
712
850
  perfMark('history_list_loaded');
713
851
  scrollMessageToEnd({
714
852
  animated: false,
715
853
  closeKeyboard: false
716
- });
717
- }, [scrollMessageToEnd]);
854
+ }).finally(() => requestAnimationFrame(markPositionSettled));
855
+ requestMarkRead('list-load');
856
+ }, [scrollMessageToEnd, markPositionSettled, requestMarkRead, buttonOpacity]);
718
857
  useEffect(() => {
719
858
  const bottomSubscription = DeviceEventEmitter.addListener(ChatEvent.ScrollToBottom, handleScrollToBottom);
720
859
  const subscription = DeviceEventEmitter.addListener(ChatEvent.ScrollToMessage, ({
721
- clientMessageId
860
+ clientMessageId,
861
+ highlight = true,
862
+ viewPosition = 0.5,
863
+ viewOffset,
864
+ exitOnUnavailable,
865
+ reemitAfterSearch,
866
+ fromSearch
722
867
  }) => {
723
- const index = messagesRef.current.findIndex(m => m.clientMsgID === clientMessageId);
724
- if (index >= 0) {
725
- try {
726
- listRef.current?.scrollToIndex({
727
- index,
728
- animated: true,
729
- viewPosition: 0.5
730
- }).finally(() => {
731
- if (highlightTimerRef.current) clearTimeout(highlightTimerRef.current);
732
- setHighlightedId(clientMessageId);
733
- highlightTimerRef.current = setTimeout(() => setHighlightedId(null), 5000);
734
- });
735
- } catch {
736
- // scrollToIndex throws if item not rendered yet — force refetch messages
737
- searchMessages({
738
- applicationType,
739
- conversationId,
740
- startClientMsgId: clientMessageId
741
- });
868
+ scrollEventSeqRef.current += 1;
869
+ // Not in the window: load one around the target.
870
+ const search = () => {
871
+ // Already the post-search emit: don't search again (loop guard).
872
+ if (fromSearch) {
873
+ setJumpInFlight(false);
874
+ return;
742
875
  }
876
+ // The window replace is not "at bottom": without this the
877
+ // lastMessageId effect and the grow re-aim yank the jump back to
878
+ // the end.
879
+ isAtBottomRef.current = false;
880
+ // Kept in step with the ref: the scroll handler only fades the
881
+ // button on a change, and it would see none from here on.
882
+ buttonOpacity.value = withTiming(1, BUTTON_FADE_CONFIG);
883
+ anchorToEndUntilRef.current = 0;
884
+ setJumpInFlight(true);
885
+ const seq = scrollEventSeqRef.current;
886
+ searchMessages({
887
+ applicationType,
888
+ conversationId,
889
+ startClientMsgId: clientMessageId,
890
+ scrollOptions: {
891
+ highlight,
892
+ viewPosition,
893
+ viewOffset,
894
+ exitOnUnavailable,
895
+ reemitAfterSearch
896
+ }
897
+ }).finally(() => {
898
+ // Finished without re-emitting (search failed): nothing will
899
+ // land, so release the flag now rather than after the timeout.
900
+ // With `reemitAfterSearch: false` the caller owns the landing.
901
+ if (reemitAfterSearch !== false && scrollEventSeqRef.current === seq) {
902
+ setJumpInFlight(false);
903
+ }
904
+ });
905
+ };
906
+
907
+ // Same key as `keyExtractor`, so a server-id-only row is found too.
908
+ const index = messagesRef.current.findIndex(m => (m.clientMsgID || m.serverMsgID) === clientMessageId);
909
+ if (index < 0) {
910
+ search();
743
911
  return;
744
912
  }
745
- searchMessages({
746
- applicationType,
747
- conversationId,
748
- startClientMsgId: clientMessageId
749
- });
913
+ try {
914
+ setJumpInFlight(true);
915
+ // A pending re-aim at the end would pull the jump back down.
916
+ anchorToEndUntilRef.current = 0;
917
+ const scrollToTarget = () => listRef.current?.scrollToIndex({
918
+ index,
919
+ animated: true,
920
+ viewPosition,
921
+ viewOffset
922
+ }) ?? Promise.resolve();
923
+ scrollToTarget()
924
+ // An exact landing (`viewOffset`, the unread jump): the first
925
+ // pass aims with estimated sizes for the rows above, which
926
+ // undershoots by their error (measured ~250dp over ~20 rows)
927
+ // and MVCP then holds that spot. Re-aim once they're measured.
928
+ .then(() => viewOffset == null ? undefined : new Promise(resolve => requestAnimationFrame(() => resolve())).then(scrollToTarget)).finally(() => {
929
+ setJumpInFlight(false);
930
+ markPositionSettled();
931
+ if (!highlight) return;
932
+ if (highlightTimerRef.current) clearTimeout(highlightTimerRef.current);
933
+ setHighlightedId(clientMessageId);
934
+ highlightTimerRef.current = setTimeout(() => setHighlightedId(null), 5000);
935
+ });
936
+ } catch {
937
+ // scrollToIndex throws if item not rendered yet — force refetch messages
938
+ search();
939
+ }
750
940
  });
751
941
  return () => {
752
942
  bottomSubscription.remove();
753
943
  subscription.remove();
754
944
  };
755
- }, [applicationType, searchMessages, conversationId, handleScrollToBottom, listRef]);
945
+ }, [applicationType, searchMessages, conversationId, handleScrollToBottom, listRef, setJumpInFlight, markPositionSettled, buttonOpacity]);
946
+ useEffect(() => () => {
947
+ if (jumpInFlightTimerRef.current) {
948
+ clearTimeout(jumpInFlightTimerRef.current);
949
+ }
950
+ }, []);
756
951
  if (isLoading) {
757
952
  return /*#__PURE__*/_jsx(KContainer.View, {
758
953
  flex: true,
@@ -768,10 +963,10 @@ export const ChatListLegend = /*#__PURE__*/memo(({
768
963
  flex: true,
769
964
  background: KColors.white,
770
965
  style: styles.container,
771
- children: [handleRenderConversationViewHeader(), /*#__PURE__*/_jsx(KContainer.View, {
966
+ children: [handleRenderConversationViewHeader(), /*#__PURE__*/_jsxs(KContainer.View, {
772
967
  flex: true,
773
968
  ...dismissAreaTouchProps,
774
- children: /*#__PURE__*/_jsx(KeyboardAwareLegendList, {
969
+ children: [/*#__PURE__*/_jsx(KeyboardAwareLegendList, {
775
970
  ref: listRef,
776
971
  data: messages,
777
972
  renderItem: renderItem
@@ -824,6 +1019,8 @@ export const ChatListLegend = /*#__PURE__*/memo(({
824
1019
  onScroll: handleScroll,
825
1020
  onScrollBeginDrag: handleScrollBeginDrag,
826
1021
  onLoad: handleListLoad,
1022
+ onViewableItemsChanged: handleViewableItemsChanged,
1023
+ viewabilityConfig: viewabilityConfig,
827
1024
  contentContainerStyle: contentContainerStyle,
828
1025
  scrollIndicatorInsets: {
829
1026
  right: 1
@@ -843,7 +1040,10 @@ export const ChatListLegend = /*#__PURE__*/memo(({
843
1040
  onEndReached: handleEndReached,
844
1041
  onEndReachedThreshold: 0.2,
845
1042
  initialScrollAtEnd: true
846
- })
1043
+ }), /*#__PURE__*/_jsx(LegendChatUnreadButton, {
1044
+ visible: isPillVisible,
1045
+ onPress: onPressUnreadPill
1046
+ })]
847
1047
  }), /*#__PURE__*/_jsx(Animated.View, {
848
1048
  style: [styles.scrollToBottomButton, animatedButtonStyle],
849
1049
  children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
@@ -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","ChatTypingIndicator","useGuardedPress","useDismissKeyboardFirst","useTimelinePressGuard","perfMark","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","onMediaPressProp","onPressUrl","onPressUrlProp","onLongPress","listRef","freeze","scrollMessageToEnd","keyboardOffset","isLoading","renderConversationViewHeader","dismissAreaTouchProps","isComposerPanelOpen","onDismissAreaScrollBeginDrag","currentUserId","s","user","userID","windowWidth","width","isBotConversation","conversationFlow","conversation","isGroupConversation","peerType","Group","messageDataMap","shouldSwallowPress","retryMessage","retryMessageRaw","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","handleRenderConversationViewHeader","View","style","styles","header","children","renderItem","item","index","isOutgoing","sendID","isLastMessage","isLastIncoming","messageData","dayStart","timeBreak","createdAt","showSenderGutter","showName","showAvatar","flowInputButtonsNodes","havingBotMessage","flowCurrentStep","ref","set","delete","messageRowRight","messageRowLeft","marginBottom","collapsable","createdAtTime","onRetry","onPress","isHighlighted","isTimeRevealed","nodeData","error","__DEV__","console","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","contentNotHittable","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","keyboardShouldPersistTaps","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","left","zIndex","paddingVertical","flexGrow","bottom","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","resolveImageDisplayDims","ChatImageDimens","CHAT_IMAGE_VIEW_SOURCE","ChatTypingIndicator","useGuardedPress","useDismissKeyboardFirst","useTimelinePressGuard","perfMark","useMarkConversationRead","createUnreadMarkReadGate","useUnreadIndicatorInList","LegendChatUnreadDivider","LegendChatUnreadButton","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","JUMP_IN_FLIGHT_TIMEOUT_MS","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","onMediaPressProp","onPressUrl","onPressUrlProp","onLongPress","listRef","freeze","scrollMessageToEnd","keyboardOffset","isLoading","renderConversationViewHeader","dismissAreaTouchProps","isComposerPanelOpen","onDismissAreaScrollBeginDrag","unreadToken","unreadTokenRef","deeplinkTargetId","currentUserId","s","user","userID","windowWidth","width","isBotConversation","conversationFlow","conversation","isGroupConversation","peerType","Group","messageDataMap","shouldSwallowPress","retryMessage","retryMessageRaw","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","listLoadedRef","jumpInFlightRef","scrollEventSeqRef","jumpInFlightTimerRef","setJumpInFlight","inFlight","clearTimeout","setTimeout","markReadGate","requestMarkRead","flushMarkRead","gate","unreadAnchorRowId","isPillVisible","viewabilityConfig","handleViewableItemsChanged","checkAnchorSeen","markPositionSettled","jumpToFirstUnread","onPressUnreadPill","handleMessageLongPress","messageId","message","node","get","measureInWindow","x","y","groupPosition","onRunFlow","payload","onResetFlow","handleMessagePress","prev","handleRenderConversationViewHeader","View","style","styles","header","children","renderItem","item","index","isOutgoing","sendID","isLastMessage","isLastIncoming","messageData","dayStart","timeBreak","createdAt","showSenderGutter","showName","showAvatar","flowInputButtonsNodes","havingBotMessage","flowCurrentStep","isUnreadAnchor","ref","set","delete","messageRowRight","messageRowLeft","marginBottom","collapsable","createdAtTime","onRetry","onPress","isHighlighted","isTimeRevealed","nodeData","error","__DEV__","console","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","wasAtBottom","handleScrollToBottom","contentContainerStyle","content","paddingBottom","contentNotHittable","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","prevLoadingRef","wasLoading","previousLastMessageId","shouldFire","prevUnreadRowIdRef","handleListLoad","finally","bottomSubscription","ScrollToBottom","subscription","ScrollToMessage","clientMessageId","highlight","viewPosition","viewOffset","exitOnUnavailable","reemitAfterSearch","fromSearch","search","seq","startClientMsgId","scrollOptions","findIndex","m","scrollToTarget","scrollToIndex","Promise","resolve","then","flex","center","background","white","color","primary","normal","size","container","estimatedItemSize","keyExtractor","String","recycleItems","extraData","alignItemsAtEnd","alwaysRender","top","maintainScrollAtEnd","maintainVisibleContentPosition","drawDistance","automaticallyAdjustContentInsets","keyboardLiftBehavior","keyboardShouldPersistTaps","scrollEventThrottle","onScroll","onScrollBeginDrag","onLoad","onViewableItemsChanged","scrollIndicatorInsets","right","ListHeaderComponent","onStartReached","onStartReachedThreshold","onEndReached","onEndReachedThreshold","initialScrollAtEnd","visible","scrollToBottomButton","Touchable","activeOpacity","buttonInner","accessible","accessibilityLabel","accessibilityRole","VectorIcons","name","black","badge","displayName","create","left","zIndex","paddingVertical","flexGrow","bottom","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":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ import { FIRST_UNREAD_TIMEOUT_MS } from "../../../services/message.js";
4
+ import { useUnreadIndicatorStore } from "../../../store/unreadIndicator.js";
5
+ import { getUnreadGateDeadline, isUnreadGateClosed } from "../../../utils/unreadIndicatorState.js";
6
+ /**
7
+ * Holds mark-read back until this screen's first-unread lookup has answered,
8
+ * so the thread is never marked read before the anchor is captured. Scoped to
9
+ * the token in `tokenRef`: another screen's session never opens or closes it.
10
+ */
11
+ export const createUnreadMarkReadGate = tokenRef => ({
12
+ isClosed: () => isUnreadGateClosed(useUnreadIndicatorStore.getState(), tokenRef.current, Date.now(), FIRST_UNREAD_TIMEOUT_MS),
13
+ openDeadline: () => {
14
+ const s = useUnreadIndicatorStore.getState();
15
+ if (tokenRef.current == null || s.token !== tokenRef.current) return null;
16
+ return s.pending ? getUnreadGateDeadline(s, FIRST_UNREAD_TIMEOUT_MS) : null;
17
+ },
18
+ subscribe: ({
19
+ onOpen,
20
+ onClear
21
+ }) => useUnreadIndicatorStore.subscribe((next, prev) => {
22
+ if (tokenRef.current == null || next.token !== tokenRef.current) return;
23
+ // A session that just began (token change) is not an open.
24
+ if (prev.token !== next.token) return;
25
+ // `clear` is never a catch-up: it only runs the 'leave' flush.
26
+ if (prev.pending && !next.pending && next.settledBy === 'resolve') {
27
+ onOpen();
28
+ }
29
+ if (prev.settledBy !== 'clear' && next.settledBy === 'clear') onClear();
30
+ })
31
+ });
32
+ //# sourceMappingURL=createUnreadMarkReadGate.js.map