@ethora/chat-component-rn 26.7.9 → 26.7.10

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 (65) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README.md +10 -0
  3. package/lib/commonjs/components/MainComponents/ChatRoom.js +63 -15
  4. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  5. package/lib/commonjs/context/xmppProvider.js +58 -14
  6. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  7. package/lib/commonjs/helpers/getServerReadTimestamp.js +66 -3
  8. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -1
  9. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +51 -9
  10. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  11. package/lib/commonjs/helpers/keyboardLayout.js +12 -2
  12. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  13. package/lib/commonjs/helpers/msgSortableMs.js +37 -0
  14. package/lib/commonjs/helpers/msgSortableMs.js.map +1 -0
  15. package/lib/commonjs/hooks/useChatRoomFocus.js +31 -7
  16. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  17. package/lib/commonjs/hooks/useLogout.js +8 -0
  18. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  19. package/lib/commonjs/roomStore/roomsSlice.js +66 -32
  20. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  21. package/lib/module/components/MainComponents/ChatRoom.js +65 -17
  22. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  23. package/lib/module/context/xmppProvider.js +59 -15
  24. package/lib/module/context/xmppProvider.js.map +1 -1
  25. package/lib/module/helpers/getServerReadTimestamp.js +63 -2
  26. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -1
  27. package/lib/module/helpers/insertMessageWithDelimiter.js +52 -9
  28. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  29. package/lib/module/helpers/keyboardLayout.js +12 -2
  30. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  31. package/lib/module/helpers/msgSortableMs.js +32 -0
  32. package/lib/module/helpers/msgSortableMs.js.map +1 -0
  33. package/lib/module/hooks/useChatRoomFocus.js +33 -9
  34. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  35. package/lib/module/hooks/useLogout.js +8 -0
  36. package/lib/module/hooks/useLogout.js.map +1 -1
  37. package/lib/module/roomStore/roomsSlice.js +53 -27
  38. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  39. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  40. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  41. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +40 -1
  42. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -1
  43. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts +1 -1
  44. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  45. package/lib/typescript/helpers/keyboardLayout.d.ts +5 -1
  46. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  47. package/lib/typescript/helpers/msgSortableMs.d.ts +2 -0
  48. package/lib/typescript/helpers/msgSortableMs.d.ts.map +1 -0
  49. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  50. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  51. package/lib/typescript/roomStore/roomsSlice.d.ts +29 -2
  52. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  53. package/lib/typescript/types/types.d.ts +1 -0
  54. package/lib/typescript/types/types.d.ts.map +1 -1
  55. package/package.json +1 -1
  56. package/src/components/MainComponents/ChatRoom.tsx +68 -17
  57. package/src/context/xmppProvider.tsx +87 -18
  58. package/src/helpers/getServerReadTimestamp.ts +79 -2
  59. package/src/helpers/insertMessageWithDelimiter.ts +55 -19
  60. package/src/helpers/keyboardLayout.ts +23 -2
  61. package/src/helpers/msgSortableMs.ts +25 -0
  62. package/src/hooks/useChatRoomFocus.ts +39 -8
  63. package/src/hooks/useLogout.tsx +14 -0
  64. package/src/roomStore/roomsSlice.ts +74 -22
  65. package/src/types/types.ts +14 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_toolkit","require","_insertMessageWithDelimiter","RUNTIME_MESSAGE_LIMIT","exports","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","enforceMessageCap","length","shift","mergeHistoryIntoCache","fetched","ex","fe","realExisting","m","pending","realFetched","fetchedKeys","byMs","msgSortableMs","capTail","arr","slice","existingIds","overlaps","some","sort","byId","prev","isEdited","merged","from","values","initialState","rooms","activeRoomJID","visibleRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","privateStoreMarkers","isValidRoomJid","jid","includes","addRoomViaApi","createAsyncThunk","room","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","state","action","roomData","payload","lastViewed","serverMarker","lastViewedTimestamp","msgs","newest","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","roomJID","capped","deleteRoomMessage","idx","findIndex","splice","isDeleted","setEditAction","editRoomMessage","addRoomMessage","start","roomMessages","incomingCallLog","existingCallIdx","msg","lengthBefore","unshift","lastViewedValue","insertMessageWithDelimiter","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","Object","keys","ts","Number","isFinite","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","reactions","setLogoutState","setActiveMessage","activeMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","Math","max","unreadCapped","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","createSlice","name","exec","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","count","_default","default","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_toolkit","require","_insertMessageWithDelimiter","_msgSortableMs","RUNTIME_MESSAGE_LIMIT","exports","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","enforceMessageCap","length","shift","mergeHistoryIntoCache","fetched","ex","fe","realExisting","m","pending","realFetched","fetchedKeys","byMs","msgSortableMs","capTail","arr","slice","existingIds","overlaps","some","sort","byId","prev","isEdited","merged","from","values","initialState","rooms","activeRoomJID","visibleRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","privateStoreMarkers","readBoundaries","isValidRoomJid","jid","includes","addRoomViaApi","createAsyncThunk","room","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","state","action","roomData","payload","lastViewed","serverMarker","lastViewedTimestamp","msgs","newest","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","roomJID","capped","deleteRoomMessage","idx","findIndex","splice","isDeleted","setEditAction","editRoomMessage","addRoomMessage","start","roomMessages","incomingCallLog","existingCallIdx","msg","lengthBefore","unshift","lastViewedValue","insertMessageWithDelimiter","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","Object","keys","ts","Number","isFinite","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setReadBoundary","clearReadBoundary","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","reactions","setLogoutState","setActiveMessage","activeMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","Math","max","unreadCapped","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","createSlice","name","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","count","_default","default","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import { ChatContainer, NonRoomChat } from '../styled/StyledComponents';
