@ethora/chat-component-rn 26.5.7 → 26.5.11

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 (417) hide show
  1. package/CHANGELOG.md +191 -0
  2. package/README.md +95 -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 +31 -16
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js +78 -38
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/ChatWrapper.js +74 -27
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/MediaMessage.js +16 -11
  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 +165 -28
  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/InteractionsOverlay.js +119 -0
  25. package/lib/commonjs/components/MessageBubble/InteractionsOverlay.js.map +1 -0
  26. package/lib/commonjs/components/MessageBubble/Message.js +122 -41
  27. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  28. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +132 -44
  29. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  30. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +155 -52
  31. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  32. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +20 -5
  33. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  34. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js +104 -0
  35. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  36. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +144 -24
  37. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  38. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +29 -1
  39. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  40. package/lib/commonjs/components/Modals/Modal/Modal.js +5 -1
  41. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  42. package/lib/commonjs/components/Modals/ModalHeaderComponent.js +10 -0
  43. package/lib/commonjs/components/Modals/ModalHeaderComponent.js.map +1 -1
  44. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +77 -47
  45. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  46. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  47. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  48. package/lib/commonjs/components/Modals/styledModalComponents.js +17 -13
  49. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  50. package/lib/commonjs/components/styled/MediaFilePreview.js +47 -28
  51. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  52. package/lib/commonjs/components/styled/MessageImage.js +49 -9
  53. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  54. package/lib/commonjs/components/styled/NewMessageLabel.js +8 -6
  55. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  56. package/lib/commonjs/components/styled/SendInput.js +49 -27
  57. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  58. package/lib/commonjs/components/styled/StyledComponents.js +6 -3
  59. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  60. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  61. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  62. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  63. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  64. package/lib/commonjs/components/styled/UnsupportedType.js +5 -1
  65. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  66. package/lib/commonjs/components/styled/VideoMessage.js +81 -16
  67. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  68. package/lib/commonjs/context/MessageNotificationContext.js +7 -7
  69. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  70. package/lib/commonjs/context/xmppProvider.js +244 -32
  71. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  72. package/lib/commonjs/helpers/chatAutoEnterer.js +2 -7
  73. package/lib/commonjs/helpers/chatAutoEnterer.js.map +1 -1
  74. package/lib/commonjs/helpers/historyPreloadScheduler.js +4 -1
  75. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  76. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +15 -5
  77. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  78. package/lib/commonjs/helpers/keyboardLayout.js +18 -0
  79. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -0
  80. package/lib/commonjs/helpers/mediaDimensions.js +51 -0
  81. package/lib/commonjs/helpers/mediaDimensions.js.map +1 -0
  82. package/lib/commonjs/helpers/mimeToExtension.js +56 -0
  83. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  84. package/lib/commonjs/helpers/normalizeRoomJid.js +20 -0
  85. package/lib/commonjs/helpers/normalizeRoomJid.js.map +1 -0
  86. package/lib/commonjs/hooks/useChatRoomFocus.js +87 -0
  87. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -0
  88. package/lib/commonjs/hooks/useHeapSender.js +1 -1
  89. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  90. package/lib/commonjs/hooks/useLogout.js +36 -11
  91. package/lib/commonjs/hooks/useLogout.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 +201 -10
  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 +67 -0
  103. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  104. package/lib/commonjs/networking/api-requests/rooms.api.js +29 -4
  105. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  106. package/lib/commonjs/networking/apiClient.js +2 -1
  107. package/lib/commonjs/networking/apiClient.js.map +1 -1
  108. package/lib/commonjs/networking/outboundQueue.js +92 -0
  109. package/lib/commonjs/networking/outboundQueue.js.map +1 -0
  110. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  111. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  112. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  113. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  114. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  115. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  116. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  117. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  118. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  119. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  120. package/lib/commonjs/networking/xmppClient.js +294 -35
  121. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  122. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +22 -6
  123. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.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 +31 -16
  135. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  136. package/lib/module/components/MainComponents/ChatRoom.js +80 -40
  137. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  138. package/lib/module/components/MainComponents/ChatWrapper.js +74 -27
  139. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  140. package/lib/module/components/MainComponents/MediaMessage.js +17 -12
  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 +166 -29
  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/InteractionsOverlay.js +112 -0
  151. package/lib/module/components/MessageBubble/InteractionsOverlay.js.map +1 -0
  152. package/lib/module/components/MessageBubble/Message.js +123 -42
  153. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  154. package/lib/module/components/MessageBubble/MessageInteractions.js +134 -46
  155. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  156. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +155 -52
  157. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  158. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +20 -5
  159. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  160. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js +99 -0
  161. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  162. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +148 -26
  163. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  164. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +31 -3
  165. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  166. package/lib/module/components/Modals/Modal/Modal.js +5 -1
  167. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  168. package/lib/module/components/Modals/ModalHeaderComponent.js +10 -0
  169. package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
  170. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +79 -49
  171. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  172. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  173. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  174. package/lib/module/components/Modals/styledModalComponents.js +17 -13
  175. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  176. package/lib/module/components/styled/MediaFilePreview.js +47 -28
  177. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  178. package/lib/module/components/styled/MessageImage.js +51 -11
  179. package/lib/module/components/styled/MessageImage.js.map +1 -1
  180. package/lib/module/components/styled/NewMessageLabel.js +8 -6
  181. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  182. package/lib/module/components/styled/SendInput.js +50 -28
  183. package/lib/module/components/styled/SendInput.js.map +1 -1
  184. package/lib/module/components/styled/StyledComponents.js +6 -3
  185. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  186. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  187. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  188. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  189. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  190. package/lib/module/components/styled/UnsupportedType.js +5 -1
  191. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  192. package/lib/module/components/styled/VideoMessage.js +82 -17
  193. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  194. package/lib/module/context/MessageNotificationContext.js +7 -7
  195. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  196. package/lib/module/context/xmppProvider.js +246 -34
  197. package/lib/module/context/xmppProvider.js.map +1 -1
  198. package/lib/module/helpers/chatAutoEnterer.js +2 -7
  199. package/lib/module/helpers/chatAutoEnterer.js.map +1 -1
  200. package/lib/module/helpers/historyPreloadScheduler.js +4 -1
  201. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  202. package/lib/module/helpers/insertMessageWithDelimiter.js +15 -5
  203. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  204. package/lib/module/helpers/keyboardLayout.js +12 -0
  205. package/lib/module/helpers/keyboardLayout.js.map +1 -0
  206. package/lib/module/helpers/mediaDimensions.js +46 -0
  207. package/lib/module/helpers/mediaDimensions.js.map +1 -0
  208. package/lib/module/helpers/mimeToExtension.js +55 -0
  209. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  210. package/lib/module/helpers/normalizeRoomJid.js +15 -0
  211. package/lib/module/helpers/normalizeRoomJid.js.map +1 -0
  212. package/lib/module/hooks/useChatRoomFocus.js +82 -0
  213. package/lib/module/hooks/useChatRoomFocus.js.map +1 -0
  214. package/lib/module/hooks/useHeapSender.js +1 -1
  215. package/lib/module/hooks/useHeapSender.js.map +1 -1
  216. package/lib/module/hooks/useLogout.js +36 -11
  217. package/lib/module/hooks/useLogout.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 +203 -12
  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 +67 -1
  229. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  230. package/lib/module/networking/api-requests/rooms.api.js +29 -4
  231. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  232. package/lib/module/networking/apiClient.js +2 -1
  233. package/lib/module/networking/apiClient.js.map +1 -1
  234. package/lib/module/networking/outboundQueue.js +84 -0
  235. package/lib/module/networking/outboundQueue.js.map +1 -0
  236. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  237. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  238. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  239. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  240. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  241. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  242. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  243. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  244. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  245. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  246. package/lib/module/networking/xmppClient.js +294 -35
  247. package/lib/module/networking/xmppClient.js.map +1 -1
  248. package/lib/module/roomStore/Middleware/unreadMidlleware.js +22 -6
  249. package/lib/module/roomStore/Middleware/unreadMidlleware.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/InteractionsOverlay.d.ts +13 -0
  271. package/lib/typescript/components/MessageBubble/InteractionsOverlay.d.ts.map +1 -0
  272. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  273. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +4 -2
  274. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  275. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  276. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  277. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts +29 -0
  278. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts.map +1 -0
  279. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +0 -1
  280. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  281. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  282. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  283. package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
  284. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  285. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  286. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  287. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  288. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  289. package/lib/typescript/components/styled/NewMessageLabel.d.ts +1 -5
  290. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  291. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  292. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  293. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts +9 -1
  294. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  295. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  296. package/lib/typescript/components/styled/UnsupportedType.d.ts +1 -0
  297. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  298. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  299. package/lib/typescript/context/xmppProvider.d.ts +1 -0
  300. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  301. package/lib/typescript/helpers/chatAutoEnterer.d.ts.map +1 -1
  302. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  303. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  304. package/lib/typescript/helpers/keyboardLayout.d.ts +9 -0
  305. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -0
  306. package/lib/typescript/helpers/mediaDimensions.d.ts +9 -0
  307. package/lib/typescript/helpers/mediaDimensions.d.ts.map +1 -0
  308. package/lib/typescript/helpers/mimeToExtension.d.ts +8 -0
  309. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  310. package/lib/typescript/helpers/normalizeRoomJid.d.ts +2 -0
  311. package/lib/typescript/helpers/normalizeRoomJid.d.ts.map +1 -0
  312. package/lib/typescript/hooks/useChatRoomFocus.d.ts +42 -0
  313. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -0
  314. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  315. package/lib/typescript/hooks/useLogout.d.ts +23 -1
  316. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  317. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  318. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  319. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  320. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  321. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  322. package/lib/typescript/main.d.ts +1 -0
  323. package/lib/typescript/main.d.ts.map +1 -1
  324. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -0
  325. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  326. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  327. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  328. package/lib/typescript/networking/outboundQueue.d.ts +57 -0
  329. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -0
  330. package/lib/typescript/networking/xmpp/createTimeoutPromise.xmpp.d.ts.map +1 -1
  331. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -1
  332. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  333. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts +1 -1
  334. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts.map +1 -1
  335. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  336. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  337. package/lib/typescript/networking/xmppClient.d.ts +33 -4
  338. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  339. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  340. package/lib/typescript/roomStore/roomsSlice.d.ts +8 -1
  341. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  342. package/lib/typescript/types/models/media.model.d.ts +1 -0
  343. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  344. package/lib/typescript/types/models/xmpp.model.d.ts +1 -1
  345. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  346. package/lib/typescript/types/types.d.ts +20 -0
  347. package/lib/typescript/types/types.d.ts.map +1 -1
  348. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts +20 -0
  349. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts.map +1 -0
  350. package/lib/typescript/utils/resendMessage.d.ts.map +1 -1
  351. package/package.json +23 -4
  352. package/src/assets/icons.tsx +23 -14
  353. package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
  354. package/src/components/MainComponents/ChatHeader.tsx +46 -15
  355. package/src/components/MainComponents/ChatRoom.tsx +95 -66
  356. package/src/components/MainComponents/ChatWrapper.tsx +127 -42
  357. package/src/components/MainComponents/MediaMessage.tsx +14 -8
  358. package/src/components/MainComponents/MessageContainer.tsx +4 -2
  359. package/src/components/MainComponents/MessageList.tsx +175 -28
  360. package/src/components/MainComponents/ReduxWrapper.tsx +19 -9
  361. package/src/components/MainComponents/SystemMessage.tsx +38 -26
  362. package/src/components/MessageBubble/InteractionsOverlay.tsx +121 -0
  363. package/src/components/MessageBubble/Message.tsx +133 -63
  364. package/src/components/MessageBubble/MessageInteractions.tsx +146 -58
  365. package/src/components/Modals/AttachSheet/AttachSheet.tsx +146 -39
  366. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +25 -3
  367. package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
  368. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +161 -26
  369. package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
  370. package/src/components/Modals/Modal/Modal.tsx +4 -1
  371. package/src/components/Modals/ModalHeaderComponent.tsx +8 -1
  372. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +70 -58
  373. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  374. package/src/components/Modals/styledModalComponents.tsx +17 -13
  375. package/src/components/styled/MediaFilePreview.tsx +46 -26
  376. package/src/components/styled/MessageImage.tsx +58 -13
  377. package/src/components/styled/NewMessageLabel.tsx +8 -5
  378. package/src/components/styled/SendInput.tsx +64 -29
  379. package/src/components/styled/StyledComponents.ts +6 -3
  380. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +15 -5
  381. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +7 -2
  382. package/src/components/styled/UnsupportedType.tsx +7 -1
  383. package/src/components/styled/VideoMessage.tsx +76 -12
  384. package/src/context/MessageNotificationContext.tsx +8 -8
  385. package/src/context/xmppProvider.tsx +247 -30
  386. package/src/helpers/chatAutoEnterer.ts +2 -8
  387. package/src/helpers/historyPreloadScheduler.ts +4 -1
  388. package/src/helpers/insertMessageWithDelimiter.ts +22 -15
  389. package/src/helpers/keyboardLayout.ts +18 -0
  390. package/src/helpers/mediaDimensions.ts +47 -0
  391. package/src/helpers/mimeToExtension.ts +64 -0
  392. package/src/helpers/normalizeRoomJid.ts +6 -0
  393. package/src/hooks/useChatRoomFocus.ts +95 -0
  394. package/src/hooks/useHeapSender.tsx +2 -1
  395. package/src/hooks/useLogout.tsx +36 -13
  396. package/src/hooks/usePushNotifications.ts +21 -8
  397. package/src/hooks/useRoomState.tsx +4 -0
  398. package/src/hooks/useSendMessage.tsx +258 -13
  399. package/src/hooks/useUnreadMessagesCounter.ts +13 -16
  400. package/src/main.ts +1 -0
  401. package/src/networking/api-requests/auth.api.ts +55 -1
  402. package/src/networking/api-requests/rooms.api.ts +31 -7
  403. package/src/networking/apiClient.ts +2 -1
  404. package/src/networking/outboundQueue.ts +98 -0
  405. package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +5 -1
  406. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +11 -13
  407. package/src/networking/xmpp/getRoomsPaged.xmpp.ts +27 -3
  408. package/src/networking/xmpp/presenceInRoom.xmpp.ts +24 -9
  409. package/src/networking/xmpp/sendTextMessage.xmpp.ts +2 -1
  410. package/src/networking/xmppClient.ts +317 -43
  411. package/src/roomStore/Middleware/unreadMidlleware.tsx +23 -5
  412. package/src/roomStore/roomsSlice.ts +177 -27
  413. package/src/types/models/media.model.ts +3 -0
  414. package/src/types/models/xmpp.model.ts +2 -1
  415. package/src/types/types.ts +31 -0
  416. package/src/utils/installPromiseRejectionTracker.ts +91 -0
  417. package/src/utils/resendMessage.ts +2 -1
