@ethora/chat-component-rn 26.5.7 → 26.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/CHANGELOG.md +133 -0
  2. package/README.md +67 -10
  3. package/index.js +24 -0
  4. package/lib/commonjs/assets/icons.js +5 -1
  5. package/lib/commonjs/assets/icons.js.map +1 -1
  6. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +11 -5
  7. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js +64 -38
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/ChatWrapper.js +57 -13
  11. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/MediaMessage.js +4 -2
  13. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/MessageContainer.js +2 -2
  15. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  16. package/lib/commonjs/components/MainComponents/MessageList.js +165 -28
  17. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  18. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +17 -8
  19. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  20. package/lib/commonjs/components/MainComponents/SystemMessage.js +34 -22
  21. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  22. package/lib/commonjs/components/MessageBubble/Message.js +84 -39
  23. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  24. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +82 -22
  25. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  26. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +16 -4
  27. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  28. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js +104 -0
  29. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  30. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +140 -24
  31. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  32. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +29 -1
  33. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  34. package/lib/commonjs/components/Modals/Modal/Modal.js +5 -1
  35. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  36. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +77 -47
  37. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  38. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  39. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  40. package/lib/commonjs/components/Modals/styledModalComponents.js +4 -9
  41. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  42. package/lib/commonjs/components/styled/MediaFilePreview.js +47 -28
  43. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  44. package/lib/commonjs/components/styled/MessageImage.js +49 -9
  45. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  46. package/lib/commonjs/components/styled/NewMessageLabel.js +8 -6
  47. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  48. package/lib/commonjs/components/styled/SendInput.js +49 -27
  49. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  50. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  51. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  52. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  53. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  54. package/lib/commonjs/components/styled/UnsupportedType.js +5 -1
  55. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  56. package/lib/commonjs/components/styled/VideoMessage.js +60 -14
  57. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  58. package/lib/commonjs/context/MessageNotificationContext.js +7 -7
  59. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  60. package/lib/commonjs/context/xmppProvider.js +244 -32
  61. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  62. package/lib/commonjs/helpers/chatAutoEnterer.js +2 -7
  63. package/lib/commonjs/helpers/chatAutoEnterer.js.map +1 -1
  64. package/lib/commonjs/helpers/historyPreloadScheduler.js +4 -1
  65. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  66. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +15 -5
  67. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  68. package/lib/commonjs/helpers/keyboardLayout.js +18 -0
  69. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -0
  70. package/lib/commonjs/helpers/mediaDimensions.js +51 -0
  71. package/lib/commonjs/helpers/mediaDimensions.js.map +1 -0
  72. package/lib/commonjs/helpers/normalizeRoomJid.js +20 -0
  73. package/lib/commonjs/helpers/normalizeRoomJid.js.map +1 -0
  74. package/lib/commonjs/hooks/useChatRoomFocus.js +87 -0
  75. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -0
  76. package/lib/commonjs/hooks/useHeapSender.js +1 -1
  77. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  78. package/lib/commonjs/hooks/useLogout.js +3 -3
  79. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  80. package/lib/commonjs/hooks/usePushNotifications.js +6 -2
  81. package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
  82. package/lib/commonjs/hooks/useRoomState.js +2 -0
  83. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  84. package/lib/commonjs/hooks/useSendMessage.js +201 -10
  85. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  86. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +12 -14
  87. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  88. package/lib/commonjs/main.js +7 -0
  89. package/lib/commonjs/main.js.map +1 -1
  90. package/lib/commonjs/networking/api-requests/auth.api.js +67 -0
  91. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  92. package/lib/commonjs/networking/apiClient.js +2 -1
  93. package/lib/commonjs/networking/apiClient.js.map +1 -1
  94. package/lib/commonjs/networking/outboundQueue.js +92 -0
  95. package/lib/commonjs/networking/outboundQueue.js.map +1 -0
  96. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  97. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  98. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  99. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  100. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  101. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  102. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  103. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  104. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  105. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  106. package/lib/commonjs/networking/xmppClient.js +294 -35
  107. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  108. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +22 -6
  109. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  110. package/lib/commonjs/roomStore/roomsSlice.js +157 -23
  111. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  112. package/lib/commonjs/utils/installPromiseRejectionTracker.js +83 -0
  113. package/lib/commonjs/utils/installPromiseRejectionTracker.js.map +1 -0
  114. package/lib/commonjs/utils/resendMessage.js +1 -1
  115. package/lib/commonjs/utils/resendMessage.js.map +1 -1
  116. package/lib/module/assets/icons.js +5 -1
  117. package/lib/module/assets/icons.js.map +1 -1
  118. package/lib/module/components/ContextMenu/ContextMenuComponents.js +11 -5
  119. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  120. package/lib/module/components/MainComponents/ChatRoom.js +65 -39
  121. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  122. package/lib/module/components/MainComponents/ChatWrapper.js +57 -13
  123. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  124. package/lib/module/components/MainComponents/MediaMessage.js +4 -2
  125. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  126. package/lib/module/components/MainComponents/MessageContainer.js +2 -2
  127. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  128. package/lib/module/components/MainComponents/MessageList.js +166 -29
  129. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  130. package/lib/module/components/MainComponents/ReduxWrapper.js +18 -8
  131. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  132. package/lib/module/components/MainComponents/SystemMessage.js +33 -21
  133. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  134. package/lib/module/components/MessageBubble/Message.js +85 -40
  135. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  136. package/lib/module/components/MessageBubble/MessageInteractions.js +84 -24
  137. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  138. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +15 -3
  139. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  140. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js +99 -0
  141. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  142. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +143 -25
  143. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  144. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +31 -3
  145. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  146. package/lib/module/components/Modals/Modal/Modal.js +5 -1
  147. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  148. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +79 -49
  149. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  150. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  151. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  152. package/lib/module/components/Modals/styledModalComponents.js +4 -9
  153. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  154. package/lib/module/components/styled/MediaFilePreview.js +47 -28
  155. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  156. package/lib/module/components/styled/MessageImage.js +51 -11
  157. package/lib/module/components/styled/MessageImage.js.map +1 -1
  158. package/lib/module/components/styled/NewMessageLabel.js +8 -6
  159. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  160. package/lib/module/components/styled/SendInput.js +50 -28
  161. package/lib/module/components/styled/SendInput.js.map +1 -1
  162. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  163. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  164. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  165. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  166. package/lib/module/components/styled/UnsupportedType.js +5 -1
  167. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  168. package/lib/module/components/styled/VideoMessage.js +61 -15
  169. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  170. package/lib/module/context/MessageNotificationContext.js +7 -7
  171. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  172. package/lib/module/context/xmppProvider.js +246 -34
  173. package/lib/module/context/xmppProvider.js.map +1 -1
  174. package/lib/module/helpers/chatAutoEnterer.js +2 -7
  175. package/lib/module/helpers/chatAutoEnterer.js.map +1 -1
  176. package/lib/module/helpers/historyPreloadScheduler.js +4 -1
  177. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  178. package/lib/module/helpers/insertMessageWithDelimiter.js +15 -5
  179. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  180. package/lib/module/helpers/keyboardLayout.js +12 -0
  181. package/lib/module/helpers/keyboardLayout.js.map +1 -0
  182. package/lib/module/helpers/mediaDimensions.js +46 -0
  183. package/lib/module/helpers/mediaDimensions.js.map +1 -0
  184. package/lib/module/helpers/normalizeRoomJid.js +15 -0
  185. package/lib/module/helpers/normalizeRoomJid.js.map +1 -0
  186. package/lib/module/hooks/useChatRoomFocus.js +82 -0
  187. package/lib/module/hooks/useChatRoomFocus.js.map +1 -0
  188. package/lib/module/hooks/useHeapSender.js +1 -1
  189. package/lib/module/hooks/useHeapSender.js.map +1 -1
  190. package/lib/module/hooks/useLogout.js +3 -3
  191. package/lib/module/hooks/useLogout.js.map +1 -1
  192. package/lib/module/hooks/usePushNotifications.js +6 -2
  193. package/lib/module/hooks/usePushNotifications.js.map +1 -1
  194. package/lib/module/hooks/useRoomState.js +2 -0
  195. package/lib/module/hooks/useRoomState.js.map +1 -1
  196. package/lib/module/hooks/useSendMessage.js +203 -12
  197. package/lib/module/hooks/useSendMessage.js.map +1 -1
  198. package/lib/module/hooks/useUnreadMessagesCounter.js +12 -14
  199. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  200. package/lib/module/main.js +1 -0
  201. package/lib/module/main.js.map +1 -1
  202. package/lib/module/networking/api-requests/auth.api.js +67 -1
  203. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  204. package/lib/module/networking/apiClient.js +2 -1
  205. package/lib/module/networking/apiClient.js.map +1 -1
  206. package/lib/module/networking/outboundQueue.js +84 -0
  207. package/lib/module/networking/outboundQueue.js.map +1 -0
  208. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  209. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  210. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  211. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  212. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  213. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  214. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  215. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  216. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  217. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  218. package/lib/module/networking/xmppClient.js +294 -35
  219. package/lib/module/networking/xmppClient.js.map +1 -1
  220. package/lib/module/roomStore/Middleware/unreadMidlleware.js +22 -6
  221. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  222. package/lib/module/roomStore/roomsSlice.js +154 -22
  223. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  224. package/lib/module/utils/installPromiseRejectionTracker.js +78 -0
  225. package/lib/module/utils/installPromiseRejectionTracker.js.map +1 -0
  226. package/lib/module/utils/resendMessage.js +1 -1
  227. package/lib/module/utils/resendMessage.js.map +1 -1
  228. package/lib/typescript/assets/icons.d.ts +8 -4
  229. package/lib/typescript/assets/icons.d.ts.map +1 -1
  230. package/lib/typescript/components/ContextMenu/ContextMenuComponents.d.ts.map +1 -1
  231. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  232. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  233. package/lib/typescript/components/MainComponents/MediaMessage.d.ts +1 -0
  234. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  235. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  236. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  237. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts +1 -0
  238. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  239. package/lib/typescript/components/MainComponents/SystemMessage.d.ts +0 -7
  240. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  241. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  242. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +4 -2
  243. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  244. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  245. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts +29 -0
  246. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts.map +1 -0
  247. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +0 -1
  248. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  249. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  250. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  251. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  252. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  253. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  254. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  255. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  256. package/lib/typescript/components/styled/NewMessageLabel.d.ts +1 -5
  257. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  258. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  259. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts +9 -1
  260. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  261. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  262. package/lib/typescript/components/styled/UnsupportedType.d.ts +1 -0
  263. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  264. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  265. package/lib/typescript/context/xmppProvider.d.ts +1 -0
  266. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  267. package/lib/typescript/helpers/chatAutoEnterer.d.ts.map +1 -1
  268. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  269. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  270. package/lib/typescript/helpers/keyboardLayout.d.ts +9 -0
  271. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -0
  272. package/lib/typescript/helpers/mediaDimensions.d.ts +9 -0
  273. package/lib/typescript/helpers/mediaDimensions.d.ts.map +1 -0
  274. package/lib/typescript/helpers/normalizeRoomJid.d.ts +2 -0
  275. package/lib/typescript/helpers/normalizeRoomJid.d.ts.map +1 -0
  276. package/lib/typescript/hooks/useChatRoomFocus.d.ts +42 -0
  277. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -0
  278. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  279. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  280. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  281. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  282. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  283. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  284. package/lib/typescript/main.d.ts +1 -0
  285. package/lib/typescript/main.d.ts.map +1 -1
  286. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -0
  287. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  288. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  289. package/lib/typescript/networking/outboundQueue.d.ts +57 -0
  290. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -0
  291. package/lib/typescript/networking/xmpp/createTimeoutPromise.xmpp.d.ts.map +1 -1
  292. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -1
  293. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  294. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts +1 -1
  295. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts.map +1 -1
  296. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  297. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  298. package/lib/typescript/networking/xmppClient.d.ts +33 -4
  299. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  300. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  301. package/lib/typescript/roomStore/roomsSlice.d.ts +8 -1
  302. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  303. package/lib/typescript/types/models/media.model.d.ts +1 -0
  304. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  305. package/lib/typescript/types/models/xmpp.model.d.ts +1 -1
  306. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  307. package/lib/typescript/types/types.d.ts +4 -0
  308. package/lib/typescript/types/types.d.ts.map +1 -1
  309. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts +20 -0
  310. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts.map +1 -0
  311. package/lib/typescript/utils/resendMessage.d.ts.map +1 -1
  312. package/package.json +18 -2
  313. package/src/assets/icons.tsx +23 -14
  314. package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
  315. package/src/components/MainComponents/ChatRoom.tsx +81 -66
  316. package/src/components/MainComponents/ChatWrapper.tsx +99 -21
  317. package/src/components/MainComponents/MediaMessage.tsx +3 -0
  318. package/src/components/MainComponents/MessageContainer.tsx +4 -2
  319. package/src/components/MainComponents/MessageList.tsx +175 -28
  320. package/src/components/MainComponents/ReduxWrapper.tsx +19 -9
  321. package/src/components/MainComponents/SystemMessage.tsx +38 -26
  322. package/src/components/MessageBubble/Message.tsx +91 -62
  323. package/src/components/MessageBubble/MessageInteractions.tsx +98 -29
  324. package/src/components/Modals/AttachSheet/AttachSheet.tsx +17 -3
  325. package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
  326. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +152 -25
  327. package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
  328. package/src/components/Modals/Modal/Modal.tsx +4 -1
  329. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +70 -58
  330. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  331. package/src/components/Modals/styledModalComponents.tsx +4 -9
  332. package/src/components/styled/MediaFilePreview.tsx +46 -26
  333. package/src/components/styled/MessageImage.tsx +58 -13
  334. package/src/components/styled/NewMessageLabel.tsx +8 -5
  335. package/src/components/styled/SendInput.tsx +64 -29
  336. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +15 -5
  337. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +7 -2
  338. package/src/components/styled/UnsupportedType.tsx +7 -1
  339. package/src/components/styled/VideoMessage.tsx +59 -11
  340. package/src/context/MessageNotificationContext.tsx +8 -8
  341. package/src/context/xmppProvider.tsx +247 -30
  342. package/src/helpers/chatAutoEnterer.ts +2 -8
  343. package/src/helpers/historyPreloadScheduler.ts +4 -1
  344. package/src/helpers/insertMessageWithDelimiter.ts +22 -15
  345. package/src/helpers/keyboardLayout.ts +18 -0
  346. package/src/helpers/mediaDimensions.ts +47 -0
  347. package/src/helpers/normalizeRoomJid.ts +6 -0
  348. package/src/hooks/useChatRoomFocus.ts +95 -0
  349. package/src/hooks/useHeapSender.tsx +2 -1
  350. package/src/hooks/useLogout.tsx +3 -3
  351. package/src/hooks/usePushNotifications.ts +21 -8
  352. package/src/hooks/useRoomState.tsx +4 -0
  353. package/src/hooks/useSendMessage.tsx +258 -13
  354. package/src/hooks/useUnreadMessagesCounter.ts +13 -16
  355. package/src/main.ts +1 -0
  356. package/src/networking/api-requests/auth.api.ts +55 -1
  357. package/src/networking/apiClient.ts +2 -1
  358. package/src/networking/outboundQueue.ts +98 -0
  359. package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +5 -1
  360. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +11 -13
  361. package/src/networking/xmpp/getRoomsPaged.xmpp.ts +27 -3
  362. package/src/networking/xmpp/presenceInRoom.xmpp.ts +24 -9
  363. package/src/networking/xmpp/sendTextMessage.xmpp.ts +2 -1
  364. package/src/networking/xmppClient.ts +317 -43
  365. package/src/roomStore/Middleware/unreadMidlleware.tsx +23 -5
  366. package/src/roomStore/roomsSlice.ts +177 -27
  367. package/src/types/models/media.model.ts +3 -0
  368. package/src/types/models/xmpp.model.ts +2 -1
  369. package/src/types/types.ts +15 -0
  370. package/src/utils/installPromiseRejectionTracker.ts +91 -0
  371. package/src/utils/resendMessage.ts +2 -1
