@ethora/chat-component-rn 26.5.5 → 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 (420) hide show
  1. package/CHANGELOG.md +177 -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/ChatHeader.js +7 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js +66 -34
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/ChatWrapper.js +59 -14
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/MediaMessage.js +15 -7
  15. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  16. package/lib/commonjs/components/MainComponents/MessageContainer.js +2 -2
  17. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  18. package/lib/commonjs/components/MainComponents/MessageList.js +175 -30
  19. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  20. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +17 -8
  21. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  22. package/lib/commonjs/components/MainComponents/SystemMessage.js +34 -22
  23. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  24. package/lib/commonjs/components/MessageBubble/Message.js +117 -19
  25. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  26. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +82 -22
  27. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  28. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +16 -4
  29. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  30. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js +104 -0
  31. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  32. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +175 -40
  33. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  34. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +29 -1
  35. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  36. package/lib/commonjs/components/Modals/Modal/Modal.js +5 -1
  37. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  38. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +78 -39
  39. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  40. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  41. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  42. package/lib/commonjs/components/Modals/styledModalComponents.js +4 -9
  43. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  44. package/lib/commonjs/components/styled/MediaFilePreview.js +115 -5
  45. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  46. package/lib/commonjs/components/styled/MessageImage.js +49 -10
  47. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  48. package/lib/commonjs/components/styled/NewMessageLabel.js +8 -6
  49. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  50. package/lib/commonjs/components/styled/SendInput.js +53 -29
  51. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  52. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  53. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  54. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  55. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  56. package/lib/commonjs/components/styled/UnsupportedType.js +5 -1
  57. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  58. package/lib/commonjs/components/styled/VideoMessage.js +60 -22
  59. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  60. package/lib/commonjs/context/MessageNotificationContext.js +7 -7
  61. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  62. package/lib/commonjs/context/xmppProvider.js +315 -34
  63. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  64. package/lib/commonjs/helpers/chatAutoEnterer.js +2 -7
  65. package/lib/commonjs/helpers/chatAutoEnterer.js.map +1 -1
  66. package/lib/commonjs/helpers/historyPreloadScheduler.js +4 -1
  67. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  68. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +15 -5
  69. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  70. package/lib/commonjs/helpers/keyboardLayout.js +18 -0
  71. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -0
  72. package/lib/commonjs/helpers/mediaDimensions.js +51 -0
  73. package/lib/commonjs/helpers/mediaDimensions.js.map +1 -0
  74. package/lib/commonjs/helpers/mimeToExtension.js +131 -0
  75. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -0
  76. package/lib/commonjs/helpers/normalizeRoomJid.js +20 -0
  77. package/lib/commonjs/helpers/normalizeRoomJid.js.map +1 -0
  78. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +73 -1
  79. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  80. package/lib/commonjs/hooks/useChatRoomFocus.js +87 -0
  81. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -0
  82. package/lib/commonjs/hooks/useChatWrapperInit.js +22 -10
  83. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  84. package/lib/commonjs/hooks/useEventHandlers.js +9 -1
  85. package/lib/commonjs/hooks/useEventHandlers.js.map +1 -1
  86. package/lib/commonjs/hooks/useHeapSender.js +1 -1
  87. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  88. package/lib/commonjs/hooks/useLogout.js +3 -3
  89. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  90. package/lib/commonjs/hooks/useMessageHeapState.js +6 -2
  91. package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
  92. package/lib/commonjs/hooks/usePushNotifications.js +6 -2
  93. package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
  94. package/lib/commonjs/hooks/useRoomState.js +2 -0
  95. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  96. package/lib/commonjs/hooks/useSendMessage.js +249 -14
  97. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  98. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +12 -14
  99. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  100. package/lib/commonjs/main.js +7 -0
  101. package/lib/commonjs/main.js.map +1 -1
  102. package/lib/commonjs/networking/api-requests/auth.api.js +74 -1
  103. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  104. package/lib/commonjs/networking/apiClient.js +2 -1
  105. package/lib/commonjs/networking/apiClient.js.map +1 -1
  106. package/lib/commonjs/networking/outboundQueue.js +92 -0
  107. package/lib/commonjs/networking/outboundQueue.js.map +1 -0
  108. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  109. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  110. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  111. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  112. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  113. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  114. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  115. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  116. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  117. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  118. package/lib/commonjs/networking/xmppClient.js +371 -26
  119. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  120. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +22 -6
  121. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  122. package/lib/commonjs/roomStore/roomHeapSlice.js +26 -8
  123. package/lib/commonjs/roomStore/roomHeapSlice.js.map +1 -1
  124. package/lib/commonjs/roomStore/roomsSlice.js +157 -23
  125. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  126. package/lib/commonjs/utils/installPromiseRejectionTracker.js +83 -0
  127. package/lib/commonjs/utils/installPromiseRejectionTracker.js.map +1 -0
  128. package/lib/commonjs/utils/resendMessage.js +1 -1
  129. package/lib/commonjs/utils/resendMessage.js.map +1 -1
  130. package/lib/module/assets/icons.js +5 -1
  131. package/lib/module/assets/icons.js.map +1 -1
  132. package/lib/module/components/ContextMenu/ContextMenuComponents.js +11 -5
  133. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  134. package/lib/module/components/MainComponents/ChatHeader.js +7 -1
  135. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  136. package/lib/module/components/MainComponents/ChatRoom.js +67 -35
  137. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  138. package/lib/module/components/MainComponents/ChatWrapper.js +59 -14
  139. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  140. package/lib/module/components/MainComponents/MediaMessage.js +15 -7
  141. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  142. package/lib/module/components/MainComponents/MessageContainer.js +2 -2
  143. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  144. package/lib/module/components/MainComponents/MessageList.js +176 -31
  145. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  146. package/lib/module/components/MainComponents/ReduxWrapper.js +18 -8
  147. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  148. package/lib/module/components/MainComponents/SystemMessage.js +33 -21
  149. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  150. package/lib/module/components/MessageBubble/Message.js +118 -20
  151. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  152. package/lib/module/components/MessageBubble/MessageInteractions.js +84 -24
  153. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  154. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +15 -3
  155. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  156. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js +99 -0
  157. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  158. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +179 -42
  159. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  160. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +31 -3
  161. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  162. package/lib/module/components/Modals/Modal/Modal.js +5 -1
  163. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  164. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +80 -41
  165. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  166. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  167. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  168. package/lib/module/components/Modals/styledModalComponents.js +4 -9
  169. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  170. package/lib/module/components/styled/MediaFilePreview.js +116 -6
  171. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  172. package/lib/module/components/styled/MessageImage.js +51 -12
  173. package/lib/module/components/styled/MessageImage.js.map +1 -1
  174. package/lib/module/components/styled/NewMessageLabel.js +8 -6
  175. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  176. package/lib/module/components/styled/SendInput.js +54 -30
  177. package/lib/module/components/styled/SendInput.js.map +1 -1
  178. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  179. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  180. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  181. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  182. package/lib/module/components/styled/UnsupportedType.js +5 -1
  183. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  184. package/lib/module/components/styled/VideoMessage.js +61 -23
  185. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  186. package/lib/module/context/MessageNotificationContext.js +7 -7
  187. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  188. package/lib/module/context/xmppProvider.js +319 -37
  189. package/lib/module/context/xmppProvider.js.map +1 -1
  190. package/lib/module/helpers/chatAutoEnterer.js +2 -7
  191. package/lib/module/helpers/chatAutoEnterer.js.map +1 -1
  192. package/lib/module/helpers/historyPreloadScheduler.js +4 -1
  193. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  194. package/lib/module/helpers/insertMessageWithDelimiter.js +15 -5
  195. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  196. package/lib/module/helpers/keyboardLayout.js +12 -0
  197. package/lib/module/helpers/keyboardLayout.js.map +1 -0
  198. package/lib/module/helpers/mediaDimensions.js +46 -0
  199. package/lib/module/helpers/mediaDimensions.js.map +1 -0
  200. package/lib/module/helpers/mimeToExtension.js +124 -0
  201. package/lib/module/helpers/mimeToExtension.js.map +1 -0
  202. package/lib/module/helpers/normalizeRoomJid.js +15 -0
  203. package/lib/module/helpers/normalizeRoomJid.js.map +1 -0
  204. package/lib/module/helpers/resolveInitBeforeLoadUser.js +71 -0
  205. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  206. package/lib/module/hooks/useChatRoomFocus.js +82 -0
  207. package/lib/module/hooks/useChatRoomFocus.js.map +1 -0
  208. package/lib/module/hooks/useChatWrapperInit.js +22 -10
  209. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  210. package/lib/module/hooks/useEventHandlers.js +9 -1
  211. package/lib/module/hooks/useEventHandlers.js.map +1 -1
  212. package/lib/module/hooks/useHeapSender.js +1 -1
  213. package/lib/module/hooks/useHeapSender.js.map +1 -1
  214. package/lib/module/hooks/useLogout.js +3 -3
  215. package/lib/module/hooks/useLogout.js.map +1 -1
  216. package/lib/module/hooks/useMessageHeapState.js +6 -2
  217. package/lib/module/hooks/useMessageHeapState.js.map +1 -1
  218. package/lib/module/hooks/usePushNotifications.js +6 -2
  219. package/lib/module/hooks/usePushNotifications.js.map +1 -1
  220. package/lib/module/hooks/useRoomState.js +2 -0
  221. package/lib/module/hooks/useRoomState.js.map +1 -1
  222. package/lib/module/hooks/useSendMessage.js +252 -17
  223. package/lib/module/hooks/useSendMessage.js.map +1 -1
  224. package/lib/module/hooks/useUnreadMessagesCounter.js +12 -14
  225. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  226. package/lib/module/main.js +1 -0
  227. package/lib/module/main.js.map +1 -1
  228. package/lib/module/networking/api-requests/auth.api.js +74 -2
  229. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  230. package/lib/module/networking/apiClient.js +2 -1
  231. package/lib/module/networking/apiClient.js.map +1 -1
  232. package/lib/module/networking/outboundQueue.js +84 -0
  233. package/lib/module/networking/outboundQueue.js.map +1 -0
  234. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  235. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  236. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  237. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  238. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  239. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  240. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  241. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  242. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  243. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  244. package/lib/module/networking/xmppClient.js +371 -26
  245. package/lib/module/networking/xmppClient.js.map +1 -1
  246. package/lib/module/roomStore/Middleware/unreadMidlleware.js +22 -6
  247. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  248. package/lib/module/roomStore/roomHeapSlice.js +24 -7
  249. package/lib/module/roomStore/roomHeapSlice.js.map +1 -1
  250. package/lib/module/roomStore/roomsSlice.js +154 -22
  251. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  252. package/lib/module/utils/installPromiseRejectionTracker.js +78 -0
  253. package/lib/module/utils/installPromiseRejectionTracker.js.map +1 -0
  254. package/lib/module/utils/resendMessage.js +1 -1
  255. package/lib/module/utils/resendMessage.js.map +1 -1
  256. package/lib/typescript/assets/icons.d.ts +8 -4
  257. package/lib/typescript/assets/icons.d.ts.map +1 -1
  258. package/lib/typescript/components/ContextMenu/ContextMenuComponents.d.ts.map +1 -1
  259. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  260. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  261. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  262. package/lib/typescript/components/MainComponents/MediaMessage.d.ts +1 -0
  263. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  264. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  265. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  266. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts +1 -0
  267. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  268. package/lib/typescript/components/MainComponents/SystemMessage.d.ts +0 -7
  269. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  270. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  271. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +4 -2
  272. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  273. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  274. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts +29 -0
  275. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts.map +1 -0
  276. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +0 -1
  277. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  278. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  279. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  280. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts +6 -0
  281. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  282. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  283. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  284. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  285. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  286. package/lib/typescript/components/styled/NewMessageLabel.d.ts +1 -5
  287. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  288. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  289. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts +9 -1
  290. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  291. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  292. package/lib/typescript/components/styled/UnsupportedType.d.ts +1 -0
  293. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  294. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  295. package/lib/typescript/context/xmppProvider.d.ts +1 -0
  296. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  297. package/lib/typescript/helpers/chatAutoEnterer.d.ts.map +1 -1
  298. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  299. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  300. package/lib/typescript/helpers/keyboardLayout.d.ts +9 -0
  301. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -0
  302. package/lib/typescript/helpers/mediaDimensions.d.ts +9 -0
  303. package/lib/typescript/helpers/mediaDimensions.d.ts.map +1 -0
  304. package/lib/typescript/helpers/mimeToExtension.d.ts +37 -0
  305. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -0
  306. package/lib/typescript/helpers/normalizeRoomJid.d.ts +2 -0
  307. package/lib/typescript/helpers/normalizeRoomJid.d.ts.map +1 -0
  308. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts +18 -0
  309. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  310. package/lib/typescript/hooks/useChatRoomFocus.d.ts +42 -0
  311. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -0
  312. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  313. package/lib/typescript/hooks/useEventHandlers.d.ts +6 -0
  314. package/lib/typescript/hooks/useEventHandlers.d.ts.map +1 -1
  315. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  316. package/lib/typescript/hooks/useMessageHeapState.d.ts +2 -0
  317. package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
  318. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  319. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  320. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  321. package/lib/typescript/hooks/useSendMessage.d.ts +2 -1
  322. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  323. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  324. package/lib/typescript/main.d.ts +1 -0
  325. package/lib/typescript/main.d.ts.map +1 -1
  326. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -0
  327. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  328. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  329. package/lib/typescript/networking/outboundQueue.d.ts +57 -0
  330. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -0
  331. package/lib/typescript/networking/xmpp/createTimeoutPromise.xmpp.d.ts.map +1 -1
  332. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -1
  333. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  334. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts +1 -1
  335. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts.map +1 -1
  336. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  337. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  338. package/lib/typescript/networking/xmppClient.d.ts +58 -5
  339. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  340. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  341. package/lib/typescript/roomStore/roomHeapSlice.d.ts +22 -1
  342. package/lib/typescript/roomStore/roomHeapSlice.d.ts.map +1 -1
  343. package/lib/typescript/roomStore/roomsSlice.d.ts +8 -1
  344. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  345. package/lib/typescript/types/models/media.model.d.ts +1 -0
  346. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  347. package/lib/typescript/types/models/xmpp.model.d.ts +1 -1
  348. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  349. package/lib/typescript/types/types.d.ts +10 -0
  350. package/lib/typescript/types/types.d.ts.map +1 -1
  351. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts +20 -0
  352. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts.map +1 -0
  353. package/lib/typescript/utils/resendMessage.d.ts.map +1 -1
  354. package/package.json +18 -2
  355. package/src/assets/icons.tsx +23 -14
  356. package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
  357. package/src/components/MainComponents/ChatHeader.tsx +5 -1
  358. package/src/components/MainComponents/ChatRoom.tsx +81 -61
  359. package/src/components/MainComponents/ChatWrapper.tsx +100 -21
  360. package/src/components/MainComponents/MediaMessage.tsx +18 -8
  361. package/src/components/MainComponents/MessageContainer.tsx +4 -2
  362. package/src/components/MainComponents/MessageList.tsx +185 -31
  363. package/src/components/MainComponents/ReduxWrapper.tsx +19 -9
  364. package/src/components/MainComponents/SystemMessage.tsx +38 -26
  365. package/src/components/MessageBubble/Message.tsx +110 -27
  366. package/src/components/MessageBubble/MessageInteractions.tsx +98 -29
  367. package/src/components/Modals/AttachSheet/AttachSheet.tsx +17 -3
  368. package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
  369. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +182 -37
  370. package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
  371. package/src/components/Modals/Modal/Modal.tsx +4 -1
  372. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +77 -44
  373. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  374. package/src/components/Modals/styledModalComponents.tsx +4 -9
  375. package/src/components/styled/MediaFilePreview.tsx +111 -5
  376. package/src/components/styled/MessageImage.tsx +58 -14
  377. package/src/components/styled/NewMessageLabel.tsx +8 -5
  378. package/src/components/styled/SendInput.tsx +67 -29
  379. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +15 -5
  380. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +7 -2
  381. package/src/components/styled/UnsupportedType.tsx +7 -1
  382. package/src/components/styled/VideoMessage.tsx +59 -18
  383. package/src/context/MessageNotificationContext.tsx +8 -8
  384. package/src/context/xmppProvider.tsx +337 -32
  385. package/src/helpers/chatAutoEnterer.ts +2 -8
  386. package/src/helpers/historyPreloadScheduler.ts +4 -1
  387. package/src/helpers/insertMessageWithDelimiter.ts +22 -15
  388. package/src/helpers/keyboardLayout.ts +18 -0
  389. package/src/helpers/mediaDimensions.ts +47 -0
  390. package/src/helpers/mimeToExtension.ts +135 -0
  391. package/src/helpers/normalizeRoomJid.ts +6 -0
  392. package/src/helpers/resolveInitBeforeLoadUser.ts +79 -0
  393. package/src/hooks/useChatRoomFocus.ts +95 -0
  394. package/src/hooks/useChatWrapperInit.ts +51 -46
  395. package/src/hooks/useEventHandlers.tsx +24 -1
  396. package/src/hooks/useHeapSender.tsx +2 -1
  397. package/src/hooks/useLogout.tsx +3 -3
  398. package/src/hooks/useMessageHeapState.tsx +6 -2
  399. package/src/hooks/usePushNotifications.ts +21 -8
  400. package/src/hooks/useRoomState.tsx +4 -0
  401. package/src/hooks/useSendMessage.tsx +333 -17
  402. package/src/hooks/useUnreadMessagesCounter.ts +13 -16
  403. package/src/main.ts +1 -0
  404. package/src/networking/api-requests/auth.api.ts +60 -2
  405. package/src/networking/apiClient.ts +2 -1
  406. package/src/networking/outboundQueue.ts +98 -0
  407. package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +5 -1
  408. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +11 -13
  409. package/src/networking/xmpp/getRoomsPaged.xmpp.ts +27 -3
  410. package/src/networking/xmpp/presenceInRoom.xmpp.ts +24 -9
  411. package/src/networking/xmpp/sendTextMessage.xmpp.ts +2 -1
  412. package/src/networking/xmppClient.ts +399 -31
  413. package/src/roomStore/Middleware/unreadMidlleware.tsx +23 -5
  414. package/src/roomStore/roomHeapSlice.ts +47 -4
  415. package/src/roomStore/roomsSlice.ts +177 -27
  416. package/src/types/models/media.model.ts +3 -0
  417. package/src/types/models/xmpp.model.ts +2 -1
  418. package/src/types/types.ts +25 -0
  419. package/src/utils/installPromiseRejectionTracker.ts +91 -0
  420. package/src/utils/resendMessage.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","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","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","dispatch","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","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","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","dispatch","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":[]}
