@ethora/chat-component-rn 26.7.9 → 26.8.1

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 (652) hide show
  1. package/CHANGELOG.md +0 -93
  2. package/README.md +10 -33
  3. package/lib/commonjs/assets/icons.js +2 -7
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/AuthForms/Login.js +4 -4
  6. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  7. package/lib/commonjs/components/Header/HeaderRoomList.js +7 -26
  8. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js +3 -9
  10. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js +13 -101
  12. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js +38 -34
  14. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/LoginWrapper.js +1 -2
  16. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +9 -29
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +1 -5
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +5 -13
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  24. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +24 -3
  26. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/RoomList.js +35 -208
  28. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  29. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +98 -317
  30. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  31. package/lib/commonjs/components/MessageBubble/MessageTranslate.js +16 -7
  32. package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -1
  33. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +112 -320
  34. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  35. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +215 -556
  36. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  38. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +27 -69
  40. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +1 -2
  42. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  43. package/lib/commonjs/components/Modals/Modal/Modal.js +0 -8
  44. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  45. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -2
  46. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  47. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +109 -205
  48. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  50. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  52. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +21 -7
  54. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +244 -507
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +46 -74
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/styledModalComponents.js +2 -9
  60. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +39 -23
  62. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -22
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +3 -6
  70. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  71. package/lib/commonjs/components/styled/AudioMessage.js +1 -2
  72. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  73. package/lib/commonjs/components/styled/DateLabel.js +10 -3
  74. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  75. package/lib/commonjs/components/styled/MessageImage.js +9 -37
  76. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  77. package/lib/commonjs/components/styled/NewMessageLabel.js +3 -1
  78. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  79. package/lib/commonjs/components/styled/SendInput.js +17 -86
  80. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  81. package/lib/commonjs/components/styled/StyledComponents.js +3 -9
  82. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  83. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  84. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  85. package/lib/commonjs/components/styled/UnsupportedType.js +4 -14
  86. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  87. package/lib/commonjs/components/styled/VideoMessage.js +61 -119
  88. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  89. package/lib/commonjs/context/xmppProvider.js +54 -128
  90. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  91. package/lib/commonjs/helpers/createMessageFromXml.js +1 -19
  92. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  93. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  94. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  95. package/lib/commonjs/helpers/getDataFromXml.js +24 -1
  96. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  97. package/lib/commonjs/helpers/historyPreloadScheduler.js +2 -65
  98. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  99. package/lib/commonjs/helpers/initXmppRooms.js +8 -14
  100. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  101. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -0
  102. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  103. package/lib/commonjs/helpers/isUnresolvedSenderId.js +6 -1
  104. package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -1
  105. package/lib/commonjs/helpers/mimeToExtension.js +14 -6
  106. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  107. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +17 -130
  108. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  109. package/lib/commonjs/helpers/resolveLangSource.js +38 -0
  110. package/lib/commonjs/helpers/resolveLangSource.js.map +1 -0
  111. package/lib/commonjs/helpers/xmppUsername.js +39 -0
  112. package/lib/commonjs/helpers/xmppUsername.js.map +1 -0
  113. package/lib/commonjs/hooks/useChatRoomFocus.js +8 -17
  114. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  115. package/lib/commonjs/hooks/useChatWrapperInit.js +14 -32
  116. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  117. package/lib/commonjs/hooks/useComposing.js +0 -27
  118. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  119. package/lib/commonjs/hooks/useLogout.js +7 -15
  120. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  121. package/lib/commonjs/hooks/usePendingNotification.js +11 -8
  122. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  123. package/lib/commonjs/hooks/useSendMessage.js +14 -50
  124. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  125. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -6
  126. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  127. package/lib/commonjs/i18n/strings.js +133 -121
  128. package/lib/commonjs/i18n/strings.js.map +1 -1
  129. package/lib/commonjs/i18n/useT.js +1 -1
  130. package/lib/commonjs/main.js +0 -44
  131. package/lib/commonjs/main.js.map +1 -1
  132. package/lib/commonjs/networking/api-requests/auth.api.js +60 -134
  133. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  134. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  135. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  136. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
  137. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  138. package/lib/commonjs/networking/api-requests/user.api.js +9 -68
  139. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  140. package/lib/commonjs/networking/apiClient.js +112 -62
  141. package/lib/commonjs/networking/apiClient.js.map +1 -1
  142. package/lib/commonjs/networking/stanzaHandlers.js +51 -93
  143. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  144. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  145. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  146. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  147. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  148. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  149. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  150. package/lib/commonjs/networking/xmppClient.js +8 -124
  151. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  152. package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -26
  153. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  154. package/lib/commonjs/roomStore/index.js +2 -35
  155. package/lib/commonjs/roomStore/index.js.map +1 -1
  156. package/lib/commonjs/roomStore/persistence.js +39 -226
  157. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  158. package/lib/commonjs/roomStore/roomsSlice.js +8 -87
  159. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  160. package/lib/commonjs/services/pushSubscriptionService.js +13 -15
  161. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  162. package/lib/commonjs/version.js +3 -1
  163. package/lib/commonjs/version.js.map +1 -1
  164. package/lib/module/assets/icons.js +1 -6
  165. package/lib/module/assets/icons.js.map +1 -1
  166. package/lib/module/components/AuthForms/Login.js +4 -4
  167. package/lib/module/components/AuthForms/Login.js.map +1 -1
  168. package/lib/module/components/Header/HeaderRoomList.js +7 -26
  169. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  170. package/lib/module/components/MainComponents/ChatHeader.js +3 -9
  171. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  172. package/lib/module/components/MainComponents/ChatRoom.js +14 -102
  173. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  174. package/lib/module/components/MainComponents/ChatWrapper.js +40 -36
  175. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  176. package/lib/module/components/MainComponents/LoginWrapper.js +1 -2
  177. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  178. package/lib/module/components/MainComponents/MediaMessage.js +10 -30
  179. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  180. package/lib/module/components/MainComponents/MessageContainer.js +1 -5
  181. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  182. package/lib/module/components/MainComponents/MessageList.js +5 -13
  183. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  184. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  185. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  186. package/lib/module/components/MainComponents/ReduxWrapper.js +26 -5
  187. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  188. package/lib/module/components/MainComponents/RoomList.js +35 -207
  189. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  190. package/lib/module/components/Menu/HeaderRoomListMenu.js +101 -319
  191. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  192. package/lib/module/components/MessageBubble/MessageTranslate.js +16 -7
  193. package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -1
  194. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +115 -311
  195. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  196. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +219 -559
  197. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  198. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  199. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  200. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +28 -70
  201. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  202. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +1 -2
  203. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  204. package/lib/module/components/Modals/Modal/Modal.js +1 -9
  205. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  206. package/lib/module/components/Modals/NewChatModal/ModalContent.js +1 -2
  207. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  208. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +111 -208
  209. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  210. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  211. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  212. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  213. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  214. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +23 -9
  215. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  216. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +248 -509
  217. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  218. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +48 -76
  219. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  220. package/lib/module/components/Modals/styledModalComponents.js +2 -9
  221. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  222. package/lib/module/components/RoomComponents/ChatRoomItem.js +40 -24
  223. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  224. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -22
  225. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  226. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  227. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  228. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  229. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  230. package/lib/module/components/VideoCalls/VideoCallSession.js +3 -6
  231. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  232. package/lib/module/components/styled/AudioMessage.js +1 -2
  233. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  234. package/lib/module/components/styled/DateLabel.js +10 -3
  235. package/lib/module/components/styled/DateLabel.js.map +1 -1
  236. package/lib/module/components/styled/MessageImage.js +9 -37
  237. package/lib/module/components/styled/MessageImage.js.map +1 -1
  238. package/lib/module/components/styled/NewMessageLabel.js +3 -1
  239. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  240. package/lib/module/components/styled/SendInput.js +18 -87
  241. package/lib/module/components/styled/SendInput.js.map +1 -1
  242. package/lib/module/components/styled/StyledComponents.js +3 -9
  243. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  244. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  245. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  246. package/lib/module/components/styled/UnsupportedType.js +4 -14
  247. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  248. package/lib/module/components/styled/VideoMessage.js +62 -120
  249. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  250. package/lib/module/context/xmppProvider.js +55 -128
  251. package/lib/module/context/xmppProvider.js.map +1 -1
  252. package/lib/module/helpers/createMessageFromXml.js +1 -19
  253. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  254. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  255. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  256. package/lib/module/helpers/getDataFromXml.js +23 -1
  257. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  258. package/lib/module/helpers/historyPreloadScheduler.js +3 -66
  259. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  260. package/lib/module/helpers/initXmppRooms.js +8 -14
  261. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  262. package/lib/module/helpers/insertMessageWithDelimiter.js +13 -0
  263. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  264. package/lib/module/helpers/isUnresolvedSenderId.js +6 -1
  265. package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -1
  266. package/lib/module/helpers/mimeToExtension.js +13 -6
  267. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  268. package/lib/module/helpers/resolveInitBeforeLoadUser.js +16 -130
  269. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  270. package/lib/module/helpers/resolveLangSource.js +32 -0
  271. package/lib/module/helpers/resolveLangSource.js.map +1 -0
  272. package/lib/module/helpers/xmppUsername.js +35 -0
  273. package/lib/module/helpers/xmppUsername.js.map +1 -0
  274. package/lib/module/hooks/useChatRoomFocus.js +8 -17
  275. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  276. package/lib/module/hooks/useChatWrapperInit.js +14 -32
  277. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  278. package/lib/module/hooks/useComposing.js +1 -28
  279. package/lib/module/hooks/useComposing.js.map +1 -1
  280. package/lib/module/hooks/useLogout.js +7 -15
  281. package/lib/module/hooks/useLogout.js.map +1 -1
  282. package/lib/module/hooks/usePendingNotification.js +11 -8
  283. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  284. package/lib/module/hooks/useSendMessage.js +16 -52
  285. package/lib/module/hooks/useSendMessage.js.map +1 -1
  286. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -6
  287. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  288. package/lib/module/i18n/strings.js +133 -121
  289. package/lib/module/i18n/strings.js.map +1 -1
  290. package/lib/module/i18n/useT.js +1 -1
  291. package/lib/module/main.js +2 -14
  292. package/lib/module/main.js.map +1 -1
  293. package/lib/module/networking/api-requests/auth.api.js +59 -131
  294. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  295. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  296. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  297. package/lib/module/networking/api-requests/rooms.api.js +9 -9
  298. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  299. package/lib/module/networking/api-requests/user.api.js +7 -64
  300. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  301. package/lib/module/networking/apiClient.js +113 -61
  302. package/lib/module/networking/apiClient.js.map +1 -1
  303. package/lib/module/networking/stanzaHandlers.js +52 -94
  304. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  305. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  306. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  307. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  308. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  309. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  310. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  311. package/lib/module/networking/xmppClient.js +8 -124
  312. package/lib/module/networking/xmppClient.js.map +1 -1
  313. package/lib/module/roomStore/chatSettingsSlice.js +7 -26
  314. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  315. package/lib/module/roomStore/index.js +4 -37
  316. package/lib/module/roomStore/index.js.map +1 -1
  317. package/lib/module/roomStore/persistence.js +38 -223
  318. package/lib/module/roomStore/persistence.js.map +1 -1
  319. package/lib/module/roomStore/roomsSlice.js +7 -86
  320. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  321. package/lib/module/services/pushSubscriptionService.js +13 -15
  322. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  323. package/lib/module/version.js +3 -1
  324. package/lib/module/version.js.map +1 -1
  325. package/lib/typescript/assets/icons.d.ts +0 -16
  326. package/lib/typescript/assets/icons.d.ts.map +1 -1
  327. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  328. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  329. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  330. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  331. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  332. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  333. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  334. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  335. package/lib/typescript/components/MainComponents/MessageList.d.ts +1 -10
  336. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  339. package/lib/typescript/components/MainComponents/RoomList.d.ts +0 -7
  340. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  341. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +0 -3
  342. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  343. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -1
  344. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +0 -9
  345. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  346. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +0 -10
  347. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  348. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  351. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  352. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +2 -4
  353. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  355. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  356. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  357. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +1 -6
  358. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  359. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  360. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +0 -16
  361. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  362. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +0 -1
  363. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  364. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  365. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  366. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  367. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  368. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  369. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  370. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  371. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  372. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  373. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  374. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  375. package/lib/typescript/components/styled/MessageImage.d.ts +0 -14
  376. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  377. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  378. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  379. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  380. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  381. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  382. package/lib/typescript/components/styled/VideoMessage.d.ts +0 -8
  383. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  384. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  385. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  386. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  387. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  388. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  389. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  390. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -1
  391. package/lib/typescript/helpers/mimeToExtension.d.ts +15 -0
  392. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  393. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  394. package/lib/typescript/helpers/resolveLangSource.d.ts +30 -0
  395. package/lib/typescript/helpers/resolveLangSource.d.ts.map +1 -0
  396. package/lib/typescript/helpers/xmppUsername.d.ts +13 -0
  397. package/lib/typescript/helpers/xmppUsername.d.ts.map +1 -0
  398. package/lib/typescript/hooks/useChatRoomFocus.d.ts +1 -4
  399. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  400. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  401. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  402. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  403. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  404. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  405. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +0 -1
  406. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  407. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  408. package/lib/typescript/i18n/useT.d.ts +1 -1
  409. package/lib/typescript/main.d.ts +2 -9
  410. package/lib/typescript/main.d.ts.map +1 -1
  411. package/lib/typescript/networking/api-requests/auth.api.d.ts +1 -3
  412. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  413. package/lib/typescript/networking/api-requests/user.api.d.ts +0 -27
  414. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  415. package/lib/typescript/networking/apiClient.d.ts +6 -12
  416. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  417. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  418. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +2 -10
  419. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  420. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  421. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  422. package/lib/typescript/networking/xmppClient.d.ts +0 -14
  423. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  424. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +0 -16
  425. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  426. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  427. package/lib/typescript/roomStore/persistence.d.ts +1 -18
  428. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  429. package/lib/typescript/roomStore/roomsSlice.d.ts +1 -14
  430. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  431. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
  432. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  433. package/lib/typescript/types/types.d.ts +5 -49
  434. package/lib/typescript/types/types.d.ts.map +1 -1
  435. package/lib/typescript/version.d.ts +1 -1
  436. package/lib/typescript/version.d.ts.map +1 -1
  437. package/package.json +29 -41
  438. package/src/assets/icons.tsx +9 -48
  439. package/src/components/AuthForms/Login.tsx +3 -3
  440. package/src/components/Header/HeaderRoomList.tsx +6 -24
  441. package/src/components/MainComponents/ChatHeader.tsx +3 -9
  442. package/src/components/MainComponents/ChatRoom.tsx +16 -111
  443. package/src/components/MainComponents/ChatWrapper.tsx +53 -36
  444. package/src/components/MainComponents/LoginWrapper.tsx +0 -1
  445. package/src/components/MainComponents/MediaMessage.tsx +8 -26
  446. package/src/components/MainComponents/MessageContainer.tsx +1 -5
  447. package/src/components/MainComponents/MessageList.tsx +4 -23
  448. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -21
  449. package/src/components/MainComponents/ReduxWrapper.tsx +18 -1
  450. package/src/components/MainComponents/RoomList.tsx +39 -236
  451. package/src/components/Menu/HeaderRoomListMenu.tsx +75 -328
  452. package/src/components/MessageBubble/MessageTranslate.tsx +17 -12
  453. package/src/components/Modals/AttachSheet/AttachSheet.tsx +99 -331
  454. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +293 -611
  455. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +9 -7
  456. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +38 -79
  457. package/src/components/Modals/FilePreviewModal/PdfView.tsx +1 -2
  458. package/src/components/Modals/Modal/Modal.tsx +0 -7
  459. package/src/components/Modals/NewChatModal/ModalContent.tsx +3 -6
  460. package/src/components/Modals/NewChatModal/NewChatModal.tsx +126 -223
  461. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +1 -12
  462. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +4 -14
  463. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +25 -9
  464. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +307 -617
  465. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +58 -75
  466. package/src/components/Modals/styledModalComponents.tsx +2 -9
  467. package/src/components/RoomComponents/ChatRoomItem.tsx +50 -21
  468. package/src/components/RoomComponents/styled/LastMessageFile.tsx +4 -28
  469. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +3 -18
  470. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +3 -18
  471. package/src/components/VideoCalls/VideoCallSession.tsx +3 -8
  472. package/src/components/styled/AudioMessage.tsx +1 -2
  473. package/src/components/styled/DateLabel.tsx +10 -3
  474. package/src/components/styled/MessageImage.tsx +7 -53
  475. package/src/components/styled/NewMessageLabel.tsx +3 -1
  476. package/src/components/styled/SendInput.tsx +18 -91
  477. package/src/components/styled/StyledComponents.ts +3 -9
  478. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -11
  479. package/src/components/styled/UnsupportedType.tsx +4 -14
  480. package/src/components/styled/VideoMessage.tsx +54 -131
  481. package/src/context/xmppProvider.tsx +51 -134
  482. package/src/helpers/createMessageFromXml.ts +1 -20
  483. package/src/helpers/ensureScopedChatCache.ts +2 -2
  484. package/src/helpers/getDataFromXml.ts +25 -1
  485. package/src/helpers/historyPreloadScheduler.ts +3 -80
  486. package/src/helpers/initXmppRooms.tsx +10 -14
  487. package/src/helpers/insertMessageWithDelimiter.ts +13 -0
  488. package/src/helpers/isUnresolvedSenderId.ts +9 -1
  489. package/src/helpers/mimeToExtension.ts +22 -6
  490. package/src/helpers/resolveInitBeforeLoadUser.ts +18 -125
  491. package/src/helpers/resolveLangSource.ts +40 -0
  492. package/src/helpers/xmppUsername.ts +38 -0
  493. package/src/hooks/useChatRoomFocus.ts +5 -14
  494. package/src/hooks/useChatWrapperInit.ts +16 -32
  495. package/src/hooks/useComposing.tsx +1 -37
  496. package/src/hooks/useLogout.tsx +9 -15
  497. package/src/hooks/usePendingNotification.ts +11 -5
  498. package/src/hooks/useSendMessage.tsx +15 -60
  499. package/src/hooks/useUnreadMessagesCounter.ts +0 -11
  500. package/src/i18n/strings.ts +133 -121
  501. package/src/i18n/useT.ts +1 -1
  502. package/src/main.ts +2 -26
  503. package/src/networking/api-requests/auth.api.ts +48 -156
  504. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  505. package/src/networking/api-requests/rooms.api.ts +9 -9
  506. package/src/networking/api-requests/user.api.ts +7 -79
  507. package/src/networking/apiClient.ts +123 -68
  508. package/src/networking/stanzaHandlers.ts +51 -92
  509. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +10 -71
  510. package/src/networking/xmpp/presenceInRoom.xmpp.ts +1 -6
  511. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +1 -12
  512. package/src/networking/xmppClient.ts +9 -141
  513. package/src/roomStore/chatSettingsSlice.ts +10 -34
  514. package/src/roomStore/index.ts +4 -40
  515. package/src/roomStore/persistence.ts +40 -234
  516. package/src/roomStore/roomsSlice.ts +7 -87
  517. package/src/services/pushSubscriptionService.ts +13 -18
  518. package/src/types/types.ts +5 -58
  519. package/src/version.ts +3 -1
  520. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +0 -226
  521. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  522. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +0 -556
  523. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  524. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +0 -210
  525. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  526. package/lib/commonjs/helpers/getChatBackground.js +0 -23
  527. package/lib/commonjs/helpers/getChatBackground.js.map +0 -1
  528. package/lib/commonjs/helpers/getDisplayFileName.js +0 -79
  529. package/lib/commonjs/helpers/getDisplayFileName.js.map +0 -1
  530. package/lib/commonjs/helpers/getServerReadTimestamp.js +0 -125
  531. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +0 -1
  532. package/lib/commonjs/helpers/isOwnMessage.js +0 -75
  533. package/lib/commonjs/helpers/isOwnMessage.js.map +0 -1
  534. package/lib/commonjs/helpers/mediaLibraryRuntime.js +0 -31
  535. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +0 -1
  536. package/lib/commonjs/helpers/persistCrypto.js +0 -122
  537. package/lib/commonjs/helpers/persistCrypto.js.map +0 -1
  538. package/lib/commonjs/helpers/pickImageAsset.js +0 -68
  539. package/lib/commonjs/helpers/pickImageAsset.js.map +0 -1
  540. package/lib/commonjs/helpers/pushPayload.js +0 -71
  541. package/lib/commonjs/helpers/pushPayload.js.map +0 -1
  542. package/lib/commonjs/helpers/secureFileUrl.js +0 -101
  543. package/lib/commonjs/helpers/secureFileUrl.js.map +0 -1
  544. package/lib/commonjs/helpers/secureKeyValue.js +0 -83
  545. package/lib/commonjs/helpers/secureKeyValue.js.map +0 -1
  546. package/lib/commonjs/helpers/secureStoreRuntime.js +0 -59
  547. package/lib/commonjs/helpers/secureStoreRuntime.js.map +0 -1
  548. package/lib/commonjs/helpers/secureUserStorage.js +0 -75
  549. package/lib/commonjs/helpers/secureUserStorage.js.map +0 -1
  550. package/lib/commonjs/helpers/shallowEqual.js +0 -36
  551. package/lib/commonjs/helpers/shallowEqual.js.map +0 -1
  552. package/lib/commonjs/helpers/sheetGestures.js +0 -32
  553. package/lib/commonjs/helpers/sheetGestures.js.map +0 -1
  554. package/lib/commonjs/hooks/useFileToken.js +0 -10
  555. package/lib/commonjs/hooks/useFileToken.js.map +0 -1
  556. package/lib/commonjs/networking/authRefresh.js +0 -332
  557. package/lib/commonjs/networking/authRefresh.js.map +0 -1
  558. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +0 -223
  559. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  560. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +0 -548
  561. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  562. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +0 -205
  563. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  564. package/lib/module/helpers/getChatBackground.js +0 -18
  565. package/lib/module/helpers/getChatBackground.js.map +0 -1
  566. package/lib/module/helpers/getDisplayFileName.js +0 -73
  567. package/lib/module/helpers/getDisplayFileName.js.map +0 -1
  568. package/lib/module/helpers/getServerReadTimestamp.js +0 -120
  569. package/lib/module/helpers/getServerReadTimestamp.js.map +0 -1
  570. package/lib/module/helpers/isOwnMessage.js +0 -70
  571. package/lib/module/helpers/isOwnMessage.js.map +0 -1
  572. package/lib/module/helpers/mediaLibraryRuntime.js +0 -25
  573. package/lib/module/helpers/mediaLibraryRuntime.js.map +0 -1
  574. package/lib/module/helpers/persistCrypto.js +0 -115
  575. package/lib/module/helpers/persistCrypto.js.map +0 -1
  576. package/lib/module/helpers/pickImageAsset.js +0 -63
  577. package/lib/module/helpers/pickImageAsset.js.map +0 -1
  578. package/lib/module/helpers/pushPayload.js +0 -63
  579. package/lib/module/helpers/pushPayload.js.map +0 -1
  580. package/lib/module/helpers/secureFileUrl.js +0 -91
  581. package/lib/module/helpers/secureFileUrl.js.map +0 -1
  582. package/lib/module/helpers/secureKeyValue.js +0 -75
  583. package/lib/module/helpers/secureKeyValue.js.map +0 -1
  584. package/lib/module/helpers/secureStoreRuntime.js +0 -52
  585. package/lib/module/helpers/secureStoreRuntime.js.map +0 -1
  586. package/lib/module/helpers/secureUserStorage.js +0 -72
  587. package/lib/module/helpers/secureUserStorage.js.map +0 -1
  588. package/lib/module/helpers/shallowEqual.js +0 -31
  589. package/lib/module/helpers/shallowEqual.js.map +0 -1
  590. package/lib/module/helpers/sheetGestures.js +0 -26
  591. package/lib/module/helpers/sheetGestures.js.map +0 -1
  592. package/lib/module/hooks/useFileToken.js +0 -5
  593. package/lib/module/hooks/useFileToken.js.map +0 -1
  594. package/lib/module/networking/authRefresh.js +0 -321
  595. package/lib/module/networking/authRefresh.js.map +0 -1
  596. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +0 -9
  597. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +0 -1
  598. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +0 -75
  599. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +0 -1
  600. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +0 -25
  601. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +0 -1
  602. package/lib/typescript/helpers/getChatBackground.d.ts +0 -15
  603. package/lib/typescript/helpers/getChatBackground.d.ts.map +0 -1
  604. package/lib/typescript/helpers/getDisplayFileName.d.ts +0 -49
  605. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +0 -1
  606. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +0 -69
  607. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +0 -1
  608. package/lib/typescript/helpers/isOwnMessage.d.ts +0 -36
  609. package/lib/typescript/helpers/isOwnMessage.d.ts.map +0 -1
  610. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +0 -3
  611. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +0 -1
  612. package/lib/typescript/helpers/persistCrypto.d.ts +0 -13
  613. package/lib/typescript/helpers/persistCrypto.d.ts.map +0 -1
  614. package/lib/typescript/helpers/pickImageAsset.d.ts +0 -27
  615. package/lib/typescript/helpers/pickImageAsset.d.ts.map +0 -1
  616. package/lib/typescript/helpers/pushPayload.d.ts +0 -7
  617. package/lib/typescript/helpers/pushPayload.d.ts.map +0 -1
  618. package/lib/typescript/helpers/secureFileUrl.d.ts +0 -7
  619. package/lib/typescript/helpers/secureFileUrl.d.ts.map +0 -1
  620. package/lib/typescript/helpers/secureKeyValue.d.ts +0 -13
  621. package/lib/typescript/helpers/secureKeyValue.d.ts.map +0 -1
  622. package/lib/typescript/helpers/secureStoreRuntime.d.ts +0 -29
  623. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +0 -1
  624. package/lib/typescript/helpers/secureUserStorage.d.ts +0 -23
  625. package/lib/typescript/helpers/secureUserStorage.d.ts.map +0 -1
  626. package/lib/typescript/helpers/shallowEqual.d.ts +0 -11
  627. package/lib/typescript/helpers/shallowEqual.d.ts.map +0 -1
  628. package/lib/typescript/helpers/sheetGestures.d.ts +0 -20
  629. package/lib/typescript/helpers/sheetGestures.d.ts.map +0 -1
  630. package/lib/typescript/hooks/useFileToken.d.ts +0 -2
  631. package/lib/typescript/hooks/useFileToken.d.ts.map +0 -1
  632. package/lib/typescript/networking/authRefresh.d.ts +0 -95
  633. package/lib/typescript/networking/authRefresh.d.ts.map +0 -1
  634. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +0 -244
  635. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +0 -615
  636. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +0 -217
  637. package/src/helpers/getChatBackground.ts +0 -18
  638. package/src/helpers/getDisplayFileName.ts +0 -87
  639. package/src/helpers/getServerReadTimestamp.ts +0 -120
  640. package/src/helpers/isOwnMessage.ts +0 -90
  641. package/src/helpers/mediaLibraryRuntime.ts +0 -25
  642. package/src/helpers/persistCrypto.ts +0 -127
  643. package/src/helpers/pickImageAsset.ts +0 -68
  644. package/src/helpers/pushPayload.ts +0 -62
  645. package/src/helpers/secureFileUrl.ts +0 -103
  646. package/src/helpers/secureKeyValue.ts +0 -80
  647. package/src/helpers/secureStoreRuntime.ts +0 -62
  648. package/src/helpers/secureUserStorage.ts +0 -80
  649. package/src/helpers/shallowEqual.ts +0 -33
  650. package/src/helpers/sheetGestures.ts +0 -25
  651. package/src/hooks/useFileToken.ts +0 -7
  652. package/src/networking/authRefresh.ts +0 -451
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _secureFileUrl = require("../../helpers/secureFileUrl");
9
8
  var _reactNative = require("react-native");
