@ethora/chat-component-rn 26.7.8 → 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 (204) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/lib/commonjs/assets/icons.js +2 -2
  3. package/lib/commonjs/assets/icons.js.map +1 -1
  4. package/lib/commonjs/components/MainComponents/ChatRoom.js +17 -8
  5. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  6. package/lib/commonjs/components/MainComponents/MediaMessage.js +8 -5
  7. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  8. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  9. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/MessageList.js +2 -1
  11. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  12. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +1 -51
  13. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  14. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +51 -12
  15. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  16. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +12 -1
  17. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  18. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +13 -2
  19. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  20. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +13 -2
  21. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  22. package/lib/commonjs/components/styled/MessageImage.js +3 -1
  23. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  24. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  25. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  26. package/lib/commonjs/components/styled/VideoMessage.js +3 -1
  27. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  28. package/lib/commonjs/context/xmppProvider.js +46 -31
  29. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  30. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  31. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  32. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  33. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  34. package/lib/commonjs/helpers/getServerReadTimestamp.js +125 -0
  35. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  36. package/lib/commonjs/helpers/initXmppRooms.js +9 -7
  37. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  38. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  39. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  40. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  41. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  42. package/lib/commonjs/hooks/useChatRoomFocus.js +17 -8
  43. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  44. package/lib/commonjs/hooks/useChatWrapperInit.js +12 -7
  45. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  46. package/lib/commonjs/i18n/strings.js +0 -18
  47. package/lib/commonjs/i18n/strings.js.map +1 -1
  48. package/lib/commonjs/networking/api-requests/rooms.api.js +0 -13
  49. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  50. package/lib/commonjs/networking/stanzaHandlers.js +20 -2
  51. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  52. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +45 -11
  53. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  54. package/lib/commonjs/networking/xmppClient.js +36 -2
  55. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  56. package/lib/commonjs/roomStore/index.js +35 -2
  57. package/lib/commonjs/roomStore/index.js.map +1 -1
  58. package/lib/commonjs/roomStore/persistence.js +200 -11
  59. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  60. package/lib/commonjs/roomStore/roomsSlice.js +83 -6
  61. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  62. package/lib/module/assets/icons.js +1 -1
  63. package/lib/module/assets/icons.js.map +1 -1
  64. package/lib/module/components/MainComponents/ChatRoom.js +17 -8
  65. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  66. package/lib/module/components/MainComponents/MediaMessage.js +9 -6
  67. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  68. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  69. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  70. package/lib/module/components/MainComponents/MessageList.js +2 -1
  71. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  72. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +3 -53
  73. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  74. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +52 -13
  75. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  76. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +12 -1
  77. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  78. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +13 -2
  79. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  80. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +13 -2
  81. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  82. package/lib/module/components/styled/MessageImage.js +3 -1
  83. package/lib/module/components/styled/MessageImage.js.map +1 -1
  84. package/lib/module/components/styled/UnsupportedType.js +14 -4
  85. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  86. package/lib/module/components/styled/VideoMessage.js +3 -1
  87. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  88. package/lib/module/context/xmppProvider.js +47 -32
  89. package/lib/module/context/xmppProvider.js.map +1 -1
  90. package/lib/module/helpers/createMessageFromXml.js +19 -1
  91. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  92. package/lib/module/helpers/getDisplayFileName.js +73 -0
  93. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  94. package/lib/module/helpers/getServerReadTimestamp.js +120 -0
  95. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  96. package/lib/module/helpers/initXmppRooms.js +9 -7
  97. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  98. package/lib/module/helpers/isOwnMessage.js +70 -0
  99. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  100. package/lib/module/helpers/mimeToExtension.js +6 -13
  101. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  102. package/lib/module/hooks/useChatRoomFocus.js +17 -8
  103. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  104. package/lib/module/hooks/useChatWrapperInit.js +12 -7
  105. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  106. package/lib/module/i18n/strings.js +0 -18
  107. package/lib/module/i18n/strings.js.map +1 -1
  108. package/lib/module/networking/api-requests/rooms.api.js +0 -12
  109. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  110. package/lib/module/networking/stanzaHandlers.js +20 -2
  111. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  112. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +45 -11
  113. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  114. package/lib/module/networking/xmppClient.js +36 -2
  115. package/lib/module/networking/xmppClient.js.map +1 -1
  116. package/lib/module/roomStore/index.js +37 -4
  117. package/lib/module/roomStore/index.js.map +1 -1
  118. package/lib/module/roomStore/persistence.js +197 -11
  119. package/lib/module/roomStore/persistence.js.map +1 -1
  120. package/lib/module/roomStore/roomsSlice.js +83 -6
  121. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  122. package/lib/typescript/assets/icons.d.ts +0 -8
  123. package/lib/typescript/assets/icons.d.ts.map +1 -1
  124. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  125. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  126. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  127. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  128. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  129. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  130. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  131. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  132. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  133. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  134. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  135. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  136. package/lib/typescript/components/styled/MessageImage.d.ts +6 -0
  137. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  138. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  139. package/lib/typescript/components/styled/VideoMessage.d.ts +6 -0
  140. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  141. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  142. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  143. package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
  144. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  145. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  146. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +69 -0
  147. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  148. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  149. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  150. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  151. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  152. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  153. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  154. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  155. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  156. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  157. package/lib/typescript/networking/api-requests/rooms.api.d.ts +0 -1
  158. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  159. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  160. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +9 -2
  161. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  162. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  163. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  164. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  165. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  166. package/lib/typescript/roomStore/roomsSlice.d.ts +13 -1
  167. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  168. package/lib/typescript/types/models/room.model.d.ts +0 -1
  169. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  170. package/lib/typescript/types/types.d.ts +0 -1
  171. package/lib/typescript/types/types.d.ts.map +1 -1
  172. package/package.json +1 -1
  173. package/src/assets/icons.tsx +0 -24
  174. package/src/components/MainComponents/ChatRoom.tsx +21 -10
  175. package/src/components/MainComponents/MediaMessage.tsx +8 -5
  176. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  177. package/src/components/MainComponents/MessageList.tsx +2 -1
  178. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +2 -36
  179. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +63 -26
  180. package/src/components/RoomComponents/styled/LastMessageFile.tsx +14 -2
  181. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +14 -2
  182. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +14 -2
  183. package/src/components/styled/MessageImage.tsx +8 -1
  184. package/src/components/styled/UnsupportedType.tsx +14 -4
  185. package/src/components/styled/VideoMessage.tsx +8 -1
  186. package/src/context/xmppProvider.tsx +47 -24
  187. package/src/helpers/createMessageFromXml.ts +20 -1
  188. package/src/helpers/getDisplayFileName.ts +87 -0
  189. package/src/helpers/getServerReadTimestamp.ts +120 -0
  190. package/src/helpers/initXmppRooms.tsx +9 -9
  191. package/src/helpers/isOwnMessage.ts +90 -0
  192. package/src/helpers/mimeToExtension.ts +6 -22
  193. package/src/hooks/useChatRoomFocus.ts +14 -5
  194. package/src/hooks/useChatWrapperInit.ts +12 -7
  195. package/src/i18n/strings.ts +0 -18
  196. package/src/networking/api-requests/rooms.api.ts +0 -9
  197. package/src/networking/stanzaHandlers.ts +20 -6
  198. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +65 -18
  199. package/src/networking/xmppClient.ts +41 -2
  200. package/src/roomStore/index.ts +40 -4
  201. package/src/roomStore/persistence.ts +197 -7
  202. package/src/roomStore/roomsSlice.ts +84 -6
  203. package/src/types/models/room.model.ts +0 -1
  204. package/src/types/types.ts +0 -1
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FUTURE_READ_MARKER_TOLERANCE_MS = void 0;
7
+ exports.getServerReadTimestamp = getServerReadTimestamp;
8
+ exports.isCorruptFutureReadMarker = isCorruptFutureReadMarker;
9
+ var _roomsSlice = require("../roomStore/roomsSlice");
10
+ // A stored/stamped read marker more than this far past the newest
11
+ // message we actually know about for a room is not "the user is a
12
+ // little ahead" - it's a leftover from a device whose clock was wrong
13
+ // when it stamped the marker (bug #38). Generous on purpose: this value
14
+ // only controls when we're willing to treat an existing marker as
15
+ // corrupt and self-heal it, never how far off a legitimate new write can
16
+ // be, so a false positive here just means a bad value survives one extra
17
+ // cycle, not that a good value gets rejected.
18
+ const FUTURE_READ_MARKER_TOLERANCE_MS = exports.FUTURE_READ_MARKER_TOLERANCE_MS = 5 * 60 * 1000;
19
+ /**
20
+ * Resolve the "read up to here" marker for `room` using SERVER time,
21
+ * never the device clock.
22
+ *
23
+ * Bug #38: if the device clock is ahead when the user leaves a room, a
24
+ * `Date.now()` read marker lands in the future. The private-store merge
25
+ * (flushLastViewedToPrivateStore.ts) is forward-only ("if (prevNum >=
26
+ * ts) continue"), so once a future marker is written, no later
27
+ * *correct* write can ever replace it - the room's unread count is
28
+ * stuck wrong forever, on every device, from that point on. Anchoring
29
+ * to the newest SERVER-acknowledged message's own timestamp instead
30
+ * means the marker we write can never be ahead of what the server
31
+ * itself has recorded for the room.
32
+ *
33
+ * "Server-acknowledged" excludes:
34
+ * - a message still marked `pending` (the optimistic bubble shown
35
+ * while a send is in flight - it carries the DEVICE send time via
36
+ * `date`, not a server timestamp, until the server echoes it back
37
+ * and insertMessageWithDelimiter flips `pending` off);
38
+ * - a message id present in `heapState.messageHeap` (queued retry -
39
+ * used for offline media sends, see roomHeapSlice.ts) or
40
+ * `heapState.failedMessages` (a send that never reached the server
41
+ * at all).
42
+ *
43
+ * `msgSortableMs` (roomsSlice.ts) reads the server-assigned microsecond
44
+ * timestamp encoded in the first 13 digits of the message id - the same
45
+ * source already used for message ordering and unread counting - so
46
+ * this stays consistent with the rest of the read/unread pipeline.
47
+ *
48
+ * Falls back to the room's existing `lastViewedTimestamp` (so leaving
49
+ * an empty or never-scrolled room doesn't regress the marker), then to
50
+ * `0` when there's truly nothing to anchor to yet (a brand new room
51
+ * with no history and no prior marker). Callers should treat `0` as
52
+ * "skip the write" rather than substituting a device-clock guess.
53
+ */
54
+ function getServerReadTimestamp(room, heapState) {
55
+ if (!room) {
56
+ return 0;
57
+ }
58
+ const heapIds = new Set((heapState?.messageHeap || []).filter(m => m && m.id != null).map(m => String(m.id)));
59
+ const failedIds = new Set(Object.keys(heapState?.failedMessages || {}));
60
+ let newest = 0;
61
+ const messages = room.messages || [];
62
+ for (const m of messages) {
63
+ if (!m || !m.id) {
64
+ continue;
65
+ }
66
+ const id = String(m.id);
67
+ if (id === 'delimiter-new' || id === 'delimiter-new-local') {
68
+ continue;
69
+ }
70
+ if (m.pending) {
71
+ continue;
72
+ }
73
+ if (heapIds.has(id) || failedIds.has(id)) {
74
+ continue;
75
+ }
76
+ const ts = (0, _roomsSlice.msgSortableMs)(m);
77
+ if (ts > newest) {
78
+ newest = ts;
79
+ }
80
+ }
81
+ if (newest > 0) {
82
+ return newest;
83
+ }
84
+ if (room.lastViewedTimestamp && room.lastViewedTimestamp > 0) {
85
+ return room.lastViewedTimestamp;
86
+ }
87
+ return 0;
88
+ }
89
+
90
+ /**
91
+ * Is `marker` a leftover from a device whose clock was wrong when it
92
+ * stamped a read marker (bug #38)?
93
+ *
94
+ * TWO independent signals must agree before we're willing to throw a
95
+ * stored marker away, because "waive the forward-only guard" is a
96
+ * destructive operation:
97
+ *
98
+ * 1. it sits well past the newest message we know the room has, AND
99
+ * 2. it sits well past real time.
100
+ *
101
+ * Signal 1 alone is NOT enough, and that is the whole point of this
102
+ * function: a device whose local cache for a room is simply stale (very
103
+ * common - any room whose history hasn't been synced yet this session)
104
+ * sees a perfectly legitimate marker written by another device that HAS
105
+ * seen newer messages, and would happily "heal" it backwards, resurrecting
106
+ * already-read messages as unread on every device. A real timestamp can
107
+ * never be ahead of real time, so requiring signal 2 as well means a
108
+ * stale cache on its own can no longer trigger the self-heal.
109
+ *
110
+ * Signal 2 alone is not used either: it would let a device whose own
111
+ * clock is running SLOW mistake every correct marker for a corrupt one.
112
+ */
113
+ function isCorruptFutureReadMarker(marker, newestAckedMs) {
114
+ if (!Number.isFinite(marker) || marker <= 0) {
115
+ return false;
116
+ }
117
+ if (!(newestAckedMs > 0)) {
118
+ return false;
119
+ }
120
+ if (marker <= newestAckedMs + FUTURE_READ_MARKER_TOLERANCE_MS) {
121
+ return false;
122
+ }
123
+ return marker > Date.now() + FUTURE_READ_MARKER_TOLERANCE_MS;
124
+ }
125
+ //# sourceMappingURL=getServerReadTimestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_roomsSlice","require","FUTURE_READ_MARKER_TOLERANCE_MS","exports","getServerReadTimestamp","room","heapState","heapIds","Set","messageHeap","filter","m","id","map","String","failedIds","Object","keys","failedMessages","newest","messages","pending","has","ts","msgSortableMs","lastViewedTimestamp","isCorruptFutureReadMarker","marker","newestAckedMs","Number","isFinite","Date","now"],"sourceRoot":"../../../src","sources":["helpers/getServerReadTimestamp.ts"],"mappings":";;;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,+BAA+B,GAAAC,OAAA,CAAAD,+BAAA,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;AAS5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CACpCC,IAA6C,EAC7CC,SAAyC,EACjC;EACR,IAAI,CAACD,IAAI,EAAE;IAAC,OAAO,CAAC;EAAC;EAErB,MAAME,OAAO,GAAG,IAAIC,GAAG,CACrB,CAACF,SAAS,EAAEG,WAAW,IAAI,EAAE,EAC1BC,MAAM,CAAEC,CAAC,IAAKA,CAAC,IAAIA,CAAC,CAACC,EAAE,IAAI,IAAI,CAAC,CAChCC,GAAG,CAAEF,CAAC,IAAKG,MAAM,CAACH,CAAC,CAACC,EAAE,CAAC,CAC5B,CAAC;EACD,MAAMG,SAAS,GAAG,IAAIP,GAAG,CAACQ,MAAM,CAACC,IAAI,CAACX,SAAS,EAAEY,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC;EAEvE,IAAIC,MAAM,GAAG,CAAC;EACd,MAAMC,QAAQ,GAAGf,IAAI,CAACe,QAAQ,IAAI,EAAE;EACpC,KAAK,MAAMT,CAAC,IAAIS,QAAQ,EAAE;IACxB,IAAI,CAACT,CAAC,IAAI,CAACA,CAAC,CAACC,EAAE,EAAE;MAAC;IAAS;IAC3B,MAAMA,EAAE,GAAGE,MAAM,CAACH,CAAC,CAACC,EAAE,CAAC;IACvB,IAAIA,EAAE,KAAK,eAAe,IAAIA,EAAE,KAAK,qBAAqB,EAAE;MAAC;IAAS;IACtE,IAAKD,CAAC,CAASU,OAAO,EAAE;MAAC;IAAS;IAClC,IAAId,OAAO,CAACe,GAAG,CAACV,EAAE,CAAC,IAAIG,SAAS,CAACO,GAAG,CAACV,EAAE,CAAC,EAAE;MAAC;IAAS;IAEpD,MAAMW,EAAE,GAAG,IAAAC,yBAAa,EAACb,CAAC,CAAC;IAC3B,IAAIY,EAAE,GAAGJ,MAAM,EAAE;MAACA,MAAM,GAAGI,EAAE;IAAC;EAChC;EAEA,IAAIJ,MAAM,GAAG,CAAC,EAAE;IAAC,OAAOA,MAAM;EAAC;EAC/B,IAAId,IAAI,CAACoB,mBAAmB,IAAIpB,IAAI,CAACoB,mBAAmB,GAAG,CAAC,EAAE;IAC5D,OAAOpB,IAAI,CAACoB,mBAAmB;EACjC;EACA,OAAO,CAAC;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,yBAAyBA,CACvCC,MAAc,EACdC,aAAqB,EACZ;EACT,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACH,MAAM,CAAC,IAAIA,MAAM,IAAI,CAAC,EAAE;IAAC,OAAO,KAAK;EAAC;EAC3D,IAAI,EAAEC,aAAa,GAAG,CAAC,CAAC,EAAE;IAAC,OAAO,KAAK;EAAC;EACxC,IAAID,MAAM,IAAIC,aAAa,GAAG1B,+BAA+B,EAAE;IAAC,OAAO,KAAK;EAAC;EAC7E,OAAOyB,MAAM,GAAGI,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG9B,+BAA+B;AAC9D","ignoreList":[]}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _roomsSlice = require("../roomStore/roomsSlice");
8
- var _updatedChatLastTimestamps = require("./updatedChatLastTimestamps");
9
8
  var _initRoomsPresence = require("./initRoomsPresence");