@@ -14,12 +14,25 @@ function deepMerge(target, source) {
14
14
  export function insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp) {
15
15
  const existingIndex = roomMessages.findIndex(msg => msg.id === message.id || message.xmppId && msg.id === message.xmppId || msg.xmppId && msg.xmppId === message.id);
16
16
  if (existingIndex !== -1) {
17
- roomMessages[existingIndex] = deepMerge({
18
- ...roomMessages[existingIndex]
17
+ const existing = roomMessages[existingIndex];
18
+ // Preserve the sender identity captured on first insert. The MUC echo
19
+ // parses user.id from the stanza's `from`/senderJID (the room nick or
20
+ // bare-jid local part), which often differs from the optimistic
21
+ // sender id (xmppUsername / walletAddress) set when WE sent it.
22
+ // deepMerge would overwrite it, flipping an own message to the "other"
23
+ // side (rendered on the left, "as if someone else wrote it"). Keep the
24
+ // original id so ownership (user.id === self) stays correct.
25
+ const preservedUserId = existing?.user?.id || message?.user?.id;
26
+ const merged = deepMerge({
27
+ ...existing
19
28
  }, {
20
29
  ...message,
21
30
  pending: false
22
31
  });
32
+ if (merged.user && preservedUserId) {
33
+ merged.user.id = preservedUserId;
34
+ }
35
+ roomMessages[existingIndex] = merged;
23
36
  return;
24
37
  }
25
38
  const newMessageDate = message.date;
@@ -51,9 +64,6 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
51
64
  body: 'New Messages',
52
65
  roomJid: ''
53
66
  });
54
- if (lastViewedTimestamp.toString() === '0') {
55
- roomMessages.splice(delimiterIndex, 1);
56
- }
57
67
  }