9
+ var _expoVideo = require("expo-video");
10
10
  var _reactRedux = require("react-redux");
11
11
  var _chatSettingsSlice = require("../../roomStore/chatSettingsSlice");
12
12
  var _MODAL_TYPES = require("../../helpers/constants/MODAL_TYPES");
@@ -14,136 +14,78 @@ var _icons = require("../../assets/icons");
14
14
  var _mediaDimensions = require("../../helpers/mediaDimensions");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
- const PlayBadge = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
18
- style: styles.overlay,
19
- pointerEvents: "none",
20
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
21
- style: styles.playButton,
22
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlayIcon, {
23
- width: 28,
24
- height: 28
25
- })
26
- })
27
- });
28
-
29
- /**
30
- * Poster path — taken whenever the message carries a `locationPreview`.
31
- *
32
- * A chat row only ever needs a still and a play affordance; actual
33
- * playback happens in the full-screen preview. Drawing that still with a
34
- * plain <Image> keeps the whole bubble inside the RN view hierarchy, so
35
- * the play badge is guaranteed to composite on top of it.
36
- */
37
- const PosterVideo = ({
38
- previewURL,
39
- onOpen,
40
- onPosterError
41
- }) => {
42
- const [dims, setDims] = (0, _react.useState)((0, _mediaDimensions.defaultMediaDims)());
43
- (0, _react.useEffect)(() => {
44
- if (!previewURL) {
45
- return;
46
- }
47
- let active = true;
48
- _reactNative.Image.getSize(previewURL, (w, h) => {
49
- if (active) {
50
- setDims((0, _mediaDimensions.fitMediaDimensions)(w, h));
51
- }
52
- }, () => {
53
- /* keep the default box if the size probe fails */
54
- });
55
- return () => {
56
- active = false;
57
- };
58
- }, [previewURL]);
59
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
60
- onPress: onOpen,
61
- style: [styles.wrapper, {
62
- width: dims.width,
63
- height: dims.height
64
- }],
65
- accessibilityRole: "button",
66
- accessibilityLabel: "Play video",
67
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
68
- source: {
69
- uri: previewURL
70
- },
71
- style: styles.video,
72
- resizeMode: "cover"
73
- // Not every backend returns a real still — some set
74
- // locationPreview to the video URL itself, which decodes to
75
- // nothing. Rather than show an empty box, fall back to the
76
- // static placeholder branch.
77
- ,
78
- onError: onPosterError
79
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PlayBadge, {})]
80
- });
81
- };
82
-
83
- /**
84
- * Fallback for messages with no usable poster frame: a static dark
85
- * placeholder behind the play badge.
86
- *
87
- * This branch used to mount an expo-video player purely to paint the
88
- * first frame (`VideoView` + `surfaceType="textureView"`). That never
89
- * composited reliably: on Android (Pixel, Android 16, New Architecture)
90
- * the native video surface draws ABOVE sibling RN views, swallowing the
91
- * play badge — the video looked like a plain photo. There is no
92
- * surfaceType/zIndex combination that guarantees ordering across SDK 54
93
- * and 57, so we don't fight it: no live surface in the bubble at all.
94
- * The badge is plain RN views over a plain RN background, which cannot
95
- * be occluded, and we drop the per-row player instance as a bonus.
96
- * Actual playback (and the real first frame) happens in the full-screen
97
- * preview modal.
98
- */
99
- const PlaceholderVideo = ({
100
- onOpen
101
- }) => {
102
- const dims = (0, _mediaDimensions.defaultMediaDims)();
103
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
104
- onPress: onOpen,
105
- style: [styles.wrapper, {
106
- width: dims.width,
107
- height: dims.height
108
- }],
109
- accessibilityRole: "button",
110
- accessibilityLabel: "Play video",
111
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PlayBadge, {})
112
- });
113
- };
114
17
  const CustomMessageVideo = ({
115
18
  fileName,
116
- originalName,
117
19
  fileURL,
118
- mimetype,
119
- previewURL
20
+ mimetype
120
21
  }) => {
121
22
  const dispatch = (0, _reactRedux.useDispatch)();
122
- const [posterFailed, setPosterFailed] = (0, _react.useState)(false);
23
+ const [dims, setDims] = (0, _react.useState)((0, _mediaDimensions.defaultMediaDims)());
24
+ const player = (0, _expoVideo.useVideoPlayer)(fileURL, p => {
25
+ p.muted = true;
26
+ });
27
+ (0, _react.useEffect)(() => {
28
+ const sub = player.addListener('statusChange', () => {
29
+ const size = player.videoTrack?.size;
30
+ if (size?.width && size?.height) {
31
+ setDims((0, _mediaDimensions.fitMediaDimensions)(size.width, size.height));
32
+ }
33
+ });
34
+ return () => sub.remove();
35
+ }, [player]);
123
36
  const handleOpen = () => {
124
37
  dispatch((0, _chatSettingsSlice.setActiveFile)({
125
38
  fileName,
126
39
  fileURL,
127
- mimetype,
128
- originalName
40
+ mimetype
129
41
  }));
130
42
  dispatch((0, _chatSettingsSlice.setActiveModal)(_MODAL_TYPES.MODAL_TYPES.FILE_PREVIEW));
131
43
  };
132
- if (previewURL && !posterFailed) {
133
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(PosterVideo, {
134
- previewURL: previewURL,
135
- onOpen: handleOpen,
136
- onPosterError: () => {
137
- if ((0, _secureFileUrl.isSecureFileUrl)(previewURL)) {
138
- (0, _secureFileUrl.requestFileTokenRecovery)();
139
- }
140
- setPosterFailed(true);
141
- }
142
- });
143
- }
144
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(PlaceholderVideo, {
145
- onOpen: handleOpen
146
- });
44
+ return (
45
+ /*#__PURE__*/
46
+ // Capture-overlay pattern: VideoView sits underneath without ANY
47
+ // touch participation; a transparent absolute-fill <Pressable> on
48
+ // top owns the tap. Previously we wrapped VideoView in a
49
+ // TouchableOpacity and set `pointerEvents="none"` on the inner
50
+ // VideoView — but on some expo-video versions / iOS the native
51
+ // VideoView still intercepted gestures despite that hint, so
52
+ // tapping the poster did nothing. Customer-reported #9 (video
53
+ // preview unresponsive). The Pressable now guarantees the tap
54
+ // reaches `handleOpen`.
55
+ (0, _jsxRuntime.jsxs)(_reactNative.View, {
56
+ style: [styles.wrapper, {
57
+ width: dims.width,
58
+ height: dims.height
59
+ }],
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_expoVideo.VideoView, {
61
+ player: player,
62
+ style: styles.video,
63
+ contentFit: "cover",
64
+ nativeControls: false,
65
+ surfaceType: "textureView",
66
+ pointerEvents: "none"
67
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
68
+ style: styles.overlay,
69
+ pointerEvents: "none",
70
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
71
+ style: styles.playButton,
72
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlayIcon, {
73
+ width: 28,
74
+ height: 28
75
+ })
76
+ })
77
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
78
+ onPress: handleOpen
79
+ // Sits ON TOP of VideoView + the play-button overlay; transparent
80
+ // so the poster + play icon show through. Captures the tap and
81
+ // routes to handleOpen → setActiveModal(FILE_PREVIEW).
82
+ ,
83
+ style: _reactNative.StyleSheet.absoluteFill,
84
+ accessibilityRole: "button",
85
+ accessibilityLabel: "Play video"
86
+ })]
87
+ })
88
+ );
147
89
  };