@@ -1,13 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback } from 'react';
4
+ import { Platform } from 'react-native';
4
5
  import { v4 as uuidv4 } from 'uuid';
5
6
  import { useXmppClient } from '../context/xmppProvider';
6
- import { useDispatch, useSelector } from 'react-redux';
7
+ import { useDispatch, useSelector, useStore } from 'react-redux';
7
8
  import { addRoomMessage, setEditAction } from '../roomStore/roomsSlice';
8
9
  import { addMessageToHeap, clearMessageFailure, markMessageFailed } from '../roomStore/roomHeapSlice';
9
- import { uploadFile } from '../networking/api-requests/auth.api';
10
+ import { uploadFileViaFetch } from '../networking/api-requests/auth.api';
11
+ import { enqueueOutboundSend } from '../networking/outboundQueue';
12
+ import { store } from '../roomStore';
13
+ import { getGlobalXmppClient } from '../utils/clientRegistry';
10
14
  import { useEventHandlers } from './useEventHandlers';
15
+ // Watchdog: if a message stays "pending" (no server echo) for this
16
+ // long after the optimistic dispatch, mark it failed so the bubble
17
+ // flips out of the "sending..." state. Covers the silent-failure
18
+ // case (e.g. device offline before the message ever made it to the
19
+ // XMPP socket) — bug #18. Tuned generously so a brief network blip
20
+ // followed by reconnect within 30s still resolves naturally via the
21
+ // server echo.
22
+ const PENDING_WATCHDOG_MS = 30_000;
23
+
11
24
  // Monotonic counter for stanza ids. Bumped on each send within a single
12
25
  // process. Two rapid sends in the same millisecond used to collide on
13
26
  // `send-text-message-${Date.now()}`; that collision made
@@ -16,11 +29,20 @@ import { useEventHandlers } from './useEventHandlers';
16
29
  // whose body was whatever the last dispatch wrote.
17
30
  let __sendIdSeq = 0;
18
31
  const nextStanzaId = prefix => `${prefix}-${Date.now()}-${__sendIdSeq = __sendIdSeq + 1 >>> 0}`;
32
+
33
+ // Hard client-side cap on a single upload. The backend rejects oversized
34
+ // bodies with HTTP 413; SendInput blocks oversized files at pick time,
35
+ // and this mirrors that limit on every send path (including retries).
36
+ const MAX_MEDIA_BYTES = 50 * 1024 * 1024;
19
37
  export const useSendMessage = _configOverride => {
20
38
  const {
21
39
  client
22
40
  } = useXmppClient();
23
41
  const dispatch = useDispatch();
42
+ // useStore gives us imperative getState() access for the watchdog —
43
+ // peek at the message's current pending/failed state from inside a
44
+ // setTimeout callback without re-rendering on every redux change.
45
+ const reduxStore = useStore();
24
46
 
25
47
  // Split selectors so each returns a primitive/stable reference — the
26
48
  // single-object selector above caused a "returned a different result
@@ -98,16 +120,56 @@ export const useSendMessage = _configOverride => {
98
120
  message: optimisticMessage
99
121
  }));
100
122
  }
