@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 +1 @@
1
- {"version":3,"names":["_dateComparison","require","deepMerge","target","source","key","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","pending","newMessageDate","date","lastMessage","length","firstMessage","isDateAfter","toString","index","push","some","delimiterIndex","splice","user","name","undefined","token","refreshToken","Date","body","roomJid","isDateBefore","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dateComparison","require","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","isDateAfter","toString","index","push","some","delimiterIndex","splice","name","undefined","token","refreshToken","Date","body","roomJid","isDateBefore","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getKeyboardVerticalOffset = exports.getInputDockPaddingBottom = void 0;
7
+ const getKeyboardVerticalOffset = ({
8
+ platform,
9
+ configuredOffset = 0,
10
+ bottomInset = 0
11
+ }) => configuredOffset + (platform === 'ios' ? bottomInset : 0);
12
+ exports.getKeyboardVerticalOffset = getKeyboardVerticalOffset;
13
+ const getInputDockPaddingBottom = ({
14
+ platform,
15
+ bottomInset = 0
16
+ }) => platform === 'ios' ? bottomInset : 0;
17
+ exports.getInputDockPaddingBottom = getInputDockPaddingBottom;
18
+ //# sourceMappingURL=keyboardLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getKeyboardVerticalOffset","platform","configuredOffset","bottomInset","exports","getInputDockPaddingBottom"],"sourceRoot":"../../../src","sources":["helpers/keyboardLayout.ts"],"mappings":";;;;;;AAMO,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;AAACC,OAAA,CAAAJ,yBAAA,GAAAA,yBAAA;AAErD,MAAMK,yBAAyB,GAAGA,CAAC;EACxCJ,QAAQ;EACRE,WAAW,GAAG;AAC8B,CAAC,KAC7CF,QAAQ,KAAK,KAAK,GAAGE,WAAW,GAAG,CAAC;AAACC,OAAA,CAAAC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fitMediaDimensions = exports.defaultMediaDims = exports.MEDIA_MAX_W = exports.MEDIA_MAX_H = void 0;
7
+ var _reactNative = require("react-native");
8
+ // Shared sizing for inline media bubbles (images + video posters).
9
+ // Goal: show the media UNCROPPED, just scaled, preserving aspect ratio —
10
+ // portrait stays portrait, landscape stays landscape.
11
+ const screenW = _reactNative.Dimensions.get('window').width;
12
+
13
+ // Box the media must fit inside. Width adapts to the screen so it never
14
+ // blows past the bubble's max-width on small phones, but caps on tablets.
15
+ const MEDIA_MAX_W = exports.MEDIA_MAX_W = Math.min(260, Math.round(screenW * 0.64));
16
+ const MEDIA_MAX_H = exports.MEDIA_MAX_H = 320;
17
+ // Keep thumbnails from collapsing into a sliver (very wide/tall media).
18
+ const MEDIA_MIN_W = 140;
19
+ const MEDIA_MIN_H = 120;
20
+ // Neutral 4:3 placeholder used before the natural size is known.
21
+ const defaultMediaDims = () => ({
22
+ width: MEDIA_MAX_W,
23
+ height: Math.round(MEDIA_MAX_W * 0.75)
24
+ });
25
+
26
+ // Fit (natW × natH) inside the box, preserving aspect ratio. Never
27
+ // upscales beyond the source resolution (avoids blur), but bumps very
28
+ // small media up to a sensible minimum so it stays tappable.
29
+ exports.defaultMediaDims = defaultMediaDims;
30
+ const fitMediaDimensions = (natW, natH) => {
31
+ if (!natW || !natH) {
32
+ return defaultMediaDims();
33
+ }
34
+ let scale = Math.min(MEDIA_MAX_W / natW, MEDIA_MAX_H / natH);
35
+ if (scale > 1) {
36
+ scale = 1;
37
+ }
38
+ let width = Math.round(natW * scale);
39
+ let height = Math.round(natH * scale);
40
+ if (width < MEDIA_MIN_W || height < MEDIA_MIN_H) {
41
+ const up = Math.max(MEDIA_MIN_W / width, MEDIA_MIN_H / height);
42
+ width = Math.min(MEDIA_MAX_W, Math.round(width * up));
43
+ height = Math.min(MEDIA_MAX_H, Math.round(height * up));
44
+ }
45
+ return {
46
+ width,
47
+ height
48
+ };
49
+ };
50
+ exports.fitMediaDimensions = fitMediaDimensions;
51
+ //# sourceMappingURL=mediaDimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","screenW","Dimensions","get","width","MEDIA_MAX_W","exports","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,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA,MAAMC,OAAO,GAAGC,uBAAU,CAACC,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK;;AAE9C;AACA;AACO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAGE,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAACE,KAAK,CAACR,OAAO,GAAG,IAAI,CAAC,CAAC;AAC7D,MAAMS,WAAW,GAAAJ,OAAA,CAAAI,WAAA,GAAG,GAAG;AAC9B;AACA,MAAMC,WAAW,GAAG,GAAG;AACvB,MAAMC,WAAW,GAAG,GAAG;AAOvB;AACO,MAAMC,gBAAgB,GAAGA,CAAA,MAAkB;EAChDT,KAAK,EAAEC,WAAW;EAClBS,MAAM,EAAEP,IAAI,CAACE,KAAK,CAACJ,WAAW,GAAG,IAAI;AACvC,CAAC,CAAC;;AAEF;AACA;AACA;AAAAC,OAAA,CAAAO,gBAAA,GAAAA,gBAAA;AACO,MAAME,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,CAACH,WAAW,GAAGW,IAAI,EAAEN,WAAW,GAAGO,IAAI,CAAC;EAC5D,IAAIC,KAAK,GAAG,CAAC,EAAE;IACbA,KAAK,GAAG,CAAC;EACX;EACA,IAAId,KAAK,GAAGG,IAAI,CAACE,KAAK,CAACO,IAAI,GAAGE,KAAK,CAAC;EACpC,IAAIJ,MAAM,GAAGP,IAAI,CAACE,KAAK,CAACQ,IAAI,GAAGC,KAAK,CAAC;EAErC,IAAId,KAAK,GAAGO,WAAW,IAAIG,MAAM,GAAGF,WAAW,EAAE;IAC/C,MAAMO,EAAE,GAAGZ,IAAI,CAACa,GAAG,CAACT,WAAW,GAAGP,KAAK,EAAEQ,WAAW,GAAGE,MAAM,CAAC;IAC9DV,KAAK,GAAGG,IAAI,CAACC,GAAG,CAACH,WAAW,EAAEE,IAAI,CAACE,KAAK,CAACL,KAAK,GAAGe,EAAE,CAAC,CAAC;IACrDL,MAAM,GAAGP,IAAI,CAACC,GAAG,CAACE,WAAW,EAAEH,IAAI,CAACE,KAAK,CAACK,MAAM,GAAGK,EAAE,CAAC,CAAC;EACzD;EACA,OAAO;IAAEf,KAAK;IAAEU;EAAO,CAAC;AAC1B,CAAC;AAACR,OAAA,CAAAS,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.deriveDisplayFilename = deriveDisplayFilename;
7
7
  exports.ensureFilenameHasExtension = ensureFilenameHasExtension;
8
8
  exports.filenameFromUrl = filenameFromUrl;
9
9
  exports.getExtensionForMime = getExtensionForMime;
10
+ exports.isLikelyAudio = isLikelyAudio;
10
11
  // MIME → file extension table for download/preview filename fallbacks.
11
12
  // Centralized so FilePreviewModal, MediaMessage, and any future media
12
13
  // surface share one source of truth. Keep additions sorted by category.
@@ -66,6 +67,61 @@ const MIME_TO_EXT = {
66
67
  };
67
68
  const VALID_EXT_RE = /\.[a-z0-9]{1,8}$/i;
68
69
 
70
+ // Audio file extensions we recognise across the SDK. Used for the
71
+ // "looks like audio even when the mimetype is application/octet-stream"
72
+ // heuristic in MediaMessage / FilePreviewModal. Voice-message senders
73
+ // (web app, push voice memos) sometimes ship audio as octet-stream with
74
+ // no audio mime — sniffing the extension lets us still play it.
75
+ // `.bin` is intentionally NOT here: it's our own fallback extension for
76
+ // truly unknown payloads (see getExtensionForMime), not a real format.
77
+ const AUDIO_EXTENSIONS = ['.mp3', '.m4a', '.wav', '.aac', '.ogg', '.flac', '.weba', '.webm', '.opus', '.amr', '.3gp', '.3gpp'];
78
+ const AUDIO_EXT_RE = new RegExp(`(${AUDIO_EXTENSIONS.map(e => e.replace('.', '\\.')).join('|')})$`, 'i');
79
+ // Filename / URL substrings that strongly indicate a voice / audio
80
+ // payload even without an explicit audio extension — e.g. a web-app
81
+ // voicemail uploaded as application/octet-stream named "voicemail-…".
82
+ const AUDIO_NAME_HINT_RE = /(?:^|[_\-./])(voice|voicemail|audio|audio-message|audiomessage|recording|voice-?note)(?:[_\-./]|$)/i;
83
+
84
+ /**
85
+ * Returns true when the (mime, fileName, url) triple looks like an
86
+ * audio payload — either by mime, by recognised extension on the
87
+ * filename or URL path, or by a voice-message naming hint. The hint
88
+ * branch is what catches voicemails sent as `application/octet-stream`
89
+ * with a generic `.bin` filename (customer-reported #9 voicemail).
90
+ */
91
+ function isLikelyAudio(mime, fileName, url) {
92
+ const m = (mime || '').toLowerCase();
93
+ if (m.startsWith('audio/')) {
94
+ return true;
95
+ }
96
+ // For octet-stream (and any other non-audio mime) fall through to the
97
+ // filename / URL heuristics. We don't restrict to octet-stream — some
98
+ // backends send no mime at all, or send text/plain by accident.
99
+ const name = (fileName || '').toLowerCase();
100
+ const urlLast = filenameFromUrl(url).toLowerCase();
101
+ if (AUDIO_EXT_RE.test(name) || AUDIO_EXT_RE.test(urlLast)) {
102
+ return true;
103
+ }
104
+ // Last resort: voice-message naming hint anywhere in the filename, the
105
+ // URL's last segment, OR the URL's full path. Voicemails are commonly
106
+ // hosted under `/voice/abc-123` or `/voicemail/abc-123` where the last
107
+ // segment is an opaque id with no hint by itself.
108
+ const urlPath = (() => {
109
+ if (!url) {
110
+ return '';
111
+ }
112
+ try {
113
+ const noQuery = url.split('?')[0].split('#')[0];
114
+ return decodeURIComponent(noQuery).toLowerCase();
115
+ } catch {
116
+ return '';
117
+ }
118
+ })();
119
+ if (AUDIO_NAME_HINT_RE.test(name) || AUDIO_NAME_HINT_RE.test(urlLast) || AUDIO_NAME_HINT_RE.test(urlPath)) {
120
+ return true;
121
+ }
122
+ return false;
123
+ }
124
+
69
125
  /**
70
126
  * Returns the conventional extension (including the leading dot) for a
71
127
  * MIME type, or `.bin` as a last-resort fallback so callers never end up
@@ -1 +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":[]}
1
+ {"version":3,"names":["MIME_TO_EXT","VALID_EXT_RE","AUDIO_EXTENSIONS","AUDIO_EXT_RE","RegExp","map","e","replace","join","AUDIO_NAME_HINT_RE","isLikelyAudio","mime","fileName","url","m","toLowerCase","startsWith","name","urlLast","filenameFromUrl","test","urlPath","noQuery","split","decodeURIComponent","getExtensionForMime","normalized","trim","last","pop","ensureFilenameHasExtension","base","Date","now","deriveDisplayFilename","opts","candidate","originalName"],"sourceRoot":"../../../src","sources":["helpers/mimeToExtension.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalizeRoomJid = void 0;
7
+ const normalizeRoomJid = (roomJID, conference) => {
8
+ if (!roomJID) {
9
+ return roomJID;
10
+ }
11
+ if (roomJID.includes('@')) {
12
+ return roomJID;
13
+ }
14
+ if (!conference) {
15
+ return roomJID;
16
+ }
17
+ return `${roomJID}@${conference}`;
18
+ };
19
+ exports.normalizeRoomJid = normalizeRoomJid;
20
+ //# sourceMappingURL=normalizeRoomJid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeRoomJid","roomJID","conference","includes","exports"],"sourceRoot":"../../../src","sources":["helpers/normalizeRoomJid.ts"],"mappings":";;;;;;AAAO,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;AAACE,OAAA,CAAAJ,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useChatRoomFocus = exports.default = void 0;
7
+ var _react = require("react");
8
+ var _reactRedux = require("react-redux");
9
+ var _roomsSlice = require("../roomStore/roomsSlice");
10
+ var _roomStore = require("../roomStore");
11
+ /**
12
+ * Public hook for consumers embedding `<ChatRoom>` inside a tab-based
13
+ * navigator. Mirrors the mount/unmount unread-tracking that ChatRoom
14
+ * does internally — but driven by an explicit focus signal so the
15
+ * unread counter behaves correctly when the chat tab is not focused
16
+ * but the component is still mounted.
17
+ *
18
+ * Without this hook, `useUnread()` will always return 0 for the chat
19
+ * room because the SDK assumes "mounted == active". With this hook,
20
+ * focus marks the room visible (clearing the badge) and blur stamps
21
+ * `lastViewedTimestamp = Date.now()` so future messages count as unread.
22
+ *
23
+ * Usage with React Navigation:
24
+ *
25
+ * ```tsx
26
+ * import { useIsFocused } from '@react-navigation/native';
27
+ *
28
+ * function ChatTab() {
29
+ * const isFocused = useIsFocused();
30
+ * useChatRoomFocus({ roomJID: 'general@conference.host', isFocused });
31
+ * return <Chat config={...} />;
32
+ * }
33
+ * ```
34
+ *
35
+ * Bug #18-adjacent / unread-tracking bug from sdk-bug-tracker.md.
36
+ */
37
+ const useChatRoomFocus = ({
38
+ roomJID,
39
+ isFocused
40
+ }) => {
41
+ const dispatch = (0, _reactRedux.useDispatch)();
42
+ const prevRef = (0, _react.useRef)({
43
+ roomJID: null,
44
+ isFocused: false
45
+ });
46
+ const leaveRoom = jid => {
47
+ const timestamp = Date.now();
48
+ dispatch((0, _roomsSlice.setLastViewedTimestamp)({
49
+ chatJID: jid,
50
+ timestamp
51
+ }));
52
+ dispatch((0, _roomsSlice.clearVisibleRoom)());
53
+ const rooms = _roomStore.store.getState().rooms?.rooms;
54
+ _roomStore.store.getState().chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
55
+ visibleRoomJID: jid
56
+ }).catch(() => {});
57
+ };
58
+ (0, _react.useEffect)(() => {
59
+ const prev = prevRef.current;
60
+ if (prev.isFocused && prev.roomJID && (prev.roomJID !== roomJID || !isFocused)) {
61
+ leaveRoom(prev.roomJID);
62
+ }
63
+ if (roomJID && isFocused) {
64
+ dispatch((0, _roomsSlice.setCurrentRoom)({
65
+ roomJID
66
+ }));
67
+ dispatch((0, _roomsSlice.setVisibleRoom)({
68
+ roomJID
69
+ }));
70
+ }
71
+ prevRef.current = {
72
+ roomJID: roomJID || null,
73
+ isFocused
74
+ };
75
+ }, [roomJID, isFocused, dispatch]);
76
+ (0, _react.useEffect)(() => {
77
+ return () => {
78
+ const prev = prevRef.current;
79
+ if (prev.isFocused && prev.roomJID) {
80
+ leaveRoom(prev.roomJID);
81
+ }
82
+ };
83
+ }, []);
84
+ };
85
+ exports.useChatRoomFocus = useChatRoomFocus;
86
+ var _default = exports.default = useChatRoomFocus;
87
+ //# sourceMappingURL=useChatRoomFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactRedux","_roomsSlice","_roomStore","useChatRoomFocus","roomJID","isFocused","dispatch","useDispatch","prevRef","useRef","leaveRoom","jid","timestamp","Date","now","setLastViewedTimestamp","chatJID","clearVisibleRoom","rooms","store","getState","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","catch","useEffect","prev","current","setCurrentRoom","setVisibleRoom","exports","_default","default"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAMA,IAAAG,UAAA,GAAAH,OAAA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAAC,CAAC;EAC9B,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAiD;IACrEL,OAAO,EAAE,IAAI;IACbC,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,MAAMK,SAAS,GAAIC,GAAW,IAAK;IACjC,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BR,QAAQ,CAAC,IAAAS,kCAAsB,EAAC;MAAEC,OAAO,EAAEL,GAAG;MAAEC;IAAU,CAAC,CAAC,CAAC;IAC7DN,QAAQ,CAAC,IAAAW,4BAAgB,EAAC,CAAC,CAAC;IAC5B,MAAMC,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACF,KAAK,EAAEA,KAAK;IAC1CC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAUC,MAAM,EAC9CC,mCAAmC,CAACL,KAAK,EAAE;MAAEM,cAAc,EAAEb;IAAI,CAAC,CAAC,CACpEc,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB,CAAC;EAED,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,IAAI,GAAGnB,OAAO,CAACoB,OAAO;IAC5B,IAAID,IAAI,CAACtB,SAAS,IAAIsB,IAAI,CAACvB,OAAO,KAAKuB,IAAI,CAACvB,OAAO,KAAKA,OAAO,IAAI,CAACC,SAAS,CAAC,EAAE;MAC9EK,SAAS,CAACiB,IAAI,CAACvB,OAAO,CAAC;IACzB;IAEA,IAAIA,OAAO,IAAIC,SAAS,EAAE;MACxBC,QAAQ,CAAC,IAAAuB,0BAAc,EAAC;QAAEzB;MAAQ,CAAC,CAAC,CAAC;MACrCE,QAAQ,CAAC,IAAAwB,0BAAc,EAAC;QAAE1B;MAAQ,CAAC,CAAC,CAAC;IACvC;IAEAI,OAAO,CAACoB,OAAO,GAAG;MAAExB,OAAO,EAAEA,OAAO,IAAI,IAAI;MAAEC;IAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC,CAAC;EAElC,IAAAoB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAMC,IAAI,GAAGnB,OAAO,CAACoB,OAAO;MAC5B,IAAID,IAAI,CAACtB,SAAS,IAAIsB,IAAI,CAACvB,OAAO,EAAE;QAClCM,SAAS,CAACiB,IAAI,CAACvB,OAAO,CAAC;MACzB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAAC2B,OAAA,CAAA5B,gBAAA,GAAAA,gBAAA;AAAA,IAAA6B,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEa9B,gBAAgB","ignoreList":[]}
@@ -35,7 +35,7 @@ const useHeapSender = client => {
35
35
  inFlightRef.current.set(msg.id, Date.now());
36
36
  try {
37
37
  if (msg.langSource) {
38
- await client.sendTextMessageWithTranslateTagStanza(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, msg.showInChannel === 'true', msg.mainMessage || '', msg.langSource);
38
+ await client.sendTextMessageWithTranslateTagStanza(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, msg.showInChannel === 'true', msg.mainMessage || '', msg.langSource, msg.id);
39
39
  } else {
40
40
  await client.sendMessage(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, !!msg.showInChannel, msg.mainMessage, msg.id);
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactRedux","_useMessageHeapState","useHeapSender","client","dispatch","useDispatch","queue","useMessageHeapState","sendingRef","useRef","inFlightRef","Map","sendHeapMessages","useCallback","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","err","delete","prevReadyRef","useEffect","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has","exports"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactRedux","_useMessageHeapState","useHeapSender","client","dispatch","useDispatch","queue","useMessageHeapState","sendingRef","useRef","inFlightRef","Map","sendHeapMessages","useCallback","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","err","delete","prevReadyRef","useEffect","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has","exports"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":"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","ignoreList":[]}
@@ -53,7 +53,7 @@ const logoutService = exports.logoutService = {
53
53
  performLogout: async () => {
54
54
  // 0. Flush lastViewedTimestamp to the server's private store BEFORE
55
55
  // we close XMPP. Only rooms with no outstanding unread (plus the
56
- // active room) get their entries updated — rooms with unread
56
+ // visible room) get their entries updated — rooms with unread
57
57
  // keep their old marker so the next login still surfaces those
58
58
  // messages as unread. Without this, an active-room view at
59
59
  // logout would still appear unread on next login because we
@@ -62,10 +62,10 @@ const logoutService = exports.logoutService = {
62
62
  const state = _roomStore.store.getState();
63
63
  const client = state.chatSettingStore?.client;
64
64
  const rooms = state.rooms?.rooms;
65
- const activeRoomJID = state.rooms?.activeRoomJID || null;
65
+ const visibleRoomJID = state.rooms?.visibleRoomJID || null;
66
66
  if (client?.flushLastViewedToPrivateStoreStanza) {
67
67
  await Promise.race([client.flushLastViewedToPrivateStoreStanza(rooms, {
68
- activeRoomJID,
68
+ visibleRoomJID,
69
69
  onlyIfNoUnread: true
70
70
  }), new Promise(res => setTimeout(res, 2000))]);
71
71
  }
@@ -132,16 +132,41 @@ const logoutService = exports.logoutService = {
132
132
  }
133
133
  }
134
134
  };
135
+
136
+ /**
137
+ * Hook that returns an awaitable logout function.
138
+ *
139
+ * ```tsx
140
+ * const logout = useLogout();
141
+ * await logout();
142
+ * navigation.replace('SignIn'); // disk is provably clean here
143
+ * ```
144
+ *
145
+ * The returned function resolves AFTER all teardown work has landed:
146
+ * XMPP disconnect, redux reset, persisted slices wiped, stray
147
+ * AsyncStorage keys removed, REST cache cleared. It never rejects —
148
+ * any internal failure is logged via console.warn so a fire-and-forget
149
+ * `logout()` call (no `await`) still won't crash the host.
150
+ *
151
+ * Why awaitable: the persistence middleware debounces writes by 200ms,
152
+ * and the chat-slice `logout` reducer removes ETHORA_USER fire-and-
153
+ * forget. If the host navigated / re-mounted `<Chat>` immediately
154
+ * after a non-awaited call, the next bootstrap could occasionally
155
+ * read stale persisted state ("old chats reappear"). Awaiting the
156
+ * returned promise eliminates that race entirely.
157
+ */
135
158
  const useLogout = () => {
136
- const dispatch = (0, _reactRedux.useDispatch)();
137
- const handleLogout = (0, _react.useCallback)(() => {
138
- // The hook fires-and-forgets — consumers that need to await the
139
- // teardown should call `logoutService.performLogout()` directly.
140
- logoutService.performLogout().catch(err => {
141
- console.warn('useLogout: performLogout rejected', err);
142
- });
159
+ // dispatch is kept for backward-compat with consumers who treat the
160
+ // hook's presence as a redux-context requirement; not used directly
161
+ // here because the work happens through the module-level service.
162
+ (0, _reactRedux.useDispatch)();
163
+ return (0, _react.useCallback)(async () => {
164
+ try {
165
+ await logoutService.performLogout();
166
+ } catch (err) {
167
+ console.warn('useLogout: performLogout failed', err);
168
+ }
143
169
  }, []);
144
- return handleLogout;
145
170
  };
146
171
  exports.useLogout = useLogout;
147
172
  //# sourceMappingURL=useLogout.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_rooms","_persistence","_LOCAL_STORAGE","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","activeRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","console","warn","DeviceEventEmitter","emit","pushSubscriptionService","reset","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","localStorageConstants","ETHORA_USER","useLogout","useDispatch","handleLogout","useCallback","catch","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactRedux","require","_reactNative","_asyncStorage","_interopRequireDefault","_roomStore","_chatSettingsSlice","_roomsSlice","_react","_roomHeapSlice","_pushSubscriptionService","_rooms","_persistence","_LOCAL_STORAGE","e","__esModule","default","LIBRARY_STRAY_KEYS","logoutService","exports","performLogout","state","store","getState","client","chatSettingStore","rooms","visibleRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","console","warn","DeviceEventEmitter","emit","pushSubscriptionService","reset","clearRoomsRestCache","dispatch","setLogoutState","clearHeap","logout","clearPersistedState","AsyncStorage","multiRemove","localStorageConstants","ETHORA_USER","useLogout","useDispatch","useCallback","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
@@ -48,7 +48,11 @@ function usePushNotifications() {
48
48
  }
49
49
  };
50
50
  (0, _react.useEffect)(() => {
51
- initToken();
51
+ // initToken is async — `initToken()` without `.catch` leaves any
52
+ // rejection unhandled (showed as `Uncaught (in promise, id: X)` red
53
+ // screen in dev). The inner try/catch covers most paths but any
54
+ // synchronous throw before the try-block ran would still leak.
55
+ initToken().catch(err => console.warn('[usePushNotifications] initToken rejected', err));
52
56
  const unsubscribeForeground = (0, _pushNotifications.onForegroundMessage)(message => {
53
57
  setNotification(message);
54
58
  const {
@@ -75,7 +79,7 @@ function usePushNotifications() {
75
79
  setNotification(message);
76
80
  handleNotificationPress(message);
77
81
  }
78
- });
82
+ }).catch(err => console.warn('[usePushNotifications] getInitialNotification failed', err));
79
83
  return () => {
80
84
  unsubscribeForeground();
81
85
  unsubscribeOpened();
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_pushNotifications","_pushSubscriptionService","_reactRedux","_useLocalStorage","_roomsSlice","usePushNotifications","fcmToken","setFcmToken","useState","notification","setNotification","user","config","useSelector","state","chatSettingStore","rooms","dispatch","useDispatch","set","get","useLocalStorage","handleNotificationPress","remoteMessage","console","log","JSON","stringify","jid","data","chatJid","setPendingNotificationJid","warn","initToken","token","newToken","initPushNotifications","error","useEffect","unsubscribeForeground","onForegroundMessage","message","notif","Alert","alert","title","body","text","onPress","unsubscribeOpened","onNotificationOpenedApp","getInitialNotification","then","xmppPassword","defaultWallet","walletAddress","pushSubscriptionService","subscribeToPush","projectName","catch"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_pushNotifications","_pushSubscriptionService","_reactRedux","_useLocalStorage","_roomsSlice","usePushNotifications","fcmToken","setFcmToken","useState","notification","setNotification","user","config","useSelector","state","chatSettingStore","rooms","dispatch","useDispatch","set","get","useLocalStorage","handleNotificationPress","remoteMessage","console","log","JSON","stringify","jid","data","chatJid","setPendingNotificationJid","warn","initToken","token","newToken","initPushNotifications","error","useEffect","catch","err","unsubscribeForeground","onForegroundMessage","message","notif","Alert","alert","title","body","text","onPress","unsubscribeOpened","onNotificationOpenedApp","getInitialNotification","then","xmppPassword","defaultWallet","walletAddress","pushSubscriptionService","subscribeToPush","projectName"],"sourceRoot":"../../../src","sources":["hooks/usePushNotifications.ts"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@ const useRoomState = roomJID => {
12
12
  const room = (0, _reactRedux.useSelector)(state => roomJID ? state.rooms.rooms[roomJID] : undefined);
13
13
  const roomsList = (0, _reactRedux.useSelector)(state => state.rooms.rooms);
14
14
  const activeRoomJID = (0, _reactRedux.useSelector)(state => state.rooms.activeRoomJID);
15
+ const visibleRoomJID = (0, _reactRedux.useSelector)(state => state.rooms.visibleRoomJID);
15
16
  const editAction = (0, _reactRedux.useSelector)(state => state.rooms.editAction);
16
17
  const globalLoading = (0, _reactRedux.useSelector)(state => state.rooms.isLoading);
17
18
  const loading = (0, _reactRedux.useSelector)(state => {
@@ -25,6 +26,7 @@ const useRoomState = roomJID => {
25
26
  room,
26
27
  roomsList,
27
28
  activeRoomJID,
29
+ visibleRoomJID,
28
30
  editAction,
29
31
  globalLoading,
30
32
  loadingText,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactRedux","useRoomState","roomJID","room","useSelector","state","rooms","undefined","roomsList","activeRoomJID","editAction","globalLoading","isLoading","loading","activeJID","loadingText","usersSet","roomMessages","useMemo","messages","exports"],"sourceRoot":"../../../src","sources":["hooks/useRoomState.tsx"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAHA;;AAMO,MAAME,YAAY,GAAIC,OAAgB,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,uBAAW,EAAEC,KAAgB,IACxCH,OAAO,GAAGG,KAAK,CAACC,KAAK,CAACA,KAAK,CAACJ,OAAO,CAAC,GAAGK,SACzC,CAAC;EACD,MAAMC,SAAS,GAAG,IAAAJ,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACA,KAAK,CAAC;EACtE,MAAMG,aAAa,GAAG,IAAAL,uBAAW,EAC9BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACG,aACpC,CAAC;EACD,MAAMC,UAAU,GAAG,IAAAN,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACI,UAAU,CAAC;EAC5E,MAAMC,aAAa,GAAG,IAAAP,uBAAW,EAC9BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACM,SACpC,CAAC;EACD,MAAMC,OAAO,GAAG,IAAAT,uBAAW,EAAEC,KAAgB,IAAK;IAChD,MAAMS,SAAS,GAAGT,KAAK,CAACC,KAAK,CAACG,aAAa;IAC3C,OAAOK,SAAS,GAAGT,KAAK,CAACC,KAAK,CAACA,KAAK,CAACQ,SAAS,CAAC,EAAEF,SAAS,IAAI,KAAK,GAAG,KAAK;EAC7E,CAAC,CAAC;EACF,MAAMG,WAAW,GAAG,IAAAX,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACS,WACpC,CAAC;EACD,MAAMC,QAAQ,GAAG,IAAAZ,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACU,QAAQ,CAAC;EAExE,MAAMC,YAAY,GAAG,IAAAC,cAAO,EAC1B,MACET,aAAa,IAAID,SAAS,CAACC,aAAa,CAAC,GACrCD,SAAS,CAACC,aAAa,CAAC,CAACU,QAAQ,IAAI,EAAE,GACvC,EAAE,EACR,CAACX,SAAS,EAAEC,aAAa,CAC3B,CAAC;EAED,OAAO;IACLN,IAAI;IACJK,SAAS;IACTC,aAAa;IACbC,UAAU;IACVC,aAAa;IACbI,WAAW;IACXF,OAAO;IACPI,YAAY;IACZD;EACF,CAAC;AACH,CAAC;AAACI,OAAA,CAAAnB,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactRedux","useRoomState","roomJID","room","useSelector","state","rooms","undefined","roomsList","activeRoomJID","visibleRoomJID","editAction","globalLoading","isLoading","loading","activeJID","loadingText","usersSet","roomMessages","useMemo","messages","exports"],"sourceRoot":"../../../src","sources":["hooks/useRoomState.tsx"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAHA;;AAMO,MAAME,YAAY,GAAIC,OAAgB,IAAK;EAChD,MAAMC,IAAI,GAAG,IAAAC,uBAAW,EAAEC,KAAgB,IACxCH,OAAO,GAAGG,KAAK,CAACC,KAAK,CAACA,KAAK,CAACJ,OAAO,CAAC,GAAGK,SACzC,CAAC;EACD,MAAMC,SAAS,GAAG,IAAAJ,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACA,KAAK,CAAC;EACtE,MAAMG,aAAa,GAAG,IAAAL,uBAAW,EAC9BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACG,aACpC,CAAC;EACD,MAAMC,cAAc,GAAG,IAAAN,uBAAW,EAC/BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACI,cACpC,CAAC;EACD,MAAMC,UAAU,GAAG,IAAAP,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACK,UAAU,CAAC;EAC5E,MAAMC,aAAa,GAAG,IAAAR,uBAAW,EAC9BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACO,SACpC,CAAC;EACD,MAAMC,OAAO,GAAG,IAAAV,uBAAW,EAAEC,KAAgB,IAAK;IAChD,MAAMU,SAAS,GAAGV,KAAK,CAACC,KAAK,CAACG,aAAa;IAC3C,OAAOM,SAAS,GAAGV,KAAK,CAACC,KAAK,CAACA,KAAK,CAACS,SAAS,CAAC,EAAEF,SAAS,IAAI,KAAK,GAAG,KAAK;EAC7E,CAAC,CAAC;EACF,MAAMG,WAAW,GAAG,IAAAZ,uBAAW,EAC5BC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACU,WACpC,CAAC;EACD,MAAMC,QAAQ,GAAG,IAAAb,uBAAW,EAAEC,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAACW,QAAQ,CAAC;EAExE,MAAMC,YAAY,GAAG,IAAAC,cAAO,EAC1B,MACEV,aAAa,IAAID,SAAS,CAACC,aAAa,CAAC,GACrCD,SAAS,CAACC,aAAa,CAAC,CAACW,QAAQ,IAAI,EAAE,GACvC,EAAE,EACR,CAACZ,SAAS,EAAEC,aAAa,CAC3B,CAAC;EAED,OAAO;IACLN,IAAI;IACJK,SAAS;IACTC,aAAa;IACbC,cAAc;IACdC,UAAU;IACVC,aAAa;IACbI,WAAW;IACXF,OAAO;IACPI,YAAY;IACZD;EACF,CAAC;AACH,CAAC;AAACI,OAAA,CAAApB,YAAA,GAAAA,YAAA","ignoreList":[]}