@ethora/chat-component-rn 26.8.1 → 26.8.3

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 (927) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +70 -11
  3. package/lib/commonjs/assets/EmptyChatIllustration.js +7 -6
  4. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -1
  5. package/lib/commonjs/assets/icons.js +7 -2
  6. package/lib/commonjs/assets/icons.js.map +1 -1
  7. package/lib/commonjs/components/AuthForms/Login.js +27 -12
  8. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  9. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +12 -4
  10. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  11. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +16 -9
  12. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  13. package/lib/commonjs/components/ExampleComponents/CustomMessage.js +25 -7
  14. package/lib/commonjs/components/ExampleComponents/CustomMessage.js.map +1 -1
  15. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  16. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  17. package/lib/commonjs/components/Header/HeaderRoomList.js +34 -10
  18. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  19. package/lib/commonjs/components/InputComponents/Search.js +13 -4
  20. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/ChatHeader.js +18 -6
  22. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ChatRoom.js +154 -15
  24. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ChatWrapper.js +42 -19
  26. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +37 -10
  28. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  29. package/lib/commonjs/components/MainComponents/LoginWrapper.js +2 -1
  30. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  31. package/lib/commonjs/components/MainComponents/MediaMessage.js +72 -28
  32. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  33. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  34. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  35. package/lib/commonjs/components/MainComponents/MessageList.js +22 -8
  36. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  37. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  38. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  39. package/lib/commonjs/components/MainComponents/RNStyled.js +12 -4
  40. package/lib/commonjs/components/MainComponents/RNStyled.js.map +1 -1
  41. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +25 -8
  42. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  43. package/lib/commonjs/components/MainComponents/RoomList.js +214 -38
  44. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  45. package/lib/commonjs/components/MainComponents/Select.js +29 -8
  46. package/lib/commonjs/components/MainComponents/Select.js.map +1 -1
  47. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +329 -99
  48. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  49. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +24 -8
  50. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  51. package/lib/commonjs/components/MessageBubble/Message.js +46 -24
  52. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  53. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +15 -4
  54. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  55. package/lib/commonjs/components/MessageBubble/MessageReaction.js +10 -5
  56. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  57. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js +1 -5
  58. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +345 -118
  60. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  61. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +599 -203
  62. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  63. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +5 -7
  64. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  65. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +230 -0
  66. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  67. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +89 -36
  68. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  69. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +2 -1
  70. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  71. package/lib/commonjs/components/Modals/Modal/Modal.js +8 -0
  72. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  73. package/lib/commonjs/components/Modals/ModalHeaderComponent.js +8 -2
  74. package/lib/commonjs/components/Modals/ModalHeaderComponent.js.map +1 -1
  75. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +8 -8
  76. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  77. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +3 -6
  78. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  79. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +205 -106
  80. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  81. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  82. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  83. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +563 -0
  84. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  85. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +215 -0
  86. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  87. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +7 -9
  88. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  89. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  90. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  91. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  92. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  93. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  94. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  95. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  96. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  97. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  98. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  99. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +10 -22
  100. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  101. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +510 -244
  102. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  103. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +77 -46
  104. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  105. package/lib/commonjs/components/Modals/styledModalComponents.js +68 -17
  106. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  107. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +30 -10
  108. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  109. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  110. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  111. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +22 -3
  112. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  113. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  114. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  115. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  116. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  117. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  118. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  119. package/lib/commonjs/components/Thread/ThreadWrapper.js +9 -2
  120. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  121. package/lib/commonjs/components/Toast/Toast.js +3 -1
  122. package/lib/commonjs/components/Toast/Toast.js.map +1 -1
  123. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +6 -3
  124. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  125. package/lib/commonjs/components/styled/AudioMessage.js +18 -12
  126. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  127. package/lib/commonjs/components/styled/Button.js +18 -9
  128. package/lib/commonjs/components/styled/Button.js.map +1 -1
  129. package/lib/commonjs/components/styled/DateLabel.js +8 -5
  130. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  131. package/lib/commonjs/components/styled/MediaModal.js +27 -21
  132. package/lib/commonjs/components/styled/MediaModal.js.map +1 -1
  133. package/lib/commonjs/components/styled/MessageImage.js +37 -9
  134. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  135. package/lib/commonjs/components/styled/RoomListComponents/index.js +60 -38
  136. package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
  137. package/lib/commonjs/components/styled/SendInput.js +93 -19
  138. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  139. package/lib/commonjs/components/styled/StyledComponents.js +75 -25
  140. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  141. package/lib/commonjs/components/styled/StyledInput.js +32 -18
  142. package/lib/commonjs/components/styled/StyledInput.js.map +1 -1
  143. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  144. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  145. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  146. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  147. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +50 -22
  148. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  149. package/lib/commonjs/components/styled/TreadLabel.js +6 -3
  150. package/lib/commonjs/components/styled/TreadLabel.js.map +1 -1
  151. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  152. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  153. package/lib/commonjs/components/styled/VideoMessage.js +119 -61
  154. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  155. package/lib/commonjs/context/MessageNotificationContext.js +14 -3
  156. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  157. package/lib/commonjs/context/xmppProvider.js +184 -59
  158. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  159. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  160. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  161. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  162. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  163. package/lib/commonjs/helpers/getChatBackground.js +26 -0
  164. package/lib/commonjs/helpers/getChatBackground.js.map +1 -0
  165. package/lib/commonjs/helpers/getDateLabelColor.js +3 -1
  166. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -1
  167. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  168. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  169. package/lib/commonjs/helpers/getIconColor.js +4 -1
  170. package/lib/commonjs/helpers/getIconColor.js.map +1 -1
  171. package/lib/commonjs/helpers/getSenderNameColor.js +3 -1
  172. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -1
  173. package/lib/commonjs/helpers/getServerReadTimestamp.js +188 -0
  174. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  175. package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
  176. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  177. package/lib/commonjs/helpers/initXmppRooms.js +14 -8
  178. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  179. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +51 -9
  180. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  181. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  182. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  183. package/lib/commonjs/helpers/keyboardLayout.js +12 -2
  184. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  185. package/lib/commonjs/helpers/markdownParser.js +27 -5
  186. package/lib/commonjs/helpers/markdownParser.js.map +1 -1
  187. package/lib/commonjs/helpers/mediaLibraryRuntime.js +31 -0
  188. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +1 -0
  189. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  190. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  191. package/lib/commonjs/helpers/msgSortableMs.js +37 -0
  192. package/lib/commonjs/helpers/msgSortableMs.js.map +1 -0
  193. package/lib/commonjs/helpers/parseMessageBody.js +82 -24
  194. package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
  195. package/lib/commonjs/helpers/persistCrypto.js +122 -0
  196. package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
  197. package/lib/commonjs/helpers/pickImageAsset.js +68 -0
  198. package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
  199. package/lib/commonjs/helpers/pushPayload.js +71 -0
  200. package/lib/commonjs/helpers/pushPayload.js.map +1 -0
  201. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +130 -17
  202. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  203. package/lib/commonjs/helpers/secureFileUrl.js +101 -0
  204. package/lib/commonjs/helpers/secureFileUrl.js.map +1 -0
  205. package/lib/commonjs/helpers/secureKeyValue.js +83 -0
  206. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
  207. package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
  208. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
  209. package/lib/commonjs/helpers/secureUserStorage.js +75 -0
  210. package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
  211. package/lib/commonjs/helpers/shallowEqual.js +36 -0
  212. package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
  213. package/lib/commonjs/helpers/sheetGestures.js +32 -0
  214. package/lib/commonjs/helpers/sheetGestures.js.map +1 -0
  215. package/lib/commonjs/hooks/useChatRoomFocus.js +45 -12
  216. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  217. package/lib/commonjs/hooks/useChatWrapperInit.js +30 -10
  218. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  219. package/lib/commonjs/hooks/useComposing.js +27 -0
  220. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  221. package/lib/commonjs/hooks/useCustomTypingIndicator.js +7 -3
  222. package/lib/commonjs/hooks/useCustomTypingIndicator.js.map +1 -1
  223. package/lib/commonjs/hooks/useFileToken.js +10 -0
  224. package/lib/commonjs/hooks/useFileToken.js.map +1 -0
  225. package/lib/commonjs/hooks/useLogout.js +33 -10
  226. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  227. package/lib/commonjs/hooks/usePendingNotification.js +8 -11
  228. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  229. package/lib/commonjs/hooks/useSendMessage.js +50 -14
  230. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  231. package/lib/commonjs/hooks/useTheme.js +35 -0
  232. package/lib/commonjs/hooks/useTheme.js.map +1 -0
  233. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
  234. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  235. package/lib/commonjs/i18n/strings.js +163 -37
  236. package/lib/commonjs/i18n/strings.js.map +1 -1
  237. package/lib/commonjs/main.js +119 -0
  238. package/lib/commonjs/main.js.map +1 -1
  239. package/lib/commonjs/networking/api-requests/auth.api.js +134 -60
  240. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  241. package/lib/commonjs/networking/api-requests/push.api.js +130 -45
  242. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  243. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  244. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  245. package/lib/commonjs/networking/api-requests/rooms.api.js +22 -9
  246. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  247. package/lib/commonjs/networking/api-requests/user.api.js +68 -9
  248. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  249. package/lib/commonjs/networking/apiClient.js +62 -112
  250. package/lib/commonjs/networking/apiClient.js.map +1 -1
  251. package/lib/commonjs/networking/authRefresh.js +332 -0
  252. package/lib/commonjs/networking/authRefresh.js.map +1 -0
  253. package/lib/commonjs/networking/stanzaHandlers.js +41 -28
  254. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  255. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  256. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  257. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  258. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  259. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  260. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  261. package/lib/commonjs/networking/xmppClient.js +124 -8
  262. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  263. package/lib/commonjs/roomStore/chatSettingsSlice.js +26 -7
  264. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  265. package/lib/commonjs/roomStore/index.js +35 -2
  266. package/lib/commonjs/roomStore/index.js.map +1 -1
  267. package/lib/commonjs/roomStore/persistence.js +226 -23
  268. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  269. package/lib/commonjs/roomStore/roomsSlice.js +151 -38
  270. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  271. package/lib/commonjs/services/pushRegistration.js +250 -0
  272. package/lib/commonjs/services/pushRegistration.js.map +1 -0
  273. package/lib/commonjs/services/pushSubscriptionService.js +15 -37
  274. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  275. package/lib/commonjs/theme/index.js +38 -0
  276. package/lib/commonjs/theme/index.js.map +1 -0
  277. package/lib/commonjs/theme/styled.d.js +4 -0
  278. package/lib/commonjs/theme/styled.d.js.map +1 -0
  279. package/lib/commonjs/theme/theme.js +137 -0
  280. package/lib/commonjs/theme/theme.js.map +1 -0
  281. package/lib/commonjs/version.js +1 -1
  282. package/lib/module/assets/EmptyChatIllustration.js +7 -6
  283. package/lib/module/assets/EmptyChatIllustration.js.map +1 -1
  284. package/lib/module/assets/icons.js +6 -1
  285. package/lib/module/assets/icons.js.map +1 -1
  286. package/lib/module/components/AuthForms/Login.js +27 -12
  287. package/lib/module/components/AuthForms/Login.js.map +1 -1
  288. package/lib/module/components/ContextMenu/ContextMenuComponents.js +12 -4
  289. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  290. package/lib/module/components/DropdownMenu/DropdownMenu.js +16 -9
  291. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  292. package/lib/module/components/ExampleComponents/CustomMessage.js +25 -7
  293. package/lib/module/components/ExampleComponents/CustomMessage.js.map +1 -1
  294. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  295. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  296. package/lib/module/components/Header/HeaderRoomList.js +34 -10
  297. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  298. package/lib/module/components/InputComponents/Search.js +13 -4
  299. package/lib/module/components/InputComponents/Search.js.map +1 -1
  300. package/lib/module/components/MainComponents/ChatHeader.js +18 -6
  301. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  302. package/lib/module/components/MainComponents/ChatRoom.js +156 -17
  303. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  304. package/lib/module/components/MainComponents/ChatWrapper.js +43 -20
  305. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  306. package/lib/module/components/MainComponents/LanguageSelectorModal.js +37 -10
  307. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  308. package/lib/module/components/MainComponents/LoginWrapper.js +2 -1
  309. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  310. package/lib/module/components/MainComponents/MediaMessage.js +72 -29
  311. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  312. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  313. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  314. package/lib/module/components/MainComponents/MessageList.js +22 -8
  315. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  316. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  317. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  318. package/lib/module/components/MainComponents/RNStyled.js +12 -4
  319. package/lib/module/components/MainComponents/RNStyled.js.map +1 -1
  320. package/lib/module/components/MainComponents/ReduxWrapper.js +25 -8
  321. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  322. package/lib/module/components/MainComponents/RoomList.js +213 -38
  323. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  324. package/lib/module/components/MainComponents/Select.js +29 -8
  325. package/lib/module/components/MainComponents/Select.js.map +1 -1
  326. package/lib/module/components/Menu/HeaderRoomListMenu.js +331 -102
  327. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  328. package/lib/module/components/MessageBubble/BottomReplyContainer.js +24 -8
  329. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  330. package/lib/module/components/MessageBubble/Message.js +47 -25
  331. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  332. package/lib/module/components/MessageBubble/MessageInteractions.js +15 -4
  333. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  334. package/lib/module/components/MessageBubble/MessageReaction.js +10 -5
  335. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  336. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js +2 -6
  337. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  338. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +336 -121
  339. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  340. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +603 -208
  341. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  342. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +6 -8
  343. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  344. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +225 -0
  345. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  346. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +90 -37
  347. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  348. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +2 -1
  349. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  350. package/lib/module/components/Modals/Modal/Modal.js +9 -1
  351. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  352. package/lib/module/components/Modals/ModalHeaderComponent.js +8 -2
  353. package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
  354. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +10 -10
  355. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  356. package/lib/module/components/Modals/NewChatModal/ModalContent.js +4 -7
  357. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  358. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +208 -108
  359. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  360. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  361. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  362. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +555 -0
  363. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  364. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +210 -0
  365. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  366. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -10
  367. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  368. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  369. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  370. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  371. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  372. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  373. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  374. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  375. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  376. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  377. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  378. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +11 -24
  379. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  380. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +512 -248
  381. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  382. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +79 -48
  383. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  384. package/lib/module/components/Modals/styledModalComponents.js +67 -16
  385. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  386. package/lib/module/components/RoomComponents/ChatRoomItem.js +30 -10
  387. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  388. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  389. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  390. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +22 -3
  391. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  392. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  393. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  394. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  395. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  396. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  397. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  398. package/lib/module/components/Thread/ThreadWrapper.js +9 -2
  399. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  400. package/lib/module/components/Toast/Toast.js +3 -1
  401. package/lib/module/components/Toast/Toast.js.map +1 -1
  402. package/lib/module/components/VideoCalls/VideoCallSession.js +6 -3
  403. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  404. package/lib/module/components/styled/AudioMessage.js +18 -12
  405. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  406. package/lib/module/components/styled/Button.js +17 -9
  407. package/lib/module/components/styled/Button.js.map +1 -1
  408. package/lib/module/components/styled/DateLabel.js +8 -5
  409. package/lib/module/components/styled/DateLabel.js.map +1 -1
  410. package/lib/module/components/styled/MediaModal.js +29 -23
  411. package/lib/module/components/styled/MediaModal.js.map +1 -1
  412. package/lib/module/components/styled/MessageImage.js +37 -9
  413. package/lib/module/components/styled/MessageImage.js.map +1 -1
  414. package/lib/module/components/styled/RoomListComponents/index.js +62 -39
  415. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  416. package/lib/module/components/styled/SendInput.js +94 -20
  417. package/lib/module/components/styled/SendInput.js.map +1 -1
  418. package/lib/module/components/styled/StyledComponents.js +75 -25
  419. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  420. package/lib/module/components/styled/StyledInput.js +32 -18
  421. package/lib/module/components/styled/StyledInput.js.map +1 -1
  422. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  423. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  424. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  425. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  426. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +50 -22
  427. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  428. package/lib/module/components/styled/TreadLabel.js +6 -3
  429. package/lib/module/components/styled/TreadLabel.js.map +1 -1
  430. package/lib/module/components/styled/UnsupportedType.js +14 -4
  431. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  432. package/lib/module/components/styled/VideoMessage.js +120 -62
  433. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  434. package/lib/module/context/MessageNotificationContext.js +14 -3
  435. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  436. package/lib/module/context/xmppProvider.js +184 -60
  437. package/lib/module/context/xmppProvider.js.map +1 -1
  438. package/lib/module/helpers/createMessageFromXml.js +19 -1
  439. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  440. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  441. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  442. package/lib/module/helpers/getChatBackground.js +22 -0
  443. package/lib/module/helpers/getChatBackground.js.map +1 -0
  444. package/lib/module/helpers/getDateLabelColor.js +4 -1
  445. package/lib/module/helpers/getDateLabelColor.js.map +1 -1
  446. package/lib/module/helpers/getDisplayFileName.js +73 -0
  447. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  448. package/lib/module/helpers/getIconColor.js +5 -1
  449. package/lib/module/helpers/getIconColor.js.map +1 -1
  450. package/lib/module/helpers/getSenderNameColor.js +4 -1
  451. package/lib/module/helpers/getSenderNameColor.js.map +1 -1
  452. package/lib/module/helpers/getServerReadTimestamp.js +181 -0
  453. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  454. package/lib/module/helpers/historyPreloadScheduler.js +66 -3
  455. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  456. package/lib/module/helpers/initXmppRooms.js +14 -8
  457. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  458. package/lib/module/helpers/insertMessageWithDelimiter.js +52 -9
  459. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  460. package/lib/module/helpers/isOwnMessage.js +70 -0
  461. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  462. package/lib/module/helpers/keyboardLayout.js +12 -2
  463. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  464. package/lib/module/helpers/markdownParser.js +27 -5
  465. package/lib/module/helpers/markdownParser.js.map +1 -1
  466. package/lib/module/helpers/mediaLibraryRuntime.js +25 -0
  467. package/lib/module/helpers/mediaLibraryRuntime.js.map +1 -0
  468. package/lib/module/helpers/mimeToExtension.js +6 -13
  469. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  470. package/lib/module/helpers/msgSortableMs.js +32 -0
  471. package/lib/module/helpers/msgSortableMs.js.map +1 -0
  472. package/lib/module/helpers/parseMessageBody.js +82 -24
  473. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  474. package/lib/module/helpers/persistCrypto.js +115 -0
  475. package/lib/module/helpers/persistCrypto.js.map +1 -0
  476. package/lib/module/helpers/pickImageAsset.js +63 -0
  477. package/lib/module/helpers/pickImageAsset.js.map +1 -0
  478. package/lib/module/helpers/pushPayload.js +63 -0
  479. package/lib/module/helpers/pushPayload.js.map +1 -0
  480. package/lib/module/helpers/resolveInitBeforeLoadUser.js +130 -16
  481. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  482. package/lib/module/helpers/secureFileUrl.js +91 -0
  483. package/lib/module/helpers/secureFileUrl.js.map +1 -0
  484. package/lib/module/helpers/secureKeyValue.js +75 -0
  485. package/lib/module/helpers/secureKeyValue.js.map +1 -0
  486. package/lib/module/helpers/secureStoreRuntime.js +52 -0
  487. package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
  488. package/lib/module/helpers/secureUserStorage.js +72 -0
  489. package/lib/module/helpers/secureUserStorage.js.map +1 -0
  490. package/lib/module/helpers/shallowEqual.js +31 -0
  491. package/lib/module/helpers/shallowEqual.js.map +1 -0
  492. package/lib/module/helpers/sheetGestures.js +26 -0
  493. package/lib/module/helpers/sheetGestures.js.map +1 -0
  494. package/lib/module/hooks/useChatRoomFocus.js +46 -13
  495. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  496. package/lib/module/hooks/useChatWrapperInit.js +30 -10
  497. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  498. package/lib/module/hooks/useComposing.js +28 -1
  499. package/lib/module/hooks/useComposing.js.map +1 -1
  500. package/lib/module/hooks/useCustomTypingIndicator.js +8 -3
  501. package/lib/module/hooks/useCustomTypingIndicator.js.map +1 -1
  502. package/lib/module/hooks/useFileToken.js +5 -0
  503. package/lib/module/hooks/useFileToken.js.map +1 -0
  504. package/lib/module/hooks/useLogout.js +33 -10
  505. package/lib/module/hooks/useLogout.js.map +1 -1
  506. package/lib/module/hooks/usePendingNotification.js +8 -11
  507. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  508. package/lib/module/hooks/useSendMessage.js +52 -16
  509. package/lib/module/hooks/useSendMessage.js.map +1 -1
  510. package/lib/module/hooks/useTheme.js +30 -0
  511. package/lib/module/hooks/useTheme.js.map +1 -0
  512. package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
  513. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  514. package/lib/module/i18n/strings.js +163 -37
  515. package/lib/module/i18n/strings.js.map +1 -1
  516. package/lib/module/main.js +17 -2
  517. package/lib/module/main.js.map +1 -1
  518. package/lib/module/networking/api-requests/auth.api.js +131 -59
  519. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  520. package/lib/module/networking/api-requests/push.api.js +119 -45
  521. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  522. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  523. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  524. package/lib/module/networking/api-requests/rooms.api.js +21 -9
  525. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  526. package/lib/module/networking/api-requests/user.api.js +64 -7
  527. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  528. package/lib/module/networking/apiClient.js +61 -113
  529. package/lib/module/networking/apiClient.js.map +1 -1
  530. package/lib/module/networking/authRefresh.js +321 -0
  531. package/lib/module/networking/authRefresh.js.map +1 -0
  532. package/lib/module/networking/stanzaHandlers.js +41 -28
  533. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  534. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  535. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  536. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  537. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  538. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  539. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  540. package/lib/module/networking/xmppClient.js +124 -8
  541. package/lib/module/networking/xmppClient.js.map +1 -1
  542. package/lib/module/roomStore/chatSettingsSlice.js +26 -7
  543. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  544. package/lib/module/roomStore/index.js +37 -4
  545. package/lib/module/roomStore/index.js.map +1 -1
  546. package/lib/module/roomStore/persistence.js +223 -22
  547. package/lib/module/roomStore/persistence.js.map +1 -1
  548. package/lib/module/roomStore/roomsSlice.js +139 -34
  549. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  550. package/lib/module/services/pushRegistration.js +239 -0
  551. package/lib/module/services/pushRegistration.js.map +1 -0
  552. package/lib/module/services/pushSubscriptionService.js +15 -37
  553. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  554. package/lib/module/theme/index.js +7 -0
  555. package/lib/module/theme/index.js.map +1 -0
  556. package/lib/module/theme/styled.d.js +6 -0
  557. package/lib/module/theme/styled.d.js.map +1 -0
  558. package/lib/module/theme/theme.js +131 -0
  559. package/lib/module/theme/theme.js.map +1 -0
  560. package/lib/module/version.js +1 -1
  561. package/lib/typescript/assets/EmptyChatIllustration.d.ts +1 -0
  562. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -1
  563. package/lib/typescript/assets/icons.d.ts +24 -0
  564. package/lib/typescript/assets/icons.d.ts.map +1 -1
  565. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  566. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  567. package/lib/typescript/components/ExampleComponents/CustomMessage.d.ts.map +1 -1
  568. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  569. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  570. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  571. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  572. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  573. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
  574. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  575. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  576. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  577. package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
  578. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  579. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  580. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  581. package/lib/typescript/components/MainComponents/RoomList.d.ts +7 -0
  582. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  583. package/lib/typescript/components/MainComponents/Select.d.ts.map +1 -1
  584. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +3 -0
  585. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  586. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  587. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  588. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  589. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  590. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +9 -0
  591. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  592. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +10 -0
  593. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  594. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  595. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +9 -0
  596. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -0
  597. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  598. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  599. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  600. package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
  601. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  602. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
  603. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  604. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  605. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  606. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  607. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +75 -0
  608. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -0
  609. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +25 -0
  610. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -0
  611. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +6 -1
  612. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  613. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  614. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  615. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +2 -2
  616. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  617. package/lib/typescript/components/Modals/SettingsModals/Visibility/RadioInput.d.ts.map +1 -1
  618. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  619. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  620. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +16 -0
  621. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  622. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +1 -0
  623. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  624. package/lib/typescript/components/Modals/styledModalComponents.d.ts +2 -0
  625. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  626. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  627. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  628. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  629. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  630. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  631. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  632. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  633. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  634. package/lib/typescript/components/RoomComponents/styled/StyledRoomComponents.d.ts.map +1 -1
  635. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  636. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  637. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  638. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  639. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  640. package/lib/typescript/components/styled/MediaModal.d.ts +2 -2
  641. package/lib/typescript/components/styled/MediaModal.d.ts.map +1 -1
  642. package/lib/typescript/components/styled/MessageImage.d.ts +14 -0
  643. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  644. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  645. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  646. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  647. package/lib/typescript/components/styled/StyledInput.d.ts.map +1 -1
  648. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  649. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  650. package/lib/typescript/components/styled/TreadLabel.d.ts.map +1 -1
  651. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  652. package/lib/typescript/components/styled/VideoMessage.d.ts +8 -0
  653. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  654. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  655. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  656. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  657. package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
  658. package/lib/typescript/helpers/getChatBackground.d.ts +15 -0
  659. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -0
  660. package/lib/typescript/helpers/getDateLabelColor.d.ts +3 -7
  661. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -1
  662. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  663. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  664. package/lib/typescript/helpers/getIconColor.d.ts +4 -7
  665. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -1
  666. package/lib/typescript/helpers/getSenderNameColor.d.ts +3 -7
  667. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -1
  668. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +108 -0
  669. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  670. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  671. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  672. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts +1 -1
  673. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  674. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  675. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  676. package/lib/typescript/helpers/keyboardLayout.d.ts +5 -1
  677. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  678. package/lib/typescript/helpers/markdownParser.d.ts +8 -1
  679. package/lib/typescript/helpers/markdownParser.d.ts.map +1 -1
  680. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +3 -0
  681. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +1 -0
  682. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  683. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  684. package/lib/typescript/helpers/msgSortableMs.d.ts +2 -0
  685. package/lib/typescript/helpers/msgSortableMs.d.ts.map +1 -0
  686. package/lib/typescript/helpers/parseMessageBody.d.ts +8 -1
  687. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  688. package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
  689. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
  690. package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
  691. package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
  692. package/lib/typescript/helpers/pushPayload.d.ts +7 -0
  693. package/lib/typescript/helpers/pushPayload.d.ts.map +1 -0
  694. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  695. package/lib/typescript/helpers/secureFileUrl.d.ts +7 -0
  696. package/lib/typescript/helpers/secureFileUrl.d.ts.map +1 -0
  697. package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
  698. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
  699. package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
  700. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
  701. package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
  702. package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
  703. package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
  704. package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
  705. package/lib/typescript/helpers/sheetGestures.d.ts +20 -0
  706. package/lib/typescript/helpers/sheetGestures.d.ts.map +1 -0
  707. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  708. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  709. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  710. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  711. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts +2 -0
  712. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts.map +1 -1
  713. package/lib/typescript/hooks/useFileToken.d.ts +2 -0
  714. package/lib/typescript/hooks/useFileToken.d.ts.map +1 -0
  715. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  716. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  717. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  718. package/lib/typescript/hooks/useTheme.d.ts +16 -0
  719. package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
  720. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  721. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  722. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  723. package/lib/typescript/main.d.ts +16 -2
  724. package/lib/typescript/main.d.ts.map +1 -1
  725. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -1
  726. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  727. package/lib/typescript/networking/api-requests/push.api.d.ts +46 -3
  728. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  729. package/lib/typescript/networking/api-requests/rooms.api.d.ts +1 -0
  730. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  731. package/lib/typescript/networking/api-requests/user.api.d.ts +27 -0
  732. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  733. package/lib/typescript/networking/apiClient.d.ts +12 -6
  734. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  735. package/lib/typescript/networking/authRefresh.d.ts +95 -0
  736. package/lib/typescript/networking/authRefresh.d.ts.map +1 -0
  737. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  738. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +10 -2
  739. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  740. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  741. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  742. package/lib/typescript/networking/xmppClient.d.ts +14 -0
  743. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  744. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +16 -0
  745. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  746. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  747. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  748. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  749. package/lib/typescript/roomStore/roomsSlice.d.ts +43 -3
  750. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  751. package/lib/typescript/services/pushRegistration.d.ts +21 -0
  752. package/lib/typescript/services/pushRegistration.d.ts.map +1 -0
  753. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -5
  754. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  755. package/lib/typescript/theme/index.d.ts +5 -0
  756. package/lib/typescript/theme/index.d.ts.map +1 -0
  757. package/lib/typescript/theme/theme.d.ts +113 -0
  758. package/lib/typescript/theme/theme.d.ts.map +1 -0
  759. package/lib/typescript/types/models/room.model.d.ts +1 -0
  760. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  761. package/lib/typescript/types/types.d.ts +70 -5
  762. package/lib/typescript/types/types.d.ts.map +1 -1
  763. package/lib/typescript/version.d.ts +1 -1
  764. package/package.json +41 -28
  765. package/src/assets/EmptyChatIllustration.tsx +7 -5
  766. package/src/assets/icons.tsx +72 -9
  767. package/src/components/AuthForms/Login.tsx +14 -12
  768. package/src/components/ContextMenu/ContextMenuComponents.tsx +4 -4
  769. package/src/components/DropdownMenu/DropdownMenu.tsx +14 -6
  770. package/src/components/ExampleComponents/CustomMessage.tsx +9 -8
  771. package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +6 -6
  772. package/src/components/Header/HeaderRoomList.tsx +35 -8
  773. package/src/components/InputComponents/Search.tsx +7 -4
  774. package/src/components/MainComponents/ChatHeader.tsx +18 -6
  775. package/src/components/MainComponents/ChatRoom.tsx +164 -15
  776. package/src/components/MainComponents/ChatWrapper.tsx +44 -26
  777. package/src/components/MainComponents/LanguageSelectorModal.tsx +33 -7
  778. package/src/components/MainComponents/LoginWrapper.tsx +1 -0
  779. package/src/components/MainComponents/MediaMessage.tsx +63 -26
  780. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  781. package/src/components/MainComponents/MessageList.tsx +36 -7
  782. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +21 -14
  783. package/src/components/MainComponents/RNStyled.tsx +4 -4
  784. package/src/components/MainComponents/ReduxWrapper.tsx +23 -7
  785. package/src/components/MainComponents/RoomList.tsx +243 -40
  786. package/src/components/MainComponents/Select.tsx +13 -8
  787. package/src/components/Menu/HeaderRoomListMenu.tsx +347 -77
  788. package/src/components/MessageBubble/BottomReplyContainer.tsx +16 -11
  789. package/src/components/MessageBubble/Message.tsx +48 -25
  790. package/src/components/MessageBubble/MessageInteractions.tsx +17 -4
  791. package/src/components/MessageBubble/MessageReaction.tsx +9 -4
  792. package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +2 -2
  793. package/src/components/Modals/AttachSheet/AttachSheet.tsx +376 -106
  794. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +639 -283
  795. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +6 -4
  796. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +248 -0
  797. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +93 -47
  798. package/src/components/Modals/FilePreviewModal/PdfView.tsx +2 -1
  799. package/src/components/Modals/Modal/Modal.tsx +7 -0
  800. package/src/components/Modals/ModalHeaderComponent.tsx +9 -2
  801. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +14 -6
  802. package/src/components/Modals/NewChatModal/ModalContent.tsx +8 -5
  803. package/src/components/Modals/NewChatModal/NewChatModal.tsx +223 -119
  804. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
  805. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +624 -0
  806. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +224 -0
  807. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +16 -7
  808. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +8 -6
  809. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +5 -3
  810. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +4 -4
  811. package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +9 -5
  812. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +7 -7
  813. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +12 -26
  814. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +621 -307
  815. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +84 -58
  816. package/src/components/Modals/styledModalComponents.tsx +31 -16
  817. package/src/components/RoomComponents/ChatRoomItem.tsx +30 -6
  818. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +4 -2
  819. package/src/components/RoomComponents/styled/LastMessageFile.tsx +28 -4
  820. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +18 -3
  821. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +18 -3
  822. package/src/components/RoomComponents/styled/StyledRoomComponents.ts +2 -0
  823. package/src/components/Thread/ThreadWrapper.tsx +6 -5
  824. package/src/components/Toast/Toast.tsx +1 -1
  825. package/src/components/VideoCalls/VideoCallSession.tsx +8 -3
  826. package/src/components/styled/AudioMessage.tsx +14 -10
  827. package/src/components/styled/Button.tsx +15 -8
  828. package/src/components/styled/DateLabel.tsx +7 -3
  829. package/src/components/styled/MediaModal.tsx +30 -25
  830. package/src/components/styled/MessageImage.tsx +53 -7
  831. package/src/components/styled/RoomListComponents/index.tsx +60 -35
  832. package/src/components/styled/SendInput.tsx +106 -20
  833. package/src/components/styled/StyledComponents.ts +38 -25
  834. package/src/components/styled/StyledInput.tsx +35 -21
  835. package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +8 -8
  836. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +20 -7
  837. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +26 -23
  838. package/src/components/styled/TreadLabel.tsx +9 -3
  839. package/src/components/styled/UnsupportedType.tsx +14 -4
  840. package/src/components/styled/VideoMessage.tsx +131 -54
  841. package/src/context/MessageNotificationContext.tsx +18 -4
  842. package/src/context/xmppProvider.tsx +216 -57
  843. package/src/helpers/createMessageFromXml.ts +20 -1
  844. package/src/helpers/ensureScopedChatCache.ts +2 -2
  845. package/src/helpers/getChatBackground.ts +20 -0
  846. package/src/helpers/getDateLabelColor.ts +5 -3
  847. package/src/helpers/getDisplayFileName.ts +87 -0
  848. package/src/helpers/getIconColor.ts +6 -3
  849. package/src/helpers/getSenderNameColor.ts +5 -3
  850. package/src/helpers/getServerReadTimestamp.ts +197 -0
  851. package/src/helpers/historyPreloadScheduler.ts +80 -3
  852. package/src/helpers/initXmppRooms.tsx +14 -10
  853. package/src/helpers/insertMessageWithDelimiter.ts +55 -19
  854. package/src/helpers/isOwnMessage.ts +90 -0
  855. package/src/helpers/keyboardLayout.ts +23 -2
  856. package/src/helpers/markdownParser.tsx +29 -5
  857. package/src/helpers/mediaLibraryRuntime.ts +25 -0
  858. package/src/helpers/mimeToExtension.ts +6 -22
  859. package/src/helpers/msgSortableMs.ts +25 -0
  860. package/src/helpers/parseMessageBody.tsx +79 -26
  861. package/src/helpers/persistCrypto.ts +127 -0
  862. package/src/helpers/pickImageAsset.ts +68 -0
  863. package/src/helpers/pushPayload.ts +62 -0
  864. package/src/helpers/resolveInitBeforeLoadUser.ts +125 -18
  865. package/src/helpers/secureFileUrl.ts +103 -0
  866. package/src/helpers/secureKeyValue.ts +80 -0
  867. package/src/helpers/secureStoreRuntime.ts +62 -0
  868. package/src/helpers/secureUserStorage.ts +80 -0
  869. package/src/helpers/shallowEqual.ts +33 -0
  870. package/src/helpers/sheetGestures.ts +25 -0
  871. package/src/hooks/useChatRoomFocus.ts +49 -9
  872. package/src/hooks/useChatWrapperInit.ts +30 -10
  873. package/src/hooks/useComposing.tsx +37 -1
  874. package/src/hooks/useCustomTypingIndicator.tsx +7 -3
  875. package/src/hooks/useFileToken.ts +7 -0
  876. package/src/hooks/useLogout.tsx +39 -12
  877. package/src/hooks/usePendingNotification.ts +5 -11
  878. package/src/hooks/useSendMessage.tsx +60 -15
  879. package/src/hooks/useTheme.ts +41 -0
  880. package/src/hooks/useUnreadMessagesCounter.ts +11 -0
  881. package/src/i18n/strings.ts +163 -37
  882. package/src/main.ts +57 -2
  883. package/src/networking/api-requests/auth.api.ts +156 -48
  884. package/src/networking/api-requests/push.api.ts +185 -62
  885. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  886. package/src/networking/api-requests/rooms.api.ts +18 -9
  887. package/src/networking/api-requests/user.api.ts +79 -7
  888. package/src/networking/apiClient.ts +68 -123
  889. package/src/networking/authRefresh.ts +451 -0
  890. package/src/networking/stanzaHandlers.ts +44 -28
  891. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +71 -10
  892. package/src/networking/xmpp/presenceInRoom.xmpp.ts +6 -1
  893. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +12 -1
  894. package/src/networking/xmppClient.ts +141 -9
  895. package/src/roomStore/chatSettingsSlice.ts +34 -10
  896. package/src/roomStore/index.ts +40 -4
  897. package/src/roomStore/persistence.ts +234 -24
  898. package/src/roomStore/roomsSlice.ts +161 -29
  899. package/src/services/pushRegistration.ts +356 -0
  900. package/src/services/pushSubscriptionService.ts +18 -47
  901. package/src/theme/index.ts +10 -0
  902. package/src/theme/styled.d.ts +9 -0
  903. package/src/theme/theme.ts +243 -0
  904. package/src/types/models/room.model.ts +1 -0
  905. package/src/types/types.ts +96 -5
  906. package/src/version.ts +1 -1
  907. package/lib/commonjs/context/PushNotificationProvider.js +0 -79
  908. package/lib/commonjs/context/PushNotificationProvider.js.map +0 -1
  909. package/lib/commonjs/hooks/usePushNotifications.js +0 -110
  910. package/lib/commonjs/hooks/usePushNotifications.js.map +0 -1
  911. package/lib/commonjs/services/pushNotifications.js +0 -143
  912. package/lib/commonjs/services/pushNotifications.js.map +0 -1
  913. package/lib/module/context/PushNotificationProvider.js +0 -79
  914. package/lib/module/context/PushNotificationProvider.js.map +0 -1
  915. package/lib/module/hooks/usePushNotifications.js +0 -106
  916. package/lib/module/hooks/usePushNotifications.js.map +0 -1
  917. package/lib/module/services/pushNotifications.js +0 -130
  918. package/lib/module/services/pushNotifications.js.map +0 -1
  919. package/lib/typescript/context/PushNotificationProvider.d.ts +0 -2
  920. package/lib/typescript/context/PushNotificationProvider.d.ts.map +0 -1
  921. package/lib/typescript/hooks/usePushNotifications.d.ts +0 -5
  922. package/lib/typescript/hooks/usePushNotifications.d.ts.map +0 -1
  923. package/lib/typescript/services/pushNotifications.d.ts +0 -10
  924. package/lib/typescript/services/pushNotifications.d.ts.map +0 -1
  925. package/src/context/PushNotificationProvider.tsx +0 -78
  926. package/src/hooks/usePushNotifications.ts +0 -131
  927. package/src/services/pushNotifications.ts +0 -170