10
9
  var _roomStore = require("../roomStore");
11
10
  var _authRefresh = require("../networking/authRefresh");
@@ -44,13 +43,16 @@ const initXmppRooms = async (user, config, xmmpClient, rooms, roomJID) => {
44
43
  console.log(res);
45
44
  }
46
45
 
47
- //@ts-ignore
48
- const roomTimestampObject = await xmmpClient.getChatsPrivateStoreRequestStanza();
49
- (0, _updatedChatLastTimestamps.updatedChatLastTimestamps)(roomTimestampObject, _roomStore.store.dispatch);
46
+ // getChatsPrivateStoreRequestStanza hydrates redux itself
47
+ // (dispatch(applyPrivateStoreMarkers(...)) internally, clamped +
48
+ // forward-only) - do not also apply the raw return value here. That
49
+ // used to double-dispatch via updatedChatLastTimestamps' unconditional
50
+ // setLastViewedTimestamp, which has neither the forward-only guard
51
+ // nor the future-marker clamp, so it could silently re-clobber a
52
+ // value the clamp had just corrected (bug #38).
53
+ await xmmpClient.getChatsPrivateStoreRequestStanza();
50
54
  } else {
51
- //@ts-ignore
52
- const roomTimestampObject = await xmmpClient.getChatsPrivateStoreRequestStanza();
53
- (0, _updatedChatLastTimestamps.updatedChatLastTimestamps)(roomTimestampObject, _roomStore.store.dispatch);
55
+ await xmmpClient.getChatsPrivateStoreRequestStanza();
54
56
  }
