@ethora/chat-component-rn 26.7.2 → 26.7.3

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 (92) hide show
  1. package/lib/commonjs/components/MainComponents/ChatRoom.js +60 -3
  2. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  3. package/lib/commonjs/components/MainComponents/ChatWrapper.js +18 -0
  4. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  5. package/lib/commonjs/components/MainComponents/MessageList.js +9 -3
  6. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  7. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +130 -125
  8. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  9. package/lib/commonjs/context/xmppProvider.js +12 -0
  10. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  11. package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
  12. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  13. package/lib/commonjs/helpers/shallowEqual.js +36 -0
  14. package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
  15. package/lib/commonjs/hooks/useChatWrapperInit.js +15 -0
  16. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  17. package/lib/commonjs/hooks/useComposing.js +27 -0
  18. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  19. package/lib/commonjs/hooks/useSendMessage.js +27 -1
  20. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  21. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
  22. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  23. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +6 -2
  24. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  25. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  26. package/lib/commonjs/roomStore/roomsSlice.js +2 -2
  27. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  28. package/lib/module/components/MainComponents/ChatRoom.js +61 -4
  29. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  30. package/lib/module/components/MainComponents/ChatWrapper.js +19 -1
  31. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  32. package/lib/module/components/MainComponents/MessageList.js +9 -3
  33. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  34. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +130 -125
  35. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  36. package/lib/module/context/xmppProvider.js +12 -0
  37. package/lib/module/context/xmppProvider.js.map +1 -1
  38. package/lib/module/helpers/historyPreloadScheduler.js +66 -3
  39. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  40. package/lib/module/helpers/shallowEqual.js +31 -0
  41. package/lib/module/helpers/shallowEqual.js.map +1 -0
  42. package/lib/module/hooks/useChatWrapperInit.js +15 -0
  43. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  44. package/lib/module/hooks/useComposing.js +28 -1
  45. package/lib/module/hooks/useComposing.js.map +1 -1
  46. package/lib/module/hooks/useSendMessage.js +28 -2
  47. package/lib/module/hooks/useSendMessage.js.map +1 -1
  48. package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
  49. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  50. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +6 -2
  51. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  52. package/lib/module/networking/xmppClient.js.map +1 -1
  53. package/lib/module/roomStore/roomsSlice.js +1 -1
  54. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  55. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  56. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  57. package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
  58. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  59. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  60. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  61. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  62. package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
  63. package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
  64. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  65. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  66. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  67. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  68. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  69. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -0
  70. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  71. package/lib/typescript/networking/xmppClient.d.ts +1 -0
  72. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  73. package/lib/typescript/roomStore/roomsSlice.d.ts +1 -0
  74. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  75. package/lib/typescript/types/types.d.ts +1 -0
  76. package/lib/typescript/types/types.d.ts.map +1 -1
  77. package/package.json +1 -1
  78. package/src/components/MainComponents/ChatRoom.tsx +63 -1
  79. package/src/components/MainComponents/ChatWrapper.tsx +19 -1
  80. package/src/components/MainComponents/MessageList.tsx +19 -2
  81. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +8 -6
  82. package/src/context/xmppProvider.tsx +14 -0
  83. package/src/helpers/historyPreloadScheduler.ts +80 -3
  84. package/src/helpers/shallowEqual.ts +33 -0
  85. package/src/hooks/useChatWrapperInit.ts +15 -0
  86. package/src/hooks/useComposing.tsx +37 -1
  87. package/src/hooks/useSendMessage.tsx +32 -2
  88. package/src/hooks/useUnreadMessagesCounter.ts +11 -0
  89. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +17 -3
  90. package/src/networking/xmppClient.ts +5 -1
  91. package/src/roomStore/roomsSlice.ts +1 -1
  92. package/src/types/types.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","store","logout","setStoreClient","setConfig","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","msgSortableMs","setUnreadSyncing","runHistoryPreloadScheduler","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","XmppProvider","children","config","isVisible","client","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","xmppPassword","rotatedUser","getState","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","catch","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setOnOnline","underlying","e","getChatsPrivateStoreRequestStanza","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","Object","keys","rooms","length","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","jid","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","sub","addEventListener","next","roomJID","state","visibleRoomJID","chatJID","timestamp","Date","now","messageId","flushLastViewedToPrivateStoreStanza","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","list","m","ms","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","store","logout","setStoreClient","setConfig","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","msgSortableMs","setUnreadSyncing","runHistoryPreloadScheduler","updateMessagesTillLast","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","XmppProvider","children","config","isVisible","client","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","xmppPassword","rotatedUser","getState","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","catch","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setOnOnline","underlying","e","getChatsPrivateStoreRequestStanza","rooms","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","Object","keys","length","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","jid","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","sub","addEventListener","next","roomJID","state","visibleRoomJID","chatJID","timestamp","Date","now","messageId","flushLastViewedToPrivateStoreStanza","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","list","m","ms","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,13 +2,20 @@