148
90
  var _default = exports.default = CustomMessageVideo;
149
91
  const styles = _reactNative.StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_secureFileUrl","_reactNative","_reactRedux","_chatSettingsSlice","_MODAL_TYPES","_icons","_mediaDimensions","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","PlayBadge","jsx","View","style","styles","overlay","pointerEvents","children","playButton","PlayIcon","width","height","PosterVideo","previewURL","onOpen","onPosterError","dims","setDims","useState","defaultMediaDims","useEffect","active","Image","getSize","w","h","fitMediaDimensions","jsxs","Pressable","onPress","wrapper","accessibilityRole","accessibilityLabel","source","uri","video","resizeMode","onError","PlaceholderVideo","CustomMessageVideo","fileName","originalName","fileURL","mimetype","dispatch","useDispatch","posterFailed","setPosterFailed","handleOpen","setActiveFile","setActiveModal","MODAL_TYPES","FILE_PREVIEW","isSecureFileUrl","requestFileTokenRecovery","_default","exports","StyleSheet","create","borderRadius","overflow","backgroundColor","absoluteFill","justifyContent","alignItems"],"sourceRoot":"../../../../src","sources":["components/styled/VideoMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_expoVideo","_reactRedux","_chatSettingsSlice","_MODAL_TYPES","_icons","_mediaDimensions","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CustomMessageVideo","fileName","fileURL","mimetype","dispatch","useDispatch","dims","setDims","useState","defaultMediaDims","player","useVideoPlayer","p","muted","useEffect","sub","addListener","size","videoTrack","width","height","fitMediaDimensions","remove","handleOpen","setActiveFile","setActiveModal","MODAL_TYPES","FILE_PREVIEW","jsxs","View","style","styles","wrapper","children","jsx","VideoView","video","contentFit","nativeControls","surfaceType","pointerEvents","overlay","playButton","PlayIcon","Pressable","onPress","StyleSheet","absoluteFill","accessibilityRole","accessibilityLabel","_default","exports","create","borderRadius","overflow","backgroundColor","justifyContent","alignItems"],"sourceRoot":"../../../../src","sources":["components/styled/VideoMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,20 +11,17 @@ var _reactNative = require("react-native");
