@ethora/chat-component-rn 26.8.1 → 26.8.2

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 (604) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +43 -10
  3. package/lib/commonjs/assets/icons.js +7 -2
  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 +29 -8
  8. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js +9 -3
  10. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js +150 -14
  12. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js +34 -13
  14. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/LoginWrapper.js +2 -1
  16. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +29 -9
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +13 -5
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  24. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +208 -35
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +317 -98
  28. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  29. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +322 -110
  30. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  31. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +546 -203
  32. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  33. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +226 -0
  34. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  35. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +69 -27
  36. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +2 -1
  38. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  39. package/lib/commonjs/components/Modals/Modal/Modal.js +8 -0
  40. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +2 -1
  42. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  43. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +202 -106
  44. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  45. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  46. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  47. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +563 -0
  48. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  49. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +210 -0
  50. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  51. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -2
  52. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +7 -21
  54. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +507 -244
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +74 -46
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/styledModalComponents.js +9 -2
  60. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +21 -7
  62. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +22 -3
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +6 -3
  70. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  71. package/lib/commonjs/components/styled/AudioMessage.js +2 -1
  72. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  73. package/lib/commonjs/components/styled/MessageImage.js +37 -9
  74. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  75. package/lib/commonjs/components/styled/SendInput.js +80 -11
  76. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  77. package/lib/commonjs/components/styled/StyledComponents.js +9 -3
  78. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  79. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +11 -4
  80. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  81. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  82. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  83. package/lib/commonjs/components/styled/VideoMessage.js +119 -61
  84. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  85. package/lib/commonjs/context/xmppProvider.js +184 -59
  86. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  87. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  88. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  89. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  90. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  91. package/lib/commonjs/helpers/getChatBackground.js +23 -0
  92. package/lib/commonjs/helpers/getChatBackground.js.map +1 -0
  93. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  94. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  95. package/lib/commonjs/helpers/getServerReadTimestamp.js +188 -0
  96. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  97. package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
  98. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  99. package/lib/commonjs/helpers/initXmppRooms.js +14 -8
  100. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  101. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +51 -9
  102. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  103. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  104. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  105. package/lib/commonjs/helpers/keyboardLayout.js +12 -2
  106. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  107. package/lib/commonjs/helpers/mediaLibraryRuntime.js +31 -0
  108. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +1 -0
  109. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  110. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  111. package/lib/commonjs/helpers/msgSortableMs.js +37 -0
  112. package/lib/commonjs/helpers/msgSortableMs.js.map +1 -0
  113. package/lib/commonjs/helpers/persistCrypto.js +122 -0
  114. package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
  115. package/lib/commonjs/helpers/pickImageAsset.js +68 -0
  116. package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
  117. package/lib/commonjs/helpers/pushPayload.js +71 -0
  118. package/lib/commonjs/helpers/pushPayload.js.map +1 -0
  119. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +130 -17
  120. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  121. package/lib/commonjs/helpers/secureFileUrl.js +101 -0
  122. package/lib/commonjs/helpers/secureFileUrl.js.map +1 -0
  123. package/lib/commonjs/helpers/secureKeyValue.js +83 -0
  124. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
  125. package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
  126. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
  127. package/lib/commonjs/helpers/secureUserStorage.js +75 -0
  128. package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
  129. package/lib/commonjs/helpers/shallowEqual.js +36 -0
  130. package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
  131. package/lib/commonjs/helpers/sheetGestures.js +32 -0
  132. package/lib/commonjs/helpers/sheetGestures.js.map +1 -0
  133. package/lib/commonjs/hooks/useChatRoomFocus.js +45 -12
  134. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  135. package/lib/commonjs/hooks/useChatWrapperInit.js +30 -10
  136. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  137. package/lib/commonjs/hooks/useComposing.js +27 -0
  138. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  139. package/lib/commonjs/hooks/useFileToken.js +10 -0
  140. package/lib/commonjs/hooks/useFileToken.js.map +1 -0
  141. package/lib/commonjs/hooks/useLogout.js +23 -7
  142. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  143. package/lib/commonjs/hooks/usePendingNotification.js +8 -11
  144. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  145. package/lib/commonjs/hooks/useSendMessage.js +50 -14
  146. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  147. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
  148. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  149. package/lib/commonjs/i18n/strings.js +145 -37
  150. package/lib/commonjs/i18n/strings.js.map +1 -1
  151. package/lib/commonjs/main.js +44 -0
  152. package/lib/commonjs/main.js.map +1 -1
  153. package/lib/commonjs/networking/api-requests/auth.api.js +134 -60
  154. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  155. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  156. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  157. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
  158. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  159. package/lib/commonjs/networking/api-requests/user.api.js +68 -9
  160. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  161. package/lib/commonjs/networking/apiClient.js +62 -112
  162. package/lib/commonjs/networking/apiClient.js.map +1 -1
  163. package/lib/commonjs/networking/authRefresh.js +332 -0
  164. package/lib/commonjs/networking/authRefresh.js.map +1 -0
  165. package/lib/commonjs/networking/stanzaHandlers.js +41 -28
  166. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  167. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  168. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  169. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  170. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  171. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  172. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  173. package/lib/commonjs/networking/xmppClient.js +124 -8
  174. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  175. package/lib/commonjs/roomStore/chatSettingsSlice.js +26 -7
  176. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  177. package/lib/commonjs/roomStore/index.js +35 -2
  178. package/lib/commonjs/roomStore/index.js.map +1 -1
  179. package/lib/commonjs/roomStore/persistence.js +226 -23
  180. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  181. package/lib/commonjs/roomStore/roomsSlice.js +151 -38
  182. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  183. package/lib/commonjs/services/pushSubscriptionService.js +15 -13
  184. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  185. package/lib/commonjs/version.js +1 -1
  186. package/lib/module/assets/icons.js +6 -1
  187. package/lib/module/assets/icons.js.map +1 -1
  188. package/lib/module/components/AuthForms/Login.js +4 -4
  189. package/lib/module/components/AuthForms/Login.js.map +1 -1
  190. package/lib/module/components/Header/HeaderRoomList.js +29 -8
  191. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  192. package/lib/module/components/MainComponents/ChatHeader.js +9 -3
  193. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  194. package/lib/module/components/MainComponents/ChatRoom.js +152 -16
  195. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  196. package/lib/module/components/MainComponents/ChatWrapper.js +35 -14
  197. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  198. package/lib/module/components/MainComponents/LoginWrapper.js +2 -1
  199. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  200. package/lib/module/components/MainComponents/MediaMessage.js +30 -10
  201. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  202. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  203. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  204. package/lib/module/components/MainComponents/MessageList.js +13 -5
  205. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  206. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  207. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  208. package/lib/module/components/MainComponents/RoomList.js +207 -35
  209. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  210. package/lib/module/components/Menu/HeaderRoomListMenu.js +319 -101
  211. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  212. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +313 -113
  213. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  214. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +549 -207
  215. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  216. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +223 -0
  217. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  218. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +70 -28
  219. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  220. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +2 -1
  221. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  222. package/lib/module/components/Modals/Modal/Modal.js +9 -1
  223. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  224. package/lib/module/components/Modals/NewChatModal/ModalContent.js +2 -1
  225. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  226. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +205 -108
  227. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  228. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  229. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  230. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +555 -0
  231. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  232. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +205 -0
  233. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  234. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +4 -2
  235. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  236. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +9 -23
  237. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  238. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +509 -248
  239. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  240. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +76 -48
  241. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  242. package/lib/module/components/Modals/styledModalComponents.js +9 -2
  243. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  244. package/lib/module/components/RoomComponents/ChatRoomItem.js +21 -7
  245. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  246. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +22 -3
  247. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  248. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  249. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  250. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  251. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  252. package/lib/module/components/VideoCalls/VideoCallSession.js +6 -3
  253. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  254. package/lib/module/components/styled/AudioMessage.js +2 -1
  255. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  256. package/lib/module/components/styled/MessageImage.js +37 -9
  257. package/lib/module/components/styled/MessageImage.js.map +1 -1
  258. package/lib/module/components/styled/SendInput.js +81 -12
  259. package/lib/module/components/styled/SendInput.js.map +1 -1
  260. package/lib/module/components/styled/StyledComponents.js +9 -3
  261. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  262. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +11 -4
  263. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  264. package/lib/module/components/styled/UnsupportedType.js +14 -4
  265. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  266. package/lib/module/components/styled/VideoMessage.js +120 -62
  267. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  268. package/lib/module/context/xmppProvider.js +184 -60
  269. package/lib/module/context/xmppProvider.js.map +1 -1
  270. package/lib/module/helpers/createMessageFromXml.js +19 -1
  271. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  272. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  273. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  274. package/lib/module/helpers/getChatBackground.js +18 -0
  275. package/lib/module/helpers/getChatBackground.js.map +1 -0
  276. package/lib/module/helpers/getDisplayFileName.js +73 -0
  277. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  278. package/lib/module/helpers/getServerReadTimestamp.js +181 -0
  279. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  280. package/lib/module/helpers/historyPreloadScheduler.js +66 -3
  281. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  282. package/lib/module/helpers/initXmppRooms.js +14 -8
  283. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  284. package/lib/module/helpers/insertMessageWithDelimiter.js +52 -9
  285. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  286. package/lib/module/helpers/isOwnMessage.js +70 -0
  287. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  288. package/lib/module/helpers/keyboardLayout.js +12 -2
  289. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  290. package/lib/module/helpers/mediaLibraryRuntime.js +25 -0
  291. package/lib/module/helpers/mediaLibraryRuntime.js.map +1 -0
  292. package/lib/module/helpers/mimeToExtension.js +6 -13
  293. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  294. package/lib/module/helpers/msgSortableMs.js +32 -0
  295. package/lib/module/helpers/msgSortableMs.js.map +1 -0
  296. package/lib/module/helpers/persistCrypto.js +115 -0
  297. package/lib/module/helpers/persistCrypto.js.map +1 -0
  298. package/lib/module/helpers/pickImageAsset.js +63 -0
  299. package/lib/module/helpers/pickImageAsset.js.map +1 -0
  300. package/lib/module/helpers/pushPayload.js +63 -0
  301. package/lib/module/helpers/pushPayload.js.map +1 -0
  302. package/lib/module/helpers/resolveInitBeforeLoadUser.js +130 -16
  303. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  304. package/lib/module/helpers/secureFileUrl.js +91 -0
  305. package/lib/module/helpers/secureFileUrl.js.map +1 -0
  306. package/lib/module/helpers/secureKeyValue.js +75 -0
  307. package/lib/module/helpers/secureKeyValue.js.map +1 -0
  308. package/lib/module/helpers/secureStoreRuntime.js +52 -0
  309. package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
  310. package/lib/module/helpers/secureUserStorage.js +72 -0
  311. package/lib/module/helpers/secureUserStorage.js.map +1 -0
  312. package/lib/module/helpers/shallowEqual.js +31 -0
  313. package/lib/module/helpers/shallowEqual.js.map +1 -0
  314. package/lib/module/helpers/sheetGestures.js +26 -0
  315. package/lib/module/helpers/sheetGestures.js.map +1 -0
  316. package/lib/module/hooks/useChatRoomFocus.js +46 -13
  317. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  318. package/lib/module/hooks/useChatWrapperInit.js +30 -10
  319. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  320. package/lib/module/hooks/useComposing.js +28 -1
  321. package/lib/module/hooks/useComposing.js.map +1 -1
  322. package/lib/module/hooks/useFileToken.js +5 -0
  323. package/lib/module/hooks/useFileToken.js.map +1 -0
  324. package/lib/module/hooks/useLogout.js +23 -7
  325. package/lib/module/hooks/useLogout.js.map +1 -1
  326. package/lib/module/hooks/usePendingNotification.js +8 -11
  327. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  328. package/lib/module/hooks/useSendMessage.js +52 -16
  329. package/lib/module/hooks/useSendMessage.js.map +1 -1
  330. package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
  331. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  332. package/lib/module/i18n/strings.js +145 -37
  333. package/lib/module/i18n/strings.js.map +1 -1
  334. package/lib/module/main.js +14 -2
  335. package/lib/module/main.js.map +1 -1
  336. package/lib/module/networking/api-requests/auth.api.js +131 -59
  337. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  338. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  339. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  340. package/lib/module/networking/api-requests/rooms.api.js +9 -9
  341. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  342. package/lib/module/networking/api-requests/user.api.js +64 -7
  343. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  344. package/lib/module/networking/apiClient.js +61 -113
  345. package/lib/module/networking/apiClient.js.map +1 -1
  346. package/lib/module/networking/authRefresh.js +321 -0
  347. package/lib/module/networking/authRefresh.js.map +1 -0
  348. package/lib/module/networking/stanzaHandlers.js +41 -28
  349. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  350. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  351. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  352. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  353. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  354. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  355. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  356. package/lib/module/networking/xmppClient.js +124 -8
  357. package/lib/module/networking/xmppClient.js.map +1 -1
  358. package/lib/module/roomStore/chatSettingsSlice.js +26 -7
  359. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  360. package/lib/module/roomStore/index.js +37 -4
  361. package/lib/module/roomStore/index.js.map +1 -1
  362. package/lib/module/roomStore/persistence.js +223 -22
  363. package/lib/module/roomStore/persistence.js.map +1 -1
  364. package/lib/module/roomStore/roomsSlice.js +139 -34
  365. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  366. package/lib/module/services/pushSubscriptionService.js +15 -13
  367. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  368. package/lib/module/version.js +1 -1
  369. package/lib/typescript/assets/icons.d.ts +16 -0
  370. package/lib/typescript/assets/icons.d.ts.map +1 -1
  371. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  372. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  373. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  374. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  375. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  376. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  377. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  378. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  379. package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
  380. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  381. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  382. package/lib/typescript/components/MainComponents/RoomList.d.ts +7 -0
  383. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  384. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +3 -0
  385. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  386. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +9 -0
  387. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  388. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +10 -0
  389. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  390. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +9 -0
  391. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -0
  392. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  393. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  394. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  395. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
  396. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  397. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  398. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  399. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  400. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +75 -0
  401. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -0
  402. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +25 -0
  403. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -0
  404. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +6 -1
  405. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  406. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  407. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +16 -0
  408. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  409. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +1 -0
  410. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  411. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  412. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  413. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  414. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  415. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  416. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  417. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  418. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  419. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  420. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  421. package/lib/typescript/components/styled/MessageImage.d.ts +14 -0
  422. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  423. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  424. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  425. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  426. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  427. package/lib/typescript/components/styled/VideoMessage.d.ts +8 -0
  428. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  429. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  430. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  431. package/lib/typescript/helpers/getChatBackground.d.ts +15 -0
  432. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -0
  433. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  434. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  435. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +108 -0
  436. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  437. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  438. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  439. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts +1 -1
  440. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  441. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  442. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  443. package/lib/typescript/helpers/keyboardLayout.d.ts +5 -1
  444. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  445. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +3 -0
  446. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +1 -0
  447. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  448. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  449. package/lib/typescript/helpers/msgSortableMs.d.ts +2 -0
  450. package/lib/typescript/helpers/msgSortableMs.d.ts.map +1 -0
  451. package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
  452. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
  453. package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
  454. package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
  455. package/lib/typescript/helpers/pushPayload.d.ts +7 -0
  456. package/lib/typescript/helpers/pushPayload.d.ts.map +1 -0
  457. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  458. package/lib/typescript/helpers/secureFileUrl.d.ts +7 -0
  459. package/lib/typescript/helpers/secureFileUrl.d.ts.map +1 -0
  460. package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
  461. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
  462. package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
  463. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
  464. package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
  465. package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
  466. package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
  467. package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
  468. package/lib/typescript/helpers/sheetGestures.d.ts +20 -0
  469. package/lib/typescript/helpers/sheetGestures.d.ts.map +1 -0
  470. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  471. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  472. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  473. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  474. package/lib/typescript/hooks/useFileToken.d.ts +2 -0
  475. package/lib/typescript/hooks/useFileToken.d.ts.map +1 -0
  476. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  477. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  478. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  479. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  480. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  481. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  482. package/lib/typescript/main.d.ts +9 -2
  483. package/lib/typescript/main.d.ts.map +1 -1
  484. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -1
  485. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  486. package/lib/typescript/networking/api-requests/user.api.d.ts +27 -0
  487. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  488. package/lib/typescript/networking/apiClient.d.ts +12 -6
  489. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  490. package/lib/typescript/networking/authRefresh.d.ts +95 -0
  491. package/lib/typescript/networking/authRefresh.d.ts.map +1 -0
  492. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  493. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +10 -2
  494. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  495. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  496. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  497. package/lib/typescript/networking/xmppClient.d.ts +14 -0
  498. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  499. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +16 -0
  500. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  501. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  502. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  503. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  504. package/lib/typescript/roomStore/roomsSlice.d.ts +43 -3
  505. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  506. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
  507. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  508. package/lib/typescript/types/types.d.ts +50 -5
  509. package/lib/typescript/types/types.d.ts.map +1 -1
  510. package/lib/typescript/version.d.ts +1 -1
  511. package/package.json +41 -28
  512. package/src/assets/icons.tsx +48 -9
  513. package/src/components/AuthForms/Login.tsx +3 -3
  514. package/src/components/Header/HeaderRoomList.tsx +29 -7
  515. package/src/components/MainComponents/ChatHeader.tsx +9 -3
  516. package/src/components/MainComponents/ChatRoom.tsx +161 -15
  517. package/src/components/MainComponents/ChatWrapper.tsx +36 -20
  518. package/src/components/MainComponents/LoginWrapper.tsx +1 -0
  519. package/src/components/MainComponents/MediaMessage.tsx +26 -8
  520. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  521. package/src/components/MainComponents/MessageList.tsx +23 -4
  522. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +21 -14
  523. package/src/components/MainComponents/RoomList.tsx +236 -39
  524. package/src/components/Menu/HeaderRoomListMenu.tsx +328 -75
  525. package/src/components/Modals/AttachSheet/AttachSheet.tsx +333 -97
  526. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +600 -282
  527. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +244 -0
  528. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +79 -38
  529. package/src/components/Modals/FilePreviewModal/PdfView.tsx +2 -1
  530. package/src/components/Modals/Modal/Modal.tsx +7 -0
  531. package/src/components/Modals/NewChatModal/ModalContent.tsx +6 -3
  532. package/src/components/Modals/NewChatModal/NewChatModal.tsx +219 -119
  533. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
  534. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +624 -0
  535. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +217 -0
  536. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +14 -4
  537. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +9 -25
  538. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +617 -307
  539. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +75 -58
  540. package/src/components/Modals/styledModalComponents.tsx +9 -2
  541. package/src/components/RoomComponents/ChatRoomItem.tsx +18 -3
  542. package/src/components/RoomComponents/styled/LastMessageFile.tsx +28 -4
  543. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +18 -3
  544. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +18 -3
  545. package/src/components/VideoCalls/VideoCallSession.tsx +8 -3
  546. package/src/components/styled/AudioMessage.tsx +2 -1
  547. package/src/components/styled/MessageImage.tsx +53 -7
  548. package/src/components/styled/SendInput.tsx +83 -12
  549. package/src/components/styled/StyledComponents.ts +9 -3
  550. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +11 -4
  551. package/src/components/styled/UnsupportedType.tsx +14 -4
  552. package/src/components/styled/VideoMessage.tsx +131 -54
  553. package/src/context/xmppProvider.tsx +216 -57
  554. package/src/helpers/createMessageFromXml.ts +20 -1
  555. package/src/helpers/ensureScopedChatCache.ts +2 -2
  556. package/src/helpers/getChatBackground.ts +18 -0
  557. package/src/helpers/getDisplayFileName.ts +87 -0
  558. package/src/helpers/getServerReadTimestamp.ts +197 -0
  559. package/src/helpers/historyPreloadScheduler.ts +80 -3
  560. package/src/helpers/initXmppRooms.tsx +14 -10
  561. package/src/helpers/insertMessageWithDelimiter.ts +55 -19
  562. package/src/helpers/isOwnMessage.ts +90 -0
  563. package/src/helpers/keyboardLayout.ts +23 -2
  564. package/src/helpers/mediaLibraryRuntime.ts +25 -0
  565. package/src/helpers/mimeToExtension.ts +6 -22
  566. package/src/helpers/msgSortableMs.ts +25 -0
  567. package/src/helpers/persistCrypto.ts +127 -0
  568. package/src/helpers/pickImageAsset.ts +68 -0
  569. package/src/helpers/pushPayload.ts +62 -0
  570. package/src/helpers/resolveInitBeforeLoadUser.ts +125 -18
  571. package/src/helpers/secureFileUrl.ts +103 -0
  572. package/src/helpers/secureKeyValue.ts +80 -0
  573. package/src/helpers/secureStoreRuntime.ts +62 -0
  574. package/src/helpers/secureUserStorage.ts +80 -0
  575. package/src/helpers/shallowEqual.ts +33 -0
  576. package/src/helpers/sheetGestures.ts +25 -0
  577. package/src/hooks/useChatRoomFocus.ts +49 -9
  578. package/src/hooks/useChatWrapperInit.ts +30 -10
  579. package/src/hooks/useComposing.tsx +37 -1
  580. package/src/hooks/useFileToken.ts +7 -0
  581. package/src/hooks/useLogout.tsx +29 -9
  582. package/src/hooks/usePendingNotification.ts +5 -11
  583. package/src/hooks/useSendMessage.tsx +60 -15
  584. package/src/hooks/useUnreadMessagesCounter.ts +11 -0
  585. package/src/i18n/strings.ts +145 -37
  586. package/src/main.ts +26 -2
  587. package/src/networking/api-requests/auth.api.ts +156 -48
  588. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  589. package/src/networking/api-requests/rooms.api.ts +9 -9
  590. package/src/networking/api-requests/user.api.ts +79 -7
  591. package/src/networking/apiClient.ts +68 -123
  592. package/src/networking/authRefresh.ts +451 -0
  593. package/src/networking/stanzaHandlers.ts +44 -28
  594. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +71 -10
  595. package/src/networking/xmpp/presenceInRoom.xmpp.ts +6 -1
  596. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +12 -1
  597. package/src/networking/xmppClient.ts +141 -9
  598. package/src/roomStore/chatSettingsSlice.ts +34 -10
  599. package/src/roomStore/index.ts +40 -4
  600. package/src/roomStore/persistence.ts +234 -24
  601. package/src/roomStore/roomsSlice.ts +161 -29
  602. package/src/services/pushSubscriptionService.ts +18 -13
  603. package/src/types/types.ts +72 -5
  604. package/src/version.ts +1 -1
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ /** @format */
4
+
5
+ /**
6
+ * Shared thresholds for the drag-to-dismiss gesture on bottom sheets (the
7
+ * attach sheet, the profile headers, the room-list menu). Kept in one
8
+ * place so a pull feels identical wherever the user does it — and so the
9
+ * numbers are unit-testable without a touch event.
10
+ */
11
+
12
+ /** Drag past this many points and letting go dismisses the sheet. */
13
+ export const DISMISS_DISTANCE = 90;
14
+ /** …or flick faster than this, however short the drag. */
15
+ export const DISMISS_VELOCITY = 0.8;
16
+
17
+ /**
18
+ * Claim a drag only once it is clearly a downward pull, so a tap on a row
19
+ * still registers and a horizontal swipe stays with whatever scrolls
20
+ * sideways inside the sheet.
21
+ */
22
+ export const shouldClaimVerticalDrag = (dy, dx) => dy > 6 && Math.abs(dy) > Math.abs(dx) * 1.5;
23
+
24
+ /** Far enough / fast enough to let go of the sheet. */
25
+ export const shouldDismissOnDrag = (dy, vy) => dy > DISMISS_DISTANCE || vy > DISMISS_VELOCITY;
26
+ //# sourceMappingURL=sheetGestures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DISMISS_DISTANCE","DISMISS_VELOCITY","shouldClaimVerticalDrag","dy","dx","Math","abs","shouldDismissOnDrag","vy"],"sourceRoot":"../../../src","sources":["helpers/sheetGestures.ts"],"mappings":";;AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,MAAMA,gBAAgB,GAAG,EAAE;AAClC;AACA,OAAO,MAAMC,gBAAgB,GAAG,GAAG;;AAEnC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,GAAGA,CAACC,EAAU,EAAEC,EAAU,KAC5DD,EAAE,GAAG,CAAC,IAAIE,IAAI,CAACC,GAAG,CAACH,EAAE,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACF,EAAE,CAAC,GAAG,GAAG;;AAE7C;AACA,OAAO,MAAMG,mBAAmB,GAAGA,CAACJ,EAAU,EAAEK,EAAU,KACxDL,EAAE,GAAGH,gBAAgB,IAAIQ,EAAE,GAAGP,gBAAgB","ignoreList":[]}
@@ -2,8 +2,9 @@
2
2
 