2
2
 
3
3
  import { AppState } from 'react-native';
4
4
  import { store } from '../roomStore';
5
- import { applyRoomsPreloadBatch, setUnreadSyncing } from '../roomStore/roomsSlice';
5
+ import { applyRoomsPreloadBatch, setUnreadSyncing, RUNTIME_MESSAGE_LIMIT } from '../roomStore/roomsSlice';
6
6
  const DEFAULT_CONCURRENCY = 3;
7
7
  // Fetch the most recent ~20 on re-entry (mirrors web). A larger first page
8
8
  // also means more id-overlap with cache, so the merge in
9
9
  // `mergeHistoryIntoCache` rarely has to fall back to clear-and-replace.
10
10
  const DEFAULT_PAGE_SIZE = 20;
11
11
  const DEFAULT_RETRY_LIMIT = 2;
12
+ // When the first page is entirely unread (every fetched message is newer
13
+ // than `lastViewedTimestamp`), the true unread count could be far bigger
14
+ // than `pageSize` — `useUnread()` only ever sees what's been loaded. Page
15
+ // further back, up to this many extra fetches, until we either find the
16
+ // boundary or give up (`unreadCapped` then stays true so callers at least
17
+ // know the count is a floor, not exact). Customer-reported #34.
18
+ const MAX_UNREAD_CATCHUP_PAGES = 8;
12
19
  const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