123
+
124
+ // Silent-failure watchdog (bug #18). If no echo lands within
125
+ // PENDING_WATCHDOG_MS, flip the bubble to "failed → tap to
126
+ // retry". We check at fire-time whether the message is still
127
+ // pending and not already marked failed by the catch path.
128
+ const watchdogTimer = setTimeout(() => {
129
+ const state = reduxStore.getState();
130
+ const roomMsgs = state.rooms?.rooms?.[activeRoomJID]?.messages || [];
131
+ const stillPending = roomMsgs.find(m => m.id === optimisticId && m.pending);
132
+ const alreadyFailed = state.roomHeapSlice?.failedMessages?.[optimisticId];
133
+ if (stillPending && !alreadyFailed) {
134
+ console.warn(`Send watchdog fired — message ${optimisticId} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
135
+ dispatch(markMessageFailed({
136
+ kind: 'text',
137
+ id: optimisticId,
138
+ roomJID: activeRoomJID,
139
+ body: message,
140
+ isReply,
141
+ isChecked,
142
+ mainMessage
143
+ }));
144
+ handleMessageFailed({
145
+ message,
146
+ roomJID: activeRoomJID,
147
+ error: new Error('Send timed out (no server echo)'),
148
+ messageType: 'text'
149
+ });
150
+ }
151
+ }, PENDING_WATCHDOG_MS);
101
152
  try {
102
- if (!client) {
103
- throw new Error('No XMPP client');
153
+ const effectiveClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
154
+ if (!effectiveClient) {
155
+ const anyClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
156
+ try {
157
+ anyClient?.forceReconnect?.();
158
+ } catch {}
159
+ enqueueOutboundSend({
160
+ optimisticId,
161
+ roomJID: activeRoomJID,
162
+ enqueuedAt: Date.now(),
163
+ send: c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId)
164
+ });
165
+ return;
104
166
  }
105
167
  // Pass the optimistic id as the stanza id so the server echoes
106
168
  // it back with the same value — the reducer's dedupe lookup
107
169
  // matches and the bubble flips from pending → delivered in-place
108
170
  // (instead of rendering two copies, which is what happens when
109
171
  // ids don't match).
110
- client.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
172
+ effectiveClient.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
111
173
  await handleMessageSent({
112
174
  message,
113
175
  roomJID: activeRoomJID,
@@ -115,6 +177,7 @@ export const useSendMessage = _configOverride => {
115
177
  messageType: 'text'
116
178
  });
117
179
  } catch (error) {
180
+ clearTimeout(watchdogTimer);
118
181
  dispatch(markMessageFailed({
119
182
  kind: 'text',
120
183
  id: optimisticId,
@@ -131,9 +194,37 @@ export const useSendMessage = _configOverride => {
131
194
  messageType: 'text'
132
195
  });
133
196
  }
134
- }, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed]);
197
+ }, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
135
198
  const sendMedia = useCallback(async (data, type, activeRoomJID, isReply = false, isChecked = false, mainMessage = '', existingId) => {
136
199
  client?.onCriticalSend?.(activeRoomJID);
200
+
201
+ // Defensive 50 MB guard on every send path (SendInput blocks it at
202
+ // pick time, but retries replay the saved payload straight here).
203
+ if (typeof data?.size === 'number' && data.size > MAX_MEDIA_BYTES) {
204
+ console.warn('media exceeds 50MB cap — not uploading', {
205
+ name: data?.name,
206
+ size: data?.size
207
+ });
208
+ if (existingId) {
209
+ dispatch(markMessageFailed({
210
+ kind: 'media',
211
+ id: existingId,
212
+ roomJID: activeRoomJID,
213
+ data,
214
+ type,
215
+ isReply,
216
+ isChecked,
217
+ mainMessage
218
+ }));
219
+ }
220
+ handleMessageFailed({
221
+ message: 'media',
222
+ roomJID: activeRoomJID,
223
+ error: new Error('File exceeds the 50 MB upload limit'),
224
+ messageType: 'media'
225
+ });
226
+ return;
227
+ }
137
228
  const id = existingId || `send-media-message:${uuidv4()}`;
138
229
  const optimisticTimestamp = Date.now();
139
230
  const optimisticDate = new Date(optimisticTimestamp).toISOString();
@@ -188,10 +279,82 @@ export const useSendMessage = _configOverride => {
188
279
  mainMessage
189
280
  }));
190
281
  }
282
+
283
+ // Silent-failure watchdog for media-send (bug #18). Same shape
284
+ // as the text path: if the optimistic bubble never gets the echo
285
+ // (e.g. upload completed but XMPP send is buffered offline), flip
286
+ // to failed → tap to retry.
287
+ const mediaWatchdog = setTimeout(() => {
288
+ const state = reduxStore.getState();
289
+ const roomMsgs = state.rooms?.rooms?.[activeRoomJID]?.messages || [];
290
+ const stillPending = roomMsgs.find(m => m.id === id && m.pending);
291
+ const alreadyFailed = state.roomHeapSlice?.failedMessages?.[id];
292
+ if (stillPending && !alreadyFailed) {
293
+ console.warn(`Media-send watchdog fired — ${id} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
294
+ dispatch(markMessageFailed({
295
+ kind: 'media',
296
+ id,
297
+ roomJID: activeRoomJID,
298
+ data,
299
+ type,
300
+ isReply,
301
+ isChecked,
302
+ mainMessage
303
+ }));
304
+ handleMessageFailed({
305
+ message: 'media',
306
+ roomJID: activeRoomJID,
307
+ error: new Error('Media send timed out (no server echo)'),
308
+ messageType: 'media'
309
+ });
310
+ }
311
+ }, PENDING_WATCHDOG_MS);
312
+
313
+ // Help RN's FormData polyfill build a proper multipart/file part
314
+ // (instead of serialising the JS object as JSON). On iOS the
315
+ // picker can return ph:// or assets-library:// URIs for some
316
+ // legacy library items — those can't be read as files. Coerce
317
+ // to a file:// scheme when possible so the body is a real blob.
318
+ const fileBlob = {
319
+ uri: typeof data?.uri === 'string' ? data.uri.replace(/^assets-library:\/\//, 'file://') : data?.uri,
320
+ type: data?.type || data?.mimeType || type || 'application/octet-stream',
321
+ name: data?.name || data?.fileName || `media_${Date.now()}`
322
+ };
323
+
324
+ // Mirror the web client: a single multipart POST to /files/ with
325
+ // the file under the plural "files" field. We send it via fetch
326
+ // (not axios) because RN's fetch sets the multipart boundary on the
327
+ // Content-Type header correctly. The previous axios fallback omitted
328
+ // a valid boundary, so the server mis-parsed one file as many and
329
+ // rejected the request with HTTP 413 "TOO_MANY_FILES". The only
330
+ // retry is the documented singular-"file" fallback for deployments
331
+ // that 500 on the plural field (bug #10).
332
+ const tryUpload = async () => {
333
+ const fd = new FormData();
334
+ fd.append('files', fileBlob);
335
+ try {
336
+ return await uploadFileViaFetch(fd);
337
+ } catch (err) {
338
+ if (err?.response?.status === 500) {
339
+ console.warn('upload "files" field returned 500 — retrying with "file" (singular)', {
340
+ name: fileBlob.name,
341
+ type: fileBlob.type
342
+ });
343
+ const fd2 = new FormData();
344
+ fd2.append('file', fileBlob);
345
+ return await uploadFileViaFetch(fd2);
346
+ }
347
+ throw err;
348
+ }
349
+ };
191
350
  try {
192
- const mediaData = new FormData();
193
- mediaData.append('files', data);
194
- const response = await uploadFile(mediaData);
351
+ const response = await tryUpload();
352
+ // Upload succeeded — the stanza is now in flight. If the
353
+ // server echo arrives within the watchdog window the bubble
354
+ // flips normally; if not, the watchdog still fires and marks
355
+ // it failed. We don't clear the timer on upload success because
356
+ // the XMPP send could still fail silently.
357
+
195
358
  for (const item of response.data.results) {
196
359
  const messagePayload = {
197
360
  firstName: user.firstName,
@@ -222,7 +385,21 @@ export const useSendMessage = _configOverride => {
222
385
  // Stanza id == placeholder id so the MUC echo's outer
223
386
  // <message id="..."> matches xmppId on the placeholder and
224
387
  // insertMessageWithDelimiter merges in place + flips pending.
225
- client?.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
388
+ const effectiveMediaClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
389
+ if (effectiveMediaClient) {
390
+ effectiveMediaClient.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
391
+ } else {
392
+ const anyMediaClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
393
+ try {
394
+ anyMediaClient?.forceReconnect?.();
395
+ } catch {}
396
+ enqueueOutboundSend({
397
+ optimisticId: id,
398
+ roomJID: activeRoomJID,
399
+ enqueuedAt: Date.now(),
400
+ send: c => c.sendMediaMessageStanza(activeRoomJID, messagePayload, id)
401
+ });
402
+ }
226
403
  }
227
404
  await handleMessageSent({
228
405
  message: 'media',
@@ -240,16 +417,30 @@ export const useSendMessage = _configOverride => {
240
417
  }
241
418
  });
242
419
  } catch (error) {
420
+ // Upload (or stanza send) threw an explicit error. Clear the
421
+ // watchdog so it doesn't double-fire `markMessageFailed`.
422
+ clearTimeout(mediaWatchdog);
243
423
  // Surface the real server payload so we can see why the upload
244
424
  // was rejected (axios collapses the message to "Request failed
245
425
  // with status code N"; the actual reason lives in
246
426
  // `error.response.data`).
427
+ const uriStr = typeof data?.uri === 'string' ? data.uri : '';
428
+ const uriScheme = uriStr.match(/^([a-z]+):/i)?.[1] ?? 'unknown';
247
429
  console.error('upload failed', {
248
430
  status: error?.response?.status,
249
431
  statusText: error?.response?.statusText,
250
432
  serverBody: error?.response?.data,
251
433
  requestUrl: error?.config?.url,
252
- axiosMessage: error?.message
434
+ axiosMessage: error?.message,
435
+ axiosCode: error?.code,
436
+ axiosCauseMessage: error?.cause?.message,
437
+ uri: uriStr,
438
+ uriScheme,
439
+ mime: fileBlob.type,
440
+ fileSizeBytes: data?.size ?? null,
441
+ fileName: fileBlob.name,
442
+ platformOS: Platform.OS,
443
+ platformVersion: Platform.Version
253
444
  });
254
445
  dispatch(markMessageFailed({
255
446
  kind: 'media',
@@ -268,7 +459,7 @@ export const useSendMessage = _configOverride => {
268
459
  messageType: 'media'
269
460
  });
270
461
  }
271
- }, [client, config, user, dispatch, handleMessageSent, handleMessageFailed]);
462
+ }, [client, config, user, dispatch, handleMessageSent, handleMessageFailed, reduxStore]);
272
463
 
273
464
  // Retry a previously-failed send by replaying the saved payload from
274
465
  // the heap. Clears the failure flag first so the bubble flips back to
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","v4","uuidv4","useXmppClient","useDispatch","useSelector","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFile","useEventHandlers","__sendIdSeq","nextStanzaId","prefix","Date","now","useSendMessage","_configOverride","client","dispatch","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","Error","kind","sendMedia","data","type","existingId","optimisticTimestamp","displayName","fileSizeStr","size","String","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaData","FormData","append","response","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","sendMediaMessageStanza","metadata","fileData","fileType","uploadResults","console","status","statusText","serverBody","requestUrl","url","axiosMessage","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","messages","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","effectiveClient","c","status","anyClient","forceReconnect","enqueuedAt","send","clearTimeout","sendMedia","data","type","existingId","size","optimisticTimestamp","displayName","fileSizeStr","String","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","uri","replace","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","sendMediaMessageStanza","anyMediaClient","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,WAAW,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,aAAa;AAChE,SAASC,cAAc,EAAEC,aAAa,QAAQ,yBAAyB;AACvE,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,iBAAiB,QACZ,4BAA4B;AACnC,SAASC,kBAAkB,QAAQ,qCAAqC;AACxE,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAAoBC,KAAK,QAAQ,cAAc;AAC/C,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,gBAAgB,QAAQ,oBAAoB;AAGrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mBAAmB,GAAG,MAAM;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,WAAW,GAAG,CAAC;AACnB,MAAMC,YAAY,GAAIC,MAAc,IAClC,GAAGA,MAAM,IAAIC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAKJ,WAAW,GAAIA,WAAW,GAAG,CAAC,KAAM,CAAC,EAAG;;AAEtE;AACA;AACA;AACA,MAAMK,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;AAExC,OAAO,MAAMC,cAAc,GAAIC,eAAyB,IAAK;EAC3D,MAAM;IAAEC;EAAO,CAAC,GAAGvB,aAAa,CAAC,CAAC;EAClC,MAAMwB,QAAQ,GAAGvB,WAAW,CAAC,CAAC;EAC9B;EACA;EACA;EACA,MAAMwB,UAAU,GAAGtB,QAAQ,CAAY,CAAC;;EAExC;EACA;EACA;EACA;EACA,MAAMuB,IAAI,GAAGxB,WAAW,CAAEyB,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACF,IAAI,CAAC;EAC3E,MAAMG,MAAM,GAAG3B,WAAW,CACvByB,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,MAC/C,CAAC;EACD,MAAMC,UAAU,GAAG5B,WAAW,CAAEyB,KAAgB,IAAKA,KAAK,CAACI,KAAK,CAACD,UAAU,CAAC;EAC5E,MAAMC,KAAK,GAAG7B,WAAW,CAAEyB,KAAgB,IAAKA,KAAK,CAACI,KAAK,CAACA,KAAK,CAAC;EAElE,MAAM;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC;EACF,CAAC,GAAGtB,gBAAgB,CAACgB,MAAM,CAAC;EAE5B,MAAMO,cAAc,GAAGlC,WAAW,CAC/ByB,KAAgB,IAAKA,KAAK,CAACU,aAAa,EAAED,cAAc,IAAI,CAAC,CAChE,CAAC;EAED,MAAME,WAAW,GAAG1C,WAAW,CAC7B,OACE2C,OAAe,EACfC,aAAqB,EACrBC,OAAiB,EACjBC,SAAmB,EACnBC,WAAoB,KACjB;IACH,IAAIb,UAAU,EAAEc,MAAM,EAAE;MACtB,IAAI;QACFrB,MAAM,EAAEsB,iBAAiB,CACvBf,UAAU,CAACgB,OAAO,EAClBhB,UAAU,CAACiB,SAAS,EACpBR,OACF,CAAC;QACDL,mBAAmB,CAAC;UAClBa,SAAS,EAAEjB,UAAU,CAACiB,SAAU;UAChCC,UAAU,EAAET,OAAO;UACnBU,OAAO,EAAEnB,UAAU,CAACgB,OAAQ;UAC5BpB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOwB,KAAK,EAAE;QACdjB,mBAAmB,CAAC;UAClBM,OAAO;UACPU,OAAO,EAAEnB,UAAU,CAACgB,OAAQ;UAC5BI,KAAK,EAAEA,KAAc;UACrBC,WAAW,EAAE;QACf,CAAC,CAAC;MACJ;MACA3B,QAAQ,CAACnB,aAAa,CAAC;QAAEuC,MAAM,EAAE;MAAM,CAAC,CAAC,CAAC;MAC1C;IACF;;IAEA;IACArB,MAAM,EAAE6B,cAAc,GAAGZ,aAAa,CAAC;;IAEvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMa,YAAY,GAAGrC,YAAY,CAAC,mBAAmB,CAAC;IACtD,MAAMsC,cAAc,GAAG,IAAIpC,IAAI,CAAC,CAAC,CAACqC,WAAW,CAAC,CAAC;IAC/C,MAAMC,MAAM,GACT9B,IAAI,EAAU+B,YAAY,IAAK/B,IAAI,EAAUgC,aAAa,IAAI,EAAE;IACnE,MAAMC,iBAA2B,GAAG;MAClCC,EAAE,EAAEP,YAAY;MAChB;MACA;MACA;MACA;MACAQ,MAAM,EAAER,YAAY;MACpBS,IAAI,EAAEvB,OAAO;MACbO,OAAO,EAAEN,aAAa;MACtBuB,IAAI,EAAET,cAAc;MACpBU,OAAO,EAAE,IAAI;MACbC,SAAS,EAAE,KAAK;MAChBvC,IAAI,EAAE;QACJ,GAAIA,IAAY;QAChBkC,EAAE,EAAEJ,MAAM;QACVU,IAAI,EAAE,GAAGxC,IAAI,EAAEyC,SAAS,IAAI,EAAE,IAAIzC,IAAI,EAAE0C,QAAQ,IAAI,EAAE,EAAE,CAACC,IAAI,CAAC,CAAC,IAAIb;MACrE;IACF,CAAa;IACb,IAAI,CAAC3B,MAAM,EAAEyC,gBAAgB,EAAE;MAC7B9C,QAAQ,CACNpB,cAAc,CAAC;QAAE6C,OAAO,EAAET,aAAa;QAAED,OAAO,EAAEoB;MAAkB,CAAC,CACvE,CAAC;IACH;;IAEA;IACA;IACA;IACA;IACA,MAAMY,aAAa,GAAGC,UAAU,CAAC,MAAM;MACrC,MAAM7C,KAAK,GAAGF,UAAU,CAACgD,QAAQ,CAAC,CAAC;MACnC,MAAMC,QAAQ,GAAG/C,KAAK,CAACI,KAAK,EAAEA,KAAK,GAAGS,aAAa,CAAC,EAAEmC,QAAQ,IAAI,EAAE;MACpE,MAAMC,YAAY,GAAGF,QAAQ,CAACG,IAAI,CAC/BC,CAAM,IAAKA,CAAC,CAAClB,EAAE,KAAKP,YAAY,IAAIyB,CAAC,CAACd,OACzC,CAAC;MACD,MAAMe,aAAa,GAAGpD,KAAK,CAACU,aAAa,EAAED,cAAc,GAAGiB,YAAY,CAAC;MACzE,IAAIuB,YAAY,IAAI,CAACG,aAAa,EAAE;QAClCC,OAAO,CAACC,IAAI,CACV,iCAAiC5B,YAAY,oBAAoBvC,mBAAmB,oBACtF,CAAC;QACDU,QAAQ,CACNhB,iBAAiB,CAAC;UAChB0E,IAAI,EAAE,MAAM;UACZtB,EAAE,EAAEP,YAAY;UAChBJ,OAAO,EAAET,aAAa;UACtBsB,IAAI,EAAEvB,OAAO;UACbE,OAAO;UACPC,SAAS;UACTC;QACF,CAAC,CACH,CAAC;QACDV,mBAAmB,CAAC;UAClBM,OAAO;UACPU,OAAO,EAAET,aAAa;UACtBU,KAAK,EAAE,IAAIiC,KAAK,CAAC,iCAAiC,CAAC;UACnDhC,WAAW,EAAE;QACf,CAAC,CAAC;MACJ;IACF,CAAC,EAAErC,mBAAmB,CAAC;IAEvB,IAAI;MAEF,MAAMsE,eAAoB,GACxB7D,MAAM,IACN,CACEX,mBAAmB,CAAC,CAAC,EACrBD,KAAK,CAAC8D,QAAQ,CAAC,CAAC,EAAE7C,gBAAgB,EAAEL,MAAM,CAC3C,CAACsD,IAAI,CAAEQ,CAAM,IAAKA,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,QAAQ,CAAC;MAEhD,IAAI,CAACF,eAAe,EAAE;QACpB,MAAMG,SAAc,GAClBhE,MAAM,IACNX,mBAAmB,CAAC,CAAC,IACrBD,KAAK,CAAC8D,QAAQ,CAAC,CAAC,EAAE7C,gBAAgB,EAAEL,MAAM;QAC5C,IAAI;UACFgE,SAAS,EAAEC,cAAc,GAAG,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC;QACT9E,mBAAmB,CAAC;UAClB2C,YAAY;UACZJ,OAAO,EAAET,aAAa;UACtBiD,UAAU,EAAEvE,IAAI,CAACC,GAAG,CAAC,CAAC;UACtBuE,IAAI,EAAGL,CAAC,IACNA,CAAC,CAAC/C,WAAW,CACXE,aAAa,EACbd,IAAI,CAACyC,SAAS,EACdzC,IAAI,CAAC0C,QAAQ,EACb,EAAE,EACF1C,IAAI,CAACgC,aAAa,EAClBnB,OAAO,EACP,EAAE,EACFE,OAAO,IAAI,KAAK,EAChBC,SAAS,IAAI,KAAK,EAClBC,WAAW,IAAI,EAAE,EACjBU,YACF;QACJ,CAAC,CAAC;QACF;MACF;MACA;MACA;MACA;MACA;MACA;MACA+B,eAAe,CAAC9C,WAAW,CACzBE,aAAa,EACbd,IAAI,CAACyC,SAAS,EACdzC,IAAI,CAAC0C,QAAQ,EACb,EAAE,EACF1C,IAAI,CAACgC,aAAa,EAClBnB,OAAO,EACP,EAAE,EACFE,OAAO,IAAI,KAAK,EAChBC,SAAS,IAAI,KAAK,EAClBC,WAAW,IAAI,EAAE,EACjBU,YACF,CAAC;MACD,MAAMrB,iBAAiB,CAAC;QACtBO,OAAO;QACPU,OAAO,EAAET,aAAa;QACtBd,IAAI;QACJyB,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOD,KAAK,EAAE;MACdyC,YAAY,CAACpB,aAAa,CAAC;MAC3B/C,QAAQ,CACNhB,iBAAiB,CAAC;QAChB0E,IAAI,EAAE,MAAM;QACZtB,EAAE,EAAEP,YAAY;QAChBJ,OAAO,EAAET,aAAa;QACtBsB,IAAI,EAAEvB,OAAO;QACbE,OAAO;QACPC,SAAS;QACTC;MACF,CAAC,CACH,CAAC;MACDV,mBAAmB,CAAC;QAClBM,OAAO;QACPU,OAAO,EAAET,aAAa;QACtBU,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACrB,UAAU,EAAEP,MAAM,EAAEG,IAAI,EAAEF,QAAQ,EAAEQ,iBAAiB,EAAEE,mBAAmB,EAAED,mBAAmB,EAAER,UAAU,CAC9G,CAAC;EAED,MAAMmE,SAAS,GAAGhG,WAAW,CAC3B,OACEiG,IAAS,EACTC,IAAY,EACZtD,aAAqB,EACrBC,OAAgB,GAAG,KAAK,EACxBC,SAAkB,GAAG,KAAK,EAC1BC,WAAmB,GAAG,EAAE,EACxBoD,UAAmB,KAChB;IACHxE,MAAM,EAAE6B,cAAc,GAAGZ,aAAa,CAAC;;IAEvC;IACA;IACA,IAAI,OAAOqD,IAAI,EAAEG,IAAI,KAAK,QAAQ,IAAIH,IAAI,CAACG,IAAI,GAAG5E,eAAe,EAAE;MACjE4D,OAAO,CAACC,IAAI,CAAC,wCAAwC,EAAE;QACrDf,IAAI,EAAE2B,IAAI,EAAE3B,IAAI;QAChB8B,IAAI,EAAEH,IAAI,EAAEG;MACd,CAAC,CAAC;MACF,IAAID,UAAU,EAAE;QACdvE,QAAQ,CACNhB,iBAAiB,CAAC;UAChB0E,IAAI,EAAE,OAAO;UACbtB,EAAE,EAAEmC,UAAU;UACd9C,OAAO,EAAET,aAAa;UACtBqD,IAAI;UACJC,IAAI;UACJrD,OAAO;UACPC,SAAS;UACTC;QACF,CAAC,CACH,CAAC;MACH;MACAV,mBAAmB,CAAC;QAClBM,OAAO,EAAE,OAAO;QAChBU,OAAO,EAAET,aAAa;QACtBU,KAAK,EAAE,IAAIiC,KAAK,CAAC,qCAAqC,CAAC;QACvDhC,WAAW,EAAE;MACf,CAAC,CAAC;MACF;IACF;IAEA,MAAMS,EAAE,GAAGmC,UAAU,IAAI,sBAAsBhG,MAAM,CAAC,CAAC,EAAE;IACzD,MAAMkG,mBAAmB,GAAG/E,IAAI,CAACC,GAAG,CAAC,CAAC;IACtC,MAAMmC,cAAc,GAAG,IAAIpC,IAAI,CAAC+E,mBAAmB,CAAC,CAAC1C,WAAW,CAAC,CAAC;IAClE,MAAMC,MAAM,GACT9B,IAAI,EAAU+B,YAAY,IAAK/B,IAAI,EAAUgC,aAAa,IAAI,EAAE;IACnE,MAAMwC,WAAW,GACf,GAAGxE,IAAI,EAAEyC,SAAS,IAAI,EAAE,IAAIzC,IAAI,EAAE0C,QAAQ,IAAI,EAAE,EAAE,CAACC,IAAI,CAAC,CAAC,IAAIb,MAAM;IACrE,MAAM2C,WAAW,GAAGN,IAAI,EAAEG,IAAI,IAAI,IAAI,GAAGI,MAAM,CAACP,IAAI,CAACG,IAAI,CAAC,GAAG,EAAE;IAE/D,IAAI,CAACnE,MAAM,EAAEyC,gBAAgB,IAAI,CAACyB,UAAU,EAAE;MAC5CvE,QAAQ,CACNpB,cAAc,CAAC;QACb6C,OAAO,EAAET,aAAa;QACtBD,OAAO,EAAE;UACPqB,EAAE,EAAEA,EAAE;UACNE,IAAI,EAAE,OAAO;UACbhB,OAAO,EAAEN,aAAa;UACtBuB,IAAI,EAAET,cAAc;UACpB+C,kBAAkB,EAAEJ,mBAAmB;UACvCvE,IAAI,EAAE;YACJ,GAAIA,IAAY;YAChBkC,EAAE,EAAEJ,MAAM;YACVU,IAAI,EAAEgC;UACR,CAAC;UACDlC,OAAO,EAAE,IAAI;UACbC,SAAS,EAAE,KAAK;UAChBJ,MAAM,EAAED,EAAE;UACV0C,QAAQ,EAAE,GAAG9D,aAAa,IAAIgB,MAAM,EAAE;UACtC+C,eAAe,EAAE,OAAO;UACxBC,WAAW,EAAE,MAAM;UACnBC,QAAQ,EAAEZ,IAAI,EAAE3B,IAAI;UACpBwC,QAAQ,EAAE,EAAE;UACZC,eAAe,EAAE,EAAE;UACnBC,QAAQ,EAAEd,IAAI;UACde,YAAY,EAAEhB,IAAI,EAAE3B,IAAI;UACxB8B,IAAI,EAAEG,WAAW;UACjB1D,OAAO;UACPqE,aAAa,EAAE,GAAGpE,SAAS,EAAE;UAC7BC;QACF;MACF,CAAC,CACH,CAAC;MACDnB,QAAQ,CACNlB,gBAAgB,CAAC;QACfsD,EAAE,EAAEA,EAAE;QACNlC,IAAI,EAAE;UACJ,GAAIA,IAAY;UAChBkC,EAAE,EAAEJ,MAAM;UACVU,IAAI,EAAEgC;QACR,CAAC;QACDnC,IAAI,EAAET,cAAc;QACpB+C,kBAAkB,EAAEJ,mBAAmB;QACvCnC,IAAI,EAAE,OAAO;QACbhB,OAAO,EAAEN,aAAa;QACtB8D,QAAQ,EAAE,GAAG9D,aAAa,IAAIgB,MAAM,EAAE;QACtCf,OAAO;QACPqE,aAAa,EAAE,GAAGpE,SAAS,EAAS;QACpCC;MACF,CAAoB,CACtB,CAAC;IACH;;IAEA;IACA;IACA;IACA;IACA,MAAMoE,aAAa,GAAGvC,UAAU,CAAC,MAAM;MACrC,MAAM7C,KAAK,GAAGF,UAAU,CAACgD,QAAQ,CAAC,CAAC;MACnC,MAAMC,QAAQ,GAAG/C,KAAK,CAACI,KAAK,EAAEA,KAAK,GAAGS,aAAa,CAAC,EAAEmC,QAAQ,IAAI,EAAE;MACpE,MAAMC,YAAY,GAAGF,QAAQ,CAACG,IAAI,CAC/BC,CAAM,IAAKA,CAAC,CAAClB,EAAE,KAAKA,EAAE,IAAIkB,CAAC,CAACd,OAC/B,CAAC;MACD,MAAMe,aAAa,GAAGpD,KAAK,CAACU,aAAa,EAAED,cAAc,GAAGwB,EAAE,CAAC;MAC/D,IAAIgB,YAAY,IAAI,CAACG,aAAa,EAAE;QAClCC,OAAO,CAACC,IAAI,CACV,+BAA+BrB,EAAE,oBAAoB9C,mBAAmB,oBAC1E,CAAC;QACDU,QAAQ,CACNhB,iBAAiB,CAAC;UAChB0E,IAAI,EAAE,OAAO;UACbtB,EAAE;UACFX,OAAO,EAAET,aAAa;UACtBqD,IAAI;UACJC,IAAI;UACJrD,OAAO;UACPC,SAAS;UACTC;QACF,CAAC,CACH,CAAC;QACDV,mBAAmB,CAAC;UAClBM,OAAO,EAAE,OAAO;UAChBU,OAAO,EAAET,aAAa;UACtBU,KAAK,EAAE,IAAIiC,KAAK,CAAC,uCAAuC,CAAC;UACzDhC,WAAW,EAAE;QACf,CAAC,CAAC;MACJ;IACF,CAAC,EAAErC,mBAAmB,CAAC;;IAEvB;IACA;IACA;IACA;IACA;IACA,MAAMkG,QAAQ,GAAG;MACfC,GAAG,EACD,OAAOpB,IAAI,EAAEoB,GAAG,KAAK,QAAQ,GACzBpB,IAAI,CAACoB,GAAG,CAACC,OAAO,CAAC,sBAAsB,EAAE,SAAS,CAAC,GACnDrB,IAAI,EAAEoB,GAAG;MACfnB,IAAI,EACFD,IAAI,EAAEC,IAAI,IACVD,IAAI,EAAEsB,QAAQ,IACdrB,IAAI,IACJ,0BAA0B;MAC5B5B,IAAI,EAAE2B,IAAI,EAAE3B,IAAI,IAAI2B,IAAI,EAAEY,QAAQ,IAAI,SAASvF,IAAI,CAACC,GAAG,CAAC,CAAC;IAC3D,CAAC;;IAED;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMiG,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMC,EAAE,GAAG,IAAIC,QAAQ,CAAC,CAAC;MACzBD,EAAE,CAACE,MAAM,CAAC,OAAO,EAAEP,QAAe,CAAC;MACnC,IAAI;QACF,OAAO,MAAMvG,kBAAkB,CAAC4G,EAAE,CAAC;MACrC,CAAC,CAAC,OAAOG,GAAQ,EAAE;QACjB,IAAIA,GAAG,EAAEC,QAAQ,EAAEnC,MAAM,KAAK,GAAG,EAAE;UACjCN,OAAO,CAACC,IAAI,CACV,qEAAqE,EACrE;YAAEf,IAAI,EAAE8C,QAAQ,CAAC9C,IAAI;YAAE4B,IAAI,EAAEkB,QAAQ,CAAClB;UAAK,CAC7C,CAAC;UACD,MAAM4B,GAAG,GAAG,IAAIJ,QAAQ,CAAC,CAAC;UAC1BI,GAAG,CAACH,MAAM,CAAC,MAAM,EAAEP,QAAe,CAAC;UACnC,OAAO,MAAMvG,kBAAkB,CAACiH,GAAG,CAAC;QACtC;QACA,MAAMF,GAAG;MACX;IACF,CAAC;IAED,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAML,SAAS,CAAC,CAAC;MAClC;MACA;MACA;MACA;MACA;;MAEA,KAAK,MAAMO,IAAI,IAAIF,QAAQ,CAAC5B,IAAI,CAAC+B,OAAO,EAAE;QACxC,MAAMC,cAAc,GAAG;UACrB1D,SAAS,EAAEzC,IAAI,CAACyC,SAAS;UACzBC,QAAQ,EAAE1C,IAAI,CAAC0C,QAAQ;UACvBV,aAAa,EAAEhC,IAAI,CAACgC,aAAa;UACjCoE,SAAS,EAAEH,IAAI,CAACG,SAAS;UACzBC,SAAS,EAAEJ,IAAI,CAACI,SAAS;UACzBtB,QAAQ,EAAEkB,IAAI,CAACK,QAAQ;UACvBC,SAAS,EAAEN,IAAI,EAAEM,SAAS;UAC1BvB,QAAQ,EAAEiB,IAAI,CAACjB,QAAQ;UACvBC,eAAe,EAAEgB,IAAI,CAAChB,eAAe;UACrCC,QAAQ,EAAEe,IAAI,CAACf,QAAQ;UACvBC,YAAY,EAAEc,IAAI,EAAEO,YAAY;UAChCC,QAAQ,EAAER,IAAI,EAAEQ,QAAQ;UACxBnC,IAAI,EAAE2B,IAAI,CAAC3B,IAAI;UACfoC,QAAQ,EAAET,IAAI,EAAES,QAAQ;UACxBC,SAAS,EAAEV,IAAI,EAAEU,SAAS;UAC1BC,MAAM,EAAEX,IAAI,EAAEW,MAAM;UACpBC,YAAY,EAAEZ,IAAI,EAAEa,GAAG;UACvBC,SAAS,EAAE,IAAI;UACf3F,OAAO,EAAEN,aAAa;UACtBsE,aAAa,EAAEpE,SAAS;UACxBD,OAAO;UACPE,WAAW;UACX+F,SAAS,EAAEf,IAAI,EAAEe,SAAS;UAC1BC,GAAG,EAAEhB,IAAI,CAACgB;QACZ,CAAC;QACD;QACA;QACA;QACA,MAAMC,oBAAyB,GAC7BrH,MAAM,IACN,CACEX,mBAAmB,CAAC,CAAC,EACrBD,KAAK,CAAC8D,QAAQ,CAAC,CAAC,EAAE7C,gBAAgB,EAAEL,MAAM,CAC3C,CAACsD,IAAI,CAAEQ,CAAM,IAAKA,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,QAAQ,CAAC;QAChD,IAAIsD,oBAAoB,EAAE;UACxBA,oBAAoB,CAACC,sBAAsB,CACzCrG,aAAa,EACbqF,cAAc,EACdjE,EACF,CAAC;QACH,CAAC,MAAM;UACL,MAAMkF,cAAmB,GACvBvH,MAAM,IACNX,mBAAmB,CAAC,CAAC,IACrBD,KAAK,CAAC8D,QAAQ,CAAC,CAAC,EAAE7C,gBAAgB,EAAEL,MAAM;UAC5C,IAAI;YACFuH,cAAc,EAAEtD,cAAc,GAAG,CAAC;UACpC,CAAC,CAAC,MAAM,CAAC;UACT9E,mBAAmB,CAAC;YAClB2C,YAAY,EAAEO,EAAE;YAChBX,OAAO,EAAET,aAAa;YACtBiD,UAAU,EAAEvE,IAAI,CAACC,GAAG,CAAC,CAAC;YACtBuE,IAAI,EAAGL,CAAC,IACNA,CAAC,CAACwD,sBAAsB,CAACrG,aAAa,EAAEqF,cAAc,EAAEjE,EAAE;UAC9D,CAAC,CAAC;QACJ;MACF;MAEA,MAAM5B,iBAAiB,CAAC;QACtBO,OAAO,EAAE,OAAO;QAChBU,OAAO,EAAET,aAAa;QACtBd,IAAI;QACJyB,WAAW,EAAE,OAAO;QACpB4F,QAAQ,EAAE;UACRtG,OAAO;UACPC,SAAS;UACTC,WAAW;UACXqG,QAAQ,EAAEnD,IAAI;UACdoD,QAAQ,EAAEnD,IAAI;UACd/C,SAAS,EAAEa,EAAE;UACbsF,aAAa,EAAEzB,QAAQ,CAAC5B,IAAI,CAAC+B;QAC/B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO1E,KAAU,EAAE;MACnB;MACA;MACAyC,YAAY,CAACoB,aAAa,CAAC;MAC3B;MACA;MACA;MACA;MACA,MAAMoC,MAAM,GAAG,OAAOtD,IAAI,EAAEoB,GAAG,KAAK,QAAQ,GAAGpB,IAAI,CAACoB,GAAG,GAAG,EAAE;MAC5D,MAAMmC,SAAS,GAAGD,MAAM,CAACE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS;MAC/DrE,OAAO,CAAC9B,KAAK,CAAC,eAAe,EAAE;QAC7BoC,MAAM,EAAEpC,KAAK,EAAEuE,QAAQ,EAAEnC,MAAM;QAC/BgE,UAAU,EAAEpG,KAAK,EAAEuE,QAAQ,EAAE6B,UAAU;QACvCC,UAAU,EAAErG,KAAK,EAAEuE,QAAQ,EAAE5B,IAAI;QACjC2D,UAAU,EAAEtG,KAAK,EAAErB,MAAM,EAAE4H,GAAG;QAC9BC,YAAY,EAAExG,KAAK,EAAEX,OAAO;QAC5BoH,SAAS,EAAEzG,KAAK,EAAE0G,IAAI;QACtBC,iBAAiB,EAAE3G,KAAK,EAAE4G,KAAK,EAAEvH,OAAO;QACxC0E,GAAG,EAAEkC,MAAM;QACXC,SAAS;QACTW,IAAI,EAAE/C,QAAQ,CAAClB,IAAI;QACnBkE,aAAa,EAAEnE,IAAI,EAAEG,IAAI,IAAI,IAAI;QACjCS,QAAQ,EAAEO,QAAQ,CAAC9C,IAAI;QACvB+F,UAAU,EAAEpK,QAAQ,CAACqK,EAAE;QACvBC,eAAe,EAAEtK,QAAQ,CAACuK;MAC5B,CAAC,CAAC;MACF5I,QAAQ,CACNhB,iBAAiB,CAAC;QAChB0E,IAAI,EAAE,OAAO;QACbtB,EAAE;QACFX,OAAO,EAAET,aAAa;QACtBqD,IAAI;QACJC,IAAI;QACJrD,OAAO;QACPC,SAAS;QACTC;MACF,CAAC,CACH,CAAC;MACDV,mBAAmB,CAAC;QAClBM,OAAO,EAAE,OAAO;QAChBU,OAAO,EAAET,aAAa;QACtBU,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAAC5B,MAAM,EAAEM,MAAM,EAAEH,IAAI,EAAEF,QAAQ,EAAEQ,iBAAiB,EAAEC,mBAAmB,EAAER,UAAU,CACrF,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAM4I,YAAY,GAAGzK,WAAW,CAC9B,MAAO0K,QAAgB,IAAK;IAC1B,MAAMC,OAAO,GAAGnI,cAAc,CAACkI,QAAQ,CAAC;IACxC,IAAI,CAACC,OAAO,EAAE;MAAC;IAAO;IACtB/I,QAAQ,CAACjB,mBAAmB,CAAC+J,QAAQ,CAAC,CAAC;IACvCnI,kBAAkB,CAAC;MACjBY,SAAS,EAAEuH,QAAQ;MACnBrH,OAAO,EAAEsH,OAAO,CAACtH,OAAO;MACxBE,WAAW,EAAEoH,OAAO,CAACrF;IACvB,CAAC,CAAC;IACF,IAAIqF,OAAO,CAACrF,IAAI,KAAK,MAAM,EAAE;MAC3B,MAAM5C,WAAW,CACfiI,OAAO,CAACzG,IAAI,EACZyG,OAAO,CAACtH,OAAO,EACfsH,OAAO,CAAC9H,OAAO,EACf8H,OAAO,CAAC7H,SAAS,EACjB6H,OAAO,CAAC5H,WACV,CAAC;IACH,CAAC,MAAM;MACL,MAAMiD,SAAS,CACb2E,OAAO,CAAC1E,IAAI,EACZ0E,OAAO,CAACzE,IAAI,EACZyE,OAAO,CAACtH,OAAO,EACfsH,OAAO,CAAC9H,OAAO,EACf8H,OAAO,CAAC7H,SAAS,EACjB6H,OAAO,CAAC5H,WAAW,EACnB2H,QACF,CAAC;IACH;EACF,CAAC,EACD,CAAClI,cAAc,EAAEZ,QAAQ,EAAEW,kBAAkB,EAAEG,WAAW,EAAEsD,SAAS,CACvE,CAAC;;EAED;EACA;EACA;EACA,MAAM4E,eAAe,GAAG5K,WAAW,CACjC,OAAO2C,OAAe,EAAEkI,cAAuB,KAAK;IAClD,IAAI,CAAC3I,UAAU,EAAEc,MAAM,IAAI,CAACd,UAAU,CAACgB,OAAO,IAAI,CAAChB,UAAU,CAACiB,SAAS,EAAE;MACvE;IACF;IACA,IAAI;MACFxB,MAAM,EAAEsB,iBAAiB,CACvBf,UAAU,CAACgB,OAAO,EAClBhB,UAAU,CAACiB,SAAS,EACpBR,OACF,CAAC;MACDL,mBAAmB,CAAC;QAClBa,SAAS,EAAEjB,UAAU,CAACiB,SAAS;QAC/BC,UAAU,EAAET,OAAO;QACnBU,OAAO,EAAEnB,UAAU,CAACgB,OAAO;QAC3BpB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACdjB,mBAAmB,CAAC;QAClBM,OAAO;QACPU,OAAO,EAAEnB,UAAU,CAACgB,OAAO;QAC3BI,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;IACA3B,QAAQ,CAACnB,aAAa,CAAC;MAAEuC,MAAM,EAAE;IAAM,CAAC,CAAC,CAAC;EAC5C,CAAC,EACD,CAACrB,MAAM,EAAEO,UAAU,EAAEJ,IAAI,EAAEF,QAAQ,EAAEU,mBAAmB,EAAED,mBAAmB,CAC/E,CAAC;;EAED;EACA;EACA;EACA,MAAMyI,kCAAkC,GAAG9K,WAAW,CACnDqD,OAAe,IAAc;IAC5B,IAAI,CAACA,OAAO,EAAE;MAAC,OAAO,KAAK;IAAC;IAC5B,MAAM0H,IAAI,GAAG5I,KAAK,GAAGkB,OAAO,CAAC,EAAE0B,QAAQ;IACvC,IAAI,CAACgG,IAAI,IAAIA,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;MAAC,OAAO,KAAK;IAAC;IAC9C,MAAMC,IAAI,GAAGF,IAAI,CAACA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;IAClC,IAAI,CAACC,IAAI,EAAE7G,OAAO,EAAE;MAAC,OAAO,KAAK;IAAC;IAClC,MAAMR,MAAM,GAAG9B,IAAI,EAAE+B,YAAY,IAAI/B,IAAI,EAAEgC,aAAa;IACxD,IAAI,CAACF,MAAM,EAAE;MAAC,OAAO,KAAK;IAAC;IAC3B,OAAOqH,IAAI,CAACnJ,IAAI,EAAEkC,EAAE,KAAKJ,MAAM;EACjC,CAAC,EACD,CAACzB,KAAK,EAAEL,IAAI,EAAE+B,YAAY,EAAE/B,IAAI,EAAEgC,aAAa,CACjD,CAAC;EAED,OAAO;IACLpB,WAAW;IACXsD,SAAS;IACT4E,eAAe;IACfH,YAAY;IACZK;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -3,20 +3,18 @@
3
3
  import { useSyncExternalStore } from 'react';
4
4
  import { store } from '../roomStore';
5
5
  export const useUnreadMessagesCounter = () => {
6
- const subscribe = callback => {
7
- const unsubscribe = store.subscribe(() => {
8
- const state = store.getState();
9
- const rooms = state.rooms?.rooms;
10
- if (rooms) {
11
- Object.entries(rooms).forEach(([roomJid, room]) => {
12
- if (room.unreadMessages !== undefined) {
13
- callback();
14
- }
15
- });
16
- }
17
- });
18
- return unsubscribe;
19
- };
6
+ // Notify React on EVERY store change and let useSyncExternalStore's
7
+ // snapshot comparison (Object.is on the `rooms` reference) decide
8
+ // whether to re-render. The previous implementation only fired the
9
+ // callback while iterating rooms that already had `unreadMessages`
10
+ // defined — so when `rooms` became empty (logout, or the last room
11
+ // removed) the loop body never ran, the callback never fired, and the
12
+ // hook never re-rendered: a consumer's badge stayed stuck at its last
13
+ // non-zero count after logout. (It's also cheaper — one callback per
14
+ // change instead of one per unread room. Redux Toolkit keeps the
15
+ // `rooms` slice reference stable across actions that don't touch it,
16
+ // so non-rooms dispatches still don't trigger a re-render.)
17
+ const subscribe = callback => store.subscribe(callback);
20
18
  const rooms = useSyncExternalStore(subscribe, () => store.getState().rooms.rooms);
21
19
  const unreadByRoom = {};
22
20
  let totalCount = 0;
@@ -1 +1 @@
1
- {"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","unsubscribe","state","getState","rooms","Object","entries","forEach","roomJid","room","unreadMessages","undefined","unreadByRoom","totalCount","unreadCount","hasUnread","useUnread"],"sourceRoot":"../../../src","sources":["hooks/useUnreadMessagesCounter.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAAoBC,KAAK,QAAQ,cAAc;AAY/C,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAA2B;EACjE,MAAMC,SAAS,GAAIC,QAAoB,IAAK;IAC1C,MAAMC,WAAW,GAAGJ,KAAK,CAACE,SAAS,CAAC,MAAM;MACxC,MAAMG,KAAgB,GAAGL,KAAK,CAACM,QAAQ,CAAC,CAAC;MACzC,MAAMC,KAAK,GAAGF,KAAK,CAACE,KAAK,EAAEA,KAAK;MAEhC,IAAIA,KAAK,EAAE;QACTC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;UAClE,IAAIA,IAAI,CAACC,cAAc,KAAKC,SAAS,EAAE;YACrCX,QAAQ,CAAC,CAAC;UACZ;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IACF,OAAOC,WAAW;EACpB,CAAC;EAED,MAAMG,KAAK,GAAGR,oBAAoB,CAChCG,SAAS,EACT,MAAMF,KAAK,CAACM,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAC/B,CAAC;EAED,MAAMQ,YAA+B,GAAG,CAAC,CAAC;EAC1C,IAAIC,UAAU,GAAG,CAAC;EAElBR,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;IAClE,MAAMK,WAAW,GAAGL,IAAI,CAACC,cAAc,IAAI,CAAC;IAC5C,IAAII,WAAW,GAAG,CAAC,EAAE;MACnBF,YAAY,CAACJ,OAAO,CAAC,GAAGM,WAAW;MACnCD,UAAU,IAAIC,WAAW;IAC3B;EACF,CAAC,CAAC;EAEF,OAAO;IACLC,SAAS,EAAEF,UAAU,GAAG,CAAC;IACzBA,UAAU;IACVD;EACF,CAAC;AACH,CAAC;AAED,SAASd,wBAAwB,IAAIkB,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","rooms","getState","unreadByRoom","totalCount","Object","entries","forEach","roomJid","room","unreadCount","unreadMessages","hasUnread","useUnread"],"sourceRoot":"../../../src","sources":["hooks/useUnreadMessagesCounter.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,KAAK,QAAQ,cAAc;AAYpC,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAA2B;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,SAAS,GAAIC,QAAoB,IAAKH,KAAK,CAACE,SAAS,CAACC,QAAQ,CAAC;EAErE,MAAMC,KAAK,GAAGL,oBAAoB,CAChCG,SAAS,EACT,MAAMF,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACD,KAAK,CAACA,KAC/B,CAAC;EAED,MAAME,YAA+B,GAAG,CAAC,CAAC;EAC1C,IAAIC,UAAU,GAAG,CAAC;EAElBC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CAACM,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;IAClE,MAAMC,WAAW,GAAGD,IAAI,CAACE,cAAc,IAAI,CAAC;IAC5C,IAAID,WAAW,GAAG,CAAC,EAAE;MACnBP,YAAY,CAACK,OAAO,CAAC,GAAGE,WAAW;MACnCN,UAAU,IAAIM,WAAW;IAC3B;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,SAAS,EAAER,UAAU,GAAG,CAAC;IACzBA,UAAU;IACVD;EACF,CAAC;AACH,CAAC;AAED,SAASL,wBAAwB,IAAIe,SAAS","ignoreList":[]}
@@ -30,6 +30,7 @@ export { XmppProvider } from './context/xmppProvider';
30
30
 
31
31
  // Hooks that consumers usually need (badge counts, logout, push, etc.).
32
32
  export { useUnread } from './hooks/useUnreadMessagesCounter';
33
+ export { useChatRoomFocus } from './hooks/useChatRoomFocus';
33
34
  export { logoutService } from './hooks/useLogout';
34
35
  export { useQRCodeChat, handleQRChatId } from './hooks/useQRCodeChatHandler';
35
36
  export { resendMessage } from './utils/resendMessage';
@@ -1 +1 @@
1
- {"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","logoutService","useQRCodeChat","handleQRChatId","resendMessage"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA","ignoreList":[]}
1
+ {"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA","ignoreList":[]}
@@ -8,8 +8,9 @@
8
8
  // } from 'firebase/auth';
9
9
  // import { app } from '../../../firebase-config';
10
10
 
11
- import http, { getCurrentAppToken } from '../apiClient';
11
+ import http, { getCurrentAppToken, getCurrentBaseURL } from '../apiClient';
12
12
  import { store } from '../../roomStore';
13
+ import { pushLog } from '../../utils/devLogger';
13
14
 
14
15
  // login functions
15
16
  export async function loginEmail(email, password) {
@@ -120,4 +121,69 @@ export function uploadFile(formData) {
120
121
  }
121
122
  });
122
123
  }
124
+ export async function uploadFileViaFetch(formData) {
125
+ const token = store.getState().chatSettingStore?.user?.token ?? '';
126
+ const baseUrl = getCurrentBaseURL();
127
+ const url = `${baseUrl.replace(/\/$/, '')}/files/`;
128
+ pushLog('http', `→ POST ${url} (fetch)`, {
129
+ headers: {
130
+ Authorization: token ? token.slice(0, 16) + '…' : '[empty]',
131
+ Accept: '*/*'
132
+ }
133
+ });
134
+ let res;
135
+ try {
136
+ res = await fetch(url, {
137
+ method: 'POST',
138
+ headers: {
139
+ Authorization: token,
140
+ Accept: '*/*'
141
+ },
142
+ body: formData
143
+ });
144
+ } catch (e) {
145
+ pushLog('http', `← ERR fetch /files/`, {
146
+ name: e?.name,
147
+ message: e?.message,
148
+ stack: e?.stack
149
+ });
150
+ const err = new Error(e?.message || 'Network request failed');
151
+ err.code = 'ERR_NETWORK';
152
+ err.cause = e;
153
+ err.config = {
154
+ url: '/files/'
155
+ };
156
+ throw err;
157
+ }
158
+ if (!res.ok) {
159
+ let body = null;
160
+ try {
161
+ body = await res.json();
162
+ } catch {
163
+ try {
164
+ body = await res.text();
165
+ } catch {
166
+ body = null;
167
+ }
168
+ }
169
+ pushLog('http', `← ${res.status} POST /files/ (fetch)`, body);
170
+ const err = new Error(`Upload failed: ${res.status}`);
171
+ err.response = {
172
+ status: res.status,
173
+ statusText: res.statusText,
174
+ data: body
175
+ };
176
+ err.config = {
177
+ url: '/files/'
178
+ };
179
+ throw err;
180
+ }
181
+ const data = await res.json();
182
+ pushLog('http', `← ${res.status} POST /files/ (fetch)`, {
183
+ resultsCount: Array.isArray(data?.results) ? data.results.length : 'n/a'
184
+ });
185
+ return {
186
+ data
187
+ };
188
+ }
123
189
  //# sourceMappingURL=auth.api.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["http","getCurrentAppToken","store","loginEmail","email","password","res","post","headers","Authorization","console","log","data","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","get","loginViaJwt","clientToken","response","hasUser","user","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","getState","chatSettingStore","Accept","transformRequest","delete"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["http","getCurrentAppToken","getCurrentBaseURL","store","pushLog","loginEmail","email","password","res","post","headers","Authorization","console","log","data","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","get","loginViaJwt","clientToken","response","hasUser","user","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","getState","chatSettingStore","Accept","transformRequest","delete","uploadFileViaFetch","baseUrl","url","replace","slice","fetch","method","body","e","name","message","stack","err","Error","code","cause","config","ok","json","text","status","statusText","resultsCount","Array","isArray","results","length"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":"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","ignoreList":[]}
@@ -14,16 +14,41 @@ import http from '../apiClient';
14
14
  * 1. explicit `room.jid` from the server (if present)
15
15
  * 2. `<name>@conference.<xmppHost>` where xmppHost comes from the
16
16
  * provider's `xmppSettings.host` saved to `chatSettingStore.config`
17
- * 3. fallback: `<name>@conference.xmpp.chat.ethora.com`
17
+ * 3. derive host from `config.baseUrl` (api.<host> → xmpp.<host>)
18
+ * as a last-resort heuristic for misconfigured deployments
19
+ * 4. otherwise: skip the room with a warn log (NEVER fall back to a
20
+ * hardcoded vendor host — previously `xmpp.chat.ethora.com`, which
21
+ * manifested as a phantom "ethora" room stub on third-party servers,
22
+ * customer-reported #23)
18
23
  */
19
24
  function dispatchRoomsFromRestItems(items) {
20
25
  if (!items?.length) return;
21
26
  const config = store.getState().chatSettingStore?.config;
22
- const host = config?.xmppSettings?.host || config?.xmppSettings?.conference?.replace(/^conference\./, '') || 'xmpp.chat.ethora.com';
23
- const conference = config?.xmppSettings?.conference || `conference.${host}`;
27
+ // Best: explicit xmpp settings.
28
+ let host = config?.xmppSettings?.host || config?.xmppSettings?.conference?.replace(/^conference\./, '');
29
+ // Heuristic fallback: derive xmpp host from the REST baseUrl.
30
+ // `https://api.foo.com/v1` → `xmpp.foo.com`. Better than a hardcoded
31
+ // vendor host and right in 99% of single-domain deployments.
32
+ if (!host && typeof config?.baseUrl === 'string') {
33
+ const m = /^https?:\/\/(?:api\.)?([^/]+)/i.exec(config.baseUrl);
34
+ if (m && m[1]) {
35
+ host = `xmpp.${m[1].replace(/^api\./, '')}`;
36
+ }
37
+ }
38
+ const conference = config?.xmppSettings?.conference || (host ? `conference.${host}` : undefined);
24
39
  for (const item of items) {
25
40
  if (!item) continue;
26
- const jid = item.jid || `${item.name}@${conference}`;
41
+ let jid = item.jid;
42
+ if (!jid) {
43
+ if (!conference) {
44
+ // No server-supplied JID and no way to synthesize one safely —
45
+ // skip rather than create a phantom room on a wrong host.
46
+ // Consumers who hit this should set config.xmppSettings.host.
47
+ console.warn(`[ethora-rn] rooms.api: skipping room "${item.name}" — no item.jid and no xmppSettings.host / baseUrl to derive host from`);
48
+ continue;
49
+ }
50
+ jid = `${item.name}@${conference}`;
51
+ }
27
52
  if (!jid.includes('@')) continue;
28
53
  const room = {
29
54
  id: item._id || jid,