@@ -22,6 +22,8 @@ import { inviteRoomRequest } from './xmpp/inviteRoomRequest.xmpp';
22
22
  import { getRooms } from './xmpp/getRooms.xmpp';
23
23
  import { handleStanza } from './xmpp/handleStanzas.xmpp';
24
24
  import { pushLog as devPushLog } from '../utils/devLogger';
25
+ import { normalizeRoomJid } from '../helpers/normalizeRoomJid';
26
+ import { clearOutboundSends, enqueueOutboundSend, flushOutboundSends } from './outboundQueue';
25
27
 
26
28
  // Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
27
29
  const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
@@ -50,7 +52,25 @@ export class XmppClient {
50
52
  reconnectAttempts = 0;
51
53
  maxReconnectAttempts = 5;
52
54
  reconnectDelay = 2000;
55
+ // Upper bound on the backoff delay. The old hard stop at
56
+ // maxReconnectAttempts gave up entirely after ~62s; now we keep retrying
57
+ // at a steady cadence on a long outage and just clamp the delay here.
58
+ maxReconnectDelay = 30000;
59
+ // Timestamp of the last forced reconnect so bursty external triggers
60
+ // (NetInfo + AppState + the provider watchdog firing together) can't
61
+ // spawn a reconnect storm.
62
+ lastReconnectAt = 0;
53
63
  suppressReconnect = false;
64
+ // Tracked so close()/disconnect() can cancel a pending reconnect —
65
+ // otherwise a scheduleReconnect() timer fires after logout and (until
66
+ // suppressReconnect short-circuits it) keeps the dead instance alive.
67
+ reconnectTimer = null;
68
+ // Single-flight guard for reconnect(). Multiple triggers can fire near-
69
+ // simultaneously (AppState 'active' + NetInfo restore + a scheduled
70
+ // timer). Without this, two overlapping reconnect()s each spawn a fresh
71
+ // underlying client and one is leaked with its `stanza` handler still
72
+ // bound → duplicate stanza dispatch into redux.
73
+ reconnecting = false;
54
74
 
55
75
  // Set when SASL fails with `not-authorized` (typically a stale JWT-
56
76
  // derived XMPP password after idle). Triggers the credentialsProvider
@@ -58,6 +78,9 @@ export class XmppClient {
58
78
  lastAuthError = null;
59
79
  credentialsProvider = null;
60
80
  credentialsRefreshInFlight = null;
81
+ // Fired by the provider on every 'online' so it can re-join MUC rooms
82
+ // after a reconnect (bug #21 — reconnected but not in the room).
83
+ onOnlineCallback = null;
61
84
 
62
85
  // ---- QoS state (mirrors web XmppClient) ----------------------------
63
86
  presencesReady = false;
@@ -88,6 +111,12 @@ export class XmppClient {
88
111
  this.credentialsProvider = provider;
89
112
  }
90
113
 
114
+ /** Install a callback invoked on every successful 'online'. The provider
115
+ * uses it to re-join MUC rooms after a reconnect. */
116
+ setOnOnline(cb) {
117
+ this.onOnlineCallback = cb;
118
+ }
119
+
91
120
  /** Swap in fresh credentials before the next reconnect. */
92
121
  updateCredentials(username, password) {
93
122
  this.username = username;
@@ -246,11 +275,22 @@ export class XmppClient {
246
275
  this.host = this.xmppSettings?.host || url.match(/wss:\/\/([^:/]+)/)?.[1] || '';
247
276
  this.conference = this.xmppSettings?.conference || `conference.${this.host}`;
248
277
  this.status = 'connecting';
278
+
279
+ // Defensive: if a previous underlying client is still referenced
280
+ // (initializeClient reached from a path other than reconnect()),
281
+ // detach its handlers before we overwrite the ref so the orphaned
282
+ // client can't keep dispatching stanzas into redux.
283
+ try {
284
+ this.detachEventListeners();
285
+ } catch {}
249
286
  this.client = xmpp.client({
250
287
  service: url,
251
288
  username: walletToUsername(this.username),
252
289
  password: this.password
253
290
  });
291
+ try {
292
+ this.client?.reconnect?.stop?.();
293
+ } catch {}
254
294
 
255
295
  // Concurrent room preloads each register their own short-lived
256
296
  // 'stanza' handler (getHistory, getRooms, getChatsPrivateStore,
@@ -278,7 +318,18 @@ export class XmppClient {
278
318
  const to = stanza?.attrs?.to || '';
279
319
  devPushLog('xmpp', `→ ${tag}${id ? ` id=${id}` : ''}${to ? ` to=${to.split('/')[0]}` : ''}`, stanza?.toString ? stanza.toString() : undefined);
280
320
  } catch {}
281
- return origSend(stanza);
321
+ const result = origSend(stanza);
322
+ // Most stanza helpers fire-and-forget `client.send(...)`
323
+ // without awaiting/catching. On @xmpp/client builds where
324
+ // send() returns a Promise, a transient send failure (e.g.
325
+ // mid-reconnect) then surfaces as a red-screen "Uncaught (in
326
+ // promise, id: N)" (#4). Attach a no-op catch so the
327
+ // rejection is considered handled — callers that DO await/
328
+ // catch still get it, because we return the SAME promise.
329
+ if (result && typeof result.catch === 'function') {
330
+ result.catch(() => {});
331
+ }
332
+ return result;
282
333
  };
283
334
  // Property may be non-writable on some builds; defineProperty
284
335
  // gives us a clearer error than a plain assignment.
@@ -298,14 +349,35 @@ export class XmppClient {
298
349
  this.lastAuthError = 'not-authorized';
299
350
  }
300
351
  this.status = 'error';
352
+ // A connect-time failure lands in 'error', which — unlike a
353
+ // 'disconnect' after being online — has no other retry path
354
+ // (onError doesn't reschedule; the provider only reacts to
355
+ // 'offline'). Schedule a backoff retry so a failed initial or
356
+ // reconnect attempt recovers on its own. reconnect() refreshes
357
+ // creds first when the failure was a SASL not-authorized.
358
+ if (!this.suppressReconnect) {
359
+ try {
360
+ this.scheduleReconnect();
361
+ } catch {}
362
+ }
301
363
  });
302
364
  } catch (error) {
303
365
  console.error('Error initializing client:', error);
304
366
  this.status = 'error';
305
367
  }