13
20
  const messageTimestamp = m => {
14
21
  if (!m) {
@@ -180,11 +187,67 @@ export const runHistoryPreloadScheduler = async options => {
180
187
  throw new Error('history_timeout');
181
188
  }
182
189
  const nextRoom = store.getState().rooms.rooms[item.jid];
183
- const unreadCapped = computeUnreadCapped(nextRoom, fetchedMessages || [], pageSize);
190
+ let combined = fetchedMessages || [];
191
+ const lastViewed = Number(nextRoom?.lastViewedTimestamp) || 0;
192
+
193
+ // The first page was entirely unread — keep paging older until
194
+ // we find a message at/before `lastViewedTimestamp` (the true
195
+ // boundary) or run out of catch-up budget, so the count isn't
196
+ // silently truncated at `pageSize`.
197
+ if (lastViewed > 0 && computeUnreadCapped(nextRoom, combined, pageSize)) {
198
+ let lastPageLen = combined.length;
199
+ let extraPages = 0;
200
+ while (extraPages < MAX_UNREAD_CATCHUP_PAGES && lastPageLen >= pageSize && !signal?.aborted) {
201
+ const oldestId = combined.reduce((min, m) => {
202
+ const idNum = Number(m?.id);
203
+ if (!Number.isFinite(idNum)) {
204
+ return min;
205
+ }
206
+ return min === null || idNum < min ? idNum : min;
207
+ }, null);
208
+ if (oldestId === null) {
209
+ break;
210
+ }
211
+ let older;
212
+ try {
213
+ older = await client.getHistoryStanza(item.jid, pageSize, oldestId, undefined, {
214
+ coalesceRoom: true,
215
+ skipIfPreloaded: !forceReload,
216
+ source: 'background'
217
+ });
218
+ } catch {
219
+ break;
220
+ }
221
+ if (!older || !older.length) {
222
+ break;
223
+ }
224
+ combined = [...older, ...combined];
225
+ lastPageLen = older.length;
226
+ extraPages++;
227
+ const oldestTs = combined.reduce((minTs, m) => {
228
+ const ts = messageTimestamp(m);
229
+ return ts > 0 ? Math.min(minTs, ts) : minTs;
230
+ }, Number.MAX_SAFE_INTEGER);
231
+ if (oldestTs !== Number.MAX_SAFE_INTEGER && oldestTs <= lastViewed) {
232
+ break;
233
+ }
234
+ }
235
+ }
236
+
237
+ // `mergeHistoryIntoCache` (roomsSlice) caps whatever we dispatch
238
+ // here to the newest RUNTIME_MESSAGE_LIMIT messages before it
239
+ // ever reaches `unreadMiddleware` — so a catch-up fetch that
240
+ // pulled the true boundary can still have it silently dropped
241
+ // by that cap, leaving a falsely-confident `unreadCapped:false`
242
+ // (bug #34's failure mode again, just one layer downstream).
243
+ // Simulate that cap here so the flag reflects what will
244
+ // actually survive, not just what this fetch retrieved.
245
+ const simulatedStored = combined.length > RUNTIME_MESSAGE_LIMIT ? combined.slice(-RUNTIME_MESSAGE_LIMIT) : combined;
246
+ const unreadCapped = computeUnreadCapped(nextRoom, simulatedStored, pageSize);
184
247
  store.dispatch(applyRoomsPreloadBatch({
185
248
  rooms: [{
186
249
  jid: item.jid,
187
- messages: fetchedMessages || [],
250
+ messages: combined,
188
251
  unreadCapped,
189
252
  historyPreloadState: 'done'
190
253
  }]
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","RUNTIME_MESSAGE_LIMIT","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","MAX_UNREAD_CATCHUP_PAGES","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","combined","lastPageLen","extraPages","oldestId","idNum","older","simulatedStored","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * One-level shallow equality for plain objects. Used to avoid re-dispatching
5
+ * config into redux on every render just because the host passed a fresh
6
+ * object literal with the same values (e.g. `<Chat config={{...}} />`
7
+ * re-created inline) — reference equality alone would fire far too often,
8
+ * and a deep/JSON comparison risks throwing on non-serializable fields
9
+ * (functions, React elements) that configs legitimately carry.
10
+ */
11
+ export function shallowEqual(a, b) {
12
+ if (a === b) {
13
+ return true;
14
+ }
15
+ if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) {
16
+ return false;
17
+ }
18
+ const aKeys = Object.keys(a);
19
+ const bKeys = Object.keys(b);
20
+ if (aKeys.length !== bKeys.length) {
21
+ return false;
22
+ }
23
+ for (const key of aKeys) {
24
+ if (a[key] !== b[key]) {
25
+ return false;
26
+ }
27
+ }
28
+ return true;
29
+ }
30
+ export default shallowEqual;
31
+ //# sourceMappingURL=shallowEqual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["shallowEqual","a","b","aKeys","Object","keys","bKeys","length","key"],"sourceRoot":"../../../src","sources":["helpers/shallowEqual.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,YAAYA,CAACC,CAAU,EAAEC,CAAU,EAAW;EAC5D,IAAID,CAAC,KAAKC,CAAC,EAAE;IAAC,OAAO,IAAI;EAAC;EAC1B,IACE,OAAOD,CAAC,KAAK,QAAQ,IACrB,OAAOC,CAAC,KAAK,QAAQ,IACrBD,CAAC,KAAK,IAAI,IACVC,CAAC,KAAK,IAAI,EACV;IACA,OAAO,KAAK;EACd;EACA,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACJ,CAA4B,CAAC;EACvD,MAAMK,KAAK,GAAGF,MAAM,CAACC,IAAI,CAACH,CAA4B,CAAC;EACvD,IAAIC,KAAK,CAACI,MAAM,KAAKD,KAAK,CAACC,MAAM,EAAE;IAAC,OAAO,KAAK;EAAC;EACjD,KAAK,MAAMC,GAAG,IAAIL,KAAK,EAAE;IACvB,IACGF,CAAC,CAA6BO,GAAG,CAAC,KAClCN,CAAC,CAA6BM,GAAG,CAAC,EACnC;MACA,OAAO,KAAK;IACd;EACF;EACA,OAAO,IAAI;AACb;AAEA,eAAeR,YAAY","ignoreList":[]}
@@ -17,6 +17,7 @@ import { useChatSettingState } from './useChatSettingState';
17
17
  import { isChatIdPresentInArray } from '../helpers/isChatIdPresentInArray';
18
18
  import useGetNewArchRoom from './useGetNewArchRoom';
19
19
  import { getRoomsWithRetry } from '../helpers/getRoomsWithRetry';
20
+ import { shallowEqual } from '../helpers/shallowEqual';
20
21
  const useChatWrapperInit = ({
21
22
  roomJID,
22
23
  wasAutoSelected,
@@ -52,6 +53,20 @@ const useChatWrapperInit = ({
52
53
  }
53
54
  };
54
55
  }, [user.xmppPassword]);
56
+
57
+ // Presentational config flags (e.g. `disableHeader`) can change while the
58
+ // chat stays mounted — sync them to redux whenever `config` actually
59
+ // changes, not just at init. Shallow-equal guard: an inline object
60
+ // literal from the host is a fresh reference every render even when
61
+ // nothing in it changed, and dispatching unconditionally would re-render
62
+ // every config consumer on every host render.
63
+ const lastSyncedConfigRef = useRef(undefined);
64
+ useEffect(() => {
65
+ if (!shallowEqual(lastSyncedConfigRef.current, config)) {
66
+ lastSyncedConfigRef.current = config;
67
+ dispatch(setConfig(config));
68
+ }
69
+ }, [config, dispatch]);
55
70
  const getRoomsWithRertyRequest = async () => {
56
71
  setIsRetrying(true);
57
72
  const retryRooms = await getRoomsWithRetry(client, config, syncRooms, roomJID);
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","useXmppClient","chatAutoEnterer","initRoomsPresence","updatedChatLastTimestamps","updateMessagesTillLast","refreshAuthTokensQuietly","setLangSource","setConfig","setIsLoading","useRoomState","useChatSettingState","isChatIdPresentInArray","useGetNewArchRoom","getRoomsWithRetry","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","inited","setInited","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","client","initializeClient","setClient","syncRooms","rooms","state","roomsList","user","xmppPassword","console","log","close","getRoomsWithRertyRequest","retryRooms","loadRooms","disableLoad","loading","loadingText","undefined","retryTimeout","initXmmpClient","translates","enabled","translations","xmppUsername","error","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","newArch","loadedRooms","enableRoomsRetry","isSelectedRoomPresent","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","current","err","warn","refreshTokens","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","useXmppClient","chatAutoEnterer","initRoomsPresence","updatedChatLastTimestamps","updateMessagesTillLast","refreshAuthTokensQuietly","setLangSource","setConfig","setIsLoading","useRoomState","useChatSettingState","isChatIdPresentInArray","useGetNewArchRoom","getRoomsWithRetry","shallowEqual","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","inited","setInited","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","client","initializeClient","setClient","syncRooms","rooms","state","roomsList","user","xmppPassword","console","log","close","lastSyncedConfigRef","undefined","current","getRoomsWithRertyRequest","retryRooms","loadRooms","disableLoad","loading","loadingText","retryTimeout","initXmmpClient","translates","enabled","translations","xmppUsername","error","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","newArch","loadedRooms","enableRoomsRetry","isSelectedRoomPresent","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","err","warn","refreshTokens","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect } from 'react';
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { AppState } from 'react-native';
4
5
  import { useXmppClient } from '../context/xmppProvider';
5
6
  import { useSelector } from 'react-redux';
6
7
  import { useChatSettingState } from './useChatSettingState';
@@ -14,7 +15,15 @@ const useComposing = config => {
14
15
  const {
15
16
  user
16
17
  } = useChatSettingState();
18
+ // RN keeps a focused TextInput focused when the app is backgrounded or
19
+ // the device is locked — nothing fires `onBlur`, so without this the
20
+ // other participant sees "typing…" for as long as the user is away.
21
+ // Tracks whether the input is *currently* focused, independent of the
22
+ // foreground/background transition, so we know whether to resume
23
+ // composing on return.
24
+ const isFocusedRef = useRef(false);
17
25
  const sendStartComposing = useCallback(() => {
26
+ isFocusedRef.current = true;
18
27
  if (config?.disableTypingIndicator) {
19
28
  return;
20
29
  }
@@ -23,6 +32,7 @@ const useComposing = config => {
23
32
  }
24
33
  }, [activeRoomJID, client, config?.disableTypingIndicator, user.firstName, user.lastName]);
25
34
  const sendEndComposing = useCallback(() => {
35
+ isFocusedRef.current = false;
26
36
  if (config?.disableTypingIndicator) {
27
37
  return;
28
38
  }
@@ -36,6 +46,23 @@ const useComposing = config => {
36
46
  }, 100);
37
47
  return () => clearTimeout(timerId);
38
48
  }, [sendEndComposing]);
49
+
50
+ // Foreground/background transition only — a pause in typing must NOT
51
+ // clear the indicator (that would flicker for a slowly-composing user),
52
+ // so this deliberately does not hook keystroke/idle timing at all.
53
+ useEffect(() => {
54
+ const handleAppStateChange = nextState => {
55
+ if (nextState !== 'active') {
56
+ if (isFocusedRef.current && !config?.disableTypingIndicator && client) {
57
+ client.sendTypingRequestStanza(activeRoomJID || '', `${user.firstName} ${user.lastName}`, false);
58
+ }
59
+ } else if (isFocusedRef.current && !config?.disableTypingIndicator && client) {
60
+ client.sendTypingRequestStanza(activeRoomJID || '', `${user.firstName} ${user.lastName}`, true);
61
+ }
62
+ };
63
+ const subscription = AppState.addEventListener('change', handleAppStateChange);
64
+ return () => subscription.remove();
65
+ }, [activeRoomJID, client, config?.disableTypingIndicator, user.firstName, user.lastName]);
39
66
  return {
40
67
  sendStartComposing,
41
68
  sendEndComposing
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useXmppClient","useSelector","useChatSettingState","useComposing","config","client","activeRoomJID","state","rooms","user","sendStartComposing","disableTypingIndicator","sendTypingRequestStanza","firstName","lastName","sendEndComposing","timerId","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useComposing.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,QAAkB,OAAO;AACxD,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,WAAW,QAAQ,aAAa;AAEzC,SAASC,mBAAmB,QAAQ,uBAAuB;AAG3D,MAAMC,YAAY,GAAIC,MAAgB,IAAK;EACzC,MAAM;IAAEC;EAAO,CAAC,GAAGL,aAAa,CAAC,CAAC;EAClC,MAAM;IAAEM;EAAc,CAAC,GAAGL,WAAW,CAAEM,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAAC;EACxE,MAAM;IAAEC;EAAK,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EAEtC,MAAMQ,kBAAkB,GAAGZ,WAAW,CAAC,MAAM;IAC3C,IAAIM,MAAM,EAAEO,sBAAsB,EAAE;MAClC;IACF;IACA,IAAIN,MAAM,EAAE;MACVA,MAAM,CAACO,uBAAuB,CAC5BN,aAAa,IAAI,EAAE,EACnB,GAAGG,IAAI,CAACI,SAAS,IAAIJ,IAAI,CAACK,QAAQ,EAAE,EACpC,IACF,CAAC;IACH;EACF,CAAC,EAAE,CAACR,aAAa,EAAED,MAAM,EAAED,MAAM,EAAEO,sBAAsB,EAAEF,IAAI,CAACI,SAAS,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;EAE1F,MAAMC,gBAAgB,GAAGjB,WAAW,CAAC,MAAM;IACzC,IAAIM,MAAM,EAAEO,sBAAsB,EAAE;MAClC;IACF;IACA,IAAIN,MAAM,EAAE;MACVA,MAAM,CAACO,uBAAuB,CAC5BN,aAAa,IAAI,EAAE,EACnB,GAAGG,IAAI,CAACI,SAAS,IAAIJ,IAAI,CAACK,QAAQ,EAAE,EACpC,KACF,CAAC;IACH;EACF,CAAC,EAAE,CAACR,aAAa,EAAED,MAAM,EAAED,MAAM,EAAEO,sBAAsB,EAAEF,IAAI,CAACI,SAAS,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;EAE1Ff,SAAS,CAAC,MAAM;IACd,MAAMiB,OAAO,GAAGC,UAAU,CAAC,MAAM;MAC/BF,gBAAgB,CAAC,CAAC;IACpB,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMG,YAAY,CAACF,OAAO,CAAC;EACpC,CAAC,EAAE,CAACD,gBAAgB,CAAC,CAAC;EAEtB,OAAO;IAAEL,kBAAkB;IAAEK;EAAiB,CAAC;AACjD,CAAC;AAED,eAAeZ,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","AppState","useXmppClient","useSelector","useChatSettingState","useComposing","config","client","activeRoomJID","state","rooms","user","isFocusedRef","sendStartComposing","current","disableTypingIndicator","sendTypingRequestStanza","firstName","lastName","sendEndComposing","timerId","setTimeout","clearTimeout","handleAppStateChange","nextState","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useComposing.tsx"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ import { useDispatch, useSelector, useStore } from 'react-redux';
8
8
  import { addRoomMessage, setEditAction } from '../roomStore/roomsSlice';
9
9
  import { addMessageToHeap, clearMessageFailure, markMessageFailed } from '../roomStore/roomHeapSlice';
10
10
  import { uploadFileV2 } from '../networking/api-requests/auth.api';
11
- import { enqueueOutboundSend } from '../networking/outboundQueue';
11
+ import { enqueueOutboundSend, removeOutboundSend } from '../networking/outboundQueue';
12
12
  import { store } from '../roomStore';
13
13
  import { getGlobalXmppClient } from '../utils/clientRegistry';
14
14
  import { useEventHandlers } from './useEventHandlers';
@@ -178,6 +178,13 @@ export const useSendMessage = _configOverride => {
178
178
  }
179
179
  if (stillPending && !alreadyFailed) {
180
180
  console.warn(`Send watchdog fired — message ${optimisticId} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
181
+ // Drop the buffered replay now that the bubble is showing
182
+ // "failed / tap to retry" — a later onOnline flush must not
183
+ // silently resend it behind the user's back. If the original
184
+ // send actually lands after this point, the server echo still
185
+ // flips the bubble back to delivered (newMessageMidlleware);
186
+ // only an explicit tap-to-retry should trigger another send.
187
+ removeOutboundSend(optimisticId);
181
188
  dispatch(markMessageFailed({
182
189
  kind: 'text',
183
190
  id: optimisticId,
@@ -245,6 +252,9 @@ export const useSendMessage = _configOverride => {
245
252
  });
246
253
  } catch (error) {
247
254
  clearTimeout(watchdogTimer);
255
+ // Same reasoning as the watchdog: once the bubble shows failed,
256
+ // only an explicit tap-to-retry should resend it.
257
+ removeOutboundSend(optimisticId);
248
258
  dispatch(markMessageFailed({
249
259
  kind: 'text',
250
260
  id: optimisticId,
@@ -359,6 +369,10 @@ export const useSendMessage = _configOverride => {
359
369
  const alreadyFailed = state.roomHeapSlice?.failedMessages?.[id];
360
370
  if (stillPending && !alreadyFailed) {
361
371
  console.warn(`Media-send watchdog fired — ${id} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
372
+ // See the text-send watchdog above: drop the buffered replay so
373
+ // a later onOnline flush can't silently resend behind the
374
+ // "failed / tap to retry" bubble.
375
+ removeOutboundSend(id);
362
376
  dispatch(markMessageFailed({
363
377
  kind: 'media',
364
378
  id,
@@ -540,6 +554,18 @@ export const useSendMessage = _configOverride => {
540
554
  if (!payload) {
541
555
  return;
542
556
  }
557
+
558
+ // The server may have accepted the original send even though its
559
+ // echo arrived too late to beat the watchdog — the bubble shows
560
+ // failed, but a confirmed (non-pending) copy is already sitting in
561
+ // the room. Resending here would deliver a genuine duplicate; just
562
+ // clear the failure and let the existing copy stand.
563
+ const roomMsgs = rooms?.[payload.roomJID]?.messages || [];
564
+ const alreadyDelivered = roomMsgs.some(m => !m.pending && (m.id === failedId || m.xmppId === failedId));
565
+ if (alreadyDelivered) {
566
+ dispatch(clearMessageFailure(failedId));
567
+ return;
568
+ }
543
569
  dispatch(clearMessageFailure(failedId));
544
570
  handleMessageRetry({
545
571
  messageId: failedId,
@@ -554,7 +580,7 @@ export const useSendMessage = _configOverride => {
554
580
  } else {
555
581
  await sendMedia(payload.data, payload.type, payload.roomJID, payload.isReply, payload.isChecked, payload.mainMessage, failedId);
556
582
  }
557
- }, [failedMessages, dispatch, handleMessageRetry, sendMessage, sendMedia]);
583
+ }, [failedMessages, rooms, dispatch, handleMessageRetry, sendMessage, sendMedia]);
558
584
 
559
585
  // ChatRoom/ThreadWrapper consume this as the "edit branch" of send.
560
586
  // It mirrors the edit path inside `sendMessage` so callers can wire it