58
68
  }
59
69
  } else if (isDateBefore(newMessageDate.toString(), firstMessage?.date?.toString() ?? '')) {
@@ -1 +1 @@
1
- {"version":3,"names":["isDateAfter","isDateBefore","deepMerge","target","source","key","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","pending","newMessageDate","date","lastMessage","length","firstMessage","toString","index","push","some","delimiterIndex","splice","user","name","undefined","token","refreshToken","Date","body","roomJid","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":";;AACA,SAASA,WAAW,EAAEC,YAAY,QAAQ,kBAAkB;AAE5D,SAASC,SAASA,CAACC,MAAW,EAAEC,MAAW,EAAO;EAChD,KAAK,MAAMC,GAAG,IAAID,MAAM,EAAE;IACxB,IACEA,MAAM,CAACC,GAAG,CAAC,IACX,OAAOD,MAAM,CAACC,GAAG,CAAC,KAAK,QAAQ,IAC/B,CAACC,KAAK,CAACC,OAAO,CAACH,MAAM,CAACC,GAAG,CAAC,CAAC,EAC3B;MACAF,MAAM,CAACE,GAAG,CAAC,GAAGH,SAAS,CAACC,MAAM,CAACE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAED,MAAM,CAACC,GAAG,CAAC,CAAC;IACzD,CAAC,MAAM;MACLF,MAAM,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC3B;EACF;EACA,OAAOF,MAAM;AACf;AAEA,OAAO,SAASK,0BAA0BA,CACxCC,YAAiC,EACjCC,OAAiB,EACjBC,mBAAsD,EACtD;EACA,MAAMC,aAAa,GAAGH,YAAY,CAACI,SAAS,CACzCC,GAAG,IACFA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAAE,IACpBL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAO,IAC5CF,GAAG,CAACE,MAAM,IAAIF,GAAG,CAACE,MAAM,KAAKN,OAAO,CAACK,EAC1C,CAAC;EAED,IAAIH,aAAa,KAAK,CAAC,CAAC,EAAE;IACxBH,YAAY,CAACG,aAAa,CAAC,GAAGV,SAAS,CACrC;MAAE,GAAGO,YAAY,CAACG,aAAa;IAAE,CAAC,EAClC;MAAE,GAAGF,OAAO;MAAEO,OAAO,EAAE;IAAM,CAC/B,CAAC;IACD;EACF;EAEA,MAAMC,cAAc,GAAGR,OAAO,CAACS,IAAI;EACnC,MAAMC,WAAW,GAAGX,YAAY,CAACA,YAAY,CAACY,MAAM,GAAG,CAAC,CAAC;EACzD,MAAMC,YAAY,GAAGb,YAAY,CAAC,CAAC,CAAC;EAEpC,IAAIT,WAAW,CAACkB,cAAc,CAACK,QAAQ,CAAC,CAAC,EAAEH,WAAW,EAAED,IAAI,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;IAC/E,MAAMC,KAAK,GAAGf,YAAY,CAACI,SAAS,CACjCC,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACM,MAAM,IAAIF,GAAG,CAACC,EAAE,KAAKL,OAAO,CAACK,EAC3D,CAAC;IAED,IAAIS,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBf,YAAY,CAACe,KAAK,CAAC,GAAG;QAAE,GAAGd,OAAO;QAAEK,EAAE,EAAEL,OAAO,CAACK,EAAE;QAAEE,OAAO,EAAE;MAAM,CAAC;IACtE,CAAC,MAAM;MACLR,YAAY,CAACgB,IAAI,CAACf,OAAO,CAAC;IAC5B;IAEA,IACEC,mBAAmB,IACnB,CAACF,YAAY,CAACiB,IAAI,CAAEZ,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAK,eAAe,CAAC,IACvDf,WAAW,CAACkB,cAAc,CAACK,QAAQ,CAAC,CAAC,EAAEZ,mBAAmB,CAACY,QAAQ,CAAC,CAAC,CAAC,EACtE;MACA,MAAMI,cAAc,GAAGlB,YAAY,CAACI,SAAS,CAAEC,GAAG,IAChDd,WAAW,CAACc,GAAG,CAACK,IAAI,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAEZ,mBAAmB,CAACY,QAAQ,CAAC,CAAC,CACxE,CAAC;MAED,IAAII,cAAc,KAAK,CAAC,CAAC,EAAE;QACzBlB,YAAY,CAACmB,MAAM,CAACD,cAAc,EAAE,CAAC,EAAE;UACrCZ,EAAE,EAAE,eAAe;UACnBc,IAAI,EAAE;YACJd,EAAE,EAAE,QAAQ;YACZe,IAAI,EAAEC,SAAS;YACfC,KAAK,EAAE,EAAE;YACTC,YAAY,EAAE;UAChB,CAAC;UACDd,IAAI,EAAE,IAAIe,IAAI,CAAC,CAAC,CAACX,QAAQ,CAAC,CAAC;UAC3BY,IAAI,EAAE,cAAc;UACpBC,OAAO,EAAE;QACX,CAAC,CAAC;QAEF,IAAIzB,mBAAmB,CAACY,QAAQ,CAAC,CAAC,KAAK,GAAG,EAAE;UAC1Cd,YAAY,CAACmB,MAAM,CAACD,cAAc,EAAE,CAAC,CAAC;QACxC;MACF;IACF;EACF,CAAC,MAAM,IACL1B,YAAY,CAACiB,cAAc,CAACK,QAAQ,CAAC,CAAC,EAAED,YAAY,EAAEH,IAAI,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC7E;IACAd,YAAY,CAAC4B,OAAO,CAAC3B,OAAO,CAAC;EAC/B,CAAC,MAAM;IACL,KAAK,IAAI4B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG7B,YAAY,CAACY,MAAM,EAAEiB,CAAC,EAAE,EAAE;MAC5C,IACErC,YAAY,CAACiB,cAAc,CAACK,QAAQ,CAAC,CAAC,EAAEd,YAAY,CAAC6B,CAAC,CAAC,CAACnB,IAAI,EAAEI,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,EAC/E;QACAd,YAAY,CAACmB,MAAM,CAACU,CAAC,EAAE,CAAC,EAAE5B,OAAO,CAAC;QAClC;MACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"names":["isDateAfter","isDateBefore","deepMerge","target","source","key","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","newMessageDate","date","lastMessage","length","firstMessage","toString","index","push","some","delimiterIndex","splice","name","undefined","token","refreshToken","Date","body","roomJid","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ export const getKeyboardVerticalOffset = ({
4
+ platform,
5
+ configuredOffset = 0,
6
+ bottomInset = 0
7
+ }) => configuredOffset + (platform === 'ios' ? bottomInset : 0);
8
+ export const getInputDockPaddingBottom = ({
9
+ platform,
10
+ bottomInset = 0
11
+ }) => platform === 'ios' ? bottomInset : 0;
12
+ //# sourceMappingURL=keyboardLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getKeyboardVerticalOffset","platform","configuredOffset","bottomInset","getInputDockPaddingBottom"],"sourceRoot":"../../../src","sources":["helpers/keyboardLayout.ts"],"mappings":";;AAMA,OAAO,MAAMA,yBAAyB,GAAGA,CAAC;EACxCC,QAAQ;EACRC,gBAAgB,GAAG,CAAC;EACpBC,WAAW,GAAG;AACI,CAAC,KACnBD,gBAAgB,IAAID,QAAQ,KAAK,KAAK,GAAGE,WAAW,GAAG,CAAC,CAAC;AAE3D,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACxCH,QAAQ;EACRE,WAAW,GAAG;AAC8B,CAAC,KAC7CF,QAAQ,KAAK,KAAK,GAAGE,WAAW,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ import { Dimensions } from 'react-native';
4
+
5
+ // Shared sizing for inline media bubbles (images + video posters).
6
+ // Goal: show the media UNCROPPED, just scaled, preserving aspect ratio —
7
+ // portrait stays portrait, landscape stays landscape.
8
+ const screenW = Dimensions.get('window').width;
9
+
10
+ // Box the media must fit inside. Width adapts to the screen so it never
11
+ // blows past the bubble's max-width on small phones, but caps on tablets.
12
+ export const MEDIA_MAX_W = Math.min(260, Math.round(screenW * 0.64));
13
+ export const MEDIA_MAX_H = 320;
14
+ // Keep thumbnails from collapsing into a sliver (very wide/tall media).
15
+ const MEDIA_MIN_W = 140;
16
+ const MEDIA_MIN_H = 120;
17
+ // Neutral 4:3 placeholder used before the natural size is known.
18
+ export const defaultMediaDims = () => ({
19
+ width: MEDIA_MAX_W,
20
+ height: Math.round(MEDIA_MAX_W * 0.75)
21
+ });
22
+
23
+ // Fit (natW × natH) inside the box, preserving aspect ratio. Never
24
+ // upscales beyond the source resolution (avoids blur), but bumps very
25
+ // small media up to a sensible minimum so it stays tappable.
26
+ export const fitMediaDimensions = (natW, natH) => {
27
+ if (!natW || !natH) {
28
+ return defaultMediaDims();
29
+ }
30
+ let scale = Math.min(MEDIA_MAX_W / natW, MEDIA_MAX_H / natH);
31
+ if (scale > 1) {
32
+ scale = 1;
33
+ }
34
+ let width = Math.round(natW * scale);
35
+ let height = Math.round(natH * scale);
36
+ if (width < MEDIA_MIN_W || height < MEDIA_MIN_H) {
37
+ const up = Math.max(MEDIA_MIN_W / width, MEDIA_MIN_H / height);
38
+ width = Math.min(MEDIA_MAX_W, Math.round(width * up));
39
+ height = Math.min(MEDIA_MAX_H, Math.round(height * up));
40
+ }
41
+ return {
42
+ width,
43
+ height
44
+ };
45
+ };
46
+ //# sourceMappingURL=mediaDimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","screenW","get","width","MEDIA_MAX_W","Math","min","round","MEDIA_MAX_H","MEDIA_MIN_W","MEDIA_MIN_H","defaultMediaDims","height","fitMediaDimensions","natW","natH","scale","up","max"],"sourceRoot":"../../../src","sources":["helpers/mediaDimensions.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;;AAEzC;AACA;AACA;AACA,MAAMC,OAAO,GAAGD,UAAU,CAACE,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK;;AAE9C;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAACE,KAAK,CAACN,OAAO,GAAG,IAAI,CAAC,CAAC;AACpE,OAAO,MAAMO,WAAW,GAAG,GAAG;AAC9B;AACA,MAAMC,WAAW,GAAG,GAAG;AACvB,MAAMC,WAAW,GAAG,GAAG;AAOvB;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,MAAkB;EAChDR,KAAK,EAAEC,WAAW;EAClBQ,MAAM,EAAEP,IAAI,CAACE,KAAK,CAACH,WAAW,GAAG,IAAI;AACvC,CAAC,CAAC;;AAEF;AACA;AACA;AACA,OAAO,MAAMS,kBAAkB,GAAGA,CAACC,IAAY,EAAEC,IAAY,KAAgB;EAC3E,IAAI,CAACD,IAAI,IAAI,CAACC,IAAI,EAAE;IAClB,OAAOJ,gBAAgB,CAAC,CAAC;EAC3B;EACA,IAAIK,KAAK,GAAGX,IAAI,CAACC,GAAG,CAACF,WAAW,GAAGU,IAAI,EAAEN,WAAW,GAAGO,IAAI,CAAC;EAC5D,IAAIC,KAAK,GAAG,CAAC,EAAE;IACbA,KAAK,GAAG,CAAC;EACX;EACA,IAAIb,KAAK,GAAGE,IAAI,CAACE,KAAK,CAACO,IAAI,GAAGE,KAAK,CAAC;EACpC,IAAIJ,MAAM,GAAGP,IAAI,CAACE,KAAK,CAACQ,IAAI,GAAGC,KAAK,CAAC;EAErC,IAAIb,KAAK,GAAGM,WAAW,IAAIG,MAAM,GAAGF,WAAW,EAAE;IAC/C,MAAMO,EAAE,GAAGZ,IAAI,CAACa,GAAG,CAACT,WAAW,GAAGN,KAAK,EAAEO,WAAW,GAAGE,MAAM,CAAC;IAC9DT,KAAK,GAAGE,IAAI,CAACC,GAAG,CAACF,WAAW,EAAEC,IAAI,CAACE,KAAK,CAACJ,KAAK,GAAGc,EAAE,CAAC,CAAC;IACrDL,MAAM,GAAGP,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEH,IAAI,CAACE,KAAK,CAACK,MAAM,GAAGK,EAAE,CAAC,CAAC;EACzD;EACA,OAAO;IAAEd,KAAK;IAAES;EAAO,CAAC;AAC1B,CAAC","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ // MIME → file extension table for download/preview filename fallbacks.
4
+ // Centralized so FilePreviewModal, MediaMessage, and any future media
5
+ // surface share one source of truth. Keep additions sorted by category.
6
+
7
+ const MIME_TO_EXT = {
8
+ // images
9
+ 'image/jpeg': '.jpg',
10
+ 'image/jpg': '.jpg',
11
+ 'image/png': '.png',
12
+ 'image/gif': '.gif',
13
+ 'image/webp': '.webp',
14
+ 'image/heic': '.heic',
15
+ 'image/heif': '.heif',
16
+ 'image/bmp': '.bmp',
17
+ 'image/svg+xml': '.svg',
18
+ 'image/tiff': '.tiff',
19
+ // video
20
+ 'video/mp4': '.mp4',
21
+ 'video/quicktime': '.mov',
22
+ 'video/x-m4v': '.m4v',
23
+ 'video/webm': '.webm',
24
+ 'video/3gpp': '.3gp',
25
+ 'video/x-matroska': '.mkv',
26
+ 'video/mpeg': '.mpeg',
27
+ // audio
28
+ 'audio/mpeg': '.mp3',
29
+ 'audio/mp3': '.mp3',
30
+ 'audio/mp4': '.m4a',
31
+ 'audio/x-m4a': '.m4a',
32
+ 'audio/wav': '.wav',
33
+ 'audio/x-wav': '.wav',
34
+ 'audio/aac': '.aac',
35
+ 'audio/ogg': '.ogg',
36
+ 'audio/flac': '.flac',
37
+ 'audio/webm': '.weba',
38
+ // documents
39
+ 'application/pdf': '.pdf',
40
+ 'application/msword': '.doc',
41
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': '.docx',
42
+ 'application/vnd.ms-excel': '.xls',
43
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': '.xlsx',
44
+ 'application/vnd.ms-powerpoint': '.ppt',
45
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation': '.pptx',
46
+ 'text/plain': '.txt',
47
+ 'text/csv': '.csv',
48
+ 'text/html': '.html',
49
+ 'application/json': '.json',
50
+ 'application/xml': '.xml',
51
+ 'text/xml': '.xml',
52
+ 'application/rtf': '.rtf',
53
+ // archives
54
+ 'application/zip': '.zip',
55
+ 'application/x-rar-compressed': '.rar',
56
+ 'application/x-7z-compressed': '.7z',
57
+ 'application/gzip': '.gz',
58
+ 'application/x-tar': '.tar'
59
+ };
60
+ const VALID_EXT_RE = /\.[a-z0-9]{1,8}$/i;
61
+
62
+ /**
63
+ * Returns the conventional extension (including the leading dot) for a
64
+ * MIME type, or `.bin` as a last-resort fallback so callers never end up
65
+ * with an extension-less filename.
66
+ */
67
+ export function getExtensionForMime(mime) {
68
+ if (!mime) {
69
+ return '.bin';
70
+ }
71
+ const normalized = mime.toLowerCase().split(';')[0].trim();
72
+ return MIME_TO_EXT[normalized] || '.bin';
73
+ }
74
+
75
+ /**
76
+ * Parses a URL or file path and returns the last segment, URL-decoded,
77
+ * stripped of query/hash. Returns `''` when nothing usable is present.
78
+ */
79
+ export function filenameFromUrl(url) {
80
+ if (!url) {
81
+ return '';
82
+ }
83
+ try {
84
+ // Strip query + hash without depending on a real URL parser (some RN
85
+ // URLs from CDNs do not parse cleanly).
86
+ const noQuery = url.split('?')[0].split('#')[0];
87
+ const last = noQuery.split('/').pop() || '';
88
+ return decodeURIComponent(last);
89
+ } catch {
90
+ return '';
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Ensures `fileName` ends with a valid extension. Strategy:
96
+ * 1. If the input already has an extension, return it unchanged.
97
+ * 2. Otherwise, derive the extension from `mime` and append it.
98
+ * 3. If `mime` is unknown, append `.bin`.
99
+ *
100
+ * Empty/falsy filenames get a `media_<timestamp>` base before the
101
+ * extension is appended so callers always get a usable filename.
102
+ */
103
+ export function ensureFilenameHasExtension(fileName, mime) {
104
+ const base = fileName && fileName.trim() || `media_${Date.now()}`;
105
+ if (VALID_EXT_RE.test(base)) {
106
+ return base;
107
+ }
108
+ return `${base}${getExtensionForMime(mime)}`;
109
+ }
110
+
111
+ /**
112
+ * Best-effort filename derivation for a message bubble:
113
+ * - server-provided `fileName`
114
+ * - server-provided `originalName`
115
+ * - URL pathname
116
+ * - generic `media_<timestamp>` so we never render an empty label
117
+ *
118
+ * Always returns a string with a valid extension.
119
+ */
120
+ export function deriveDisplayFilename(opts) {
121
+ const candidate = opts.fileName && opts.fileName.trim() || opts.originalName && opts.originalName.trim() || filenameFromUrl(opts.url) || '';
122
+ return ensureFilenameHasExtension(candidate, opts.mime);
123
+ }
124
+ //# sourceMappingURL=mimeToExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MIME_TO_EXT","VALID_EXT_RE","getExtensionForMime","mime","normalized","toLowerCase","split","trim","filenameFromUrl","url","noQuery","last","pop","decodeURIComponent","ensureFilenameHasExtension","fileName","base","Date","now","test","deriveDisplayFilename","opts","candidate","originalName"],"sourceRoot":"../../../src","sources":["helpers/mimeToExtension.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ export const normalizeRoomJid = (roomJID, conference) => {
4
+ if (!roomJID) {
5
+ return roomJID;
6
+ }
7
+ if (roomJID.includes('@')) {
8
+ return roomJID;
9
+ }
10
+ if (!conference) {
11
+ return roomJID;
12
+ }
13
+ return `${roomJID}@${conference}`;
14
+ };
15
+ //# sourceMappingURL=normalizeRoomJid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeRoomJid","roomJID","conference","includes"],"sourceRoot":"../../../src","sources":["helpers/normalizeRoomJid.ts"],"mappings":";;AAAA,OAAO,MAAMA,gBAAgB,GAAGA,CAACC,OAAe,EAAEC,UAAmB,KAAK;EACxE,IAAI,CAACD,OAAO,EAAE;IAAC,OAAOA,OAAO;EAAC;EAC9B,IAAIA,OAAO,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;IAAC,OAAOF,OAAO;EAAC;EAC3C,IAAI,CAACC,UAAU,EAAE;IAAC,OAAOD,OAAO;EAAC;EACjC,OAAO,GAAGA,OAAO,IAAIC,UAAU,EAAE;AACnC,CAAC","ignoreList":[]}
@@ -238,5 +238,76 @@ export const applyResolvedUserToStore = user => {
238
238
  }
239
239
  store.dispatch(setUser(user));
240
240
  };
241
+
242
+ /**
243
+ * Re-mints a User with a fresh xmppPassword for the XMPP credentials-
244
+ * provider path (bug #17). Unlike `resolveInitBeforeLoadUser` this
245
+ * ALWAYS hydrates via the chosen auth path even if the cached user
246
+ * already had xmppCredentials — that's the whole point, the old ones
247
+ * are stale.
248
+ *
249
+ * Selection order:
250
+ * 1. `jwtLogin` — re-exchange the JWT via `/users/client`.
251
+ * 2. Anything else (`userLogin` / `customLogin` / store / persisted)
252
+ * — `tryHydrateViaMy` on the current user, which calls
253
+ * `/users/my` and, on 401, refreshes the access token via
254
+ * `/users/login/refresh` and retries.
255
+ *
256
+ * Returns `null` only when nothing usable is available — the caller
257
+ * (xmppProvider) falls back to the cached creds in that case.
258
+ */
259
+ export const refreshUserCredentialsForXmpp = async (config, signal) => {
260
+ if (signal?.aborted) {
261
+ return null;
262
+ }
263
+
264
+ // Priority 1: jwtLogin — same path as `resolveInitBeforeLoadUser`
265
+ // priority 3. We always re-exchange because the original JWT may
266
+ // itself have expired (and the consumer is expected to swap
267
+ // `config.jwtLogin.token` for a fresh one before then).
268
+ if (config?.jwtLogin?.enabled && config?.jwtLogin?.token) {
269
+ try {
270
+ const fresh = await loginViaJwt(config.jwtLogin.token);
271
+ const normalized = normalizeUserForXmpp(fresh);
272
+ if (normalized && hasXmppCredentials(normalized)) {
273
+ return normalized;
274
+ }
275
+ } catch (error) {
276
+ if (signal?.aborted || isAbortError(error)) {
277
+ return null;
278
+ }
279
+ // fall through to /users/my path
280
+ }
281
+ }
282
+ const myEndpoint = config?.initBeforeLoadAuth?.myEndpoint || '/users/my';
283
+
284
+ // Priority 2: redux store user (covers userLogin + customLogin +
285
+ // anything previously persisted into chatSettingStore.user). The
286
+ // user must have at least a refreshToken for the refresh chain to
287
+ // produce something useful.
288
+ const currentUser = store.getState().chatSettingStore.user;
289
+ if (currentUser?.token || currentUser?.refreshToken) {
290
+ const hydrated = await tryHydrateViaMy(currentUser, myEndpoint, signal).catch(() => null);
291
+ if (hydrated && hasXmppCredentials(hydrated)) {
292
+ return hydrated;
293
+ }
294
+ }
295
+
296
+ // Priority 3: persisted user in AsyncStorage — defensive; the store
297
+ // should already mirror this, but if the redux state got cleared
298
+ // mid-session (logout race) this gives us one last shot.
299
+ try {
300
+ const storedUser = await asyncLocalStorage(localStorageConstants.ETHORA_USER).get();
301
+ if (storedUser && (storedUser.token || storedUser.refreshToken || storedUser.xmppPassword)) {
302
+ const hydrated = await tryHydrateViaMy(storedUser, myEndpoint, signal).catch(() => null);
303
+ if (hydrated && hasXmppCredentials(hydrated)) {
304
+ return hydrated;
305
+ }
306
+ }
307
+ } catch {
308
+ // ignore storage errors
309
+ }
310
+ return null;
311
+ };
241
312
  export default resolveInitBeforeLoadUser;
242
313
  //# sourceMappingURL=resolveInitBeforeLoadUser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["http","setBaseURL","loginViaJwt","getMyUser","store","setUser","walletToUsername","asyncLocalStorage","localStorageConstants","getStatusCode","error","status","response","isAuthError","code","isAbortError","message","toLowerCase","includes","hasXmppCredentials","user","Boolean","xmppPassword","xmppUsername","defaultWallet","walletAddress","normalizeUserForXmpp","normalizedXmppUsername","refreshWithToken","refreshToken","post","headers","Authorization","token","data","mergeUsers","base","patch","tryHydrateViaMy","candidate","myEndpoint","signal","aborted","mergedCandidate","workingToken","workingRefresh","candidateWithCurrentTokens","fallbackWithCreds","normalized","myUser","endpoint","merged","fallback","refreshed","myError","resolveInitBeforeLoadUser","options","config","baseUrl","customAppToken","initBeforeLoadAuth","explicitUser","userLogin","enabled","hydrated","catch","customLogin","loginFunction","customUser","jwtLogin","jwtUser","currentUser","getState","chatSettingStore","storedUser","ETHORA_USER","get","remove","applyResolvedUserToStore","dispatch"],"sourceRoot":"../../../src","sources":["helpers/resolveInitBeforeLoadUser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["http","setBaseURL","loginViaJwt","getMyUser","store","setUser","walletToUsername","asyncLocalStorage","localStorageConstants","getStatusCode","error","status","response","isAuthError","code","isAbortError","message","toLowerCase","includes","hasXmppCredentials","user","Boolean","xmppPassword","xmppUsername","defaultWallet","walletAddress","normalizeUserForXmpp","normalizedXmppUsername","refreshWithToken","refreshToken","post","headers","Authorization","token","data","mergeUsers","base","patch","tryHydrateViaMy","candidate","myEndpoint","signal","aborted","mergedCandidate","workingToken","workingRefresh","candidateWithCurrentTokens","fallbackWithCreds","normalized","myUser","endpoint","merged","fallback","refreshed","myError","resolveInitBeforeLoadUser","options","config","baseUrl","customAppToken","initBeforeLoadAuth","explicitUser","userLogin","enabled","hydrated","catch","customLogin","loginFunction","customUser","jwtLogin","jwtUser","currentUser","getState","chatSettingStore","storedUser","ETHORA_USER","get","remove","applyResolvedUserToStore","dispatch","refreshUserCredentialsForXmpp","fresh"],"sourceRoot":"../../../src","sources":["helpers/resolveInitBeforeLoadUser.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { useDispatch } from 'react-redux';
5
+ import { clearVisibleRoom, setCurrentRoom, setLastViewedTimestamp, setVisibleRoom } from '../roomStore/roomsSlice';
6
+ import { store } from '../roomStore';
7
+ /**
8
+ * Public hook for consumers embedding `<ChatRoom>` inside a tab-based
9
+ * navigator. Mirrors the mount/unmount unread-tracking that ChatRoom
10
+ * does internally — but driven by an explicit focus signal so the
11
+ * unread counter behaves correctly when the chat tab is not focused
12
+ * but the component is still mounted.
13
+ *
14
+ * Without this hook, `useUnread()` will always return 0 for the chat
15
+ * room because the SDK assumes "mounted == active". With this hook,
16
+ * focus marks the room visible (clearing the badge) and blur stamps
17
+ * `lastViewedTimestamp = Date.now()` so future messages count as unread.
18
+ *
19
+ * Usage with React Navigation:
20
+ *
21
+ * ```tsx
22
+ * import { useIsFocused } from '@react-navigation/native';
23
+ *
24
+ * function ChatTab() {
25
+ * const isFocused = useIsFocused();
26
+ * useChatRoomFocus({ roomJID: 'general@conference.host', isFocused });
27
+ * return <Chat config={...} />;
28
+ * }
29
+ * ```
30
+ *
31
+ * Bug #18-adjacent / unread-tracking bug from sdk-bug-tracker.md.
32
+ */
33
+ export const useChatRoomFocus = ({
34
+ roomJID,
35
+ isFocused
36
+ }) => {
37
+ const dispatch = useDispatch();
38
+ const prevRef = useRef({
39
+ roomJID: null,
40
+ isFocused: false
41
+ });
42
+ const leaveRoom = jid => {
43
+ const timestamp = Date.now();
44
+ dispatch(setLastViewedTimestamp({
45
+ chatJID: jid,
46
+ timestamp
47
+ }));
48
+ dispatch(clearVisibleRoom());
49
+ const rooms = store.getState().rooms?.rooms;
50
+ store.getState().chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
51
+ visibleRoomJID: jid
52
+ }).catch(() => {});
53
+ };
54
+ useEffect(() => {
55
+ const prev = prevRef.current;
56
+ if (prev.isFocused && prev.roomJID && (prev.roomJID !== roomJID || !isFocused)) {
57
+ leaveRoom(prev.roomJID);
58
+ }
59
+ if (roomJID && isFocused) {
60
+ dispatch(setCurrentRoom({
61
+ roomJID
62
+ }));
63
+ dispatch(setVisibleRoom({
64
+ roomJID
65
+ }));
66
+ }
67
+ prevRef.current = {
68
+ roomJID: roomJID || null,
69
+ isFocused
70
+ };
71
+ }, [roomJID, isFocused, dispatch]);
72
+ useEffect(() => {
73
+ return () => {
74
+ const prev = prevRef.current;
75
+ if (prev.isFocused && prev.roomJID) {
76
+ leaveRoom(prev.roomJID);
77
+ }
78
+ };
79
+ }, []);
80
+ };
81
+ export default useChatRoomFocus;
82
+ //# sourceMappingURL=useChatRoomFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useDispatch","clearVisibleRoom","setCurrentRoom","setLastViewedTimestamp","setVisibleRoom","store","useChatRoomFocus","roomJID","isFocused","dispatch","prevRef","leaveRoom","jid","timestamp","Date","now","chatJID","rooms","getState","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","catch","prev","current"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,WAAW,QAAQ,aAAa;AACzC,SACEC,gBAAgB,EAChBC,cAAc,EACdC,sBAAsB,EACtBC,cAAc,QACT,yBAAyB;AAChC,SAASC,KAAK,QAAQ,cAAc;AAgBpC;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,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAMC,QAAQ,GAAGT,WAAW,CAAC,CAAC;EAC9B,MAAMU,OAAO,GAAGX,MAAM,CAAiD;IACrEQ,OAAO,EAAE,IAAI;IACbC,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,MAAMG,SAAS,GAAIC,GAAW,IAAK;IACjC,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BN,QAAQ,CAACN,sBAAsB,CAAC;MAAEa,OAAO,EAAEJ,GAAG;MAAEC;IAAU,CAAC,CAAC,CAAC;IAC7DJ,QAAQ,CAACR,gBAAgB,CAAC,CAAC,CAAC;IAC5B,MAAMgB,KAAK,GAAGZ,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACD,KAAK,EAAEA,KAAK;IAC1CZ,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAUC,MAAM,EAC9CC,mCAAmC,CAACJ,KAAK,EAAE;MAAEK,cAAc,EAAEV;IAAI,CAAC,CAAC,CACpEW,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB,CAAC;EAEDzB,SAAS,CAAC,MAAM;IACd,MAAM0B,IAAI,GAAGd,OAAO,CAACe,OAAO;IAC5B,IAAID,IAAI,CAAChB,SAAS,IAAIgB,IAAI,CAACjB,OAAO,KAAKiB,IAAI,CAACjB,OAAO,KAAKA,OAAO,IAAI,CAACC,SAAS,CAAC,EAAE;MAC9EG,SAAS,CAACa,IAAI,CAACjB,OAAO,CAAC;IACzB;IAEA,IAAIA,OAAO,IAAIC,SAAS,EAAE;MACxBC,QAAQ,CAACP,cAAc,CAAC;QAAEK;MAAQ,CAAC,CAAC,CAAC;MACrCE,QAAQ,CAACL,cAAc,CAAC;QAAEG;MAAQ,CAAC,CAAC,CAAC;IACvC;IAEAG,OAAO,CAACe,OAAO,GAAG;MAAElB,OAAO,EAAEA,OAAO,IAAI,IAAI;MAAEC;IAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC,CAAC;EAElCX,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAM0B,IAAI,GAAGd,OAAO,CAACe,OAAO;MAC5B,IAAID,IAAI,CAAChB,SAAS,IAAIgB,IAAI,CAACjB,OAAO,EAAE;QAClCI,SAAS,CAACa,IAAI,CAACjB,OAAO,CAAC;MACzB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAED,eAAeD,gBAAgB","ignoreList":[]}
@@ -96,10 +96,8 @@ const useChatWrapperInit = ({
96
96
  setInited(false);
97
97
  setShowModal(false);
98
98
  console.log(' No client, initializing one');
99
- const newClient = await initializeClient(user.xmppUsername || user?.defaultWallet?.walletAddress, user?.xmppPassword, config?.xmppSettings).then(client => {
100
- console.log(' Client initialized', client?.status);
101
- return client;
102
- });
99
+ const newClient = await initializeClient(user.xmppUsername || user?.defaultWallet?.walletAddress, user?.xmppPassword, config?.xmppSettings);
100
+ console.log(' Client initialized', newClient?.status);
103
101
  if (roomsList && Object.keys(roomsList).length > 0) {
104
102
  console.log(' Using existing roomsList', Object.keys(roomsList).length);
105
103
  setInited(true);
@@ -122,9 +120,12 @@ const useChatWrapperInit = ({
122
120
  await newClient.getRoomsStanza();
123
121
  }
124
122
  }
125
- await newClient.getChatsPrivateStoreRequestStanza().then(async roomTimestampObject => {
123
+ try {
124
+ const roomTimestampObject = await newClient.getChatsPrivateStoreRequestStanza();
126
125
  console.log('Got chats private store', roomTimestampObject?.length || 0);
127
- updatedChatLastTimestamps(roomTimestampObject, dispatch);
126
+ if (roomTimestampObject) {
127
+ updatedChatLastTimestamps(roomTimestampObject, dispatch);
128
+ }
128
129
  if (!hasSyncedHistoryRef.current) {
129
130
  console.log('Updating messages till last');
130
131
  await updateMessagesTillLast(rooms, newClient);
@@ -133,7 +134,11 @@ const useChatWrapperInit = ({
133
134
  setClient(newClient);
134
135
  setConnectionLost(false);
135
136
  console.log('Initialization complete');
136
- });
137
+ } catch (err) {
138
+ console.warn('privateStore/timestamps failed', err);
139
+ setClient(newClient);
140
+ setConnectionLost(false);
141
+ }
137
142
  {
138
143
  config?.refreshTokens?.enabled && refresh();
139
144
  }
@@ -154,9 +159,12 @@ const useChatWrapperInit = ({
154
159
  }
155
160
  setInited(true);
156
161
  console.log(' Getting chats private store for existing client');
157
- await client.getChatsPrivateStoreRequestStanza().then(async roomTimestampObject => {
162
+ try {
163
+ const roomTimestampObject = await client.getChatsPrivateStoreRequestStanza();
158
164
  console.log('Got chats private store for existing client', roomTimestampObject?.length || 0);
159
- updatedChatLastTimestamps(roomTimestampObject, dispatch);
165
+ if (roomTimestampObject) {
166
+ updatedChatLastTimestamps(roomTimestampObject, dispatch);
167
+ }
160
168
  if (!hasSyncedHistoryRef.current) {
161
169
  console.log('Updating messages till last for existing client');
162
170
  await updateMessagesTillLast(rooms, client);
@@ -165,7 +173,11 @@ const useChatWrapperInit = ({
165
173
  setClient(client);
166
174
  setConnectionLost(false);
167
175
  console.log(' Initialization complete for existing client');
168
- });
176
+ } catch (err) {
177
+ console.warn('privateStore/timestamps failed (existing client)', err);
178
+ setClient(client);
179
+ setConnectionLost(false);
180
+ }
169
181
  {
170
182
  config?.refreshTokens?.enabled && refresh();
171
183
  }