7
7
  import { useDispatch } from 'react-redux';
8
8
  import MessageList from './MessageList';
9
9
  import SendInput from '../styled/SendInput';
10
- import { clearVisibleRoom, deleteRoomMessage, setEditAction, setLastViewedTimestamp, setVisibleRoom } from '../../roomStore/roomsSlice';
10
+ import { clearReadBoundary, clearVisibleRoom, deleteRoomMessage, setEditAction, setLastViewedTimestamp, setReadBoundary, setVisibleRoom } from '../../roomStore/roomsSlice';
11
11
  import Loader from '../styled/Loader';
12
12
  import { useXmppClient } from '../../context/xmppProvider';
13
13
  import ChatHeader from './ChatHeader';
@@ -30,7 +30,7 @@ import { AppState, Keyboard, Platform, View } from 'react-native';
30
30
  import { KeyboardAvoidingView, KeyboardStickyView } from 'react-native-keyboard-controller';
31
31
  import useComposing from '../../hooks/useComposing';
32
32
  import { store } from '../../roomStore';
33
- import { getServerReadTimestamp } from '../../helpers/getServerReadTimestamp';
33
+ import { getFlushBoundaryTs, getReadMarkerTimestamp } from '../../helpers/getServerReadTimestamp';
34
34
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
35
35
  import { getInputDockPaddingBottom, getKeyboardVerticalOffset } from '../../helpers/keyboardLayout';