@@ -9,6 +9,7 @@ var _reactNative = require("react-native");
9
9
  var _reactRedux = require("react-redux");
10
10
  var _messageNotificationManager = require("../utils/messageNotificationManager");
11
11
  var _roomsSlice = require("../roomStore/roomsSlice");
12
+ var _useTheme = require("../hooks/useTheme");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  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); }
14
15
  // RN port of the web MessageNotificationProvider. Renders Telegram-style
@@ -156,6 +157,7 @@ const ToastRow = ({
156
157
  onPress,
157
158
  onDismiss
158
159
  }) => {
160
+ const theme = (0, _useTheme.useTheme)();
159
161
  const fade = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
160
162
  (0, _react.useEffect)(() => {
161
163
  _reactNative.Animated.timing(fade, {
@@ -166,17 +168,24 @@ const ToastRow = ({
166
168
  }, [fade]);
167
169
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Animated.View, {
168
170
  style: [styles.toast, {
171
+ backgroundColor: theme.surface,
172
+ shadowColor: theme.shadow
173
+ }, {
169
174
  opacity: fade
170
175
  }],
171
176
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
172
177
  style: styles.toastBody,
173
178
  onPress: onPress,
174
179
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
175
- style: styles.toastTitle,
180
+ style: [styles.toastTitle, {
181
+ color: theme.text
182
+ }],
176
183
  numberOfLines: 1,
177
184
  children: item.roomName
178
185
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
179
- style: styles.toastSubtitle,
186
+ style: [styles.toastSubtitle, {
187
+ color: theme.textSecondary
188
+ }],
180
189
  numberOfLines: 2,
181
190
  children: [item.senderName, ": ", item.message?.body || '']
182
191
  })]
@@ -184,7 +193,9 @@ const ToastRow = ({
184
193
  onPress: onDismiss,
185
194
  style: styles.dismiss,
186
195
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
187
- style: styles.dismissText,
196
+ style: [styles.dismissText, {
197
+ color: theme.textMuted
198
+ }],
188
199
  children: "\xD7"
189
200
  })
190
201
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactRedux","_messageNotificationManager","_roomsSlice","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageNotificationContext","createContext","DEFAULT_MAX","DEFAULT_DURATION_MS","MessageNotificationProvider","children","config","propConfig","dispatch","useDispatch","contextConfig","useSelector","state","chatSettingStore","visibleRoomJID","rooms","notificationConfig","inAppNotifications","isEnabled","enabled","maxNotifications","duration","toasts","setToasts","useState","appActiveRef","useRef","AppState","currentState","useEffect","sub","addEventListener","next","current","now","Date","prev","filter","timestamp","remove","interval","setInterval","clearInterval","roomJID","dismiss","useCallback","id","navigateToMessage","messageId","message","roomName","senderName","customOnClick","onClick","Promise","resolve","catch","console","error","setCurrentRoom","showMessageNotification","item","length","slice","unsubscribe","messageNotificationManager","addCallback","jsxs","Provider","value","jsx","View","pointerEvents","style","styles","container","positionToStyle","position","map","Custom","customComponent","onClose","onNavigateToMessage","ToastRow","onPress","onDismiss","exports","fade","Animated","Value","timing","toValue","useNativeDriver","start","toast","opacity","Pressable","toastBody","Text","toastTitle","numberOfLines","toastSubtitle","body","dismissText","horizontal","vertical","offset","out","top","bottom","right","alignItems","left","StyleSheet","create","zIndex","elevation","flexDirection","backgroundColor","paddingVertical","paddingHorizontal","marginVertical","borderRadius","minWidth","maxWidth","shadowColor","shadowOpacity","shadowOffset","width","height","shadowRadius","flex","fontWeight","fontSize","color","marginBottom","useMessageNotification","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["context/MessageNotificationContext.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactRedux","_messageNotificationManager","_roomsSlice","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageNotificationContext","createContext","DEFAULT_MAX","DEFAULT_DURATION_MS","MessageNotificationProvider","children","config","propConfig","dispatch","useDispatch","contextConfig","useSelector","state","chatSettingStore","visibleRoomJID","rooms","notificationConfig","inAppNotifications","isEnabled","enabled","maxNotifications","duration","toasts","setToasts","useState","appActiveRef","useRef","AppState","currentState","useEffect","sub","addEventListener","next","current","now","Date","prev","filter","timestamp","remove","interval","setInterval","clearInterval","roomJID","dismiss","useCallback","id","navigateToMessage","messageId","message","roomName","senderName","customOnClick","onClick","Promise","resolve","catch","console","error","setCurrentRoom","showMessageNotification","item","length","slice","unsubscribe","messageNotificationManager","addCallback","jsxs","Provider","value","jsx","View","pointerEvents","style","styles","container","positionToStyle","position","map","Custom","customComponent","onClose","onNavigateToMessage","ToastRow","onPress","onDismiss","exports","theme","useTheme","fade","Animated","Value","timing","toValue","useNativeDriver","start","toast","backgroundColor","surface","shadowColor","shadow","opacity","Pressable","toastBody","Text","toastTitle","color","text","numberOfLines","toastSubtitle","textSecondary","body","dismissText","textMuted","horizontal","vertical","offset","out","top","bottom","right","alignItems","left","StyleSheet","create","zIndex","elevation","flexDirection","paddingVertical","paddingHorizontal","marginVertical","borderRadius","minWidth","maxWidth","shadowOpacity","shadowOffset","width","height","shadowRadius","flex","fontWeight","fontSize","marginBottom","useMessageNotification","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["context/MessageNotificationContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,17 +11,20 @@ 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 _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
14
+ var _authRefresh = require("../networking/authRefresh");
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");
20
21
  var _roomStore = require("../roomStore");
22
+ var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
21
23
  var _roomsSlice = require("../roomStore/roomsSlice");
24
+ var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
22
25
  var _historyPreloadScheduler = require("../helpers/historyPreloadScheduler");
23
- var _useLocalStorage = require("../hooks/useLocalStorage");
24
- var _LOCAL_STORAGE = require("../helpers/constants/LOCAL_STORAGE");
26
+ var _updateMessagesTillLast = require("../helpers/updateMessagesTillLast");
27
+ var _secureUserStorage = require("../helpers/secureUserStorage");
25
28
  var _persistence = require("../roomStore/persistence");
26
29
  var _devLogger = require("../utils/devLogger");
27
30
  var _jsxRuntime = require("react/jsx-runtime");
@@ -29,6 +32,14 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
29
32
  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); }
30
33
  const XmppContext = /*#__PURE__*/(0, _react.createContext)(null);
31
34
  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
+ };
32
43
  const XmppProvider = ({
33
44
  children,
34
45
  config,
@@ -55,21 +66,23 @@ const XmppProvider = ({
55
66
  // the XmppClient at least doesn't crash on `undefined.password`.
56
67
  const credentialsProvider = (0, _react.useMemo)(() => {
57
68
  return async () => {
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);
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
+ };
73
86
  }
74
87
  }
75
88
 
@@ -101,7 +114,7 @@ const XmppProvider = ({
101
114
  password: u?.xmppPassword || ''
102
115
  };
103
116
  };
104
- }, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.refreshFunction, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
117
+ }, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.enabled, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
105
118
  const initializeClient = (0, _react.useCallback)(async (username, password, xmppSettings) => {
106
119
  const settings = xmppSettings || config?.xmppSettings;
107
120
  const key = (0, _clientRegistry.buildXmppClientKey)(username, settings);
@@ -167,11 +180,22 @@ const XmppProvider = ({
167
180
  if (!underlying) {
168
181
  return;
169
182
  }
170
- (0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e));
183
+ (0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e)).finally(() => subscribeAllRoomsForPush(underlying, 'reconnect'));
171
184
  // Also refresh the private store so unread / lastViewed markers
172
185
  // are accurate after a long reconnect — the MUC re-join above only
173
186
  // restores delivery, not unread state. Idempotent on first connect.
174
187
  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));
175
199
  });