55
57
  if (config?.refreshTokens?.enabled) {
56
58
  // Was a bare call to the consumer-supplied refreshFunction, i.e. a
@@ -1 +1 @@
1
- {"version":3,"names":["_roomsSlice","require","_updatedChatLastTimestamps","_initRoomsPresence","_roomStore","_authRefresh","initXmppRooms","user","config","xmmpClient","rooms","roomJID","store","dispatch","setCurrentRoom","defaultWallet","walletAddress","console","log","Object","keys","length","initRoomsPresence","newArch","res","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","updatedChatLastTimestamps","refreshTokens","enabled","refreshAuthTokensQuietly","error","setIsLoading","loading","_default","exports","default"],"sourceRoot":"../../../src","sources":["helpers/initXmppRooms.tsx"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAGA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,MAAMK,aAAa,GAAG,MAAAA,CACpBC,IAAU,EACVC,MAAe,EACfC,UAAsB,EACtBC,KAAgC,EAChCC,OAAgB,KACb;EACH,IAAIA,OAAO,EAAE;IACXC,gBAAK,CAACC,QAAQ,CAAC,IAAAC,0BAAc,EAAC;MAAEH,OAAO,EAAEA;IAAQ,CAAC,CAAC,CAAC;EACtD;EAEA,IAAI;IACF,IAAI,CAACJ,IAAI,CAACQ,aAAa,IAAI,CAACR,IAAI,CAACQ,aAAa,CAACC,aAAa,EAAE;MAC5DC,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC;MAC7B;IACF;IAEA,IAAI,CAACT,UAAU,EAAE;MACfQ,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;MAE9C,IAAIR,KAAK,IAAIS,MAAM,CAACC,IAAI,CAACV,KAAK,CAAC,CAACW,MAAM,GAAG,CAAC,EAAE;QAC1C,MAAM,IAAAC,oCAAiB,EAACb,UAAU,EAAEC,KAAK,CAAC;MAC5C,CAAC,MAAM;QACL,IAAIF,MAAM,EAAEe,OAAO,EAAE;UACnB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QACF;QACA,MAAMC,GAAG,GAAG,MAAOf,UAAU,CAAuBgB,cAAc,CAAC,CAAC;QACpER,OAAO,CAACC,GAAG,CAACM,GAAG,CAAC;MAClB;;MAEA;MACA,MAAME,mBAAqD,GACzD,MAAOjB,UAAU,CAAuBkB,iCAAiC,CAAC,CAAC;MAC7E,IAAAC,oDAAyB,EAACF,mBAAmB,EAAEd,gBAAK,CAACC,QAAQ,CAAC;IAChE,CAAC,MAAM;MACL;MACA,MAAMa,mBAAqD,GACzD,MAAMjB,UAAU,CAACkB,iCAAiC,CAAC,CAAC;MACtD,IAAAC,oDAAyB,EAACF,mBAAmB,EAAEd,gBAAK,CAACC,QAAQ,CAAC;IAChE;IAEA,IAAIL,MAAM,EAAEqB,aAAa,EAAEC,OAAO,EAAE;MAClC;MACA;MACA;MACA,IAAAC,qCAAwB,EAAC,CAAC;IAC5B;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdf,OAAO,CAACe,KAAK,CAACA,KAAK,CAAC;EACtB,CAAC,SAAS;IACRpB,gBAAK,CAACC,QAAQ,CAAC,IAAAoB,wBAAY,EAAC;MAAEC,OAAO,EAAE;IAAM,CAAC,CAAC,CAAC;EAClD;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa/B,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["_roomsSlice","require","_initRoomsPresence","_roomStore","_authRefresh","initXmppRooms","user","config","xmmpClient","rooms","roomJID","store","dispatch","setCurrentRoom","defaultWallet","walletAddress","console","log","Object","keys","length","initRoomsPresence","newArch","res","getRoomsStanza","getChatsPrivateStoreRequestStanza","refreshTokens","enabled","refreshAuthTokensQuietly","error","setIsLoading","loading","_default","exports","default"],"sourceRoot":"../../../src","sources":["helpers/initXmppRooms.tsx"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA,MAAMI,aAAa,GAAG,MAAAA,CACpBC,IAAU,EACVC,MAAe,EACfC,UAAsB,EACtBC,KAAgC,EAChCC,OAAgB,KACb;EACH,IAAIA,OAAO,EAAE;IACXC,gBAAK,CAACC,QAAQ,CAAC,IAAAC,0BAAc,EAAC;MAAEH,OAAO,EAAEA;IAAQ,CAAC,CAAC,CAAC;EACtD;EAEA,IAAI;IACF,IAAI,CAACJ,IAAI,CAACQ,aAAa,IAAI,CAACR,IAAI,CAACQ,aAAa,CAACC,aAAa,EAAE;MAC5DC,OAAO,CAACC,GAAG,CAAC,gBAAgB,CAAC;MAC7B;IACF;IAEA,IAAI,CAACT,UAAU,EAAE;MACfQ,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;MAE9C,IAAIR,KAAK,IAAIS,MAAM,CAACC,IAAI,CAACV,KAAK,CAAC,CAACW,MAAM,GAAG,CAAC,EAAE;QAC1C,MAAM,IAAAC,oCAAiB,EAACb,UAAU,EAAEC,KAAK,CAAC;MAC5C,CAAC,MAAM;QACL,IAAIF,MAAM,EAAEe,OAAO,EAAE;UACnB;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;QACF;QACA,MAAMC,GAAG,GAAG,MAAOf,UAAU,CAAuBgB,cAAc,CAAC,CAAC;QACpER,OAAO,CAACC,GAAG,CAACM,GAAG,CAAC;MAClB;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAOf,UAAU,CAAuBiB,iCAAiC,CAAC,CAAC;IAC7E,CAAC,MAAM;MACL,MAAMjB,UAAU,CAACiB,iCAAiC,CAAC,CAAC;IACtD;IAEA,IAAIlB,MAAM,EAAEmB,aAAa,EAAEC,OAAO,EAAE;MAClC;MACA;MACA;MACA,IAAAC,qCAAwB,EAAC,CAAC;IAC5B;EACF,CAAC,CAAC,OAAOC,KAAK,EAAE;IACdb,OAAO,CAACa,KAAK,CAACA,KAAK,CAAC;EACtB,CAAC,SAAS;IACRlB,gBAAK,CAACC,QAAQ,CAAC,IAAAkB,wBAAY,EAAC;MAAEC,OAAO,EAAE;IAAM,CAAC,CAAC,CAAC;EAClD;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa7B,aAAa","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isOwnMessage = void 0;
7
+ /**
8
+ * Bug #41: during reconnect catch-up (app was backgrounded/offline, then
9
+ * comes back online), messages replayed from MAM could transiently render
10
+ * on the RIGHT (as if sent by the current user) before flipping to the
11
+ * LEFT a moment later. Root cause: `message.user.id === walletAddress`
12
+ * treats `undefined === undefined` (or `'' === ''`) as a match, and the
13
+ * two sides could independently be empty for one frame -- the message's
14
+ * sender id before the MAM-derived value settled, and/or the current
15
+ * user's id before it rehydrated. Two blank ids must never compare equal.
16
+ *
17
+ * A second, related issue: the same logical sender id can show up in
18
+ * different shapes depending on which code path produced it -- a bare
19
+ * id ("wallet123") or a bare JID with an incidental session resource
20
+ * ("wallet123@host/sessionResource", as `senderJID` attrs carry on the
21
+ * wire -- see src/assets/test.xml). In every shape used in this
22
+ * codebase the identifying segment is the part BEFORE the first '@' (or
23
+ * before '/' when there's no '@'); anything after that -- domain,
24
+ * resource -- is noise. Comparing raw strings with `===` fails whenever
25
+ * one side still carries that noise and the other doesn't. Normalizing
26
+ * both sides (strip resource, strip domain, lowercase) before comparing
27
+ * makes the check tolerant of that drift.
28
+ */
29
+
30
+ /**
31
+ * Strip a MUC resource (`room@host/resource` -> `room@host`) and then a
32
+ * JID domain (`local@host` -> `local`), lowercasing the result. Applies
33
+ * to both plain ids and full/partial JIDs so either shape normalizes to
34
+ * the same comparable value.
35
+ */
36
+ const normalizeId = raw => {
37
+ const value = String(raw ?? '').trim();
38
+ if (!value) {
39
+ return '';
40
+ }
41
+ const withoutResource = value.split('/')[0];
42
+ const withoutDomain = withoutResource.includes('@') ? withoutResource.split('@')[0] : withoutResource;
43
+ return withoutDomain.toLowerCase();
44
+ };
45
+
46
+ // Same precedence the rest of the app uses when it needs "who am I" as a
47
+ // single id: xmppUsername first, walletAddress as the fallback.
48
+ const resolveCurrentUserId = currentUser => {
49
+ if (typeof currentUser === 'string') {
50
+ return currentUser;
51
+ }
52
+ if (!currentUser) {
53
+ return '';
54
+ }
55
+ return currentUser.xmppUsername || currentUser.walletAddress || currentUser.id || '';
56
+ };
57
+
58
+ /**
59
+ * Robustly determine whether `message` was sent by `currentUser`. Never
60
+ * returns true from two blank/undefined ids, and tolerates bare-id vs.
61
+ * full-JID mismatches between the sender id and the current user id.
62
+ */
63
+ const isOwnMessage = (message, currentUser) => {
64
+ const messageUserId = normalizeId(message?.user?.id);
65
+ if (!messageUserId) {
66
+ return false;
67
+ }
68
+ const currentUserId = normalizeId(resolveCurrentUserId(currentUser));
69
+ if (!currentUserId) {
70
+ return false;
71
+ }
72
+ return messageUserId === currentUserId;
73
+ };
74
+ exports.isOwnMessage = isOwnMessage;
75
+ //# sourceMappingURL=isOwnMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeId","raw","value","String","trim","withoutResource","split","withoutDomain","includes","toLowerCase","resolveCurrentUserId","currentUser","xmppUsername","walletAddress","id","isOwnMessage","message","messageUserId","user","currentUserId","exports"],"sourceRoot":"../../../src","sources":["helpers/isOwnMessage.ts"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,WAAW,GAAIC,GAAY,IAAa;EAC5C,MAAMC,KAAK,GAAGC,MAAM,CAACF,GAAG,IAAI,EAAE,CAAC,CAACG,IAAI,CAAC,CAAC;EACtC,IAAI,CAACF,KAAK,EAAE;IACV,OAAO,EAAE;EACX;EACA,MAAMG,eAAe,GAAGH,KAAK,CAACI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAC3C,MAAMC,aAAa,GAAGF,eAAe,CAACG,QAAQ,CAAC,GAAG,CAAC,GAC/CH,eAAe,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAC7BD,eAAe;EACnB,OAAOE,aAAa,CAACE,WAAW,CAAC,CAAC;AACpC,CAAC;;AAED;AACA;AACA,MAAMC,oBAAoB,GAAIC,WAAkC,IAAa;EAC3E,IAAI,OAAOA,WAAW,KAAK,QAAQ,EAAE;IACnC,OAAOA,WAAW;EACpB;EACA,IAAI,CAACA,WAAW,EAAE;IAChB,OAAO,EAAE;EACX;EACA,OACEA,WAAW,CAACC,YAAY,IAAID,WAAW,CAACE,aAAa,IAAIF,WAAW,CAACG,EAAE,IAAI,EAAE;AAEjF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,GAAGA,CAC1BC,OAAkD,EAClDL,WAAkC,KACtB;EACZ,MAAMM,aAAa,GAAGjB,WAAW,CAACgB,OAAO,EAAEE,IAAI,EAAEJ,EAAE,CAAC;EACpD,IAAI,CAACG,aAAa,EAAE;IAClB,OAAO,KAAK;EACd;EAEA,MAAME,aAAa,GAAGnB,WAAW,CAACU,oBAAoB,CAACC,WAAW,CAAC,CAAC;EACpE,IAAI,CAACQ,aAAa,EAAE;IAClB,OAAO,KAAK;EACd;EAEA,OAAOF,aAAa,KAAKE,aAAa;AACxC,CAAC;AAACC,OAAA,CAAAL,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.deriveDisplayFilename = deriveDisplayFilename;
7
6
  exports.ensureFilenameHasExtension = ensureFilenameHasExtension;
8
7
  exports.filenameFromUrl = filenameFromUrl;
9
8
  exports.getExtensionForMime = getExtensionForMime;
@@ -238,17 +237,10 @@ function ensureFilenameHasExtension(fileName, mime) {
238
237
  return `${base}${getExtensionForMime(mime)}`;
239
238
  }
240
239
 
241
- /**
242
- * Best-effort filename derivation for a message bubble:
243
- * - server-provided `fileName`
244
- * - server-provided `originalName`
245
- * - URL pathname
246
- * - generic `media_<timestamp>` so we never render an empty label
247
- *
248
- * Always returns a string with a valid extension.
249
- */
250
- function deriveDisplayFilename(opts) {
251
- const candidate = opts.fileName && opts.fileName.trim() || opts.originalName && opts.originalName.trim() || filenameFromUrl(opts.url) || '';
252
- return ensureFilenameHasExtension(candidate, opts.mime);
253
- }
240
+ // NOTE: the "which name wins" decision (originalName vs the stored
241
+ // fileName vs the URL) lives in helpers/getDisplayFileName.ts - that is
242
+ // the single source of truth used across display, save, share and
243
+ // download call sites (bug #40: this used to be duplicated here with
244
+ // the priority backwards, so attachments showed/saved under the
245
+ // server's hash name instead of the sender's original one).
254
246
  //# sourceMappingURL=mimeToExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MIME_TO_EXT","VALID_EXT_RE","AUDIO_EXTENSIONS","IOS_AUDIO_PLAYBACK_EXTENSIONS","IOS_AUDIO_UNSUPPORTED_EXTENSIONS","AUDIO_EXT_RE","RegExp","map","e","replace","join","IOS_AUDIO_PLAYBACK_EXT_RE","AUDIO_NAME_HINT_RE","isLikelyAudio","mime","fileName","url","opts","m","toLowerCase","startsWith","durationNum","duration","Number","isFinite","waveForm","trim","length","name","originalName","urlLast","filenameFromUrl","test","urlPath","noQuery","split","decodeURIComponent","getExtensionForMime","normalized","last","pop","getLowerExtension","value","match","shouldCacheAudioForIosPlayback","src","urlName","candidates","hasIosPlayableName","some","getIosAudioPlaybackCacheExtension","candidate","ext","isUnsupportedAudioForIosPlayback","includes","ensureFilenameHasExtension","base","Date","now","deriveDisplayFilename"],"sourceRoot":"../../../src","sources":["helpers/mimeToExtension.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MIME_TO_EXT","VALID_EXT_RE","AUDIO_EXTENSIONS","IOS_AUDIO_PLAYBACK_EXTENSIONS","IOS_AUDIO_UNSUPPORTED_EXTENSIONS","AUDIO_EXT_RE","RegExp","map","e","replace","join","IOS_AUDIO_PLAYBACK_EXT_RE","AUDIO_NAME_HINT_RE","isLikelyAudio","mime","fileName","url","opts","m","toLowerCase","startsWith","durationNum","duration","Number","isFinite","waveForm","trim","length","name","originalName","urlLast","filenameFromUrl","test","urlPath","noQuery","split","decodeURIComponent","getExtensionForMime","normalized","last","pop","getLowerExtension","value","match","shouldCacheAudioForIosPlayback","src","urlName","candidates","hasIosPlayableName","some","getIosAudioPlaybackCacheExtension","candidate","ext","isUnsupportedAudioForIosPlayback","includes","ensureFilenameHasExtension","base","Date","now"],"sourceRoot":"../../../src","sources":["helpers/mimeToExtension.ts"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ var _react = require("react");
8
8
  var _reactRedux = require("react-redux");
9
9
  var _roomsSlice = require("../roomStore/roomsSlice");
10
10
  var _roomStore = require("../roomStore");
11
+ var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
11
12
  /**
12
13
  * Public hook for consumers embedding `<ChatRoom>` inside a tab-based
13
14
  * navigator. Mirrors the mount/unmount unread-tracking that ChatRoom
@@ -18,7 +19,10 @@ var _roomStore = require("../roomStore");
18
19
  * Without this hook, `useUnread()` will always return 0 for the chat
19
20
  * room because the SDK assumes "mounted == active". With this hook,
20
21
  * focus marks the room visible (clearing the badge) and blur stamps
21
- * `lastViewedTimestamp = Date.now()` so future messages count as unread.
22
+ * `lastViewedTimestamp` to the newest SERVER-acknowledged message so
23
+ * future messages count as unread. Deliberately not `Date.now()`: a
24
+ * device clock running ahead would write a future marker that the
25
+ * forward-only private-store merge could never correct again (bug #38).
22
26
  *
23
27
  * Usage with React Navigation:
24
28
  *
@@ -44,14 +48,19 @@ const useChatRoomFocus = ({
44
48
  isFocused: false
45
49
  });
46
50
  const leaveRoom = jid => {
47
- const timestamp = Date.now();
48
- dispatch((0, _roomsSlice.setLastViewedTimestamp)({
49
- chatJID: jid,
50
- timestamp
51
- }));
51
+ const state = _roomStore.store.getState();
52
+ const rooms = state.rooms?.rooms;
53
+ const timestamp = (0, _getServerReadTimestamp.getServerReadTimestamp)(rooms?.[jid], state.roomHeapSlice);
54
+ // Only stamp when we actually have something to anchor to - skip
55
+ // rather than fall back to the device clock (bug #38).
56
+ if (timestamp > 0) {
57
+ dispatch((0, _roomsSlice.setLastViewedTimestamp)({
58
+ chatJID: jid,
59
+ timestamp
60
+ }));
61
+ }
52
62
  dispatch((0, _roomsSlice.clearVisibleRoom)());
53
- const rooms = _roomStore.store.getState().rooms?.rooms;
54
- _roomStore.store.getState().chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
63
+ state.chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
55
64
  visibleRoomJID: jid
56
65
  }).catch(() => {});
57
66
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactRedux","_roomsSlice","_roomStore","useChatRoomFocus","roomJID","isFocused","dispatch","useDispatch","prevRef","useRef","leaveRoom","jid","timestamp","Date","now","setLastViewedTimestamp","chatJID","clearVisibleRoom","rooms","store","getState","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","catch","useEffect","prev","current","setCurrentRoom","setVisibleRoom","exports","_default","default"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,UAAA,GAAAH,OAAA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAiD;IACrEL,OAAO,EAAE,IAAI;IACbC,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,MAAMK,SAAS,GAAIC,GAAW,IAAK;IACjC,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BR,QAAQ,CAAC,IAAAS,kCAAsB,EAAC;MAAEC,OAAO,EAAEL,GAAG;MAAEC;IAAU,CAAC,CAAC,CAAC;IAC7DN,QAAQ,CAAC,IAAAW,4BAAgB,EAAC,CAAC,CAAC;IAC5B,MAAMC,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACF,KAAK,EAAEA,KAAK;IAC1CC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAUC,MAAM,EAC9CC,mCAAmC,CAACL,KAAK,EAAE;MAAEM,cAAc,EAAEb;IAAI,CAAC,CAAC,CACpEc,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAGnB,OAAO,CAACoB,OAAO;IAC5B,IAAID,IAAI,CAACtB,SAAS,IAAIsB,IAAI,CAACvB,OAAO,KAAKuB,IAAI,CAACvB,OAAO,KAAKA,OAAO,IAAI,CAACC,SAAS,CAAC,EAAE;MAC9EK,SAAS,CAACiB,IAAI,CAACvB,OAAO,CAAC;IACzB;IAEA,IAAIA,OAAO,IAAIC,SAAS,EAAE;MACxBC,QAAQ,CAAC,IAAAuB,0BAAc,EAAC;QAAEzB;MAAQ,CAAC,CAAC,CAAC;MACrCE,QAAQ,CAAC,IAAAwB,0BAAc,EAAC;QAAE1B;MAAQ,CAAC,CAAC,CAAC;IACvC;IAEAI,OAAO,CAACoB,OAAO,GAAG;MAAExB,OAAO,EAAEA,OAAO,IAAI,IAAI;MAAEC;IAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC,CAAC;EAElC,IAAAoB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMC,IAAI,GAAGnB,OAAO,CAACoB,OAAO;MAC5B,IAAID,IAAI,CAACtB,SAAS,IAAIsB,IAAI,CAACvB,OAAO,EAAE;QAClCM,SAAS,CAACiB,IAAI,CAACvB,OAAO,CAAC;MACzB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC2B,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA;AAAA,IAAA6B,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEa9B,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactRedux","_roomsSlice","_roomStore","_getServerReadTimestamp","useChatRoomFocus","roomJID","isFocused","dispatch","useDispatch","prevRef","useRef","leaveRoom","jid","state","store","getState","rooms","timestamp","getServerReadTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","clearVisibleRoom","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","catch","useEffect","prev","current","setCurrentRoom","setVisibleRoom","exports","_default","default"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMK,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAiD;IACrEL,OAAO,EAAE,IAAI;IACbC,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,MAAMK,SAAS,GAAIC,GAAW,IAAK;IACjC,MAAMC,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC;IAC9B,MAAMC,KAAK,GAAGH,KAAK,CAACG,KAAK,EAAEA,KAAK;IAChC,MAAMC,SAAS,GAAG,IAAAC,8CAAsB,EAACF,KAAK,GAAGJ,GAAG,CAAC,EAAEC,KAAK,CAACM,aAAa,CAAC;IAC3E;IACA;IACA,IAAIF,SAAS,GAAG,CAAC,EAAE;MACjBV,QAAQ,CAAC,IAAAa,kCAAsB,EAAC;QAAEC,OAAO,EAAET,GAAG;QAAEK;MAAU,CAAC,CAAC,CAAC;IAC/D;IACAV,QAAQ,CAAC,IAAAe,4BAAgB,EAAC,CAAC,CAAC;IAC3BT,KAAK,CAACU,gBAAgB,EAAUC,MAAM,EACnCC,mCAAmC,CAACT,KAAK,EAAE;MAAEU,cAAc,EAAEd;IAAI,CAAC,CAAC,CACpEe,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAGpB,OAAO,CAACqB,OAAO;IAC5B,IAAID,IAAI,CAACvB,SAAS,IAAIuB,IAAI,CAACxB,OAAO,KAAKwB,IAAI,CAACxB,OAAO,KAAKA,OAAO,IAAI,CAACC,SAAS,CAAC,EAAE;MAC9EK,SAAS,CAACkB,IAAI,CAACxB,OAAO,CAAC;IACzB;IAEA,IAAIA,OAAO,IAAIC,SAAS,EAAE;MACxBC,QAAQ,CAAC,IAAAwB,0BAAc,EAAC;QAAE1B;MAAQ,CAAC,CAAC,CAAC;MACrCE,QAAQ,CAAC,IAAAyB,0BAAc,EAAC;QAAE3B;MAAQ,CAAC,CAAC,CAAC;IACvC;IAEAI,OAAO,CAACqB,OAAO,GAAG;MAAEzB,OAAO,EAAEA,OAAO,IAAI,IAAI;MAAEC;IAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC,CAAC;EAElC,IAAAqB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMC,IAAI,GAAGpB,OAAO,CAACqB,OAAO;MAC5B,IAAID,IAAI,CAACvB,SAAS,IAAIuB,IAAI,CAACxB,OAAO,EAAE;QAClCM,SAAS,CAACkB,IAAI,CAACxB,OAAO,CAAC;MACzB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC4B,OAAA,CAAA7B,gBAAA,GAAAA,gBAAA;AAAA,IAAA8B,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEa/B,gBAAgB","ignoreList":[]}
@@ -9,7 +9,6 @@ var _reactRedux = require("react-redux");
9
9
  var _xmppProvider = require("../context/xmppProvider");
10
10
  var _chatAutoEnterer = require("../helpers/chatAutoEnterer");
11
11
  var _initRoomsPresence = require("../helpers/initRoomsPresence");
12
- var _updatedChatLastTimestamps = require("../helpers/updatedChatLastTimestamps");
13
12
  var _updateMessagesTillLast = require("../helpers/updateMessagesTillLast");
14
13
  var _authRefresh = require("../networking/authRefresh");
15
14
  var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
@@ -141,11 +140,17 @@ const useChatWrapperInit = ({
141
140
  }
142
141
  }
143
142
  try {
143
+ // getChatsPrivateStoreRequestStanza hydrates redux itself
144
+ // (dispatch(applyPrivateStoreMarkers(...)) internally,
145
+ // clamped + forward-only) - do not also apply the raw
146
+ // return value here. That used to double-dispatch via
147
+ // updatedChatLastTimestamps' unconditional
148
+ // setLastViewedTimestamp, which has neither the
149
+ // forward-only guard nor the future-marker clamp, so on
150
+ // every reconnect it could silently re-clobber a value
151
+ // the clamp had just corrected (bug #38).
144
152
  const roomTimestampObject = await newClient.getChatsPrivateStoreRequestStanza();
145
153
  console.log('Got chats private store', roomTimestampObject?.length || 0);
146
- if (roomTimestampObject) {
147
- (0, _updatedChatLastTimestamps.updatedChatLastTimestamps)(roomTimestampObject, dispatch);
148
- }
149
154
  if (!hasSyncedHistoryRef.current) {
150
155
  console.log('Updating messages till last');
151
156
  await (0, _updateMessagesTillLast.updateMessagesTillLast)(rooms, newClient);
@@ -180,11 +185,11 @@ const useChatWrapperInit = ({
180
185
  setInited(true);
181
186
  console.log(' Getting chats private store for existing client');
182
187
  try {
188
+ // See the "new client" branch above: getChatsPrivateStoreRequestStanza
189
+ // already hydrates redux (clamped + forward-only); do not
190
+ // also apply the raw return value here.
183
191
  const roomTimestampObject = await client.getChatsPrivateStoreRequestStanza();
184
192
  console.log('Got chats private store for existing client', roomTimestampObject?.length || 0);
185
- if (roomTimestampObject) {
186
- (0, _updatedChatLastTimestamps.updatedChatLastTimestamps)(roomTimestampObject, dispatch);
187
- }
188
193
  if (!hasSyncedHistoryRef.current) {
189
194
  console.log('Updating messages till last for existing client');
190
195
  await (0, _updateMessagesTillLast.updateMessagesTillLast)(rooms, client);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactRedux","_xmppProvider","_chatAutoEnterer","_initRoomsPresence","_updatedChatLastTimestamps","_updateMessagesTillLast","_authRefresh","_chatSettingsSlice","_roomsSlice","_useRoomState","_useChatSettingState","_isChatIdPresentInArray","_useGetNewArchRoom","_interopRequireDefault","_getRoomsWithRetry","_shallowEqual","e","__esModule","default","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","useDispatch","inited","setInited","useState","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","useRef","client","initializeClient","setClient","useXmppClient","syncRooms","useGetNewArchRoom","rooms","useSelector","state","roomsList","useRoomState","user","useChatSettingState","useEffect","xmppPassword","console","log","close","lastSyncedConfigRef","undefined","shallowEqual","current","setConfig","getRoomsWithRertyRequest","retryRooms","getRoomsWithRetry","loadRooms","disableLoad","setIsLoading","loading","loadingText","retryTimeout","initXmmpClient","translates","enabled","translations","setLangSource","xmppUsername","error","chatAutoEnterer","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","initRoomsPresence","newArch","loadedRooms","enableRoomsRetry","isSelectedRoomPresent","isChatIdPresentInArray","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","updatedChatLastTimestamps","updateMessagesTillLast","err","warn","refreshTokens","refreshAuthTokensQuietly","setTimeout","clearTimeout","_default","exports"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactRedux","_xmppProvider","_chatAutoEnterer","_initRoomsPresence","_updateMessagesTillLast","_authRefresh","_chatSettingsSlice","_roomsSlice","_useRoomState","_useChatSettingState","_isChatIdPresentInArray","_useGetNewArchRoom","_interopRequireDefault","_getRoomsWithRetry","_shallowEqual","e","__esModule","default","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","useDispatch","inited","setInited","useState","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","useRef","client","initializeClient","setClient","useXmppClient","syncRooms","useGetNewArchRoom","rooms","useSelector","state","roomsList","useRoomState","user","useChatSettingState","useEffect","xmppPassword","console","log","close","lastSyncedConfigRef","undefined","shallowEqual","current","setConfig","getRoomsWithRertyRequest","retryRooms","getRoomsWithRetry","loadRooms","disableLoad","setIsLoading","loading","loadingText","retryTimeout","initXmmpClient","translates","enabled","translations","setLangSource","xmppUsername","error","chatAutoEnterer","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","initRoomsPresence","newArch","loadedRooms","enableRoomsRetry","isSelectedRoomPresent","isChatIdPresentInArray","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","updateMessagesTillLast","err","warn","refreshTokens","refreshAuthTokensQuietly","setTimeout","clearTimeout","_default","exports"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
@@ -85,9 +85,6 @@ const en = {
85
85
  'action.save': 'Save',
86
86
  'action.delete': 'Delete',
87
87
  'action.leave': 'Leave',
88
- 'action.muted': 'Muted',
89
- 'action.unmuted': 'Unmuted',
90
- 'toast.muteFailed': 'Could not update notifications for this chat',
91
88
  'action.create': 'Create',
92
89
  'action.submit': 'Submit',
93
90
  'action.translate': 'Translate',
@@ -315,9 +312,6 @@ const fr = {
315
312
  'action.save': 'Enregistrer',
316
313
  'action.delete': 'Supprimer',
317
314
  'action.leave': 'Quitter',
318
- 'action.muted': 'En sourdine',
319
- 'action.unmuted': 'Activé',
320
- 'toast.muteFailed': 'Impossible de modifier les notifications de ce chat',
321
315
  'action.create': 'Créer',
322
316
  'action.submit': 'Soumettre',
323
317
  'action.translate': 'Traduire',
@@ -545,9 +539,6 @@ const es = {
545
539
  'action.save': 'Guardar',
546
540
  'action.delete': 'Eliminar',
547
541
  'action.leave': 'Salir',
548
- 'action.muted': 'Silenciado',
549
- 'action.unmuted': 'Activado',
550
- 'toast.muteFailed': 'No se pudieron cambiar las notificaciones de este chat',
551
542
  'action.create': 'Crear',
552
543
  'action.submit': 'Enviar',
553
544
  'action.translate': 'Traducir',
@@ -775,9 +766,6 @@ const pt = {
775
766
  'action.save': 'Guardar',
776
767
  'action.delete': 'Eliminar',
777
768
  'action.leave': 'Sair',
778
- 'action.muted': 'Muted',
779
- 'action.unmuted': 'Unmuted',
780
- 'toast.muteFailed': 'Could not update notifications for this chat',
781
769
  'action.create': 'Criar',
782
770
  'action.submit': 'Enviar',
783
771
  'action.translate': 'Traduzir',
@@ -1005,9 +993,6 @@ const ht = {
1005
993
  'action.save': 'Anrejistre',
1006
994
  'action.delete': 'Efase',
1007
995
  'action.leave': 'Kite',
1008
- 'action.muted': 'Muted',
1009
- 'action.unmuted': 'Unmuted',
1010
- 'toast.muteFailed': 'Could not update notifications for this chat',
1011
996
  'action.create': 'Kreye',
1012
997
  'action.submit': 'Soumèt',
1013
998
  'action.translate': 'Tradui',
@@ -1235,9 +1220,6 @@ const zh = {
1235
1220
  'action.save': '保存',
1236
1221
  'action.delete': '删除',
1237
1222
  'action.leave': '退出',
1238
- 'action.muted': 'Muted',
1239
- 'action.unmuted': 'Unmuted',
1240
- 'toast.muteFailed': 'Could not update notifications for this chat',
1241
1223
  'action.create': '创建',
1242
1224
  'action.submit': '提交',
1243
1225
  'action.translate': '翻译',