3
3
  import { useEffect, useRef } from 'react';
4
4
  import { useDispatch } from 'react-redux';
5
- import { clearVisibleRoom, setCurrentRoom, setLastViewedTimestamp, setVisibleRoom } from '../roomStore/roomsSlice';
5
+ import { clearReadBoundary, clearVisibleRoom, setCurrentRoom, setLastViewedTimestamp, setVisibleRoom } from '../roomStore/roomsSlice';
6
6
  import { store } from '../roomStore';
7
+ import { getFlushBoundaryTs, getReadMarkerTimestamp } from '../helpers/getServerReadTimestamp';
7
8
  /**
8
9
  * Public hook for consumers embedding `<ChatRoom>` inside a tab-based
9
10
  * navigator. Mirrors the mount/unmount unread-tracking that ChatRoom
@@ -14,7 +15,10 @@ import { store } from '../roomStore';
14
15
  * Without this hook, `useUnread()` will always return 0 for the chat
15
16
  * room because the SDK assumes "mounted == active". With this hook,
16
17
  * focus marks the room visible (clearing the badge) and blur stamps
17
- * `lastViewedTimestamp = Date.now()` so future messages count as unread.
18
+ * `lastViewedTimestamp` to the newest SERVER-acknowledged message so
19
+ * future messages count as unread. Deliberately not `Date.now()`: a
20
+ * device clock running ahead would write a future marker that the
21
+ * forward-only private-store merge could never correct again (bug #38).
18
22
  *
19
23
  * Usage with React Navigation:
20
24
  *
@@ -39,22 +43,51 @@ export const useChatRoomFocus = ({
39
43
  roomJID: null,
40
44
  isFocused: false
41
45
  });
42
- const leaveRoom = jid => {
43
- const timestamp = Date.now();
44
- dispatch(setLastViewedTimestamp({
45
- chatJID: jid,
46
- timestamp
47
- }));
46
+
47
+ // `clearBoundary`: pass true only when the room the user is leaving is
48
+ // genuinely being released (switching to a different room, or this
49
+ // hook unmounting) - not on a mere same-room blur. `<ChatRoom>`'s
50
+ // MessageList typically stays mounted across a same-room focus loss
51
+ // (the whole point of this hook is that the host keeps `<Chat>`
52
+ // mounted in a hidden tab), so its own scroll-tracking ref is still
53
+ // intact and the redux boundary must stay in sync with it - clearing
54
+ // it here would desync the two.
55
+ const leaveRoom = (jid, clearBoundary) => {
56
+ const state = store.getState();
57
+ const rooms = state.rooms?.rooms;
58
+ const boundaryTs = state.rooms?.readBoundaries?.[jid] ?? null;
59
+ // getReadMarkerTimestamp: honour the boundary (the newest message the
60
+ // user actually reached) when the user left this room scrolled up,
61
+ // otherwise fall back to the newest server-acked message. Only stamp
62
+ // when we actually have something to anchor to - skip rather than
63
+ // fall back to the device clock (bug #38). Ignoring the boundary here
64
+ // would stamp "everything read" regardless of scroll position (bug
65
+ // #42, a regression of #33 reintroduced by #38).
66
+ const timestamp = getReadMarkerTimestamp(rooms?.[jid], state.roomHeapSlice, boundaryTs);
67
+ if (timestamp > 0) {
68
+ dispatch(setLastViewedTimestamp({
69
+ chatJID: jid,
70
+ timestamp
71
+ }));
72
+ }
48
73
  dispatch(clearVisibleRoom());
49
- const rooms = store.getState().rooms?.rooms;
50
- store.getState().chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
51
- visibleRoomJID: jid
74
+ state.chatSettingStore?.client?.flushLastViewedToPrivateStoreStanza(rooms, {
75
+ visibleRoomJID: jid,
76
+ // Carry the same boundary to the SERVER marker - without it the
77
+ // flush defaults to "everything" for the visible room. Clamped
78
+ // through the same helper as the local stamp above.
79
+ visibleRoomTs: getFlushBoundaryTs(rooms?.[jid], state.roomHeapSlice, boundaryTs)
52
80
  }).catch(() => {});
81
+ if (clearBoundary) {
82
+ dispatch(clearReadBoundary({
83
+ jid
84
+ }));
85
+ }
53
86
  };
54
87
  useEffect(() => {
55
88
  const prev = prevRef.current;
56
89
  if (prev.isFocused && prev.roomJID && (prev.roomJID !== roomJID || !isFocused)) {
57
- leaveRoom(prev.roomJID);
90
+ leaveRoom(prev.roomJID, prev.roomJID !== roomJID);
58
91
  }
59
92
  if (roomJID && isFocused) {
60
93
  dispatch(setCurrentRoom({
@@ -73,7 +106,7 @@ export const useChatRoomFocus = ({
73
106
  return () => {
74
107
  const prev = prevRef.current;
75
108
  if (prev.isFocused && prev.roomJID) {
76
- leaveRoom(prev.roomJID);
109
+ leaveRoom(prev.roomJID, true);
77
110
  }
78
111
  };
79
112
  }, []);
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useDispatch","clearVisibleRoom","setCurrentRoom","setLastViewedTimestamp","setVisibleRoom","store","useChatRoomFocus","roomJID","isFocused","dispatch","prevRef","leaveRoom","jid","timestamp","Date","now","chatJID","rooms","getState","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","catch","prev","current"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,WAAW,QAAQ,aAAa;AACzC,SACEC,gBAAgB,EAChBC,cAAc,EACdC,sBAAsB,EACtBC,cAAc,QACT,yBAAyB;AAChC,SAASC,KAAK,QAAQ,cAAc;AAgBpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAMC,QAAQ,GAAGT,WAAW,CAAC,CAAC;EAC9B,MAAMU,OAAO,GAAGX,MAAM,CAAiD;IACrEQ,OAAO,EAAE,IAAI;IACbC,SAAS,EAAE;EACb,CAAC,CAAC;EAEF,MAAMG,SAAS,GAAIC,GAAW,IAAK;IACjC,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BN,QAAQ,CAACN,sBAAsB,CAAC;MAAEa,OAAO,EAAEJ,GAAG;MAAEC;IAAU,CAAC,CAAC,CAAC;IAC7DJ,QAAQ,CAACR,gBAAgB,CAAC,CAAC,CAAC;IAC5B,MAAMgB,KAAK,GAAGZ,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACD,KAAK,EAAEA,KAAK;IAC1CZ,KAAK,CAACa,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAUC,MAAM,EAC9CC,mCAAmC,CAACJ,KAAK,EAAE;MAAEK,cAAc,EAAEV;IAAI,CAAC,CAAC,CACpEW,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB,CAAC;EAEDzB,SAAS,CAAC,MAAM;IACd,MAAM0B,IAAI,GAAGd,OAAO,CAACe,OAAO;IAC5B,IAAID,IAAI,CAAChB,SAAS,IAAIgB,IAAI,CAACjB,OAAO,KAAKiB,IAAI,CAACjB,OAAO,KAAKA,OAAO,IAAI,CAACC,SAAS,CAAC,EAAE;MAC9EG,SAAS,CAACa,IAAI,CAACjB,OAAO,CAAC;IACzB;IAEA,IAAIA,OAAO,IAAIC,SAAS,EAAE;MACxBC,QAAQ,CAACP,cAAc,CAAC;QAAEK;MAAQ,CAAC,CAAC,CAAC;MACrCE,QAAQ,CAACL,cAAc,CAAC;QAAEG;MAAQ,CAAC,CAAC,CAAC;IACvC;IAEAG,OAAO,CAACe,OAAO,GAAG;MAAElB,OAAO,EAAEA,OAAO,IAAI,IAAI;MAAEC;IAAU,CAAC;EAC3D,CAAC,EAAE,CAACD,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC,CAAC;EAElCX,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX,MAAM0B,IAAI,GAAGd,OAAO,CAACe,OAAO;MAC5B,IAAID,IAAI,CAAChB,SAAS,IAAIgB,IAAI,CAACjB,OAAO,EAAE;QAClCI,SAAS,CAACa,IAAI,CAACjB,OAAO,CAAC;MACzB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC;AAED,eAAeD,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useDispatch","clearReadBoundary","clearVisibleRoom","setCurrentRoom","setLastViewedTimestamp","setVisibleRoom","store","getFlushBoundaryTs","getReadMarkerTimestamp","useChatRoomFocus","roomJID","isFocused","dispatch","prevRef","leaveRoom","jid","clearBoundary","state","getState","rooms","boundaryTs","readBoundaries","timestamp","roomHeapSlice","chatJID","chatSettingStore","client","flushLastViewedToPrivateStoreStanza","visibleRoomJID","visibleRoomTs","catch","prev","current"],"sourceRoot":"../../../src","sources":["hooks/useChatRoomFocus.ts"],"mappings":"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","ignoreList":[]}
@@ -8,9 +8,8 @@ import { resolveLegacyTranslatesLangSource } from '../helpers/resolveLangSource'
8
8
  import { useXmppClient } from '../context/xmppProvider';
9
9
  import { chatAutoEnterer } from '../helpers/chatAutoEnterer';
10
10
  import { initRoomsPresence } from '../helpers/initRoomsPresence';
11
- import { updatedChatLastTimestamps } from '../helpers/updatedChatLastTimestamps';
12
11
  import { updateMessagesTillLast } from '../helpers/updateMessagesTillLast';
13
- import { refresh } from '../networking/apiClient';
12
+ import { refreshAuthTokensQuietly } from '../networking/authRefresh';
14
13
  import { setLangSource, setConfig } from '../roomStore/chatSettingsSlice';
15
14
  import { setIsLoading } from '../roomStore/roomsSlice';
16
15
  import { useRoomState } from './useRoomState';
@@ -18,6 +17,7 @@ import { useChatSettingState } from './useChatSettingState';
18
17
  import { isChatIdPresentInArray } from '../helpers/isChatIdPresentInArray';
19
18
  import useGetNewArchRoom from './useGetNewArchRoom';
20
19
  import { getRoomsWithRetry } from '../helpers/getRoomsWithRetry';
20
+ import { shallowEqual } from '../helpers/shallowEqual';
21
21
  const useChatWrapperInit = ({
22
22
  roomJID,
23
23
  wasAutoSelected,
@@ -53,6 +53,20 @@ const useChatWrapperInit = ({
53
53
  }
54
54
  };
55
55
  }, [user.xmppPassword]);
56
+
57
+ // Presentational config flags (e.g. `disableHeader`) can change while the
58
+ // chat stays mounted — sync them to redux whenever `config` actually
59
+ // changes, not just at init. Shallow-equal guard: an inline object
60
+ // literal from the host is a fresh reference every render even when
61
+ // nothing in it changed, and dispatching unconditionally would re-render
62
+ // every config consumer on every host render.
63
+ const lastSyncedConfigRef = useRef(undefined);
64
+ useEffect(() => {
65
+ if (!shallowEqual(lastSyncedConfigRef.current, config)) {
66
+ lastSyncedConfigRef.current = config;
67
+ dispatch(setConfig(config));
68
+ }
69
+ }, [config, dispatch]);
56
70
  const getRoomsWithRertyRequest = async () => {
57
71
  setIsRetrying(true);
58
72
  const retryRooms = await getRoomsWithRetry(client, config, syncRooms, roomJID);
@@ -123,11 +137,17 @@ const useChatWrapperInit = ({
123
137
  }
124
138
  }
125
139
  try {
140
+ // getChatsPrivateStoreRequestStanza hydrates redux itself
141
+ // (dispatch(applyPrivateStoreMarkers(...)) internally,
142
+ // clamped + forward-only) - do not also apply the raw
143
+ // return value here. That used to double-dispatch via
144
+ // updatedChatLastTimestamps' unconditional
145
+ // setLastViewedTimestamp, which has neither the
146
+ // forward-only guard nor the future-marker clamp, so on
147
+ // every reconnect it could silently re-clobber a value
148
+ // the clamp had just corrected (bug #38).
126
149
  const roomTimestampObject = await newClient.getChatsPrivateStoreRequestStanza();
127
150
  console.log('Got chats private store', roomTimestampObject?.length || 0);
128
- if (roomTimestampObject) {
129
- updatedChatLastTimestamps(roomTimestampObject, dispatch);
130
- }
131
151
  if (!hasSyncedHistoryRef.current) {
132
152
  console.log('Updating messages till last');
133
153
  await updateMessagesTillLast(rooms, newClient);
@@ -142,7 +162,7 @@ const useChatWrapperInit = ({
142
162
  setConnectionLost(false);
143
163
  }
144
164
  {
145
- config?.refreshTokens?.enabled && refresh();
165
+ config?.refreshTokens?.enabled && refreshAuthTokensQuietly();
146
166
  }
147
167
  } catch (error) {
148
168
  console.error(' Error during initialization', error);
@@ -162,11 +182,11 @@ const useChatWrapperInit = ({
162
182
  setInited(true);
163
183
  console.log(' Getting chats private store for existing client');
164
184
  try {
185
+ // See the "new client" branch above: getChatsPrivateStoreRequestStanza
186
+ // already hydrates redux (clamped + forward-only); do not
187
+ // also apply the raw return value here.
165
188
  const roomTimestampObject = await client.getChatsPrivateStoreRequestStanza();
166
189
  console.log('Got chats private store for existing client', roomTimestampObject?.length || 0);
167
- if (roomTimestampObject) {
168
- updatedChatLastTimestamps(roomTimestampObject, dispatch);
169
- }
170
190
  if (!hasSyncedHistoryRef.current) {
171
191
  console.log('Updating messages till last for existing client');
172
192
  await updateMessagesTillLast(rooms, client);
@@ -181,7 +201,7 @@ const useChatWrapperInit = ({
181
201
  setConnectionLost(false);
182
202
  }
183
203
  {
184
- config?.refreshTokens?.enabled && refresh();
204
+ config?.refreshTokens?.enabled && refreshAuthTokensQuietly();
185
205
  }
186
206
  }
187
207
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","resolveLegacyTranslatesLangSource","useXmppClient","chatAutoEnterer","initRoomsPresence","updatedChatLastTimestamps","updateMessagesTillLast","refresh","setLangSource","setConfig","setIsLoading","useRoomState","useChatSettingState","isChatIdPresentInArray","useGetNewArchRoom","getRoomsWithRetry","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","inited","setInited","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","client","initializeClient","setClient","syncRooms","rooms","state","roomsList","user","xmppPassword","console","log","close","getRoomsWithRertyRequest","retryRooms","loadRooms","disableLoad","loading","loadingText","undefined","retryTimeout","initXmmpClient","legacyLangSource","translates","xmppUsername","error","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","newArch","loadedRooms","enableRoomsRetry","enabled","isSelectedRoomPresent","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","current","err","warn","refreshTokens","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","useState","useDispatch","useSelector","resolveLegacyTranslatesLangSource","useXmppClient","chatAutoEnterer","initRoomsPresence","updateMessagesTillLast","refreshAuthTokensQuietly","setLangSource","setConfig","setIsLoading","useRoomState","useChatSettingState","isChatIdPresentInArray","useGetNewArchRoom","getRoomsWithRetry","shallowEqual","useChatWrapperInit","roomJID","wasAutoSelected","config","dispatch","inited","setInited","showModal","setShowModal","isConnectionLost","setConnectionLost","isRetrying","setIsRetrying","hasSyncedHistoryRef","client","initializeClient","setClient","syncRooms","rooms","state","roomsList","user","xmppPassword","console","log","close","lastSyncedConfigRef","undefined","current","getRoomsWithRertyRequest","retryRooms","loadRooms","disableLoad","loading","loadingText","retryTimeout","initXmmpClient","legacyLangSource","translates","xmppUsername","error","newClient","defaultWallet","walletAddress","xmppSettings","status","Object","keys","length","newArch","loadedRooms","enableRoomsRetry","enabled","isSelectedRoomPresent","getRoomsStanza","roomTimestampObject","getChatsPrivateStoreRequestStanza","err","warn","refreshTokens","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useChatWrapperInit.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect } from 'react';
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ import { AppState } from 'react-native';
4
5
  import { useXmppClient } from '../context/xmppProvider';
5
6
  import { useSelector } from 'react-redux';
6
7
  import { useChatSettingState } from './useChatSettingState';
@@ -14,7 +15,15 @@ const useComposing = config => {
14
15
  const {
15
16
  user
16
17
  } = useChatSettingState();
18
+ // RN keeps a focused TextInput focused when the app is backgrounded or
19
+ // the device is locked — nothing fires `onBlur`, so without this the
20
+ // other participant sees "typing…" for as long as the user is away.
21
+ // Tracks whether the input is *currently* focused, independent of the
22
+ // foreground/background transition, so we know whether to resume
23
+ // composing on return.
24
+ const isFocusedRef = useRef(false);
17
25
  const sendStartComposing = useCallback(() => {
26
+ isFocusedRef.current = true;
18
27
  if (config?.disableTypingIndicator) {
19
28
  return;
20
29
  }
@@ -23,6 +32,7 @@ const useComposing = config => {
23
32
  }
24
33
  }, [activeRoomJID, client, config?.disableTypingIndicator, user.firstName, user.lastName]);
25
34
  const sendEndComposing = useCallback(() => {
35
+ isFocusedRef.current = false;
26
36
  if (config?.disableTypingIndicator) {
27
37
  return;
28
38
  }
@@ -36,6 +46,23 @@ const useComposing = config => {
36
46
  }, 100);
37
47
  return () => clearTimeout(timerId);
38
48
  }, [sendEndComposing]);
49
+
50
+ // Foreground/background transition only — a pause in typing must NOT
51
+ // clear the indicator (that would flicker for a slowly-composing user),
52
+ // so this deliberately does not hook keystroke/idle timing at all.
53
+ useEffect(() => {
54
+ const handleAppStateChange = nextState => {
55
+ if (nextState !== 'active') {
56
+ if (isFocusedRef.current && !config?.disableTypingIndicator && client) {
57
+ client.sendTypingRequestStanza(activeRoomJID || '', `${user.firstName} ${user.lastName}`, false);
58
+ }
59
+ } else if (isFocusedRef.current && !config?.disableTypingIndicator && client) {
60
+ client.sendTypingRequestStanza(activeRoomJID || '', `${user.firstName} ${user.lastName}`, true);
61
+ }
62
+ };
63
+ const subscription = AppState.addEventListener('change', handleAppStateChange);
64
+ return () => subscription.remove();
65
+ }, [activeRoomJID, client, config?.disableTypingIndicator, user.firstName, user.lastName]);
39
66
  return {
40
67
  sendStartComposing,
41
68
  sendEndComposing
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useXmppClient","useSelector","useChatSettingState","useComposing","config","client","activeRoomJID","state","rooms","user","sendStartComposing","disableTypingIndicator","sendTypingRequestStanza","firstName","lastName","sendEndComposing","timerId","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["hooks/useComposing.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,QAAkB,OAAO;AACxD,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,WAAW,QAAQ,aAAa;AAEzC,SAASC,mBAAmB,QAAQ,uBAAuB;AAG3D,MAAMC,YAAY,GAAIC,MAAgB,IAAK;EACzC,MAAM;IAAEC;EAAO,CAAC,GAAGL,aAAa,CAAC,CAAC;EAClC,MAAM;IAAEM;EAAc,CAAC,GAAGL,WAAW,CAAEM,KAAgB,IAAKA,KAAK,CAACC,KAAK,CAAC;EACxE,MAAM;IAAEC;EAAK,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EAEtC,MAAMQ,kBAAkB,GAAGZ,WAAW,CAAC,MAAM;IAC3C,IAAIM,MAAM,EAAEO,sBAAsB,EAAE;MAClC;IACF;IACA,IAAIN,MAAM,EAAE;MACVA,MAAM,CAACO,uBAAuB,CAC5BN,aAAa,IAAI,EAAE,EACnB,GAAGG,IAAI,CAACI,SAAS,IAAIJ,IAAI,CAACK,QAAQ,EAAE,EACpC,IACF,CAAC;IACH;EACF,CAAC,EAAE,CAACR,aAAa,EAAED,MAAM,EAAED,MAAM,EAAEO,sBAAsB,EAAEF,IAAI,CAACI,SAAS,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;EAE1F,MAAMC,gBAAgB,GAAGjB,WAAW,CAAC,MAAM;IACzC,IAAIM,MAAM,EAAEO,sBAAsB,EAAE;MAClC;IACF;IACA,IAAIN,MAAM,EAAE;MACVA,MAAM,CAACO,uBAAuB,CAC5BN,aAAa,IAAI,EAAE,EACnB,GAAGG,IAAI,CAACI,SAAS,IAAIJ,IAAI,CAACK,QAAQ,EAAE,EACpC,KACF,CAAC;IACH;EACF,CAAC,EAAE,CAACR,aAAa,EAAED,MAAM,EAAED,MAAM,EAAEO,sBAAsB,EAAEF,IAAI,CAACI,SAAS,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;EAE1Ff,SAAS,CAAC,MAAM;IACd,MAAMiB,OAAO,GAAGC,UAAU,CAAC,MAAM;MAC/BF,gBAAgB,CAAC,CAAC;IACpB,CAAC,EAAE,GAAG,CAAC;IAEP,OAAO,MAAMG,YAAY,CAACF,OAAO,CAAC;EACpC,CAAC,EAAE,CAACD,gBAAgB,CAAC,CAAC;EAEtB,OAAO;IAAEL,kBAAkB;IAAEK;EAAiB,CAAC;AACjD,CAAC;AAED,eAAeZ,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","AppState","useXmppClient","useSelector","useChatSettingState","useComposing","config","client","activeRoomJID","state","rooms","user","isFocusedRef","sendStartComposing","current","disableTypingIndicator","sendTypingRequestStanza","firstName","lastName","sendEndComposing","timerId","setTimeout","clearTimeout","handleAppStateChange","nextState","subscription","addEventListener","remove"],"sourceRoot":"../../../src","sources":["hooks/useComposing.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { useSelector } from 'react-redux';
4
+ export const useFileToken = () => useSelector(state => state.chatSettingStore.user?.fileToken || '');
5
+ //# sourceMappingURL=useFileToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useSelector","useFileToken","state","chatSettingStore","user","fileToken"],"sourceRoot":"../../../src","sources":["hooks/useFileToken.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAC1BD,WAAW,CACRE,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,IAAI,EAAEC,SAAS,IAAI,EAClE,CAAC","ignoreList":[]}
@@ -11,7 +11,8 @@ import { clearHeap } from '../roomStore/roomHeapSlice';
11
11
  import { pushSubscriptionService } from '../services/pushSubscriptionService';
12
12
  import { clearRoomsRestCache } from '../networking/api-requests/rooms.api';
13
13
  import { clearPersistedState } from '../roomStore/persistence';
14
- import { localStorageConstants } from '../helpers/constants/LOCAL_STORAGE';
14
+ import { secureUserStorage } from '../helpers/secureUserStorage';
15
+ import { getFlushBoundaryTs } from '../helpers/getServerReadTimestamp';
15
16
 
16
17
  // AsyncStorage keys the library writes but that aren't cleared by any
17
18
  // slice reducer. Listed here so a single logout call wipes the full
@@ -59,9 +60,16 @@ const logoutService = {
59
60
  const client = state.chatSettingStore?.client;
60
61
  const rooms = state.rooms?.rooms;
61
62
  const visibleRoomJID = state.rooms?.visibleRoomJID || null;
63
+ // The visible room is exempt from `onlyIfNoUnread`'s skip (it's
64
+ // meant to write "read up to now" for whatever's open), so if the
65
+ // user is logging out while scrolled up with unread messages
66
+ // above, the boundary must still be carried through here - same
67
+ // reasoning as every other "leaving a room" path (bug #42).
68
+ const boundaryTs = visibleRoomJID ? getFlushBoundaryTs(rooms?.[visibleRoomJID], state.roomHeapSlice, state.rooms?.readBoundaries?.[visibleRoomJID] ?? null) : undefined;
62
69
  if (client?.flushLastViewedToPrivateStoreStanza) {
63
70
  await Promise.race([client.flushLastViewedToPrivateStoreStanza(rooms, {
64
71
  visibleRoomJID,
72
+ visibleRoomTs: boundaryTs,
65
73
  onlyIfNoUnread: true
66
74
  }), new Promise(res => setTimeout(res, 2000))]);
67
75
  }
@@ -117,15 +125,23 @@ const logoutService = {
117
125
 
118
126
  // 6. Stray keys the slices don't touch.
119
127
  try {
120
- await AsyncStorage.multiRemove([...LIBRARY_STRAY_KEYS,
121
- // Belt-and-suspenders: the chat slice's `logout` reducer
122
- // schedules an async remove of ETHORA_USER fire-and-forget;
123
- // re-issue it here so the disk is provably clean before this
124
- // Promise resolves.
125
- localStorageConstants.ETHORA_USER]);
128
+ await AsyncStorage.multiRemove(LIBRARY_STRAY_KEYS);
126
129
  } catch (e) {
127
130
  console.warn('logoutService: stray-key clear failed', e);
128
131
  }
132
+
133
+ // 7. Belt-and-suspenders: the chat slice's `logout` reducer already
134
+ // fires an async ETHORA_USER removal, but re-issue it here (via
135
+ // the same secureUserStorage split the reducer uses) so BOTH the
136
+ // plain-AsyncStorage profile half AND the Keychain/Keystore
137
+ // secrets are provably gone before this Promise resolves — a bare
138
+ // `AsyncStorage.removeItem(ETHORA_USER)` here would only clear the
139
+ // profile half and leave the tokens behind.
140
+ try {
141
+ await secureUserStorage().remove();
142
+ } catch (e) {
143
+ console.warn('logoutService: secure user storage clear failed', e);
144
+ }
129
145
  }
130
146
  };
131
147
 
@@ -1 +1 @@
1
- {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","clearRoomsRestCache","clearPersistedState","localStorageConstants","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","flushLastViewedToPrivateStoreStanza","Promise","race","onlyIfNoUnread","res","setTimeout","e","console","warn","emit","reset","dispatch","multiRemove","ETHORA_USER","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useDispatch","DeviceEventEmitter","AsyncStorage","store","logout","setLogoutState","useCallback","clearHeap","pushSubscriptionService","clearRoomsRestCache","clearPersistedState","secureUserStorage","getFlushBoundaryTs","LIBRARY_STRAY_KEYS","logoutService","performLogout","state","getState","client","chatSettingStore","rooms","visibleRoomJID","boundaryTs","roomHeapSlice","readBoundaries","undefined","flushLastViewedToPrivateStoreStanza","Promise","race","visibleRoomTs","onlyIfNoUnread","res","setTimeout","e","console","warn","emit","reset","dispatch","multiRemove","remove","useLogout","err"],"sourceRoot":"../../../src","sources":["hooks/useLogout.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,8 @@
3
3
  import { useEffect } from 'react';
4
4
  import { useSelector, useDispatch } from 'react-redux';
5
5
  import AsyncStorage from '@react-native-async-storage/async-storage';
6
- const PENDING_NOTIFICATION_JID_KEY = 'ethora_pending_notification_jid';
6
+ import { setCurrentRoom, clearPendingNotificationJid } from '../roomStore/roomsSlice';
7
+ import { PENDING_NOTIFICATION_JID_KEY, readPendingJid } from '../helpers/pushPayload';
7
8
  export function usePendingNotification() {
8
9
  const dispatch = useDispatch();
9
10
  const rooms = useSelector(state => state.rooms.rooms);
@@ -16,20 +17,16 @@ export function usePendingNotification() {
16
17
  }
17
18
  let jidToOpen = pendingNotificationJid;
18
19
  if (!jidToOpen) {
19
- try {
20
- const storedJid = await AsyncStorage.getItem(PENDING_NOTIFICATION_JID_KEY);
21
- if (storedJid) {
22
- jidToOpen = storedJid;
23
- await AsyncStorage.removeItem(PENDING_NOTIFICATION_JID_KEY);
24
- }
25
- } catch (error) {
26
- console.error('Error reading from AsyncStorage:', error);
27
- }
20
+ jidToOpen = await readPendingJid();
28
21
  }
29
22
  if (jidToOpen) {
30
23
  const room = rooms[jidToOpen];
31
24
  if (room) {
32
- return;
25
+ dispatch(clearPendingNotificationJid());
26
+ AsyncStorage.removeItem(PENDING_NOTIFICATION_JID_KEY).catch(() => undefined);
27
+ dispatch(setCurrentRoom({
28
+ roomJID: jidToOpen
29
+ }));
33
30
  }
34
31
  }
35
32
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useSelector","useDispatch","AsyncStorage","PENDING_NOTIFICATION_JID_KEY","usePendingNotification","dispatch","rooms","state","pendingNotificationJid","isLoading","checkPendingNotification","jidToOpen","storedJid","getItem","removeItem","error","console","room"],"sourceRoot":"../../../src","sources":["hooks/usePendingNotification.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,OAAOC,YAAY,MAAM,2CAA2C;AAIpE,MAAMC,4BAA4B,GAAG,iCAAiC;AAEtE,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAMC,QAAQ,GAAGJ,WAAW,CAAC,CAAC;EAC9B,MAAMK,KAAK,GAAGN,WAAW,CAAEO,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACA,KAAK,CAAC;EAClE,MAAME,sBAAsB,GAAGR,WAAW,CACvCO,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACE,sBACpC,CAAC;EACD,MAAMC,SAAS,GAAGT,WAAW,CAAEO,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACG,SAAS,CAAC;EAE1EV,SAAS,CAAC,MAAM;IACd,MAAMW,wBAAwB,GAAG,MAAAA,CAAA,KAAY;MAC3C,IAAID,SAAS,EAAE;QAAC;MAAO;MAEvB,IAAIE,SAAS,GAAGH,sBAAsB;MAEtC,IAAI,CAACG,SAAS,EAAE;QACd,IAAI;UACF,MAAMC,SAAS,GAAG,MAAMV,YAAY,CAACW,OAAO,CAACV,4BAA4B,CAAC;UAC1E,IAAIS,SAAS,EAAE;YACbD,SAAS,GAAGC,SAAS;YACrB,MAAMV,YAAY,CAACY,UAAU,CAACX,4BAA4B,CAAC;UAC7D;QACF,CAAC,CAAC,OAAOY,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;QAC1D;MACF;MAEA,IAAIJ,SAAS,EAAE;QACb,MAAMM,IAAI,GAAGX,KAAK,CAACK,SAAS,CAAC;QAC7B,IAAIM,IAAI,EAAE;UACR;QACF;MACF;IACF,CAAC;IAEDP,wBAAwB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACJ,KAAK,EAAEE,sBAAsB,EAAEC,SAAS,EAAEJ,QAAQ,CAAC,CAAC;EAExD,OAAO;IAAEG;EAAuB,CAAC;AACnC;AAEA,eAAeJ,sBAAsB","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useSelector","useDispatch","AsyncStorage","setCurrentRoom","clearPendingNotificationJid","PENDING_NOTIFICATION_JID_KEY","readPendingJid","usePendingNotification","dispatch","rooms","state","pendingNotificationJid","isLoading","checkPendingNotification","jidToOpen","room","removeItem","catch","undefined","roomJID"],"sourceRoot":"../../../src","sources":["hooks/usePendingNotification.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,OAAOC,YAAY,MAAM,2CAA2C;AAEpE,SAASC,cAAc,EAAEC,2BAA2B,QAAQ,yBAAyB;AAErF,SAASC,4BAA4B,EAAEC,cAAc,QAAQ,wBAAwB;AAErF,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC,MAAMC,QAAQ,GAAGP,WAAW,CAAC,CAAC;EAC9B,MAAMQ,KAAK,GAAGT,WAAW,CAAEU,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACA,KAAK,CAAC;EAClE,MAAME,sBAAsB,GAAGX,WAAW,CACvCU,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACE,sBACpC,CAAC;EACD,MAAMC,SAAS,GAAGZ,WAAW,CAAEU,KAAgB,IAAKA,KAAK,CAACD,KAAK,CAACG,SAAS,CAAC;EAE1Eb,SAAS,CAAC,MAAM;IACd,MAAMc,wBAAwB,GAAG,MAAAA,CAAA,KAAY;MAC3C,IAAID,SAAS,EAAE;QAAC;MAAO;MAEvB,IAAIE,SAAS,GAAGH,sBAAsB;MAEtC,IAAI,CAACG,SAAS,EAAE;QACdA,SAAS,GAAG,MAAMR,cAAc,CAAC,CAAC;MACpC;MAEA,IAAIQ,SAAS,EAAE;QACb,MAAMC,IAAI,GAAGN,KAAK,CAACK,SAAS,CAAC;QAC7B,IAAIC,IAAI,EAAE;UACRP,QAAQ,CAACJ,2BAA2B,CAAC,CAAC,CAAC;UACvCF,YAAY,CAACc,UAAU,CAACX,4BAA4B,CAAC,CAACY,KAAK,CAAC,MAAMC,SAAS,CAAC;UAC5EV,QAAQ,CAACL,cAAc,CAAC;YAAEgB,OAAO,EAAEL;UAAU,CAAC,CAAC,CAAC;QAClD;MACF;IACF,CAAC;IAEDD,wBAAwB,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACJ,KAAK,EAAEE,sBAAsB,EAAEC,SAAS,EAAEJ,QAAQ,CAAC,CAAC;EAExD,OAAO;IAAEG;EAAuB,CAAC;AACnC;AAEA,eAAeJ,sBAAsB","ignoreList":[]}