11
11
  var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
12
12
  var _VideoCallOverlay = require("../components/VideoCalls/VideoCallOverlay");
13
13
  var _xmppClient = _interopRequireDefault(require("../networking/xmppClient"));
14
- var _authRefresh = require("../networking/authRefresh");
14
+ var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
15
15
  var _clientRegistry = require("../utils/clientRegistry");
16
16
  var _resolveInitBeforeLoadUser = require("../helpers/resolveInitBeforeLoadUser");
17
17
  var _ensureScopedChatCache = require("../helpers/ensureScopedChatCache");
18
18
  var _rooms = require("../networking/api-requests/rooms.api");
19
19
  var _allRoomPresences = require("../networking/xmpp/allRoomPresences.xmpp");
20
- var _pushSubscriptionService = require("../services/pushSubscriptionService");
21
20
  var _roomStore = require("../roomStore");
22
- var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
23
21
  var _roomsSlice = require("../roomStore/roomsSlice");
24
- var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
25
22
  var _historyPreloadScheduler = require("../helpers/historyPreloadScheduler");
26
- var _updateMessagesTillLast = require("../helpers/updateMessagesTillLast");
27
- var _secureUserStorage = require("../helpers/secureUserStorage");
23
+ var _useLocalStorage = require("../hooks/useLocalStorage");
24
+ var _LOCAL_STORAGE = require("../helpers/constants/LOCAL_STORAGE");
28
25
  var _persistence = require("../roomStore/persistence");
