@ethora/chat-component-rn 26.7.7 → 26.7.9

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 (170) hide show
  1. package/lib/commonjs/components/MainComponents/ChatRoom.js +17 -8
  2. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  3. package/lib/commonjs/components/MainComponents/MediaMessage.js +8 -5
  4. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  6. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
  8. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  9. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +51 -12
  10. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  11. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +12 -1
  12. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  13. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +13 -2
  14. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  15. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +13 -2
  16. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  17. package/lib/commonjs/components/styled/MessageImage.js +3 -1
  18. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  19. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  20. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  21. package/lib/commonjs/components/styled/VideoMessage.js +3 -1
  22. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  23. package/lib/commonjs/context/xmppProvider.js +46 -31
  24. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  25. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  26. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  27. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  28. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  29. package/lib/commonjs/helpers/getServerReadTimestamp.js +125 -0
  30. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  31. package/lib/commonjs/helpers/initXmppRooms.js +9 -7
  32. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  33. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  34. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  35. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  36. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  37. package/lib/commonjs/hooks/useChatRoomFocus.js +17 -8
  38. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  39. package/lib/commonjs/hooks/useChatWrapperInit.js +12 -7
  40. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  41. package/lib/commonjs/networking/stanzaHandlers.js +20 -2
  42. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  43. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +45 -11
  44. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  45. package/lib/commonjs/networking/xmppClient.js +36 -2
  46. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  47. package/lib/commonjs/roomStore/index.js +35 -2
  48. package/lib/commonjs/roomStore/index.js.map +1 -1
  49. package/lib/commonjs/roomStore/persistence.js +200 -11
  50. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  51. package/lib/commonjs/roomStore/roomsSlice.js +83 -6
  52. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  53. package/lib/module/components/MainComponents/ChatRoom.js +17 -8
  54. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  55. package/lib/module/components/MainComponents/MediaMessage.js +9 -6
  56. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  57. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  58. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  59. package/lib/module/components/MainComponents/MessageList.js +2 -1
  60. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  61. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +52 -13
  62. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  63. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +12 -1
  64. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +13 -2
  66. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +13 -2
  68. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/module/components/styled/MessageImage.js +3 -1
  70. package/lib/module/components/styled/MessageImage.js.map +1 -1
  71. package/lib/module/components/styled/UnsupportedType.js +14 -4
  72. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  73. package/lib/module/components/styled/VideoMessage.js +3 -1
  74. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  75. package/lib/module/context/xmppProvider.js +47 -32
  76. package/lib/module/context/xmppProvider.js.map +1 -1
  77. package/lib/module/helpers/createMessageFromXml.js +19 -1
  78. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  79. package/lib/module/helpers/getDisplayFileName.js +73 -0
  80. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  81. package/lib/module/helpers/getServerReadTimestamp.js +120 -0
  82. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  83. package/lib/module/helpers/initXmppRooms.js +9 -7
  84. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  85. package/lib/module/helpers/isOwnMessage.js +70 -0
  86. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  87. package/lib/module/helpers/mimeToExtension.js +6 -13
  88. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  89. package/lib/module/hooks/useChatRoomFocus.js +17 -8
  90. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  91. package/lib/module/hooks/useChatWrapperInit.js +12 -7
  92. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  93. package/lib/module/networking/stanzaHandlers.js +20 -2
  94. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  95. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +45 -11
  96. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  97. package/lib/module/networking/xmppClient.js +36 -2
  98. package/lib/module/networking/xmppClient.js.map +1 -1
  99. package/lib/module/roomStore/index.js +37 -4
  100. package/lib/module/roomStore/index.js.map +1 -1
  101. package/lib/module/roomStore/persistence.js +197 -11
  102. package/lib/module/roomStore/persistence.js.map +1 -1
  103. package/lib/module/roomStore/roomsSlice.js +83 -6
  104. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  105. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  106. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  107. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  108. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  109. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  110. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  111. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  112. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  113. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  114. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  115. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  116. package/lib/typescript/components/styled/MessageImage.d.ts +6 -0
  117. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  118. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  119. package/lib/typescript/components/styled/VideoMessage.d.ts +6 -0
  120. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  121. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  122. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  123. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  124. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  125. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +69 -0
  126. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  127. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  128. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  129. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  130. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  131. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  132. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  133. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  134. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  135. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  136. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +9 -2
  137. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  138. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  139. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  140. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  141. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  142. package/lib/typescript/roomStore/roomsSlice.d.ts +13 -1
  143. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  144. package/package.json +1 -1
  145. package/src/components/MainComponents/ChatRoom.tsx +21 -10
  146. package/src/components/MainComponents/MediaMessage.tsx +8 -5
  147. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  148. package/src/components/MainComponents/MessageList.tsx +2 -1
  149. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +63 -26
  150. package/src/components/RoomComponents/styled/LastMessageFile.tsx +14 -2
  151. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +14 -2
  152. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +14 -2
  153. package/src/components/styled/MessageImage.tsx +8 -1
  154. package/src/components/styled/UnsupportedType.tsx +14 -4
  155. package/src/components/styled/VideoMessage.tsx +8 -1
  156. package/src/context/xmppProvider.tsx +47 -24
  157. package/src/helpers/createMessageFromXml.ts +20 -1
  158. package/src/helpers/getDisplayFileName.ts +87 -0
  159. package/src/helpers/getServerReadTimestamp.ts +120 -0
  160. package/src/helpers/initXmppRooms.tsx +9 -9
  161. package/src/helpers/isOwnMessage.ts +90 -0
  162. package/src/helpers/mimeToExtension.ts +6 -22
  163. package/src/hooks/useChatRoomFocus.ts +14 -5
  164. package/src/hooks/useChatWrapperInit.ts +12 -7
  165. package/src/networking/stanzaHandlers.ts +20 -6
  166. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +65 -18
  167. package/src/networking/xmppClient.ts +41 -2
  168. package/src/roomStore/index.ts +40 -4
  169. package/src/roomStore/persistence.ts +197 -7
  170. package/src/roomStore/roomsSlice.ts +84 -6