176
200
  setClient(created);
177
201
  lastCredsRef.current = {
@@ -225,6 +249,13 @@ const XmppProvider = ({
225
249
  const key = [config?.appId || '', config?.baseUrl || '', explicitUser?.defaultWallet?.walletAddress || '', explicitUser?.xmppUsername || '', explicitUser?.token ? '1' : '0', config?.jwtLogin?.enabled ? config?.jwtLogin?.token || '' : '', config?.xmppSettings?.devServer || ''].join('|');
226
250
  if (completedBootstrapKeyRef.current === key) {
227
251
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: already completed (same key) — skip');
252
+ // This run does no work, so it must not leave the budget it armed
253
+ // above running: 45 s later it would flip an already-'ready'
254
+ // provider to 'failed' and surface "Could not authenticate" over a
255
+ // healthy connection. Any dep change that leaves the key intact
256
+ // triggers this - e.g. a rotated `userLogin.user.token`.
257
+ reachedReady = true;
258
+ clearBudget();
228
259
  return;
229
260
  }
230
261
  if (inflightBootstrapKeyRef.current === key) {
@@ -244,7 +275,7 @@ const XmppProvider = ({
244
275
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: clearStoreBeforeInit');
245
276
  _roomStore.store.dispatch((0, _roomsSlice.setLogoutState)());
246
277
  _roomStore.store.dispatch((0, _chatSettingsSlice.logout)());
247
- await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).remove().catch(() => undefined);
278
+ await (0, _secureUserStorage.secureUserStorage)().remove().catch(() => undefined);
248
279
  }
249
280
  await (0, _ensureScopedChatCache.ensureScopedChatCache)(config);
250
281
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: scope ok, resolving user…');
@@ -272,13 +303,40 @@ const XmppProvider = ({
272
303
  _roomStore.store.dispatch((0, _chatSettingsSlice.setConfig)(config));
273
304
  }
274
305
 
306
+ // Rotate BEFORE the first XMPP connect. On the rotating backend
307
+ // the xmpp password is a short-lived JWT that only the newest
308
+ // rotation knows, and each rotation invalidates its predecessors
309
+ // — so a snapshot's password (a host's cached `userLogin.user`,
310
+ // a persisted session) is usually already dead at boot. Without
311
+ // this, the first SASL attempt fails `not-authorized`, all three
312
+ // bootstrap retries re-present the same dead password, and the
313
+ // user dead-ends on the Connection error modal even though one
314
+ // rotation away a perfectly good session existed. The rotation
315
+ // also lands the fileToken pre-render, so secure media never
316
+ // paints blank first. Quiet + deduped; when it can't rotate
317
+ // (no refresh material, non-rotating backend) we just connect
318
+ // with what the snapshot has, exactly as before.
319
+ // jwtLogin is skipped: /users/client just minted fresh creds.
320
+ let connectPassword = resolved.xmppPassword;
321
+ if (config?.refreshTokens?.enabled && !config?.jwtLogin?.enabled) {
322
+ const rotated = await (0, _authRefresh.refreshAuthTokensQuietly)({
323
+ force: true
324
+ });
325
+ if (cancelled) {
326
+ return;
327
+ }
328
+ if (rotated?.xmppPassword) {
329
+ connectPassword = rotated.xmppPassword;
330
+ }
331
+ }
332
+
275
333
  // Kick off REST /chats/my; allRoomPresences below needs the
276
334
  // room list to be in redux, otherwise it joins 0 MUCs and the
277
335
  // user receives zero realtime messages until they manually tap
278
336
  // into each room. Track the promise so we can await it before
279
337
  // joining presences.
280
338
  const restRoomsPromise = (0, _rooms.getRooms)().catch(() => undefined);
281
- const c = await initializeClient(resolved.xmppUsername, resolved.xmppPassword, config?.xmppSettings);
339
+ const c = await initializeClient(resolved.xmppUsername, connectPassword, config?.xmppSettings);
282
340
  if (cancelled) {
283
341
  return;
284
342
  }
@@ -314,6 +372,7 @@ const XmppProvider = ({
314
372
  } catch (e) {
315
373
  (0, _devLogger.pushLog)('warn', 'initBeforeLoad: allRoomPresences failed', e);
316
374
  }
375
+ subscribeAllRoomsForPush(c.client, 'initBeforeLoad');
317
376
  _roomStore.store.dispatch((0, _chatSettingsSlice.setStoreClient)(c));
318
377
  completedBootstrapKeyRef.current = key;
319
378
  inflightBootstrapKeyRef.current = '';
@@ -446,9 +505,14 @@ const XmppProvider = ({
446
505
  // be re-marked visible on return. Lives in the effect closure (one per
447
506
  // client) — persists across the listener's many invocations.
448
507
  let visibleBeforeBackground = null;
508
+ const suspendInBackground = !config?.xmppSettings?.keepAliveInBackground;
449
509
  const sub = _reactNative.AppState.addEventListener('change', next => {
450
510
  const c = client;
451
511
  if (next === 'active') {
512
+ if (c?.isSuspended) {
513
+ (0, _devLogger.pushLog)('rn', 'AppState active: resuming suspended XMPP client');
514
+ c.resume();
515
+ }
452
516
  // Returned to foreground. If the socket died while backgrounded
453
517
  // (iOS suspends the WebSocket; long background kills it), the
454
518
  // status may still read 'online' until xmpp.js notices the dead
@@ -480,23 +544,49 @@ const XmppProvider = ({
480
544
  if (!c) {
481
545
  return;
482
546
  }
547
+ if (next === 'background' && suspendInBackground) {
548
+ c.suspend().catch(() => undefined);
549
+ }
483
550
  const state = _roomStore.store.getState();
484
551
  const rooms = state.rooms?.rooms;
485
552
  const visibleRoomJID = state.rooms?.visibleRoomJID || null;
486
553
  // Mark the open room "not visible" while backgrounded so messages
487
554
  // that arrive (or MAM-replay on reconnect) count as unread instead
488
555
  // of being silently treated as read — the "mounted == visible ==
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.
556
+ // read" gap. Stamp lastViewed=<the read boundary, if the user left
557
+ // scrolled up, else the newest server-acked message>, not
558
+ // Date.now(), as the read baseline: a device clock running ahead
559
+ // would otherwise write a future marker that the forward-only
560
+ // private-store merge can never correct again (bug #38). Then
561
+ // clear visibility and flush that marker to the server private
562
+ // store. Restored on the next 'active' transition above. Handled
563
+ // here in the provider so consumers using the component as a
564
+ // package get correct unread without reaching into the chat store
565
+ // themselves.
566
+ //
567
+ // The read boundary (rooms.readBoundaries) is deliberately left
568
+ // untouched here - MessageList normally stays mounted through a
569
+ // simple background/foreground cycle, so its own scroll-tracking
570
+ // ref (the only thing that could re-derive this value) is still
571
+ // intact, and clearing the redux copy would desync the two. It's
572
+ // only USED here for the one-shot stamp+flush, matching customer
573
+ // #42: leaving (or backgrounding) a room while scrolled up must not
574
+ // mark messages the user never reached as read.
494
575
  visibleBeforeBackground = visibleRoomJID;
576
+ let boundaryTs = null;
495
577
  if (visibleRoomJID) {
496
- _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
497
- chatJID: visibleRoomJID,
498
- timestamp: Date.now()
499
- }));
578
+ boundaryTs = state.rooms?.readBoundaries?.[visibleRoomJID] ?? null;
579
+ const readTs = (0, _getServerReadTimestamp.getReadMarkerTimestamp)(rooms?.[visibleRoomJID], state.roomHeapSlice, boundaryTs);
580
+ // Nothing to anchor to yet (no known messages, no prior marker)
581
+ // - skip the local stamp rather than fall back to the device
582
+ // clock. The flush below still runs so the visibility clear
583
+ // isn't blocked on this.
584
+ if (readTs > 0) {
585
+ _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
586
+ chatJID: visibleRoomJID,
587
+ timestamp: readTs
588
+ }));
589
+ }
500
590
  // Drop the "New messages" divider for the room we're leaving so it
501
591
  // doesn't linger when the user comes back (mirrors ChatRoom's
502
592
  // unmount cleanup, which never runs while the pane stays mounted).
@@ -507,13 +597,18 @@ const XmppProvider = ({
507
597
  _roomStore.store.dispatch((0, _roomsSlice.clearVisibleRoom)());
508
598
  }
509
599
  // Fire-and-forget — we're going to the background and don't
510
- // care about the resolution path.
600
+ // care about the resolution path. `visibleRoomTs` carries the same
601
+ // boundary to the SERVER marker - without it the flush defaults to
602
+ // "everything" for the visible room, overriding a correct smaller
603
+ // local count.
511
604
  c.flushLastViewedToPrivateStoreStanza(rooms, {
512
- visibleRoomJID
605
+ visibleRoomJID,
606
+ // Clamped through the same helper as the local stamp above.
607
+ visibleRoomTs: visibleRoomJID ? (0, _getServerReadTimestamp.getFlushBoundaryTs)(rooms?.[visibleRoomJID], state.roomHeapSlice, boundaryTs) : undefined
513
608
  }).catch(() => {});
514
609
  });
515
610
  return () => sub.remove();
516
- }, [client]);
611
+ }, [client, config?.xmppSettings?.keepAliveInBackground]);
517
612
 
518
613
  // -----------------------------------------------------------
519
614
  // Consumer visibility signal (`isVisible` prop). For hosts that keep
@@ -522,11 +617,11 @@ const XmppProvider = ({
522
617
  // "shown" from "hidden", so the unread middleware would keep the open
523
618
  // room's badge at 0 and messages arriving while you're elsewhere look
524
619
  // already-read. When the host passes `isVisible`, mirror the AppState
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.)
620
+ // background/foreground handling: hidden → stamp lastViewed=<newest
621
+ // server-acked message> + clear room visibility (so later messages
622
+ // count) + flush; shown → restore visibility for the open room. Doing
623
+ // it here means consumers never touch the chat store themselves.
624
+ // (Undefined = host unmounts on hide, nothing to do.)
530
625
  // -----------------------------------------------------------
531
626
  const chatWasVisibleRef = (0, _react.useRef)(false);
532
627
  (0, _react.useEffect)(() => {
@@ -545,11 +640,25 @@ const XmppProvider = ({
545
640
  }));
546
641
  }
547
642
  } else {
643
+ // The read boundary (rooms.readBoundaries) is USED for the stamp
644
+ // and flush below but deliberately left in place - a host using
645
+ // `isVisible` keeps <Chat> mounted while hidden, so MessageList's
646
+ // own scroll-tracking ref is still intact and the redux copy must
647
+ // stay in sync with it. Only consumed, never Date.now(): a fast
648
+ // device clock would write a future marker that the forward-only
649
+ // private-store merge could then never correct (bug #38). And
650
+ // never "the newest acked message" unconditionally either - that
651
+ // silently marks messages the user scrolled past and never reached
652
+ // as read (bug #42, a regression of #33).
653
+ const boundaryTs = activeRoomJID ? state.rooms?.readBoundaries?.[activeRoomJID] ?? null : null;
548
654
  if (wasVisible && activeRoomJID) {
549
- _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
550
- chatJID: activeRoomJID,
551
- timestamp: Date.now()
552
- }));
655
+ const readTs = (0, _getServerReadTimestamp.getReadMarkerTimestamp)(rooms?.[activeRoomJID], state.roomHeapSlice, boundaryTs);
656
+ if (readTs > 0) {
657
+ _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
658
+ chatJID: activeRoomJID,
659
+ timestamp: readTs
660
+ }));
661
+ }
553
662
  // Drop the "New messages" divider so it's gone when the user