29
26
  var _devLogger = require("../utils/devLogger");
30
27
  var _jsxRuntime = require("react/jsx-runtime");
@@ -32,14 +29,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
32
29
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
33
30
  const XmppContext = /*#__PURE__*/(0, _react.createContext)(null);
34
31
  const LOGOUT_EVENT = 'ethora-xmpp-logout';
35
- const subscribeAllRoomsForPush = (client, reason) => {
36
- const rooms = Object.keys(_roomStore.store.getState().rooms.rooms || {});
37
- if (!client || !rooms.length) {
38
- return;
39
- }
40
- const nick = client.jid?.getLocal();
41
- _pushSubscriptionService.pushSubscriptionService.subscribeToRooms(client, rooms, nick).then(() => (0, _devLogger.pushLog)('xmpp', `${reason}: mucsub ok for ${rooms.length} rooms`)).catch(e => (0, _devLogger.pushLog)('warn', `${reason}: mucsub subscribe failed`, e));
42
- };
43
32
  const XmppProvider = ({
44
33
  children,
45
34
  config,
@@ -66,23 +55,21 @@ const XmppProvider = ({
66
55
  // the XmppClient at least doesn't crash on `undefined.password`.
67
56
  const credentialsProvider = (0, _react.useMemo)(() => {
68
57
  return async () => {
69
- // 1. Make sure the REST tokens are fresh before re-minting XMPP
70
- // creds. This used to call `config.refreshTokens.refreshFunction`
71
- // directly and then fall into step 2, which refreshes again —
72
- // two rotations back to back, which the new backend scheme
73
- // reads as a race at best and token reuse at worst. One call to
74
- // the shared rotation point covers both the consumer-supplied
75
- // function and the built-in endpoint.
76
- if (config?.refreshTokens?.enabled) {
77
- const rotated = await (0, _authRefresh.refreshAuthTokensQuietly)({
78
- force: true
79
- });
80
- if (rotated?.xmppPassword) {
81
- const rotatedUser = _roomStore.store.getState().chatSettingStore.user;
82
- return {
83
- username: rotatedUser?.xmppUsername || rotatedUser?.defaultWallet?.walletAddress || '',
84
- password: rotated.xmppPassword
85
- };
58
+ // 1. Consumer-supplied REST refresh (when wired). This runs
59
+ // before the SDK's own refresh chain so non-Ethora backends
60
+ // can keep auth state in sync with their own token endpoint.
61
+ const customRefresh = config?.refreshTokens?.refreshFunction;
62
+ if (customRefresh) {
63
+ try {
64
+ const result = await customRefresh();
65
+ if (result?.accessToken) {
66
+ _roomStore.store.dispatch((0, _chatSettingsSlice.refreshTokens)({
67
+ token: result.accessToken,
68
+ refreshToken: result.refreshToken || ''
69
+ }));
70
+ }
71
+ } catch (err) {
72
+ (0, _devLogger.pushLog)('warn', 'XMPP creds refresh: customRefresh failed', err);
86
73
  }
87
74
  }
88
75
 
@@ -114,7 +101,7 @@ const XmppProvider = ({
114
101
  password: u?.xmppPassword || ''
115
102
  };
116
103
  };
117
- }, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.enabled, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
104
+ }, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.refreshFunction, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
118
105
  const initializeClient = (0, _react.useCallback)(async (username, password, xmppSettings) => {
119
106
  const settings = xmppSettings || config?.xmppSettings;
120
107
  const key = (0, _clientRegistry.buildXmppClientKey)(username, settings);
@@ -180,22 +167,11 @@ const XmppProvider = ({
180
167
  if (!underlying) {
181
168
  return;
182
169
  }
183
- (0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e)).finally(() => subscribeAllRoomsForPush(underlying, 'reconnect'));
170
+ (0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e));
184
171
  // Also refresh the private store so unread / lastViewed markers
185
172
  // are accurate after a long reconnect — the MUC re-join above only
186
173
  // restores delivery, not unread state. Idempotent on first connect.
187
174
  created.getChatsPrivateStoreRequestStanza().catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: privateStore refresh failed', e));
188
- // Pull whatever landed in each room's archive while the stream was
189
- // down. MUC presence re-join above only restores delivery for
190
- // messages sent AFTER this reconnect — anything sent during the
191
- // offline window has no live stanza to catch, and previously only
192
- // came back on a full app restart (fresh useChatWrapperInit mount
193
- // re-running its own one-shot boot sync). Safe on the very first
194
- // connect too: rooms have no `lastMessageTimestamp` yet at that
195
- // point, so this is a no-op until the bootstrap's own history load
196
- // populates it. Customer-reported #32.
197
- const rooms = _roomStore.store.getState().rooms?.rooms || {};
198
- (0, _updateMessagesTillLast.updateMessagesTillLast)(rooms, created).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: offline catch-up sync failed', e));
199
175
  });
200
176
  setClient(created);
201
177
  lastCredsRef.current = {
@@ -268,7 +244,7 @@ const XmppProvider = ({
268
244
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: clearStoreBeforeInit');
269
245
  _roomStore.store.dispatch((0, _roomsSlice.setLogoutState)());
270
246
  _roomStore.store.dispatch((0, _chatSettingsSlice.logout)());
271
- await (0, _secureUserStorage.secureUserStorage)().remove().catch(() => undefined);
247
+ await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).remove().catch(() => undefined);
272
248
  }
273
249
  await (0, _ensureScopedChatCache.ensureScopedChatCache)(config);
274
250
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: scope ok, resolving user…');
@@ -296,40 +272,13 @@ const XmppProvider = ({
296
272
  _roomStore.store.dispatch((0, _chatSettingsSlice.setConfig)(config));
297
273
  }
298
274
 
299
- // Rotate BEFORE the first XMPP connect. On the rotating backend
300
- // the xmpp password is a short-lived JWT that only the newest
301
- // rotation knows, and each rotation invalidates its predecessors
302
- // — so a snapshot's password (a host's cached `userLogin.user`,
303
- // a persisted session) is usually already dead at boot. Without
304
- // this, the first SASL attempt fails `not-authorized`, all three
305
- // bootstrap retries re-present the same dead password, and the
306
- // user dead-ends on the Connection error modal even though one
307
- // rotation away a perfectly good session existed. The rotation
308
- // also lands the fileToken pre-render, so secure media never
309
- // paints blank first. Quiet + deduped; when it can't rotate
310
- // (no refresh material, non-rotating backend) we just connect
311
- // with what the snapshot has, exactly as before.
312
- // jwtLogin is skipped: /users/client just minted fresh creds.
313
- let connectPassword = resolved.xmppPassword;
314
- if (config?.refreshTokens?.enabled && !config?.jwtLogin?.enabled) {
315
- const rotated = await (0, _authRefresh.refreshAuthTokensQuietly)({
316
- force: true
317
- });
318
- if (cancelled) {
319
- return;
320
- }
321
- if (rotated?.xmppPassword) {
322
- connectPassword = rotated.xmppPassword;
323
- }
324
- }
325
-
326
275
  // Kick off REST /chats/my; allRoomPresences below needs the
327
276
  // room list to be in redux, otherwise it joins 0 MUCs and the
328
277
  // user receives zero realtime messages until they manually tap
329
278
  // into each room. Track the promise so we can await it before
330
279
  // joining presences.
331
280
  const restRoomsPromise = (0, _rooms.getRooms)().catch(() => undefined);
332
- const c = await initializeClient(resolved.xmppUsername, connectPassword, config?.xmppSettings);
281
+ const c = await initializeClient(resolved.xmppUsername, resolved.xmppPassword, config?.xmppSettings);
333
282
  if (cancelled) {
334
283
  return;
335
284
  }
@@ -365,7 +314,6 @@ const XmppProvider = ({
365
314
  } catch (e) {
366
315
  (0, _devLogger.pushLog)('warn', 'initBeforeLoad: allRoomPresences failed', e);
367
316
  }
368
- subscribeAllRoomsForPush(c.client, 'initBeforeLoad');
369
317
  _roomStore.store.dispatch((0, _chatSettingsSlice.setStoreClient)(c));
370
318
  completedBootstrapKeyRef.current = key;
371
319
  inflightBootstrapKeyRef.current = '';
@@ -498,14 +446,9 @@ const XmppProvider = ({
498
446
  // be re-marked visible on return. Lives in the effect closure (one per
499
447
  // client) — persists across the listener's many invocations.
500
448
  let visibleBeforeBackground = null;
501
- const suspendInBackground = !config?.xmppSettings?.keepAliveInBackground;
502
449
  const sub = _reactNative.AppState.addEventListener('change', next => {
503
450
  const c = client;
504
451
  if (next === 'active') {
505
- if (c?.isSuspended) {
506
- (0, _devLogger.pushLog)('rn', 'AppState active: resuming suspended XMPP client');
507
- c.resume();
508
- }
509
452
  // Returned to foreground. If the socket died while backgrounded
510
453
  // (iOS suspends the WebSocket; long background kills it), the
511
454
  // status may still read 'online' until xmpp.js notices the dead
@@ -537,37 +480,23 @@ const XmppProvider = ({
537
480
  if (!c) {
538
481
  return;
539
482
  }
540
- if (next === 'background' && suspendInBackground) {
541
- c.suspend().catch(() => undefined);
542
- }
543
483
  const state = _roomStore.store.getState();
544
484
  const rooms = state.rooms?.rooms;
545
485
  const visibleRoomJID = state.rooms?.visibleRoomJID || null;
546
486
  // Mark the open room "not visible" while backgrounded so messages
547
487
  // that arrive (or MAM-replay on reconnect) count as unread instead
548
488
  // of being silently treated as read — the "mounted == visible ==
549
- // read" gap. Stamp lastViewed=<newest server-acked message>, not
550
- // Date.now(), as the read baseline: a device clock running ahead
551
- // would otherwise write a future marker that the forward-only
552
- // private-store merge can never correct again (bug #38). Then
553
- // clear visibility and flush that marker to the server private
554
- // store. Restored on the next 'active' transition above. Handled
555
- // here in the provider so consumers using the component as a
556
- // package get correct unread without reaching into the chat store
557
- // themselves.
489
+ // read" gap. Stamp lastViewed=now as the read baseline, clear
490
+ // visibility, then flush that marker to the server private store.
491
+ // Restored on the next 'active' transition above. Handled here in
492
+ // the provider so consumers using the component as a package get
493
+ // correct unread without reaching into the chat store themselves.
558
494
  visibleBeforeBackground = visibleRoomJID;
559
495
  if (visibleRoomJID) {
560
- const readTs = (0, _getServerReadTimestamp.getServerReadTimestamp)(rooms?.[visibleRoomJID], state.roomHeapSlice);
561
- // Nothing to anchor to yet (no known messages, no prior marker)
562
- // - skip the local stamp rather than fall back to the device
563
- // clock. The flush below still runs so the visibility clear
564
- // isn't blocked on this.
565
- if (readTs > 0) {
566
- _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
567
- chatJID: visibleRoomJID,
568
- timestamp: readTs
569
- }));
570
- }
496
+ _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
497
+ chatJID: visibleRoomJID,
498
+ timestamp: Date.now()
499
+ }));
571
500
  // Drop the "New messages" divider for the room we're leaving so it
572
501
  // doesn't linger when the user comes back (mirrors ChatRoom's
573
502
  // unmount cleanup, which never runs while the pane stays mounted).
@@ -584,7 +513,7 @@ const XmppProvider = ({
584
513
  }).catch(() => {});
585
514
  });
586
515
  return () => sub.remove();
587
- }, [client, config?.xmppSettings?.keepAliveInBackground]);
516
+ }, [client]);
588
517
 
589
518
  // -----------------------------------------------------------
590
519
  // Consumer visibility signal (`isVisible` prop). For hosts that keep
@@ -593,11 +522,11 @@ const XmppProvider = ({
593
522
  // "shown" from "hidden", so the unread middleware would keep the open
594
523
  // room's badge at 0 and messages arriving while you're elsewhere look
595
524
  // already-read. When the host passes `isVisible`, mirror the AppState
596
- // background/foreground handling: hidden → stamp lastViewed=<newest
597
- // server-acked message> + clear room visibility (so later messages
598
- // count) + flush; shown → restore visibility for the open room. Doing
599
- // it here means consumers never touch the chat store themselves.
600
- // (Undefined = host unmounts on hide, nothing to do.)
525
+ // background/foreground handling: hidden → stamp lastViewed=now + clear
526
+ // room visibility (so later messages count) + flush; shown → restore
527
+ // visibility for the open room. Doing it here means consumers never
528
+ // touch the chat store themselves. (Undefined = host unmounts on hide,
529
+ // nothing to do.)
601
530
  // -----------------------------------------------------------
602
531
  const chatWasVisibleRef = (0, _react.useRef)(false);
603
532
  (0, _react.useEffect)(() => {
@@ -617,16 +546,10 @@ const XmppProvider = ({
617
546
  }
618
547
  } else {
619
548
  if (wasVisible && activeRoomJID) {
620
- // Never Date.now(): a fast device clock would write a future
621
- // marker that the forward-only private-store merge could then
622
- // never correct (bug #38).
623
- const readTs = (0, _getServerReadTimestamp.getServerReadTimestamp)(rooms?.[activeRoomJID], state.roomHeapSlice);
624
- if (readTs > 0) {
625
- _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
626
- chatJID: activeRoomJID,
627
- timestamp: readTs
628
- }));
629
- }
549
+ _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
550
+ chatJID: activeRoomJID,
551
+ timestamp: Date.now()
552
+ }));
630
553
  // Drop the "New messages" divider so it's gone when the user
631
554
  // returns to the chat (mirrors ChatRoom's unmount cleanup).
632
555
  _roomStore.store.dispatch((0, _roomsSlice.deleteRoomMessage)({
@@ -663,21 +586,24 @@ const XmppProvider = ({
663
586
  return;
664
587
  }
665
588
  lastMessagesRef = room.messages;
666
-
667
- // getServerReadTimestamp (not a hand-rolled scan + Date.now()):
668
- // it excludes pending/optimistic messages, which carry the DEVICE
669
- // send time via `date` until the server echoes them back - a
670
- // manual scan without that exclusion could pick up a pending
671
- // message's device timestamp here and write a future marker the
672
- // same way a raw Date.now() would (bug #38).
673
- const newest = (0, _getServerReadTimestamp.getServerReadTimestamp)(room, s.roomHeapSlice);
674
- if (!newest || newest <= lastStampedMs) {
589
+ let newest = 0;
590
+ const list = room.messages || [];
591
+ for (const m of list) {
592
+ if (!m || m.id === 'delimiter-new') {
593
+ continue;
594
+ }
595
+ const ms = (0, _roomsSlice.msgSortableMs)(m);
596
+ if (ms > newest) {
597
+ newest = ms;
598
+ }
599
+ }
600
+ if (newest <= lastStampedMs) {
675
601
  return;
676
602
  }
677
603
  lastStampedMs = newest;
678
604
  _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
679
605
  chatJID: jid,
680
- timestamp: newest
606
+ timestamp: Date.now()
681
607
  }));
682
608
  if (flushTimer) {
683
609
  clearTimeout(flushTimer);