306
368
  }
369
+
370
+ // Stored so detachEventListeners() can remove exactly the handlers we
371
+ // added (not xmpp.js's internal ones). Without this a re-login left the
372
+ // previous instance's `stanza` handler bound, double-dispatching every
373
+ // incoming stanza into the (new session's) redux store.
374
+
307
375
  attachEventListeners() {
308
- this.client.on('disconnect', () => {
376
+ // Idempotent: drop any previously-attached handlers first so a
377
+ // reconnect that re-runs initializeClient on a fresh underlying
378
+ // client doesn't stack duplicates.
379
+ this.detachEventListeners();
380
+ this.onDisconnect = () => {
309
381
  console.log('XMPP disconnected.');
310
382
  this.status = 'offline';
311
383
  try {
@@ -313,8 +385,19 @@ export class XmppClient {
313
385
  // that don't reference it; tree-shaken via dead-code elim.
314
386
  devPushLog('xmpp', 'disconnect');
315
387
  } catch {}
316
- });
317
- this.client.on('online', () => {
388
+ // Self-heal at the socket level. The provider's reconnect effect
389
+ // keys on `client.status`, but that's a mutated class field React
390
+ // does NOT track — so a silent socket drop (e.g. JS paused by the
391
+ // debugger, iOS WebSocket suspend) never re-runs the effect and the
392
+ // client sits 'offline' forever (sends then queue and time out).
393
+ // Driving reconnect here makes recovery independent of React.
394
+ if (!this.suppressReconnect) {
395
+ try {
396
+ this.scheduleReconnect();
397
+ } catch {}
398
+ }
399
+ };
400
+ this.onOnline = () => {
318
401
  console.log('XMPP online.', new Date());
319
402
  this.status = 'online';
320
403
  this.presencesReady = true;
@@ -322,8 +405,30 @@ export class XmppClient {
322
405
  try {
323
406
  devPushLog('xmpp', 'online', this.username);
324
407
  } catch {}
325
- });
326
- this.client.on('error', error => {
408
+ // Notify the provider that the session is live again. On a RECONNECT
409
+ // (new stream) the client is no longer joined to any MUC, so the
410
+ // provider must re-send room presences — otherwise messages get a
411
+ // local double-tick but never reach the room (bug #21). Harmless on
412
+ // the first connect (room list not loaded yet → joins nothing; the
413
+ // bootstrap's own allRoomPresences handles that pass).
414
+ try {
415
+ this.onOnlineCallback?.();
416
+ } catch (err) {
417
+ console.warn('onOnline callback failed', err);
418
+ }
419
+ // Drain any sends that were buffered while the stream was down. The
420
+ // presence stanzas from onOnlineCallback above were written to the
421
+ // socket synchronously (allRoomPresences → presenceInRoom send the
422
+ // <presence> before yielding), so flushing here puts the message
423
+ // stanzas AFTER the joins on the same stream — XMPP's in-order
424
+ // per-stream processing guarantees the MUC join lands first.
425
+ try {
426
+ this.flushPendingSends();
427
+ } catch (err) {
428
+ console.warn('flushPendingSends failed', err);
429
+ }
430
+ };
431
+ this.onError = error => {
327
432
  console.error('XMPP client error:', error);
328
433
  if (isNotAuthorizedError(error)) {
329
434
  this.lastAuthError = 'not-authorized';
@@ -331,8 +436,8 @@ export class XmppClient {
331
436
  try {
332
437
  devPushLog('xmpp', 'error', error && error.message || error);
333
438
  } catch {}
334
- });
335
- this.client.on('stanza', stanza => {
439
+ };
440
+ this.onStanza = stanza => {
336
441
  try {
337
442
  const tag = stanza?.name || 'stanza';
338
443
  const id = stanza?.attrs?.id || '';
@@ -341,7 +446,35 @@ export class XmppClient {
341
446
  devPushLog('xmpp', `← ${tag}${id ? ` id=${id}` : ''}${type ? ` type=${type}` : ''}${from ? ` from=${from.split('/')[0]}` : ''}`, stanza?.toString ? stanza.toString() : undefined);
342
447
  } catch {}
343
448
  handleStanza.bind(this, stanza, this)();
344
- });
449
+ };
450
+ this.client.on('disconnect', this.onDisconnect);
451
+ this.client.on('online', this.onOnline);
452
+ this.client.on('error', this.onError);
453
+ this.client.on('stanza', this.onStanza);
454
+ }
455
+ detachEventListeners() {
456
+ const c = this.client;
457
+ if (!c?.removeListener) {
458
+ return;
459
+ }
460
+ try {
461
+ if (this.onDisconnect) {
462
+ c.removeListener('disconnect', this.onDisconnect);
463
+ }
464
+ if (this.onOnline) {
465
+ c.removeListener('online', this.onOnline);
466
+ }
467
+ if (this.onError) {
468
+ c.removeListener('error', this.onError);
469
+ }
470
+ if (this.onStanza) {
471
+ c.removeListener('stanza', this.onStanza);
472
+ }
473
+ } catch {}
474
+ this.onDisconnect = undefined;
475
+ this.onOnline = undefined;
476
+ this.onError = undefined;
477
+ this.onStanza = undefined;
345
478
  }
346
479
 
347
480
  /**
@@ -378,38 +511,96 @@ export class XmppClient {
378
511
  if (this.suppressReconnect) {
379
512
  return;
380
513
  }
381
- if (this.reconnectAttempts >= this.maxReconnectAttempts) {
382
- console.error('Max reconnect attempts reached.');
514
+ if (this.reconnecting || this.reconnectTimer) {
383
515
  return;
384
516
  }
385
517
  this.reconnectAttempts++;
386
- const delay = this.reconnectDelay * Math.pow(2, this.reconnectAttempts - 1);
518
+ const exp = Math.min(this.reconnectAttempts - 1, Math.max(0, this.maxReconnectAttempts));
519
+ const delay = Math.min(this.maxReconnectDelay, this.reconnectDelay * Math.pow(2, exp));
387
520
  console.log(`Reconnecting attempt ${this.reconnectAttempts} in ${delay}ms`);
388
- setTimeout(() => this.reconnect(), delay);
521
+ // No clearTimeout needed — the guard above guarantees no pending timer.
522
+ this.reconnectTimer = setTimeout(() => {
523
+ this.reconnectTimer = null;
524
+ // The connection may have recovered on its own (xmpp.js auto-
525
+ // reconnect) between scheduling and firing — don't tear down a
526
+ // healthy stream. forceReconnect() bypasses this by calling
527
+ // reconnect() directly.
528
+ if (this.status === 'online') {
529
+ this.reconnectAttempts = 0;
530
+ return;
531
+ }
532
+ this.reconnect();
533
+ }, delay);
534
+ }
535
+
536
+ /**
537
+ * Force an immediate reconnect, resetting the backoff counter. Called
538
+ * by the provider when NetInfo reports the network came back or the app
539
+ * returned to the foreground — we don't want to wait out the existing
540
+ * exponential delay (or a maxed-out attempt count) in those cases.
541
+ */
542
+ forceReconnect() {
543
+ if (this.suppressReconnect) {
544
+ return;
545
+ }
546
+ // Debounce bursts: NetInfo restore + AppState 'active' + the provider
547
+ // watchdog can fire within the same instant. reconnect() dedups
548
+ // CONCURRENT calls, but sequential ones (one finishes, the next
549
+ // arrives) would still each tear down + re-create the client. Ignore
550
+ // forces within 2s of the last one.
551
+ const now = Date.now();
552
+ if (now - this.lastReconnectAt < 2000) {
553
+ return;
554
+ }
555
+ this.lastReconnectAt = now;
556
+ if (this.reconnectTimer) {
557
+ clearTimeout(this.reconnectTimer);
558
+ this.reconnectTimer = null;
559
+ }
560
+ this.reconnectAttempts = 0;
561
+ this.reconnect();
389
562
  }
390
563
  async reconnect() {
391
564
  if (this.suppressReconnect) {
392
565
  return;
393
566
  }
567
+ // Single-flight: ignore overlapping triggers (AppState + NetInfo +
568
+ // scheduled timer) so we never spawn two underlying clients and leak
569
+ // one with live listeners (duplicate stanza dispatch).
570
+ if (this.reconnecting) {
571
+ console.log('reconnect already in progress — skip');
572
+ return;
573
+ }
574
+ this.reconnecting = true;
394
575
  console.log('Attempting to reconnect xmpp client...');
576
+ try {
577
+ // If the last failure was a SASL `not-authorized` (typically a stale
578
+ // JWT-derived XMPP password after idle), try to fetch fresh creds
579
+ // before retrying. Without this, reconnect retries with the same
580
+ // stale password forever and the user has to kill the app.
581
+ if (this.lastAuthError === 'not-authorized' && this.credentialsProvider) {
582
+ try {
583
+ await this.refreshCredentialsOnce();
584
+ } catch (err) {
585
+ console.warn('XMPP credential refresh failed; reconnecting with cached creds', err);
586
+ }
587
+ }
395
588
 
396
- // If the last failure was a SASL `not-authorized` (typically a stale
397
- // JWT-derived XMPP password after idle), try to fetch fresh creds
398
- // before retrying. Without this, reconnect retries with the same
399
- // stale password forever and the user has to kill the app.
400
- if (this.lastAuthError === 'not-authorized' && this.credentialsProvider) {
401
- try {
402
- await this.refreshCredentialsOnce();
403
- } catch (err) {
404
- console.warn('XMPP credential refresh failed; reconnecting with cached creds', err);
589
+ // Tear the OLD underlying client down FULLY before spinning up a new
590
+ // one: detach our handlers (so its `stanza` handler can't keep
591
+ // dispatching) and stop it. detachEventListeners() must run while
592
+ // `this.client` still points at the old client — i.e. before
593
+ // initializeClient() reassigns it.
594
+ const old = this.client;
595
+ if (old) {
596
+ this.detachEventListeners();
597
+ try {
598
+ await old.stop();
599
+ } catch {}
405
600
  }
406
- }
407
- if (this.client) {
408
- this.client.stop().finally(() => {
409
- this.initializeClient();
410
- });
411
- } else {
412
601
  this.initializeClient();
602
+ } finally {
603
+ this.reconnecting = false;
413
604
  }
414
605
  }
415
606
 
@@ -431,6 +622,13 @@ export class XmppClient {
431
622
  try {
432
623
  const fresh = await provider();
433
624
  if (fresh?.username && fresh?.password) {
625
+ // Apply whatever the provider returns and retry. We do NOT try to
626
+ // detect "auth expired" by comparing passwords — a stable
627
+ // xmppPassword (e.g. deterministic from the JWT/wallet) is the
628
+ // NORMAL case for a transient blip, and treating it as expiry
629
+ // falsely bricked recoverable sessions (sending stopped). If the
630
+ // creds really are stale we simply get not-authorized again and
631
+ // retry, which is the confirmed-good 26.5.7 behaviour.
434
632
  this.updateCredentials(fresh.username, fresh.password);
435
633
  this.lastAuthError = null;
436
634
  }
@@ -447,7 +645,17 @@ export class XmppClient {
447
645
  return this.close();
448
646
  }
449
647
  async close() {
648
+ // Cancel any pending reconnect so a stale timer can't resurrect this
649
+ // instance after teardown/logout.
650
+ if (this.reconnectTimer) {
651
+ clearTimeout(this.reconnectTimer);
652
+ this.reconnectTimer = null;
653
+ }
450
654
  if (this.client) {
655
+ // Detach OUR handlers first so a late stanza during the close
656
+ // handshake can't re-enter handleStanza and dispatch into a store
657
+ // that's being wiped (or, on re-login, the new session's store).
658
+ this.detachEventListeners();
451
659
  try {
452
660
  await this.client.stop();
453
661
  console.log('XMPP client connection closed.');
@@ -456,6 +664,11 @@ export class XmppClient {
456
664
  }
457
665
  }
458
666
  this.status = 'offline';
667
+ this.presencesReady = false;
668
+ // Permanent teardown (logout / unmount) — drop buffered sends so they
669
+ // don't replay into the next session. Reconnect uses old.stop(), NOT
670
+ // close(), so the queue still survives a transient drop+reconnect.
671
+ clearOutboundSends();
459
672
  }
460
673
  getRoomsStanza = async () => {
461
674
  await getRooms(this.client);
@@ -470,10 +683,10 @@ export class XmppClient {
470
683
  await inviteRoomRequest(this.client, to, roomJid);
471
684
  }
472
685
  leaveTheRoomStanza = roomJID => {
473
- leaveTheRoom(roomJID, this.client);
686
+ leaveTheRoom(normalizeRoomJid(roomJID, this.conference), this.client);
474
687
  };
475
688
  presenceInRoomStanza = roomJID => {
476
- presenceInRoom(this.client, roomJID);
689
+ presenceInRoom(this.client, normalizeRoomJid(roomJID, this.conference));
477
690
  };
478
691
  getHistoryStanza = async (chatJID, max, before, id, options) => {
479
692
  if (options?.coalesceRoom) {
@@ -488,21 +701,49 @@ export class XmppClient {
488
701
  return await getHistory(this.client, chatJID, max, before, id);
489
702
  };
490
703
  getLastMessageArchiveStanza(roomJID) {
491
- getLastMessage(this.client, roomJID);
704
+ getLastMessage(this.client, normalizeRoomJid(roomJID, this.conference));
492
705
  }
493
706
  setRoomImageStanza = (roomJid, roomThumbnail, type, roomBackground) => {
494
707
  setRoomImage(roomJid, roomThumbnail, type, this.client, roomBackground);
495
708
  };
496
709
  getRoomInfoStanza = roomJID => {
497
- getRoomInfo(roomJID, this.client);
710
+ getRoomInfo(normalizeRoomJid(roomJID, this.conference), this.client);
498
711
  };
499
712
  getRoomMembersStanza = roomJID => {
500
- getRoomMembers(roomJID, this.client);
713
+ getRoomMembers(normalizeRoomJid(roomJID, this.conference), this.client);
501
714
  };
502
715
 
716
+ /**
717
+ * True when the underlying stream is live enough to actually put a
718
+ * stanza on the wire. Used to gate sends: when false we buffer instead
719
+ * of firing a fire-and-forget stanza into a dead/half-open socket
720
+ * (which is silently dropped and only caught by the 30s watchdog).
721
+ */
722
+ isStreamReady() {
723
+ return !!this.client && this.status === 'online' && !this.reconnecting;
724
+ }
725
+
726
+ /** Replay buffered sends against this (now-online) client, in order. */
727
+ flushPendingSends() {
728
+ flushOutboundSends(this, Date.now());
729
+ }
730
+
503
731
  //messages
504
732
  sendMessage = (roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId) => {
733
+ // Stream down (start race / reconnect window): buffer and replay on
734
+ // the next 'online' instead of losing the stanza. Returns false so
735
+ // callers know the send was deferred, not delivered.
736
+ if (!this.isStreamReady()) {
737
+ enqueueOutboundSend({
738
+ optimisticId: customId || `send-text-message-${Date.now()}`,
739
+ roomJID,
740
+ enqueuedAt: Date.now(),
741
+ send: c => c.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId)
742
+ });
743
+ return false;
744
+ }
505
745
  sendTextMessage(this.client, roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, this.devServer || DEFAULT_DEV_SERVER, customId);
746
+ return true;
506
747
  };
507
748
  deleteMessageStanza(room, msgId) {
508
749
  deleteMessage(this.client, room, msgId);
@@ -547,6 +788,19 @@ export class XmppClient {
547
788
  }
548
789
  }
549
790
  sendMediaMessageStanza(roomJID, data, customId) {
791
+ // Media: the file is already uploaded by the time we get here; only the
792
+ // stanza needs the stream. Buffer + replay on reconnect if it's down so
793
+ // the upload isn't wasted (otherwise the stanza is lost and the media
794
+ // bubble sits pending until the 30s watchdog fails it).
795
+ if (!this.isStreamReady()) {
796
+ enqueueOutboundSend({
797
+ optimisticId: customId || `send-media-message-${Date.now()}`,
798
+ roomJID,
799
+ enqueuedAt: Date.now(),
800
+ send: c => c.sendMediaMessageStanza(roomJID, data, customId)
801
+ });
802
+ return undefined;
803
+ }
550
804
  return sendMediaMessage(this.client, roomJID, data, customId, this.devServer || DEFAULT_DEV_SERVER);
551
805
  }
552
806
 
@@ -568,9 +822,14 @@ export class XmppClient {
568
822
  sendMessageReactionStanza(_messageId, _roomJid, _reactionsList, _reactionSymbol) {
569
823
  console.warn('sendMessageReactionStanza: not implemented in RN xmpp client');
570
824
  }
571
- sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, _langSource) {
825
+ sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, _langSource, customId) {
572
826
  // No translate tag support yet — fall back to a regular text send.
573
- this.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage);
827
+ // Forward the caller's customId so the optimistic message (heap/redux)
828
+ // reconciles with the server echo. Without it, translated sends went
829
+ // out with no client id → the echo carried a server-assigned id and
830
+ // surfaced as a stuck-pending message PLUS a duplicate (affected both
831
+ // the live translated-send path and resend).
832
+ this.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId);
574
833
  }
575
834
  }
576
835
  export default XmppClient;
@@ -1 +1 @@
1
- {"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","suppressReconnect","lastAuthError","credentialsProvider","credentialsRefreshInFlight","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","catch","on","log","from","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","scheduleReconnect","delay","Math","pow","reconnect","refreshCredentialsOnce","stop","finally","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","result","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["xmpp","walletToUsername","sendMediaMessage","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStore","sendTypingRequest","getHistory","sendTextMessage","deleteMessage","presenceInRoom","getLastMessage","createRoom","setRoomImage","getRoomMembers","getRoomInfo","leaveTheRoom","editMessage","inviteRoomRequest","getRooms","handleStanza","pushLog","devPushLog","normalizeRoomJid","clearOutboundSends","enqueueOutboundSend","flushOutboundSends","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","cur","delete","set","startedAt","s","url","match","detachEventListeners","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","refreshCredentialsOnce","old","fresh","disconnect","options","close","getRoomsStanza","createRoomStanza","title","description","inviteRoomRequestStanza","roomJid","leaveTheRoomStanza","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","setRoomImageStanza","roomThumbnail","roomBackground","getRoomInfoStanza","getRoomMembersStanza","isStreamReady","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","optimisticId","enqueuedAt","deleteMessageStanza","room","msgId","editMessageStanza","sendTypingRequestStanza","chatId","fullName","getChatsPrivateStoreRequestStanza","actionSetTimestampToPrivateStoreStanza","timestamp","chats","flushLastViewedToPrivateStoreStanza","rooms","opts","sendMediaMessageStanza","data","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}