36
36
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -173,30 +173,64 @@ const ChatRoom = /*#__PURE__*/React.memo(({
173
173
  // Tracks what the user actually saw: `null` while they're at the
174
174
  // bottom (safe to mark everything read), or the timestamp of the
175
175
  // newest message visible when they scrolled away from it. Reported
176
- // by MessageList via onReadBoundaryChange. Without this, leaving a
177
- // room (or backgrounding) while scrolled up stamped `now()` as read
178
- // and silently discarded genuinely-unread messages. Customer-
179
- // reported #33.
180
- const readBoundaryRef = useRef(null);
176
+ // by MessageList via onReadBoundaryChange, and mirrored into redux
177
+ // (`rooms.readBoundaries`) rather than kept only in a local ref - it
178
+ // is the single source of truth every "leaving this room" path
179
+ // consults (xmppProvider's AppState background handler, its
180
+ // `isVisible=false` handler, the live `advance()` effect, and
181
+ // `useChatRoomFocus`'s `leaveRoom`), not just this component's own
182
+ // unmount cleanup below. Without a boundary, leaving a room (or
183
+ // backgrounding) while scrolled up stamped `now()` (bug #33) or,
184
+ // after the #38 fix, the newest acked message regardless of scroll
185
+ // position (bug #42) - both silently discard genuinely-unread
186
+ // messages.
187
+ //
188
+ // MessageList reports the boundary from onScroll, which fires on
189
+ // every frame of a drag (the "back at the bottom" branch re-reports
190
+ // `null` each time). Mirror only actual CHANGES into redux: an
191
+ // unconditional dispatch per scroll frame would run the whole
192
+ // middleware chain and, worse, reset persistenceMiddleware's 200 ms
193
+ // debounce on every frame, starving the persisted write for as long
194
+ // as the user keeps scrolling.
195
+ const lastBoundarySentRef = useRef(null);
181
196
  const handleReadBoundaryChange = useCallback(boundaryTs => {
182
- readBoundaryRef.current = boundaryTs;
183
- }, []);
197
+ if (!activeRoomJID) {
198
+ return;
199
+ }
200
+ const next = boundaryTs && boundaryTs > 0 ? boundaryTs : null;
201
+ if (lastBoundarySentRef.current === next) {
202
+ return;
203
+ }
204
+ lastBoundarySentRef.current = next;
205
+ dispatch(setReadBoundary({
206
+ jid: activeRoomJID,
207
+ ts: next
208
+ }));
209
+ }, [activeRoomJID, dispatch]);
184
210
  useEffect(() => {
185
211
  if (!activeRoomJID) {
186
212
  return;
187
213
  }
188
- readBoundaryRef.current = null;
214
+ lastBoundarySentRef.current = null;
215
+ dispatch(setReadBoundary({
216
+ jid: activeRoomJID,
217
+ ts: null
218
+ }));
189
219
  dispatch(setVisibleRoom({
190
220
  roomJID: activeRoomJID
191
221
  }));
192
222
  setIsLoadingMore(false);
193
223
  return () => {
194
- const rooms = store.getState().rooms?.rooms;
195
- const heapState = store.getState().roomHeapSlice;
196
- // Fall back to the newest server-acked message, never the device
224
+ const state = store.getState();
225
+ const rooms = state.rooms?.rooms;
226
+ const heapState = state.roomHeapSlice;
227
+ const boundaryTs = state.rooms?.readBoundaries?.[activeRoomJID] ?? null;
228
+ // getReadMarkerTimestamp honours the boundary (the newest message
229
+ // the user actually reached) when one is set, and otherwise falls
230
+ // back to the newest server-acked message - never the device
197
231
  // clock: a fast device clock would write a future marker that the
198
232
  // forward-only private-store merge could never correct (bug #38).
199
- const timestamp = readBoundaryRef.current ?? getServerReadTimestamp(rooms?.[activeRoomJID], heapState);
233
+ const timestamp = getReadMarkerTimestamp(rooms?.[activeRoomJID], heapState, boundaryTs);
200
234
  if (timestamp > 0) {
201
235
  dispatch(setLastViewedTimestamp({
202
236
  chatJID: activeRoomJID,
@@ -211,15 +245,27 @@ const ChatRoom = /*#__PURE__*/React.memo(({
211
245
  // Carry the same boundary to the SERVER marker. Without
212
246
  // this the flush defaults to "everything" for the visible
213
247
  // room, so messages the user never scrolled down to come
214
- // back as read on the next login — the local count was
248
+ // back as read on the next login - the local count was
215
249
  // right but the server overrode it.
216
- visibleRoomTs: readBoundaryRef.current
250
+ // Clamped through the same helper as the local stamp -
251
+ // an unclamped boundary would bypass the newest-acked
252
+ // ceiling on the one path where a bad value is permanent
253
+ // (the private-store merge is forward-only, bug #38).
254
+ visibleRoomTs: getFlushBoundaryTs(rooms?.[activeRoomJID], heapState, boundaryTs)
217
255
  }).catch(() => {});
218
256
  }
219
257
  dispatch(deleteRoomMessage({
220
258
  roomJID: activeRoomJID,
221
259
  messageId: 'delimiter-new'
222
260
  }));
261
+ // The room is genuinely being left (unmount, or activeRoomJID
262
+ // changed to a different room) - release the boundary now that
263
+ // it's been consumed, so a stale value can't leak into the next
264
+ // time this room becomes visible.
265
+ dispatch(clearReadBoundary({
266
+ jid: activeRoomJID
267
+ }));
268
+ lastBoundarySentRef.current = null;
223
269
  setIsLoadingMore(false);
224
270
  };
225
271
  }, [activeRoomJID, dispatch]);
@@ -243,7 +289,9 @@ const ChatRoom = /*#__PURE__*/React.memo(({
243
289
  });
244
290
  const inputDockPaddingBottom = getInputDockPaddingBottom({
245
291
  platform: Platform.OS,
246
- bottomInset: insets.bottom
292
+ bottomInset: insets.bottom,
293
+ configuredPadding: configWithEventHandlers?.inputDockPaddingBottom,
294
+ hostOwnsLayout: !!configWithEventHandlers?.disableKeyboardAvoidingView
247
295
  });
248
296
 
249
297
  // Keyboard avoidance is delegated to react-native-keyboard-controller's
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useEffect","useCallback","useRef","ChatContainer","NonRoomChat","useDispatch","MessageList","SendInput","clearVisibleRoom","deleteRoomMessage","setEditAction","setLastViewedTimestamp","setVisibleRoom","Loader","useXmppClient","ChatHeader","NoMessagesPlaceholder","NewChatModal","EditWrapper","EmptyChatIllustration","getIconColor","getChatBackgroundColor","ChooseChatMessage","useSendMessage","useRoomInitialization","useRoomState","useChatSettingState","isOwnMessage","CustomTypingIndicator","AppState","Keyboard","Platform","View","KeyboardAvoidingView","KeyboardStickyView","useComposing","store","getServerReadTimestamp","useSafeAreaInsets","getInputDockPaddingBottom","getKeyboardVerticalOffset","jsx","_jsx","jsxs","_jsxs","ChatRoom","memo","CustomMessageComponent","CustomInputComponent","CustomScrollableArea","CustomDaySeparator","CustomNewMessageLabel","handleBackClick","eventHandlers","propsEventHandlers","client","dispatch","insets","isLoadingMore","setIsLoadingMore","user","config","storeConfig","configWithEventHandlers","useMemo","roomsList","activeRoomJID","editAction","loading","globalLoading","roomMessages","sendMessage","sendMs","sendMedia","sendMessageMedia","sendEditMessage","isLastMessageFromUserAndProcessing","sendStartComposing","sendEndComposing","stickyInputEnabled","disableKeyboardAvoidingView","keyboardStickyInput","onAppStateChange","nextState","dismiss","subscription","addEventListener","remove","message","data","type","loadMoreMessages","chatJID","max","idOfMessageBefore","historyComplete","lastMsgId","Number","messages","length","id","getHistoryStanza","jid","onCloseEdit","isEdit","clientRef","current","readBoundaryRef","handleReadBoundaryChange","boundaryTs","roomJID","rooms","getState","heapState","roomHeapSlice","timestamp","liveClient","flushLastViewedToPrivateStoreStanza","visibleRoomJID","visibleRoomTs","catch","messageId","Object","keys","children","keyboardVerticalOffset","platform","OS","configuredOffset","bottomInset","bottom","inputDockPaddingBottom","noKeyboardHandling","stickyInput","avoidKeyboard","KeyboardWrapper","keyboardWrapperProps","style","flex","behavior","InputDockTag","inputDockProps","paddingBottom","backgroundColor","borderTopLeftRadius","borderTopRightRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","offset","closed","opened","chatRoomStyles","disableHeader","currentRoom","chatHeaderAdditional","enabled","element","justifyContent","alignItems","color","colors","primary","decoratedMessages","map","msg","idx","showDateLabel","Date","date","toDateString","isLoading","isReply","renderMessage","decorated","isUser","scrollController","scrollToBottom","waitForImagesLoaded","showScrollButton","newMessagesCount","resetNewMessageCounter","typingIndicator","composing","customTypingIndicator","customComponent","usersTyping","composingList","text","isVisible","undefined","CustomMessage","onReadBoundaryChange","onClose","onFocus","onBlur","isMessageProcessing","editMessage","position","styles"],"sourceRoot":"../../../../src","sources":["components/MainComponents/ChatRoom.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","useEffect","useCallback","useRef","ChatContainer","NonRoomChat","useDispatch","MessageList","SendInput","clearReadBoundary","clearVisibleRoom","deleteRoomMessage","setEditAction","setLastViewedTimestamp","setReadBoundary","setVisibleRoom","Loader","useXmppClient","ChatHeader","NoMessagesPlaceholder","NewChatModal","EditWrapper","EmptyChatIllustration","getIconColor","getChatBackgroundColor","ChooseChatMessage","useSendMessage","useRoomInitialization","useRoomState","useChatSettingState","isOwnMessage","CustomTypingIndicator","AppState","Keyboard","Platform","View","KeyboardAvoidingView","KeyboardStickyView","useComposing","store","getFlushBoundaryTs","getReadMarkerTimestamp","useSafeAreaInsets","getInputDockPaddingBottom","getKeyboardVerticalOffset","jsx","_jsx","jsxs","_jsxs","ChatRoom","memo","CustomMessageComponent","CustomInputComponent","CustomScrollableArea","CustomDaySeparator","CustomNewMessageLabel","handleBackClick","eventHandlers","propsEventHandlers","client","dispatch","insets","isLoadingMore","setIsLoadingMore","user","config","storeConfig","configWithEventHandlers","useMemo","roomsList","activeRoomJID","editAction","loading","globalLoading","roomMessages","sendMessage","sendMs","sendMedia","sendMessageMedia","sendEditMessage","isLastMessageFromUserAndProcessing","sendStartComposing","sendEndComposing","stickyInputEnabled","disableKeyboardAvoidingView","keyboardStickyInput","onAppStateChange","nextState","dismiss","subscription","addEventListener","remove","message","data","type","loadMoreMessages","chatJID","max","idOfMessageBefore","historyComplete","lastMsgId","Number","messages","length","id","getHistoryStanza","jid","onCloseEdit","isEdit","clientRef","current","lastBoundarySentRef","handleReadBoundaryChange","boundaryTs","next","ts","roomJID","state","getState","rooms","heapState","roomHeapSlice","readBoundaries","timestamp","liveClient","flushLastViewedToPrivateStoreStanza","visibleRoomJID","visibleRoomTs","catch","messageId","Object","keys","children","keyboardVerticalOffset","platform","OS","configuredOffset","bottomInset","bottom","inputDockPaddingBottom","configuredPadding","hostOwnsLayout","noKeyboardHandling","stickyInput","avoidKeyboard","KeyboardWrapper","keyboardWrapperProps","style","flex","behavior","InputDockTag","inputDockProps","paddingBottom","backgroundColor","borderTopLeftRadius","borderTopRightRadius","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","offset","closed","opened","chatRoomStyles","disableHeader","currentRoom","chatHeaderAdditional","enabled","element","justifyContent","alignItems","color","colors","primary","decoratedMessages","map","msg","idx","showDateLabel","Date","date","toDateString","isLoading","isReply","renderMessage","decorated","isUser","scrollController","scrollToBottom","waitForImagesLoaded","showScrollButton","newMessagesCount","resetNewMessageCounter","typingIndicator","composing","customTypingIndicator","customComponent","usersTyping","composingList","text","isVisible","undefined","CustomMessage","onReadBoundaryChange","onClose","onFocus","onBlur","isMessageProcessing","editMessage","position","styles"],"sourceRoot":"../../../../src","sources":["components/MainComponents/ChatRoom.tsx"],"mappings":"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","ignoreList":[]}
@@ -15,7 +15,7 @@ import { pushSubscriptionService } from '../services/pushSubscriptionService';
15
15
  import { store } from '../roomStore';
16
16
  import { logout, setStoreClient, setConfig } from '../roomStore/chatSettingsSlice';
17
17
  import { setLogoutState, setVisibleRoom, clearVisibleRoom, setLastViewedTimestamp, deleteRoomMessage, setUnreadSyncing } from '../roomStore/roomsSlice';
18
- import { getServerReadTimestamp } from '../helpers/getServerReadTimestamp';
18
+ import { getFlushBoundaryTs, getReadMarkerTimestamp } from '../helpers/getServerReadTimestamp';
19
19
  import { runHistoryPreloadScheduler } from '../helpers/historyPreloadScheduler';
20
20
  import { updateMessagesTillLast } from '../helpers/updateMessagesTillLast';
21
21
  import { secureUserStorage } from '../helpers/secureUserStorage';
@@ -538,7 +538,8 @@ export const XmppProvider = ({
538
538
  // Mark the open room "not visible" while backgrounded so messages
539
539
  // that arrive (or MAM-replay on reconnect) count as unread instead
540
540
  // of being silently treated as read — the "mounted == visible ==
541
- // read" gap. Stamp lastViewed=<newest server-acked message>, not
541
+ // read" gap. Stamp lastViewed=<the read boundary, if the user left
542
+ // scrolled up, else the newest server-acked message>, not
542
543
  // Date.now(), as the read baseline: a device clock running ahead
543
544
  // would otherwise write a future marker that the forward-only
544
545
  // private-store merge can never correct again (bug #38). Then
@@ -547,9 +548,20 @@ export const XmppProvider = ({
547
548
  // here in the provider so consumers using the component as a
548
549
  // package get correct unread without reaching into the chat store
549
550
  // themselves.
551
+ //
552
+ // The read boundary (rooms.readBoundaries) is deliberately left
553
+ // untouched here - MessageList normally stays mounted through a
554
+ // simple background/foreground cycle, so its own scroll-tracking
555
+ // ref (the only thing that could re-derive this value) is still
556
+ // intact, and clearing the redux copy would desync the two. It's
557
+ // only USED here for the one-shot stamp+flush, matching customer
558
+ // #42: leaving (or backgrounding) a room while scrolled up must not
559
+ // mark messages the user never reached as read.
550
560
  visibleBeforeBackground = visibleRoomJID;
561
+ let boundaryTs = null;
551
562
  if (visibleRoomJID) {
552
- const readTs = getServerReadTimestamp(rooms?.[visibleRoomJID], state.roomHeapSlice);
563
+ boundaryTs = state.rooms?.readBoundaries?.[visibleRoomJID] ?? null;
564
+ const readTs = getReadMarkerTimestamp(rooms?.[visibleRoomJID], state.roomHeapSlice, boundaryTs);
553
565
  // Nothing to anchor to yet (no known messages, no prior marker)
554
566
  // - skip the local stamp rather than fall back to the device
555
567
  // clock. The flush below still runs so the visibility clear
@@ -570,9 +582,14 @@ export const XmppProvider = ({
570
582
  store.dispatch(clearVisibleRoom());
571
583
  }
572
584
  // Fire-and-forget — we're going to the background and don't
573
- // care about the resolution path.
585
+ // care about the resolution path. `visibleRoomTs` carries the same
586
+ // boundary to the SERVER marker - without it the flush defaults to
587
+ // "everything" for the visible room, overriding a correct smaller
588
+ // local count.
574
589
  c.flushLastViewedToPrivateStoreStanza(rooms, {
575
- visibleRoomJID
590
+ visibleRoomJID,
591
+ // Clamped through the same helper as the local stamp above.
592
+ visibleRoomTs: visibleRoomJID ? getFlushBoundaryTs(rooms?.[visibleRoomJID], state.roomHeapSlice, boundaryTs) : undefined
576
593
  }).catch(() => {});
577
594
  });
578
595
  return () => sub.remove();
@@ -608,11 +625,19 @@ export const XmppProvider = ({
608
625
  }));
609
626
  }
610
627
  } else {
628
+ // The read boundary (rooms.readBoundaries) is USED for the stamp
629
+ // and flush below but deliberately left in place - a host using
630
+ // `isVisible` keeps <Chat> mounted while hidden, so MessageList's
631
+ // own scroll-tracking ref is still intact and the redux copy must
632
+ // stay in sync with it. Only consumed, never Date.now(): a fast
633
+ // device clock would write a future marker that the forward-only
634
+ // private-store merge could then never correct (bug #38). And
635
+ // never "the newest acked message" unconditionally either - that
636
+ // silently marks messages the user scrolled past and never reached
637
+ // as read (bug #42, a regression of #33).
638
+ const boundaryTs = activeRoomJID ? state.rooms?.readBoundaries?.[activeRoomJID] ?? null : null;
611
639
  if (wasVisible && activeRoomJID) {
612
- // Never Date.now(): a fast device clock would write a future
613
- // marker that the forward-only private-store merge could then
614
- // never correct (bug #38).
615
- const readTs = getServerReadTimestamp(rooms?.[activeRoomJID], state.roomHeapSlice);
640
+ const readTs = getReadMarkerTimestamp(rooms?.[activeRoomJID], state.roomHeapSlice, boundaryTs);
616
641
  if (readTs > 0) {
617
642
  store.dispatch(setLastViewedTimestamp({
618
643
  chatJID: activeRoomJID,
@@ -629,7 +654,11 @@ export const XmppProvider = ({
629
654
  store.dispatch(clearVisibleRoom());
630
655
  if (wasVisible && client?.flushLastViewedToPrivateStoreStanza) {
631
656
  client.flushLastViewedToPrivateStoreStanza(rooms, {
632
- visibleRoomJID: activeRoomJID
657
+ visibleRoomJID: activeRoomJID,
658
+ // Carry the same boundary to the SERVER marker - without it
659
+ // the flush defaults to "everything" for the visible room.
660
+ // Clamped exactly like the local stamp above.
661
+ visibleRoomTs: activeRoomJID ? getFlushBoundaryTs(rooms?.[activeRoomJID], state.roomHeapSlice, boundaryTs) : undefined
633
662
  }).catch(() => {});
634
663
  }
635
664
  }
@@ -656,13 +685,21 @@ export const XmppProvider = ({
656
685
  }
657
686
  lastMessagesRef = room.messages;
658
687
 
659
- // getServerReadTimestamp (not a hand-rolled scan + Date.now()):
688
+ // getReadMarkerTimestamp (not a hand-rolled scan + Date.now()):
660
689
  // it excludes pending/optimistic messages, which carry the DEVICE
661
690
  // send time via `date` until the server echoes them back - a
662
691
  // manual scan without that exclusion could pick up a pending
663
692
  // message's device timestamp here and write a future marker the
664
- // same way a raw Date.now() would (bug #38).
665
- const newest = getServerReadTimestamp(room, s.roomHeapSlice);
693
+ // same way a raw Date.now() would (bug #38). And when the user has
694
+ // scrolled up (a boundary is set for this room), it clamps to that
695
+ // boundary instead of the newest message - without this, every
696
+ // incoming message while scrolled up advanced the marker to
697
+ // "newest" regardless of scroll position, and the later, smaller
698
+ // boundary write on leave was rejected by the forward-only
699
+ // private-store merge, leaving 0 unread even after a restart
700
+ // (customer #42, a regression of #33 reintroduced by #38).
701
+ const boundaryTs = s.rooms?.readBoundaries?.[jid] ?? null;
702
+ const newest = getReadMarkerTimestamp(room, s.roomHeapSlice, boundaryTs);
666
703
  if (!newest || newest <= lastStampedMs) {
667
704
  return;
668
705
  }
@@ -676,8 +713,15 @@ export const XmppProvider = ({
676
713
  }
677
714
  if (client?.flushLastViewedToPrivateStoreStanza) {
678
715
  flushTimer = setTimeout(() => {
679
- client.flushLastViewedToPrivateStoreStanza(store.getState().rooms?.rooms, {
680
- visibleRoomJID: jid
716
+ // Re-read fresh state rather than closing over `boundaryTs`:
717
+ // the user may have scrolled back to the bottom (clearing the
718
+ // boundary) in the 2s between the stamp and this flush, and
719
+ // the flush should reflect that.
720
+ const freshState = store.getState();
721
+ const freshBoundaryTs = freshState.rooms?.readBoundaries?.[jid] ?? null;
722
+ client.flushLastViewedToPrivateStoreStanza(freshState.rooms?.rooms, {
723
+ visibleRoomJID: jid,
724
+ visibleRoomTs: getFlushBoundaryTs(freshState.rooms?.rooms?.[jid], freshState.roomHeapSlice, freshBoundaryTs)
681
725
  }).catch(() => {});
682
726
  }, 2000);
683
727
  }