@@ -127,7 +127,6 @@ function mergeHistoryIntoCache(existing, fetched) {
127
127
  // fetched MAM page (the live-stream swallow doesn't cover history).
128
128
  const ex = stripCallSignals(existing);
129
129
  const fe = stripCallSignals(fetched);
130
- const pending = ex.filter(m => m?.pending);
131
130
  const realExisting = ex.filter(m => m && !m.pending && m.id !== 'delimiter-new');
132
131
  const realFetched = fe.filter(m => m && m.id !== 'delimiter-new');
133
132
 
@@ -135,6 +134,28 @@ function mergeHistoryIntoCache(existing, fetched) {
135
134
  if (realFetched.length === 0) {
136
135
  return ex;
137
136
  }
137
+
138
+ // Optimistic sends are preserved across a history merge - EXCEPT the
139
+ // ones the fetched page proves the server already has. That happens
140
+ // whenever a send reached the server but its echo did not reach us
141
+ // before the process died: the optimistic bubble is restored from disk
142
+ // still `pending: true` (and, since bug #39, flagged failed at boot),
143
+ // while MAM hands back the very same message under its ARCHIVE id.
144
+ // Keying only on `id` never matched those two, so the room ended up
145
+ // showing the message twice - once for real and once as a bubble stuck
146
+ // on "sending…"/"Failed" that nothing could ever clear. The archived
147
+ // copy carries our original stanza id as `xmppId` (getDataFromXml), so
148
+ // match on that too and drop the local ghost.
149
+ const fetchedKeys = new Set();
150
+ for (const m of realFetched) {
151
+ if (m?.id != null) {
152
+ fetchedKeys.add(String(m.id));
153
+ }
154
+ if (m?.xmppId) {
155
+ fetchedKeys.add(String(m.xmppId));
156
+ }
157
+ }
158
+ const pending = ex.filter(m => m?.pending && !fetchedKeys.has(String(m.id)) && !(m.xmppId && fetchedKeys.has(String(m.xmppId))));
138
159
  const byMs = (a, b) => msgSortableMs(a) - msgSortableMs(b);
139
160
  const capTail = arr => arr.length > RUNTIME_MESSAGE_LIMIT ? arr.slice(-RUNTIME_MESSAGE_LIMIT) : arr;
140
161
  const existingIds = new Set(realExisting.map(m => String(m.id)));
@@ -497,7 +518,19 @@ const reducers = {
497
518
  *
498
519
  * Monotonic: a marker only ever moves a baseline FORWARD, so a stale
499
520
  * server value can't resurrect already-read messages and a more-recent
500
- * local read (tab blur stamping Date.now()) always wins.
521
+ * local read (tab blur stamping the server read timestamp) always wins.
522
+ *
523
+ * Bug #38 self-heal: forward-only is correct for a SANE existing
524
+ * value, but a device whose clock was ahead may have already stamped
525
+ * a marker in the future (either persisted locally from a previous
526
+ * session, or fetched from the server before this fix existed). To
527
+ * "only ever move forward" from a corrupt future value is to never
528
+ * move at all - the room would stay stuck at `unreadMessages: 0`
529
+ * forever. When the room is loaded, detect a marker that sits well
530
+ * past the newest message we actually know it has and waive the
531
+ * forward-only check for that one comparison, so the incoming
532
+ * (already-clamped, see xmppClient.getChatsPrivateStoreRequestStanza)
533
+ * value can correct it even though it's numerically smaller.
501
534
  */
502
535
  applyPrivateStoreMarkers: (state, action) => {
503
536
  const markers = action.payload;
@@ -512,15 +545,30 @@ const reducers = {
512
545
  if (!jid || !Number.isFinite(ts) || ts <= 0) {
513
546
  continue;
514
547
  }
548
+ const room = state.rooms[jid];
549
+ const newestKnownMs = room ? newestAckedMessageMs(room.messages) : 0;
550
+ // Mirrors isCorruptFutureReadMarker in helpers/getServerReadTimestamp.ts
551
+ // (duplicated to avoid a roomStore <-> helpers import cycle):
552
+ // BOTH signals are required. "Further ahead than the newest
553
+ // message this room has locally" happens all the time on a room
554
+ // whose history hasn't synced yet, and healing on that alone
555
+ // would drop a legitimate marker another device wrote after
556
+ // reading newer messages. A real read marker can never be ahead
557
+ // of real time, so that second signal is what distinguishes a
558
+ // stale cache from a wrong clock.
559
+ const nowMs = Date.now();
560
+ const looksCorrupt = existing => newestKnownMs > 0 && existing > newestKnownMs + FUTURE_MARKER_TOLERANCE_MS && existing > nowMs + FUTURE_MARKER_TOLERANCE_MS;
561
+
515
562
  // Remember the marker so rooms that load LATER (via addRoom)
516
563
  // inherit it even though they don't exist in the store yet.
517
- if (ts > (state.privateStoreMarkers[jid] || 0)) {
564
+ const cachedMarker = state.privateStoreMarkers[jid] || 0;
565
+ if (ts > cachedMarker || looksCorrupt(cachedMarker)) {
518
566
  state.privateStoreMarkers[jid] = ts;
519
567
  }
520
568
  // Upgrade an already-loaded room's baseline + recompute its badge.
521
- // Only ever forward, so a later local read isn't clobbered.
522
- const room = state.rooms[jid];
523
- if (room && ts > (room.lastViewedTimestamp || 0)) {
569
+ // Forward-only, unless the room's CURRENT baseline is itself the
570
+ // corrupt value being corrected.
571
+ if (room && (ts > (room.lastViewedTimestamp || 0) || looksCorrupt(room.lastViewedTimestamp || 0))) {
524
572
  room.lastViewedTimestamp = ts;
525
573
  room.unreadMessages = countNewerMessages(room.messages, ts);
526
574
  }
@@ -757,6 +805,35 @@ const isOwn = (msg, selfXmpp, selfWallet) => {
757
805
  }
758
806
  return false;
759
807
  };
808
+
809
+ // Bug #38 tolerance: a stored read marker more than this far past the
810
+ // newest message a room actually has is not "the user is a little
811
+ // ahead" - it's a leftover from a device whose clock was wrong when it
812
+ // stamped the marker. Kept in sync with (but duplicated from, to avoid
813
+ // a roomStore ↔ helpers import cycle) FUTURE_READ_MARKER_TOLERANCE_MS
814
+ // in helpers/getServerReadTimestamp.ts.
815
+ const FUTURE_MARKER_TOLERANCE_MS = 5 * 60 * 1000;
816
+
817
+ // Newest message in `messages` this room actually has proof the server
818
+ // accepted - used only to sanity-check an already-stored read marker
819
+ // against reality (see applyPrivateStoreMarkers's self-heal). Excludes
820
+ // pending/optimistic sends via the `pending` flag alone: unlike
821
+ // getServerReadTimestamp, this runs inside a reducer and can't reach
822
+ // across to the roomHeapSlice slice, but `pending` already identifies
823
+ // every optimistic send that matters for this comparison.
824
+ const newestAckedMessageMs = messages => {
825
+ let newest = 0;
826
+ for (const m of messages || []) {
827
+ if (!m || m.id === 'delimiter-new' || m.pending) {
828
+ continue;
829
+ }
830
+ const ms = msgSortableMs(m);
831
+ if (ms > newest) {
832
+ newest = ms;
833
+ }
834
+ }
835
+ return newest;
836
+ };
760
837
  const countNewerMessages = (messages, timestamp, selfXmpp = '', selfWallet = '') => {
761
838
  if (!messages?.length || !timestamp) {
762
839
  return 0;
@@ -1 +1 @@
1
- {"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","RUNTIME_MESSAGE_LIMIT","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","pending","m","realExisting","realFetched","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","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","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","Object","keys","ts","Number","isFinite","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","name","exec","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","count","ms","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","RUNTIME_MESSAGE_LIMIT","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","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","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","name","exec","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","count","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatRoom.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/ChatRoom.tsx"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,KAAmD,MAAM,OAAO,CAAC;AAwBxE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA4B1D,UAAU,aAAa;IACrB,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2erC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"ChatRoom.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/ChatRoom.tsx"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,KAAmD,MAAM,OAAO,CAAC;AAwBxE,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AA8B1D,UAAU,aAAa;IACrB,sBAAsB,CAAC,EAAE,GAAG,CAAC;IAC7B,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,oBAAoB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAC9C,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,aAAa,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAofrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MediaMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAmB7C,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAgHD,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6H7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"MediaMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MediaMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAoB7C,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AAgHD,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+H7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MessageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAYtD,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,OAAO,EAAE,QAAQ,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAuFtD,CAAC"}
1
+ {"version":3,"file":"MessageContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MessageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,EAAqB,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAatD,UAAU,qBAAqB;IAC7B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,OAAO,EAAE,QAAQ,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,CAAC;IAClB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0FtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MessageList.tsx"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,KAMN,MAAM,OAAO,CAAC;AAYf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAS,MAAM,mBAAmB,CAAC;AAYnE,UAAU,gBAAgB,CAAC,QAAQ,SAAS,QAAQ;IAClD,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,OAAO,EAAE,QAAQ,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED,QAAA,MAAM,WAAW,GAAI,QAAQ,SAAS,QAAQ,EAAE,+JAY7C,gBAAgB,CAAC,QAAQ,CAAC,sBA4a5B,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../src/components/MainComponents/MessageList.tsx"],"names":[],"mappings":"AAAA,cAAc;AAEd,OAAO,KAMN,MAAM,OAAO,CAAC;AAYf,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAS,MAAM,mBAAmB,CAAC;AAanE,UAAU,gBAAgB,CAAC,QAAQ,SAAS,QAAQ;IAClD,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAClC,OAAO,EAAE,QAAQ,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACvC,IAAI,EAAE,IAAI,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,qBAAqB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,QAAQ,CAAC;IACzB;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAED,QAAA,MAAM,WAAW,GAAI,QAAQ,SAAS,QAAQ,EAAE,+JAY7C,gBAAgB,CAAC,QAAQ,CAAC,sBA4a5B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilePreviewModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AA6G3D,UAAU,qBAAqB;IAC7B,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6TrD,CAAC;AAkBF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"FilePreviewModal.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAkH3D,UAAU,qBAAqB;IAC7B,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6VrD,CAAC;AAkBF,eAAe,gBAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { LastMessage } from '../../../types/types';
3
- interface LastMessageFileProps extends Pick<LastMessage, 'user' | 'originalName' | 'locationPreview'> {
3
+ interface LastMessageFileProps extends Pick<LastMessage, 'user' | 'originalName' | 'fileName' | 'mimetype' | 'locationPreview'> {
4
4
  }
5
5
  declare const LastMessageFile: FC<LastMessageFileProps>;
6
6
  export default LastMessageFile;
@@ -1 +1 @@
1
- {"version":3,"file":"LastMessageFile.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessageFile.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAenD,UAAU,oBACR,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,iBAAiB,CAAC;CAAG;AAK3E,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAwC7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LastMessageFile.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessageFile.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAgBnD,UAAU,oBACR,SAAQ,IAAI,CACV,WAAW,EACX,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CACtE;CAAG;AAKN,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAgD7C,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { LastMessage } from '../../../types/types';
3
- interface LastMessagePhotoProps extends Pick<LastMessage, 'user' | 'originalName' | 'locationPreview'> {
3
+ interface LastMessagePhotoProps extends Pick<LastMessage, 'user' | 'originalName' | 'fileName' | 'mimetype' | 'locationPreview'> {
4
4
  }
5
5
  declare const LastMessagePhoto: FC<LastMessagePhotoProps>;
6
6
  export default LastMessagePhoto;
@@ -1 +1 @@
1
- {"version":3,"file":"LastMessagePhoto.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessagePhoto.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsBnD,UAAU,qBACR,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,iBAAiB,CAAC;CAAG;AAE3E,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAyB/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"LastMessagePhoto.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessagePhoto.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAuBnD,UAAU,qBACR,SAAQ,IAAI,CACV,WAAW,EACX,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,CACtE;CAAG;AAEN,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAiC/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { FC } from 'react';
2
2
  import { LastMessage } from '../../../types/types';
3
- interface LastMessageVideoProps extends Pick<LastMessage, 'user' | 'location' | 'originalName'> {
3
+ interface LastMessageVideoProps extends Pick<LastMessage, 'user' | 'location' | 'originalName' | 'fileName' | 'mimetype'> {
4
4
  }
5
5
  declare const LastMessageVideo: FC<LastMessageVideoProps>;
6
6
  export default LastMessageVideo;
@@ -1 +1 @@
1
- {"version":3,"file":"LastMessageVideo.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAqCnD,UAAU,qBACR,SAAQ,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,CAAC;CAAG;AAEpE,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA0B/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"LastMessageVideo.d.ts","sourceRoot":"","sources":["../../../../../src/components/RoomComponents/styled/LastMessageVideo.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsCnD,UAAU,qBACR,SAAQ,IAAI,CACV,WAAW,EACX,MAAM,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,CAC/D;CAAG;AAEN,QAAA,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAkC/C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -3,6 +3,12 @@ interface CustomMessageImageProps {
3
3
  /** Full-size file. Opened in the preview modal, NOT rendered inline. */
4
4
  fileURL: string;
5
5
  fileName: string;
6
+ /**
7
+ * The sender's original file name (bug #40) - kept alongside `fileName`
8
+ * so the preview modal's save/share/download logic can prefer it over
9
+ * the server's stored/hashed name.
10
+ */
11
+ originalName?: string;
6
12
  mimetype: string;
7
13
  /**
8
14
  * Server-generated thumbnail — what the bubble actually renders, same
@@ -1 +1 @@
1
- {"version":3,"file":"MessageImage.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/MessageImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAoBnD,UAAU,uBAAuB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA6FzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"MessageImage.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/MessageImage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAoBnD,UAAU,uBAAuB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA8FzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UnsupportedType.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/UnsupportedType.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAqB1B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsH7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"UnsupportedType.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/UnsupportedType.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAsB1B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+H7C,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,6 +1,12 @@
1
1
  import React from 'react';
2
2
  interface CustomMessageVideoProps {
3
3
  fileName: string;
4
+ /**
5
+ * The sender's original file name (bug #40) - kept alongside `fileName`
6
+ * so the preview modal's save/share/download logic can prefer it over
7
+ * the server's stored/hashed name.
8
+ */
9
+ originalName?: string;
4
10
  fileURL: string;
5
11
  mimetype: string;
6
12
  /** The backend-generated poster frame (message.locationPreview). */
@@ -1 +1 @@
1
- {"version":3,"file":"VideoMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/VideoMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAmBnD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqGD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA8BzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"VideoMessage.d.ts","sourceRoot":"","sources":["../../../../src/components/styled/VideoMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAmBnD,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAqGD,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA+BzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"xmppProvider.d.ts","sourceRoot":"","sources":["../../../src/context/xmppProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,SAAS,EAQV,MAAM,OAAO,CAAC;AAIf,OAAO,UAEN,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,OAAO,EACP,uBAAuB,EAEvB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAmCxB,UAAU,QAAQ;IAChB,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;CAC9B;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,qBAAqB,KACjC,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1B;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAIjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAcD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA+uBpD,CAAC;AAEF,eAAO,MAAM,aAAa,uBAkBzB,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,cAAc,SAE7B"}
1
+ {"version":3,"file":"xmppProvider.d.ts","sourceRoot":"","sources":["../../../src/context/xmppProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,SAAS,EAQV,MAAM,OAAO,CAAC;AAIf,OAAO,UAEN,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,OAAO,EACP,uBAAuB,EAEvB,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAmCxB,UAAU,QAAQ;IAChB,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC;CAC9B;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,qBAAqB,KACjC,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1B;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IAIjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAcD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAswBpD,CAAC;AAEF,eAAO,MAAM,aAAa,uBAkBzB,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,cAAc,SAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMessageFromXml.d.ts","sourceRoot":"","sources":["../../../src/helpers/createMessageFromXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,mBAAoB,SAAQ,QAAQ;IAC5C,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,mBAAmB,EACxB,SAAS,GAAG,EACZ,eAAe,MAAM,EACrB,iBAAiB,MAAM,EACvB,oBAAoB,OAAO,KAC1B,OAAO,CAAC,QAAQ,CA0FlB,CAAC"}
1
+ {"version":3,"file":"createMessageFromXml.d.ts","sourceRoot":"","sources":["../../../src/helpers/createMessageFromXml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,mBAAoB,SAAQ,QAAQ;IAC5C,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,GAC/B,KAAK,mBAAmB,EACxB,SAAS,GAAG,EACZ,eAAe,MAAM,EACrB,iBAAiB,MAAM,EACvB,oBAAoB,OAAO,KAC1B,OAAO,CAAC,QAAQ,CA6GlB,CAAC"}
@@ -0,0 +1,49 @@
1
+ export interface DisplayFileNameOptions {
2
+ originalName?: string | null;
3
+ fileName?: string | null;
4
+ location?: string | null;
5
+ mimetype?: string | null;
6
+ }
7
+ /**
8
+ * Picks the best human-readable filename for a chat attachment - the
9
+ * single source of truth for every place a file name is rendered in the
10
+ * UI, saved to disk, shared, or downloaded.
11
+ *
12
+ * Priority: `originalName` (the sender's own file name, e.g. "test1.pdf")
13
+ * beats `fileName` (the server's stored/hashed name, e.g.
14
+ * "3f9a1c...c2.pdf") beats the last path segment of `location`. The
15
+ * stored hash name is only a fallback of last resort.
16
+ *
17
+ * Bug #40: display and save/share/download logic used to prefer the
18
+ * stored hash name over the original one, so an attachment sent as
19
+ * "test1.pdf" showed up (and got saved to the phone) as something like
20
+ * "3f9a1c...c2.pdf" - both directions (web -> RN and RN -> RN).
21
+ *
22
+ * Always returns a non-empty string with a valid extension: if the
23
+ * chosen candidate has no extension (a hash name can be `<hex>` with no
24
+ * extension at all, or `<hex>.<ext>`), one is appended from `mimetype`
25
+ * (or `.bin` as a last resort when the mime is unknown/missing too).
26
+ */
27
+ export declare function getDisplayFileName(options: DisplayFileNameOptions): string;
28
+ /**
29
+ * Makes a display name safe to use as an actual path segment when
30
+ * saving/sharing a file to the device: strips path separators (so an
31
+ * odd/hostile server-provided name can't escape the target directory)
32
+ * and control characters. Keeps the rest of the name - including the
33
+ * extension - intact.
34
+ */
35
+ export declare function sanitizeFileNameForPath(name: string): string;
36
+ /**
37
+ * Resolves a filename that is safe to write into a target directory:
38
+ * sanitizes it, then - if `exists` reports a collision - inserts
39
+ * " (1)", " (2)", ... before the extension until a free name is found,
40
+ * so saving two different attachments that share a display name never
41
+ * silently overwrites the first one.
42
+ *
43
+ * `exists` is injected so callers can back it with whatever existence
44
+ * check makes sense for their storage API (expo-file-system,
45
+ * StorageAccessFramework directory listing, ...) - this function stays
46
+ * pure and easy to unit test.
47
+ */
48
+ export declare function getUniqueFileName(name: string, exists: (candidateName: string) => Promise<boolean>): Promise<string>;
49
+ //# sourceMappingURL=getDisplayFileName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDisplayFileName.d.ts","sourceRoot":"","sources":["../../../src/helpers/getDisplayFileName.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAO1E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAiBjB"}
@@ -0,0 +1,69 @@
1
+ import type { IMessage, IRoom } from '../types/types';
2
+ export declare const FUTURE_READ_MARKER_TOLERANCE_MS: number;
3
+ export interface ReadTimestampHeapState {
4
+ messageHeap?: IMessage[] | null;
5
+ failedMessages?: Record<string, unknown> | null;
6
+ }
7
+ type RoomForReadTimestamp = Pick<IRoom, 'jid' | 'messages' | 'lastViewedTimestamp'>;
8
+ /**
9
+ * Resolve the "read up to here" marker for `room` using SERVER time,
10
+ * never the device clock.
11
+ *
12
+ * Bug #38: if the device clock is ahead when the user leaves a room, a
13
+ * `Date.now()` read marker lands in the future. The private-store merge
14
+ * (flushLastViewedToPrivateStore.ts) is forward-only ("if (prevNum >=
15
+ * ts) continue"), so once a future marker is written, no later
16
+ * *correct* write can ever replace it - the room's unread count is
17
+ * stuck wrong forever, on every device, from that point on. Anchoring
18
+ * to the newest SERVER-acknowledged message's own timestamp instead
19
+ * means the marker we write can never be ahead of what the server
20
+ * itself has recorded for the room.
21
+ *
22
+ * "Server-acknowledged" excludes:
23
+ * - a message still marked `pending` (the optimistic bubble shown
24
+ * while a send is in flight - it carries the DEVICE send time via
25
+ * `date`, not a server timestamp, until the server echoes it back
26
+ * and insertMessageWithDelimiter flips `pending` off);
27
+ * - a message id present in `heapState.messageHeap` (queued retry -
28
+ * used for offline media sends, see roomHeapSlice.ts) or
29
+ * `heapState.failedMessages` (a send that never reached the server
30
+ * at all).
31
+ *
32
+ * `msgSortableMs` (roomsSlice.ts) reads the server-assigned microsecond
33
+ * timestamp encoded in the first 13 digits of the message id - the same
34
+ * source already used for message ordering and unread counting - so
35
+ * this stays consistent with the rest of the read/unread pipeline.
36
+ *
37
+ * Falls back to the room's existing `lastViewedTimestamp` (so leaving
38
+ * an empty or never-scrolled room doesn't regress the marker), then to
39
+ * `0` when there's truly nothing to anchor to yet (a brand new room
40
+ * with no history and no prior marker). Callers should treat `0` as
41
+ * "skip the write" rather than substituting a device-clock guess.
42
+ */
43
+ export declare function getServerReadTimestamp(room: RoomForReadTimestamp | null | undefined, heapState?: ReadTimestampHeapState | null): number;
44
+ /**
45
+ * Is `marker` a leftover from a device whose clock was wrong when it
46
+ * stamped a read marker (bug #38)?
47
+ *
48
+ * TWO independent signals must agree before we're willing to throw a
49
+ * stored marker away, because "waive the forward-only guard" is a
50
+ * destructive operation:
51
+ *
52
+ * 1. it sits well past the newest message we know the room has, AND
53
+ * 2. it sits well past real time.
54
+ *
55
+ * Signal 1 alone is NOT enough, and that is the whole point of this
56
+ * function: a device whose local cache for a room is simply stale (very
57
+ * common - any room whose history hasn't been synced yet this session)
58
+ * sees a perfectly legitimate marker written by another device that HAS
59
+ * seen newer messages, and would happily "heal" it backwards, resurrecting
60
+ * already-read messages as unread on every device. A real timestamp can
61
+ * never be ahead of real time, so requiring signal 2 as well means a
62
+ * stale cache on its own can no longer trigger the self-heal.
63
+ *
64
+ * Signal 2 alone is not used either: it would let a device whose own
65
+ * clock is running SLOW mistake every correct marker for a corrupt one.
66
+ */
67
+ export declare function isCorruptFutureReadMarker(marker: number, newestAckedMs: number): boolean;
68
+ export {};
69
+ //# sourceMappingURL=getServerReadTimestamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getServerReadTimestamp.d.ts","sourceRoot":"","sources":["../../../src/helpers/getServerReadTimestamp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAWtD,eAAO,MAAM,+BAA+B,QAAgB,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,KAAK,oBAAoB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,GAAG,qBAAqB,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GACxC,MAAM,CA4BR;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAKT"}
@@ -1 +1 @@
1
- {"version":3,"file":"initXmppRooms.d.ts","sourceRoot":"","sources":["../../../src/helpers/initXmppRooms.tsx"],"names":[],"mappings":"AAGA,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItD,QAAA,MAAM,aAAa,GACjB,MAAM,IAAI,EACV,QAAQ,OAAO,EACf,YAAY,UAAU,EACtB,QAAQ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,EAChC,UAAU,MAAM,kBA2DjB,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"initXmppRooms.d.ts","sourceRoot":"","sources":["../../../src/helpers/initXmppRooms.tsx"],"names":[],"mappings":"AAEA,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAItD,QAAA,MAAM,aAAa,GACjB,MAAM,IAAI,EACV,QAAQ,OAAO,EACf,YAAY,UAAU,EACtB,QAAQ;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,EAChC,UAAU,MAAM,kBA4DjB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { IMessage } from '../types/types';
2
+ /**
3
+ * Bug #41: during reconnect catch-up (app was backgrounded/offline, then
4
+ * comes back online), messages replayed from MAM could transiently render
5
+ * on the RIGHT (as if sent by the current user) before flipping to the
6
+ * LEFT a moment later. Root cause: `message.user.id === walletAddress`
7
+ * treats `undefined === undefined` (or `'' === ''`) as a match, and the
8
+ * two sides could independently be empty for one frame -- the message's
9
+ * sender id before the MAM-derived value settled, and/or the current
10
+ * user's id before it rehydrated. Two blank ids must never compare equal.
11
+ *
12
+ * A second, related issue: the same logical sender id can show up in
13
+ * different shapes depending on which code path produced it -- a bare
14
+ * id ("wallet123") or a bare JID with an incidental session resource
15
+ * ("wallet123@host/sessionResource", as `senderJID` attrs carry on the
16
+ * wire -- see src/assets/test.xml). In every shape used in this
17
+ * codebase the identifying segment is the part BEFORE the first '@' (or
18
+ * before '/' when there's no '@'); anything after that -- domain,
19
+ * resource -- is noise. Comparing raw strings with `===` fails whenever
20
+ * one side still carries that noise and the other doesn't. Normalizing
21
+ * both sides (strip resource, strip domain, lowercase) before comparing
22
+ * makes the check tolerant of that drift.
23
+ */
24
+ export interface OwnMessageUserLike {
25
+ id?: string | null;
26
+ xmppUsername?: string | null;
27
+ walletAddress?: string | null;
28
+ }
29
+ export type OwnMessageCurrentUser = OwnMessageUserLike | string | null | undefined;
30
+ /**
31
+ * Robustly determine whether `message` was sent by `currentUser`. Never
32
+ * returns true from two blank/undefined ids, and tolerates bare-id vs.
33
+ * full-JID mismatches between the sender id and the current user id.
34
+ */
35
+ export declare const isOwnMessage: (message: Pick<IMessage, "user"> | null | undefined, currentUser: OwnMessageCurrentUser) => boolean;
36
+ //# sourceMappingURL=isOwnMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isOwnMessage.d.ts","sourceRoot":"","sources":["../../../src/helpers/isOwnMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AAkCd;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EAClD,aAAa,qBAAqB,KACjC,OAYF,CAAC"}
@@ -57,19 +57,4 @@ export declare function isUnsupportedAudioForIosPlayback(opts: {
57
57
  * extension is appended so callers always get a usable filename.
58
58
  */
59
59
  export declare function ensureFilenameHasExtension(fileName: string | undefined | null, mime: string | undefined | null): string;
60
- /**
61
- * Best-effort filename derivation for a message bubble:
62
- * - server-provided `fileName`
63
- * - server-provided `originalName`
64
- * - URL pathname
65
- * - generic `media_<timestamp>` so we never render an empty label
66
- *
67
- * Always returns a string with a valid extension.
68
- */
69
- export declare function deriveDisplayFilename(opts: {
70
- fileName?: string | null;
71
- originalName?: string | null;
72
- url?: string | null;
73
- mime?: string | null;
74
- }): string;
75
60
  //# sourceMappingURL=mimeToExtension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mimeToExtension.d.ts","sourceRoot":"","sources":["../../../src/helpers/mimeToExtension.ts"],"names":[],"mappings":"AAkGA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CA8CT;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWtE;AAQD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAiBV;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,MAAM,CAcT;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAgBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC9B,MAAM,CAKR;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,GAAG,MAAM,CAOT"}
1
+ {"version":3,"file":"mimeToExtension.d.ts","sourceRoot":"","sources":["../../../src/helpers/mimeToExtension.ts"],"names":[],"mappings":"AAkGA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,IAAI,CAAC,EAAE;IACL,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GACA,OAAO,CA8CT;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAWtE;AAQD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,OAAO,CAiBV;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,MAAM,CAcT;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAgBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAC9B,MAAM,CAKR"}