554
663
  // returns to the chat (mirrors ChatRoom's unmount cleanup).
555
664
  _roomStore.store.dispatch((0, _roomsSlice.deleteRoomMessage)({
@@ -560,7 +669,11 @@ const XmppProvider = ({
560
669
  _roomStore.store.dispatch((0, _roomsSlice.clearVisibleRoom)());
561
670
  if (wasVisible && client?.flushLastViewedToPrivateStoreStanza) {
562
671
  client.flushLastViewedToPrivateStoreStanza(rooms, {
563
- visibleRoomJID: activeRoomJID
672
+ visibleRoomJID: activeRoomJID,
673
+ // Carry the same boundary to the SERVER marker - without it
674
+ // the flush defaults to "everything" for the visible room.
675
+ // Clamped exactly like the local stamp above.
676
+ visibleRoomTs: activeRoomJID ? (0, _getServerReadTimestamp.getFlushBoundaryTs)(rooms?.[activeRoomJID], state.roomHeapSlice, boundaryTs) : undefined
564
677
  }).catch(() => {});
565
678
  }
566
679
  }
@@ -586,32 +699,44 @@ const XmppProvider = ({
586
699
  return;
587
700
  }
588
701
  lastMessagesRef = room.messages;
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) {
702
+
703
+ // getReadMarkerTimestamp (not a hand-rolled scan + Date.now()):
704
+ // it excludes pending/optimistic messages, which carry the DEVICE
705
+ // send time via `date` until the server echoes them back - a
706
+ // manual scan without that exclusion could pick up a pending
707
+ // message's device timestamp here and write a future marker the
708
+ // same way a raw Date.now() would (bug #38). And when the user has
709
+ // scrolled up (a boundary is set for this room), it clamps to that
710
+ // boundary instead of the newest message - without this, every
711
+ // incoming message while scrolled up advanced the marker to
712
+ // "newest" regardless of scroll position, and the later, smaller
713
+ // boundary write on leave was rejected by the forward-only
714
+ // private-store merge, leaving 0 unread even after a restart
715
+ // (customer #42, a regression of #33 reintroduced by #38).
716
+ const boundaryTs = s.rooms?.readBoundaries?.[jid] ?? null;
717
+ const newest = (0, _getServerReadTimestamp.getReadMarkerTimestamp)(room, s.roomHeapSlice, boundaryTs);
718
+ if (!newest || newest <= lastStampedMs) {
601
719
  return;
602
720
  }
603
721
  lastStampedMs = newest;
604
722
  _roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
605
723
  chatJID: jid,
606
- timestamp: Date.now()
724
+ timestamp: newest
607
725
  }));
608
726
  if (flushTimer) {
609
727
  clearTimeout(flushTimer);
610
728
  }
611
729
  if (client?.flushLastViewedToPrivateStoreStanza) {
612
730
  flushTimer = setTimeout(() => {
613
- client.flushLastViewedToPrivateStoreStanza(_roomStore.store.getState().rooms?.rooms, {
614
- visibleRoomJID: jid
731
+ // Re-read fresh state rather than closing over `boundaryTs`:
732
+ // the user may have scrolled back to the bottom (clearing the
733
+ // boundary) in the 2s between the stamp and this flush, and
734
+ // the flush should reflect that.
735
+ const freshState = _roomStore.store.getState();
736
+ const freshBoundaryTs = freshState.rooms?.readBoundaries?.[jid] ?? null;
737
+ client.flushLastViewedToPrivateStoreStanza(freshState.rooms?.rooms, {
738
+ visibleRoomJID: jid,
739
+ visibleRoomTs: (0, _getServerReadTimestamp.getFlushBoundaryTs)(freshState.rooms?.rooms?.[jid], freshState.roomHeapSlice, freshBoundaryTs)
615
740
  }).catch(() => {});
616
741
  }, 2000);
617
742
  }