@ethora/chat-component-rn 26.7.9 → 26.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/CHANGELOG.md +0 -93
  2. package/README.md +10 -33
  3. package/lib/commonjs/assets/icons.js +2 -7
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/AuthForms/Login.js +4 -4
  6. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  7. package/lib/commonjs/components/Header/HeaderRoomList.js +7 -26
  8. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatHeader.js +3 -9
  10. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatRoom.js +13 -101
  12. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatWrapper.js +38 -34
  14. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/LoginWrapper.js +1 -2
  16. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +9 -29
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +1 -5
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +5 -13
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  24. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +24 -3
  26. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/RoomList.js +35 -208
  28. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  29. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +98 -317
  30. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  31. package/lib/commonjs/components/MessageBubble/MessageTranslate.js +16 -7
  32. package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -1
  33. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +112 -320
  34. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  35. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +215 -556
  36. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  37. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  38. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +27 -69
  40. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  41. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +1 -2
  42. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  43. package/lib/commonjs/components/Modals/Modal/Modal.js +0 -8
  44. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  45. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -2
  46. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  47. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +109 -205
  48. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  50. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  52. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  53. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +21 -7
  54. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +244 -507
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +46 -74
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/styledModalComponents.js +2 -9
  60. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +39 -23
  62. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -22
  64. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  69. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +3 -6
  70. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  71. package/lib/commonjs/components/styled/AudioMessage.js +1 -2
  72. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  73. package/lib/commonjs/components/styled/DateLabel.js +10 -3
  74. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  75. package/lib/commonjs/components/styled/MessageImage.js +9 -37
  76. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  77. package/lib/commonjs/components/styled/NewMessageLabel.js +3 -1
  78. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  79. package/lib/commonjs/components/styled/SendInput.js +17 -86
  80. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  81. package/lib/commonjs/components/styled/StyledComponents.js +3 -9
  82. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  83. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  84. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  85. package/lib/commonjs/components/styled/UnsupportedType.js +4 -14
  86. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  87. package/lib/commonjs/components/styled/VideoMessage.js +61 -119
  88. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  89. package/lib/commonjs/context/xmppProvider.js +54 -128
  90. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  91. package/lib/commonjs/helpers/createMessageFromXml.js +1 -19
  92. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  93. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  94. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  95. package/lib/commonjs/helpers/getDataFromXml.js +24 -1
  96. package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
  97. package/lib/commonjs/helpers/historyPreloadScheduler.js +2 -65
  98. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  99. package/lib/commonjs/helpers/initXmppRooms.js +8 -14
  100. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  101. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -0
  102. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  103. package/lib/commonjs/helpers/isUnresolvedSenderId.js +6 -1
  104. package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -1
  105. package/lib/commonjs/helpers/mimeToExtension.js +14 -6
  106. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  107. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +17 -130
  108. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  109. package/lib/commonjs/helpers/resolveLangSource.js +38 -0
  110. package/lib/commonjs/helpers/resolveLangSource.js.map +1 -0
  111. package/lib/commonjs/helpers/xmppUsername.js +39 -0
  112. package/lib/commonjs/helpers/xmppUsername.js.map +1 -0
  113. package/lib/commonjs/hooks/useChatRoomFocus.js +8 -17
  114. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  115. package/lib/commonjs/hooks/useChatWrapperInit.js +14 -32
  116. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  117. package/lib/commonjs/hooks/useComposing.js +0 -27
  118. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  119. package/lib/commonjs/hooks/useLogout.js +7 -15
  120. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  121. package/lib/commonjs/hooks/usePendingNotification.js +11 -8
  122. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  123. package/lib/commonjs/hooks/useSendMessage.js +14 -50
  124. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  125. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -6
  126. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  127. package/lib/commonjs/i18n/strings.js +133 -121
  128. package/lib/commonjs/i18n/strings.js.map +1 -1
  129. package/lib/commonjs/i18n/useT.js +1 -1
  130. package/lib/commonjs/main.js +0 -44
  131. package/lib/commonjs/main.js.map +1 -1
  132. package/lib/commonjs/networking/api-requests/auth.api.js +60 -134
  133. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  134. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  135. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  136. package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
  137. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  138. package/lib/commonjs/networking/api-requests/user.api.js +9 -68
  139. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  140. package/lib/commonjs/networking/apiClient.js +112 -62
  141. package/lib/commonjs/networking/apiClient.js.map +1 -1
  142. package/lib/commonjs/networking/stanzaHandlers.js +51 -93
  143. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  144. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  145. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  146. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  147. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  148. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  149. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  150. package/lib/commonjs/networking/xmppClient.js +8 -124
  151. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  152. package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -26
  153. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  154. package/lib/commonjs/roomStore/index.js +2 -35
  155. package/lib/commonjs/roomStore/index.js.map +1 -1
  156. package/lib/commonjs/roomStore/persistence.js +39 -226
  157. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  158. package/lib/commonjs/roomStore/roomsSlice.js +8 -87
  159. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  160. package/lib/commonjs/services/pushSubscriptionService.js +13 -15
  161. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  162. package/lib/commonjs/version.js +3 -1
  163. package/lib/commonjs/version.js.map +1 -1
  164. package/lib/module/assets/icons.js +1 -6
  165. package/lib/module/assets/icons.js.map +1 -1
  166. package/lib/module/components/AuthForms/Login.js +4 -4
  167. package/lib/module/components/AuthForms/Login.js.map +1 -1
  168. package/lib/module/components/Header/HeaderRoomList.js +7 -26
  169. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  170. package/lib/module/components/MainComponents/ChatHeader.js +3 -9
  171. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  172. package/lib/module/components/MainComponents/ChatRoom.js +14 -102
  173. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  174. package/lib/module/components/MainComponents/ChatWrapper.js +40 -36
  175. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  176. package/lib/module/components/MainComponents/LoginWrapper.js +1 -2
  177. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  178. package/lib/module/components/MainComponents/MediaMessage.js +10 -30
  179. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  180. package/lib/module/components/MainComponents/MessageContainer.js +1 -5
  181. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  182. package/lib/module/components/MainComponents/MessageList.js +5 -13
  183. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  184. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +13 -14
  185. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  186. package/lib/module/components/MainComponents/ReduxWrapper.js +26 -5
  187. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  188. package/lib/module/components/MainComponents/RoomList.js +35 -207
  189. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  190. package/lib/module/components/Menu/HeaderRoomListMenu.js +101 -319
  191. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  192. package/lib/module/components/MessageBubble/MessageTranslate.js +16 -7
  193. package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -1
  194. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +115 -311
  195. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  196. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +219 -559
  197. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  198. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
  199. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  200. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +28 -70
  201. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  202. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +1 -2
  203. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  204. package/lib/module/components/Modals/Modal/Modal.js +1 -9
  205. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  206. package/lib/module/components/Modals/NewChatModal/ModalContent.js +1 -2
  207. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  208. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +111 -208
  209. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  210. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
  211. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  212. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
  213. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  214. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +23 -9
  215. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  216. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +248 -509
  217. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  218. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +48 -76
  219. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  220. package/lib/module/components/Modals/styledModalComponents.js +2 -9
  221. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  222. package/lib/module/components/RoomComponents/ChatRoomItem.js +40 -24
  223. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  224. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -22
  225. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  226. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
  227. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  228. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -17
  229. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  230. package/lib/module/components/VideoCalls/VideoCallSession.js +3 -6
  231. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  232. package/lib/module/components/styled/AudioMessage.js +1 -2
  233. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  234. package/lib/module/components/styled/DateLabel.js +10 -3
  235. package/lib/module/components/styled/DateLabel.js.map +1 -1
  236. package/lib/module/components/styled/MessageImage.js +9 -37
  237. package/lib/module/components/styled/MessageImage.js.map +1 -1
  238. package/lib/module/components/styled/NewMessageLabel.js +3 -1
  239. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  240. package/lib/module/components/styled/SendInput.js +18 -87
  241. package/lib/module/components/styled/SendInput.js.map +1 -1
  242. package/lib/module/components/styled/StyledComponents.js +3 -9
  243. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  244. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
  245. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  246. package/lib/module/components/styled/UnsupportedType.js +4 -14
  247. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  248. package/lib/module/components/styled/VideoMessage.js +62 -120
  249. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  250. package/lib/module/context/xmppProvider.js +55 -128
  251. package/lib/module/context/xmppProvider.js.map +1 -1
  252. package/lib/module/helpers/createMessageFromXml.js +1 -19
  253. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  254. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  255. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  256. package/lib/module/helpers/getDataFromXml.js +23 -1
  257. package/lib/module/helpers/getDataFromXml.js.map +1 -1
  258. package/lib/module/helpers/historyPreloadScheduler.js +3 -66
  259. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  260. package/lib/module/helpers/initXmppRooms.js +8 -14
  261. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  262. package/lib/module/helpers/insertMessageWithDelimiter.js +13 -0
  263. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  264. package/lib/module/helpers/isUnresolvedSenderId.js +6 -1
  265. package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -1
  266. package/lib/module/helpers/mimeToExtension.js +13 -6
  267. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  268. package/lib/module/helpers/resolveInitBeforeLoadUser.js +16 -130
  269. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  270. package/lib/module/helpers/resolveLangSource.js +32 -0
  271. package/lib/module/helpers/resolveLangSource.js.map +1 -0
  272. package/lib/module/helpers/xmppUsername.js +35 -0
  273. package/lib/module/helpers/xmppUsername.js.map +1 -0
  274. package/lib/module/hooks/useChatRoomFocus.js +8 -17
  275. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  276. package/lib/module/hooks/useChatWrapperInit.js +14 -32
  277. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  278. package/lib/module/hooks/useComposing.js +1 -28
  279. package/lib/module/hooks/useComposing.js.map +1 -1
  280. package/lib/module/hooks/useLogout.js +7 -15
  281. package/lib/module/hooks/useLogout.js.map +1 -1
  282. package/lib/module/hooks/usePendingNotification.js +11 -8
  283. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  284. package/lib/module/hooks/useSendMessage.js +16 -52
  285. package/lib/module/hooks/useSendMessage.js.map +1 -1
  286. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -6
  287. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  288. package/lib/module/i18n/strings.js +133 -121
  289. package/lib/module/i18n/strings.js.map +1 -1
  290. package/lib/module/i18n/useT.js +1 -1
  291. package/lib/module/main.js +2 -14
  292. package/lib/module/main.js.map +1 -1
  293. package/lib/module/networking/api-requests/auth.api.js +59 -131
  294. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  295. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  296. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  297. package/lib/module/networking/api-requests/rooms.api.js +9 -9
  298. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  299. package/lib/module/networking/api-requests/user.api.js +7 -64
  300. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  301. package/lib/module/networking/apiClient.js +113 -61
  302. package/lib/module/networking/apiClient.js.map +1 -1
  303. package/lib/module/networking/stanzaHandlers.js +52 -94
  304. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  305. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
  306. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  307. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +1 -8
  308. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  309. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
  310. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  311. package/lib/module/networking/xmppClient.js +8 -124
  312. package/lib/module/networking/xmppClient.js.map +1 -1
  313. package/lib/module/roomStore/chatSettingsSlice.js +7 -26
  314. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  315. package/lib/module/roomStore/index.js +4 -37
  316. package/lib/module/roomStore/index.js.map +1 -1
  317. package/lib/module/roomStore/persistence.js +38 -223
  318. package/lib/module/roomStore/persistence.js.map +1 -1
  319. package/lib/module/roomStore/roomsSlice.js +7 -86
  320. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  321. package/lib/module/services/pushSubscriptionService.js +13 -15
  322. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  323. package/lib/module/version.js +3 -1
  324. package/lib/module/version.js.map +1 -1
  325. package/lib/typescript/assets/icons.d.ts +0 -16
  326. package/lib/typescript/assets/icons.d.ts.map +1 -1
  327. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  328. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  329. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  330. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  331. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  332. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  333. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  334. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  335. package/lib/typescript/components/MainComponents/MessageList.d.ts +1 -10
  336. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  337. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  338. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  339. package/lib/typescript/components/MainComponents/RoomList.d.ts +0 -7
  340. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  341. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +0 -3
  342. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  343. package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -1
  344. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +0 -9
  345. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  346. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +0 -10
  347. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  348. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  351. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  352. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +2 -4
  353. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  354. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  355. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  356. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  357. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +1 -6
  358. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  359. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  360. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +0 -16
  361. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  362. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +0 -1
  363. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  364. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  365. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  366. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  367. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  368. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  369. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  370. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  371. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  372. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  373. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  374. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  375. package/lib/typescript/components/styled/MessageImage.d.ts +0 -14
  376. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  377. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  378. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  379. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  380. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  381. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  382. package/lib/typescript/components/styled/VideoMessage.d.ts +0 -8
  383. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  384. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  385. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  386. package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
  387. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  388. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  389. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  390. package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -1
  391. package/lib/typescript/helpers/mimeToExtension.d.ts +15 -0
  392. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  393. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  394. package/lib/typescript/helpers/resolveLangSource.d.ts +30 -0
  395. package/lib/typescript/helpers/resolveLangSource.d.ts.map +1 -0
  396. package/lib/typescript/helpers/xmppUsername.d.ts +13 -0
  397. package/lib/typescript/helpers/xmppUsername.d.ts.map +1 -0
  398. package/lib/typescript/hooks/useChatRoomFocus.d.ts +1 -4
  399. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  400. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  401. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  402. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  403. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  404. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  405. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +0 -1
  406. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  407. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  408. package/lib/typescript/i18n/useT.d.ts +1 -1
  409. package/lib/typescript/main.d.ts +2 -9
  410. package/lib/typescript/main.d.ts.map +1 -1
  411. package/lib/typescript/networking/api-requests/auth.api.d.ts +1 -3
  412. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  413. package/lib/typescript/networking/api-requests/user.api.d.ts +0 -27
  414. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  415. package/lib/typescript/networking/apiClient.d.ts +6 -12
  416. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  417. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  418. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +2 -10
  419. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  420. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  421. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  422. package/lib/typescript/networking/xmppClient.d.ts +0 -14
  423. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  424. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +0 -16
  425. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  426. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  427. package/lib/typescript/roomStore/persistence.d.ts +1 -18
  428. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  429. package/lib/typescript/roomStore/roomsSlice.d.ts +1 -14
  430. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  431. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
  432. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  433. package/lib/typescript/types/types.d.ts +5 -49
  434. package/lib/typescript/types/types.d.ts.map +1 -1
  435. package/lib/typescript/version.d.ts +1 -1
  436. package/lib/typescript/version.d.ts.map +1 -1
  437. package/package.json +29 -41
  438. package/src/assets/icons.tsx +9 -48
  439. package/src/components/AuthForms/Login.tsx +3 -3
  440. package/src/components/Header/HeaderRoomList.tsx +6 -24
  441. package/src/components/MainComponents/ChatHeader.tsx +3 -9
  442. package/src/components/MainComponents/ChatRoom.tsx +16 -111
  443. package/src/components/MainComponents/ChatWrapper.tsx +53 -36
  444. package/src/components/MainComponents/LoginWrapper.tsx +0 -1
  445. package/src/components/MainComponents/MediaMessage.tsx +8 -26
  446. package/src/components/MainComponents/MessageContainer.tsx +1 -5
  447. package/src/components/MainComponents/MessageList.tsx +4 -23
  448. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -21
  449. package/src/components/MainComponents/ReduxWrapper.tsx +18 -1
  450. package/src/components/MainComponents/RoomList.tsx +39 -236
  451. package/src/components/Menu/HeaderRoomListMenu.tsx +75 -328
  452. package/src/components/MessageBubble/MessageTranslate.tsx +17 -12
  453. package/src/components/Modals/AttachSheet/AttachSheet.tsx +99 -331
  454. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +293 -611
  455. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +9 -7
  456. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +38 -79
  457. package/src/components/Modals/FilePreviewModal/PdfView.tsx +1 -2
  458. package/src/components/Modals/Modal/Modal.tsx +0 -7
  459. package/src/components/Modals/NewChatModal/ModalContent.tsx +3 -6
  460. package/src/components/Modals/NewChatModal/NewChatModal.tsx +126 -223
  461. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +1 -12
  462. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +4 -14
  463. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +25 -9
  464. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +307 -617
  465. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +58 -75
  466. package/src/components/Modals/styledModalComponents.tsx +2 -9
  467. package/src/components/RoomComponents/ChatRoomItem.tsx +50 -21
  468. package/src/components/RoomComponents/styled/LastMessageFile.tsx +4 -28
  469. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +3 -18
  470. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +3 -18
  471. package/src/components/VideoCalls/VideoCallSession.tsx +3 -8
  472. package/src/components/styled/AudioMessage.tsx +1 -2
  473. package/src/components/styled/DateLabel.tsx +10 -3
  474. package/src/components/styled/MessageImage.tsx +7 -53
  475. package/src/components/styled/NewMessageLabel.tsx +3 -1
  476. package/src/components/styled/SendInput.tsx +18 -91
  477. package/src/components/styled/StyledComponents.ts +3 -9
  478. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -11
  479. package/src/components/styled/UnsupportedType.tsx +4 -14
  480. package/src/components/styled/VideoMessage.tsx +54 -131
  481. package/src/context/xmppProvider.tsx +51 -134
  482. package/src/helpers/createMessageFromXml.ts +1 -20
  483. package/src/helpers/ensureScopedChatCache.ts +2 -2
  484. package/src/helpers/getDataFromXml.ts +25 -1
  485. package/src/helpers/historyPreloadScheduler.ts +3 -80
  486. package/src/helpers/initXmppRooms.tsx +10 -14
  487. package/src/helpers/insertMessageWithDelimiter.ts +13 -0
  488. package/src/helpers/isUnresolvedSenderId.ts +9 -1
  489. package/src/helpers/mimeToExtension.ts +22 -6
  490. package/src/helpers/resolveInitBeforeLoadUser.ts +18 -125
  491. package/src/helpers/resolveLangSource.ts +40 -0
  492. package/src/helpers/xmppUsername.ts +38 -0
  493. package/src/hooks/useChatRoomFocus.ts +5 -14
  494. package/src/hooks/useChatWrapperInit.ts +16 -32
  495. package/src/hooks/useComposing.tsx +1 -37
  496. package/src/hooks/useLogout.tsx +9 -15
  497. package/src/hooks/usePendingNotification.ts +11 -5
  498. package/src/hooks/useSendMessage.tsx +15 -60
  499. package/src/hooks/useUnreadMessagesCounter.ts +0 -11
  500. package/src/i18n/strings.ts +133 -121
  501. package/src/i18n/useT.ts +1 -1
  502. package/src/main.ts +2 -26
  503. package/src/networking/api-requests/auth.api.ts +48 -156
  504. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  505. package/src/networking/api-requests/rooms.api.ts +9 -9
  506. package/src/networking/api-requests/user.api.ts +7 -79
  507. package/src/networking/apiClient.ts +123 -68
  508. package/src/networking/stanzaHandlers.ts +51 -92
  509. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +10 -71
  510. package/src/networking/xmpp/presenceInRoom.xmpp.ts +1 -6
  511. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +1 -12
  512. package/src/networking/xmppClient.ts +9 -141
  513. package/src/roomStore/chatSettingsSlice.ts +10 -34
  514. package/src/roomStore/index.ts +4 -40
  515. package/src/roomStore/persistence.ts +40 -234
  516. package/src/roomStore/roomsSlice.ts +7 -87
  517. package/src/services/pushSubscriptionService.ts +13 -18
  518. package/src/types/types.ts +5 -58
  519. package/src/version.ts +3 -1
  520. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +0 -226
  521. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  522. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +0 -556
  523. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  524. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +0 -210
  525. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  526. package/lib/commonjs/helpers/getChatBackground.js +0 -23
  527. package/lib/commonjs/helpers/getChatBackground.js.map +0 -1
  528. package/lib/commonjs/helpers/getDisplayFileName.js +0 -79
  529. package/lib/commonjs/helpers/getDisplayFileName.js.map +0 -1
  530. package/lib/commonjs/helpers/getServerReadTimestamp.js +0 -125
  531. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +0 -1
  532. package/lib/commonjs/helpers/isOwnMessage.js +0 -75
  533. package/lib/commonjs/helpers/isOwnMessage.js.map +0 -1
  534. package/lib/commonjs/helpers/mediaLibraryRuntime.js +0 -31
  535. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +0 -1
  536. package/lib/commonjs/helpers/persistCrypto.js +0 -122
  537. package/lib/commonjs/helpers/persistCrypto.js.map +0 -1
  538. package/lib/commonjs/helpers/pickImageAsset.js +0 -68
  539. package/lib/commonjs/helpers/pickImageAsset.js.map +0 -1
  540. package/lib/commonjs/helpers/pushPayload.js +0 -71
  541. package/lib/commonjs/helpers/pushPayload.js.map +0 -1
  542. package/lib/commonjs/helpers/secureFileUrl.js +0 -101
  543. package/lib/commonjs/helpers/secureFileUrl.js.map +0 -1
  544. package/lib/commonjs/helpers/secureKeyValue.js +0 -83
  545. package/lib/commonjs/helpers/secureKeyValue.js.map +0 -1
  546. package/lib/commonjs/helpers/secureStoreRuntime.js +0 -59
  547. package/lib/commonjs/helpers/secureStoreRuntime.js.map +0 -1
  548. package/lib/commonjs/helpers/secureUserStorage.js +0 -75
  549. package/lib/commonjs/helpers/secureUserStorage.js.map +0 -1
  550. package/lib/commonjs/helpers/shallowEqual.js +0 -36
  551. package/lib/commonjs/helpers/shallowEqual.js.map +0 -1
  552. package/lib/commonjs/helpers/sheetGestures.js +0 -32
  553. package/lib/commonjs/helpers/sheetGestures.js.map +0 -1
  554. package/lib/commonjs/hooks/useFileToken.js +0 -10
  555. package/lib/commonjs/hooks/useFileToken.js.map +0 -1
  556. package/lib/commonjs/networking/authRefresh.js +0 -332
  557. package/lib/commonjs/networking/authRefresh.js.map +0 -1
  558. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +0 -223
  559. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
  560. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +0 -548
  561. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
  562. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +0 -205
  563. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
  564. package/lib/module/helpers/getChatBackground.js +0 -18
  565. package/lib/module/helpers/getChatBackground.js.map +0 -1
  566. package/lib/module/helpers/getDisplayFileName.js +0 -73
  567. package/lib/module/helpers/getDisplayFileName.js.map +0 -1
  568. package/lib/module/helpers/getServerReadTimestamp.js +0 -120
  569. package/lib/module/helpers/getServerReadTimestamp.js.map +0 -1
  570. package/lib/module/helpers/isOwnMessage.js +0 -70
  571. package/lib/module/helpers/isOwnMessage.js.map +0 -1
  572. package/lib/module/helpers/mediaLibraryRuntime.js +0 -25
  573. package/lib/module/helpers/mediaLibraryRuntime.js.map +0 -1
  574. package/lib/module/helpers/persistCrypto.js +0 -115
  575. package/lib/module/helpers/persistCrypto.js.map +0 -1
  576. package/lib/module/helpers/pickImageAsset.js +0 -63
  577. package/lib/module/helpers/pickImageAsset.js.map +0 -1
  578. package/lib/module/helpers/pushPayload.js +0 -63
  579. package/lib/module/helpers/pushPayload.js.map +0 -1
  580. package/lib/module/helpers/secureFileUrl.js +0 -91
  581. package/lib/module/helpers/secureFileUrl.js.map +0 -1
  582. package/lib/module/helpers/secureKeyValue.js +0 -75
  583. package/lib/module/helpers/secureKeyValue.js.map +0 -1
  584. package/lib/module/helpers/secureStoreRuntime.js +0 -52
  585. package/lib/module/helpers/secureStoreRuntime.js.map +0 -1
  586. package/lib/module/helpers/secureUserStorage.js +0 -72
  587. package/lib/module/helpers/secureUserStorage.js.map +0 -1
  588. package/lib/module/helpers/shallowEqual.js +0 -31
  589. package/lib/module/helpers/shallowEqual.js.map +0 -1
  590. package/lib/module/helpers/sheetGestures.js +0 -26
  591. package/lib/module/helpers/sheetGestures.js.map +0 -1
  592. package/lib/module/hooks/useFileToken.js +0 -5
  593. package/lib/module/hooks/useFileToken.js.map +0 -1
  594. package/lib/module/networking/authRefresh.js +0 -321
  595. package/lib/module/networking/authRefresh.js.map +0 -1
  596. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +0 -9
  597. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +0 -1
  598. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +0 -75
  599. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +0 -1
  600. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +0 -25
  601. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +0 -1
  602. package/lib/typescript/helpers/getChatBackground.d.ts +0 -15
  603. package/lib/typescript/helpers/getChatBackground.d.ts.map +0 -1
  604. package/lib/typescript/helpers/getDisplayFileName.d.ts +0 -49
  605. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +0 -1
  606. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +0 -69
  607. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +0 -1
  608. package/lib/typescript/helpers/isOwnMessage.d.ts +0 -36
  609. package/lib/typescript/helpers/isOwnMessage.d.ts.map +0 -1
  610. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +0 -3
  611. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +0 -1
  612. package/lib/typescript/helpers/persistCrypto.d.ts +0 -13
  613. package/lib/typescript/helpers/persistCrypto.d.ts.map +0 -1
  614. package/lib/typescript/helpers/pickImageAsset.d.ts +0 -27
  615. package/lib/typescript/helpers/pickImageAsset.d.ts.map +0 -1
  616. package/lib/typescript/helpers/pushPayload.d.ts +0 -7
  617. package/lib/typescript/helpers/pushPayload.d.ts.map +0 -1
  618. package/lib/typescript/helpers/secureFileUrl.d.ts +0 -7
  619. package/lib/typescript/helpers/secureFileUrl.d.ts.map +0 -1
  620. package/lib/typescript/helpers/secureKeyValue.d.ts +0 -13
  621. package/lib/typescript/helpers/secureKeyValue.d.ts.map +0 -1
  622. package/lib/typescript/helpers/secureStoreRuntime.d.ts +0 -29
  623. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +0 -1
  624. package/lib/typescript/helpers/secureUserStorage.d.ts +0 -23
  625. package/lib/typescript/helpers/secureUserStorage.d.ts.map +0 -1
  626. package/lib/typescript/helpers/shallowEqual.d.ts +0 -11
  627. package/lib/typescript/helpers/shallowEqual.d.ts.map +0 -1
  628. package/lib/typescript/helpers/sheetGestures.d.ts +0 -20
  629. package/lib/typescript/helpers/sheetGestures.d.ts.map +0 -1
  630. package/lib/typescript/hooks/useFileToken.d.ts +0 -2
  631. package/lib/typescript/hooks/useFileToken.d.ts.map +0 -1
  632. package/lib/typescript/networking/authRefresh.d.ts +0 -95
  633. package/lib/typescript/networking/authRefresh.d.ts.map +0 -1
  634. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +0 -244
  635. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +0 -615
  636. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +0 -217
  637. package/src/helpers/getChatBackground.ts +0 -18
  638. package/src/helpers/getDisplayFileName.ts +0 -87
  639. package/src/helpers/getServerReadTimestamp.ts +0 -120
  640. package/src/helpers/isOwnMessage.ts +0 -90
  641. package/src/helpers/mediaLibraryRuntime.ts +0 -25
  642. package/src/helpers/persistCrypto.ts +0 -127
  643. package/src/helpers/pickImageAsset.ts +0 -68
  644. package/src/helpers/pushPayload.ts +0 -62
  645. package/src/helpers/secureFileUrl.ts +0 -103
  646. package/src/helpers/secureKeyValue.ts +0 -80
  647. package/src/helpers/secureStoreRuntime.ts +0 -62
  648. package/src/helpers/secureUserStorage.ts +0 -80
  649. package/src/helpers/shallowEqual.ts +0 -33
  650. package/src/helpers/sheetGestures.ts +0 -25
  651. package/src/hooks/useFileToken.ts +0 -7
  652. package/src/networking/authRefresh.ts +0 -451
@@ -1,16 +1,18 @@
1
- /** @format */
2
-
3
1
  import React, { useCallback, useMemo } from 'react';
4
- import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
- import { useDispatch } from 'react-redux';
6
- import { ModalContainerFullScreen } from '../styledModalComponents';
2
+
3
+ import {
4
+ ModalContainerFullScreen,
5
+ Viewider,
6
+ Label,
7
+ LabelData,
8
+ BorderedContainer,
9
+ CenterContainer,
10
+ } from '../styledModalComponents';
7
11
  import ModalHeaderComponent from '../ModalHeaderComponent';
8
- import { ArowDownIcon } from '../../../assets/icons';
12
+ import Button from '../../styled/Button';
13
+ import { useDispatch } from 'react-redux';
9
14
  import { setActiveModal } from '../../../roomStore/chatSettingsSlice';
10
15
  import { MODAL_TYPES } from '../../../helpers/constants/MODAL_TYPES';
11
- import { useChatSettingState } from '../../../hooks/useChatSettingState';
12
- import { chatTextStyle } from '../../../helpers/typography';
13
- import { useT } from '../../../i18n/useT';
14
16
 
15
17
  interface UserSettingsModalProps {
16
18
  handleCloseModal: any;
@@ -19,84 +21,65 @@ interface UserSettingsModalProps {
19
21
  const UserSettingsModal: React.FC<UserSettingsModalProps> = ({
20
22
  handleCloseModal,
21
23
  }) => {
22
- const t = useT();
23
- const dispatch = useDispatch();
24
- const { config } = useChatSettingState();
25
-
26
24
  const options = useMemo(
27
25
  () => [
28
- { label: t('settings.manageData.title'), key: MODAL_TYPES.MANAGE_DATA },
29
- { label: t('settings.visibility.title'), key: MODAL_TYPES.VISIBILITY },
26
+ { value: 'Manage Data', key: MODAL_TYPES.MANAGE_DATA },
27
+ { value: 'Visiblility', key: MODAL_TYPES.VISIBILITY },
28
+ // { value: 'Profile Shares', key: MODAL_TYPES.PROFILE_SHARES },
29
+ // { value: 'Document Shares', key: MODAL_TYPES.DOCUMENT_SHARES },
30
+ // { value: 'Blocked Users', key: MODAL_TYPES.BLOCKED_USERS },
31
+ // { value: 'Referrals', key: MODAL_TYPES.REFERRALS },
30
32
  ],
31
- [t]
33
+ []
32
34
  );
33
35
 
34
- const handleClick = useCallback(
35
- (key: string) => {
36
- dispatch(setActiveModal(key as any));
37
- },
38
- [dispatch]
39
- );
36
+ const dispatch = useDispatch();
37
+
38
+ const handleClick = useCallback((key: string) => {
39
+ dispatch(setActiveModal(key as any));
40
+ }, []);
40
41
 
41
42
  return (
42
- <ModalContainerFullScreen style={styles.screen}>
43
+ <ModalContainerFullScreen>
43
44
  <ModalHeaderComponent
44
45
  handleCloseModal={handleCloseModal}
45
- headerTitle={t('settings.menu.title')}
46
- titleStyle={chatTextStyle(config?.typography?.profile?.screenTitle)}
46
+ headerTitle={'Settings'}
47
47
  />
48
- {/* One card per entry, rather than a single bordered block with
49
- * hairline dividers — the rows are separate destinations, and the
50
- * design gives each its own surface. */}
51
- <View style={styles.body}>
52
- {options.map((option) => (
53
- <TouchableOpacity
54
- key={option.key}
55
- testID={`settings-row-${option.key}`}
56
- activeOpacity={0.7}
57
- style={styles.card}
58
- onPress={() => handleClick(option.key)}
59
- >
60
- <Text style={styles.label}>{option.label}</Text>
61
- <ArowDownIcon color="#8C8C8C" width={20} height={20} style={styles.chevron} />
62
- </TouchableOpacity>
63
- ))}
64
- </View>
48
+ <CenterContainer>
49
+ <BorderedContainer
50
+ style={{
51
+ padding: 16,
52
+ display: 'flex',
53
+ flexDirection: 'column',
54
+ gap: 8,
55
+ }}
56
+ >
57
+ {options.map((option: { value: string; key: string }, index) => (
58
+ <>
59
+ <Button
60
+ variant="default"
61
+ style={{
62
+ minHeight: 40,
63
+ display: 'flex',
64
+ flexDirection: 'column',
65
+ gap: 2,
66
+ width: '100%',
67
+ justifyContent: 'center',
68
+ borderRadius: 0,
69
+ alignItems: 'flex-start',
70
+ }}
71
+ onPress={() => handleClick(option.key)}
72
+ >
73
+ <Label style={{ textAlign: 'center' }}>{option.value}</Label>
74
+ {[2, 3, 4].includes(index) && <LabelData>0</LabelData>}
75
+ </Button>
76
+ {index < 5 && <Viewider />}
77
+ </>
78
+ ))}
79
+ </BorderedContainer>
80
+ </CenterContainer>
65
81
  </ModalContainerFullScreen>
66
82
  );
67
83
  };
68
84
 
69
- const styles = StyleSheet.create({
70
- screen: {
71
- backgroundColor: '#E8EDF2',
72
- },
73
- body: {
74
- width: '100%',
75
- padding: 12,
76
- gap: 12,
77
- },
78
- card: {
79
- flexDirection: 'row',
80
- alignItems: 'center',
81
- justifyContent: 'space-between',
82
- backgroundColor: '#FFFFFF',
83
- borderRadius: 20,
84
- paddingHorizontal: 20,
85
- paddingVertical: 22,
86
- shadowColor: '#101828',
87
- shadowOffset: { width: 0, height: 4 },
88
- shadowOpacity: 0.06,
89
- shadowRadius: 12,
90
- elevation: 3,
91
- },
92
- label: {
93
- fontSize: 17,
94
- fontWeight: '500',
95
- color: '#141414',
96
- },
97
- chevron: {
98
- transform: [{ rotate: '-90deg' }],
99
- },
100
- });
101
-
102
85
  export default UserSettingsModal;
@@ -86,15 +86,8 @@ export const HeaderContainer = styled.View`
86
86
  * button and 8px below — properly sized and properly centered. */
87
87
  padding: 8px 16px;
88
88
  background-color: #fff;
89
- /* Same card treatment as the room-list header: rounded bottom corners
90
- * and a soft drop shadow instead of a hairline rule. */
91
- border-bottom-left-radius: 20px;
92
- border-bottom-right-radius: 20px;
93
- shadow-color: #101828;
94
- shadow-offset: 0px 4px;
95
- shadow-opacity: 0.06;
96
- shadow-radius: 12px;
97
- elevation: 4;
89
+ border-bottom-width: 1px;
90
+ border-bottom-color: #f0f0f0;
98
91
  z-index: 1;
99
92
  flex-direction: row;
100
93
  justify-content: space-between;
@@ -1,6 +1,7 @@
1
- import React, { useMemo } from 'react';
2
- import { useFileToken } from '../../hooks/useFileToken';
3
- import { appendFileToken } from '../../helpers/secureFileUrl';
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { useSelector } from 'react-redux';
3
+ import { RootState } from '../../roomStore';
4
+ import { IMessage } from '../../types/types';
4
5
  import { IConfig, IRoom } from '../../types/types';
5
6
  import { ProfileImagePlaceholder } from '../MainComponents/ProfileImagePlaceholder';
6
7
  import {
@@ -28,21 +29,60 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
28
29
  isDriver,
29
30
  config,
30
31
  }) => {
31
- // Room icons can live on the membership-gated secure-files host.
32
- const fileToken = useFileToken();
33
32
  const displayName = String(chat?.title || chat?.name || '').trim();
34
33
 
34
+ // usersSet is the canonical name store — the same one Message.tsx
35
+ // resolves sender names through. The preview must go through it too
36
+ // (mirrors web's ChatRoomItem.withAuthorFallback): a message restored
37
+ // from the persist cache carries only a compacted user, so reading
38
+ // `user.name` alone left this line showing a raw JID after a refresh.
39
+ const usersSet = useSelector((state: RootState) => state.rooms.usersSet) as
40
+ | Record<string, any>
41
+ | undefined;
42
+
43
+ const withAuthorFallback = useCallback(
44
+ (message?: IMessage): IMessage | undefined => {
45
+ if (!message) {return message;}
46
+ const rawUserId = String(message?.user?.id || '');
47
+ const localId = rawUserId.split('@')[0];
48
+ const entry = usersSet?.[localId] ?? usersSet?.[rawUserId];
49
+ const fromUsersSet = entry
50
+ ? `${entry.firstName ?? ''} ${entry.lastName ?? ''}`.trim()
51
+ : '';
52
+
53
+ // usersSet first, exactly like Message.tsx: it's the live store, so
54
+ // a renamed user updates here too. The message's own `name` is the
55
+ // fallback that carries broadcast/system senders ("Ethora"), which
56
+ // never appear in usersSet.
57
+ const safeName =
58
+ fromUsersSet ||
59
+ String(message?.user?.name || '').trim() ||
60
+ localId ||
61
+ rawUserId ||
62
+ 'Unknown';
63
+
64
+ return {
65
+ ...message,
66
+ user: {
67
+ ...message.user,
68
+ name: safeName,
69
+ },
70
+ };
71
+ },
72
+ [usersSet]
73
+ );
74
+
35
75
  const lastMessage = useMemo(() => {
36
76
  if (!chat?.messages || chat.messages.length === 0) {return undefined;}
37
77
 
38
78
  for (let i = chat.messages.length - 1; i >= 0; i--) {
39
79
  const msg = chat.messages[i];
40
80
  if (!msg.deleted && !msg.isDeleted) {
41
- return msg;
81
+ return withAuthorFallback(msg);
42
82
  }
43
83
  }
44
84
  return undefined;
45
- }, [chat?.messages]);
85
+ }, [chat?.messages, withAuthorFallback]);
46
86
 
47
87
  // Mirrors web's formatter: tolerates undefined/garbage inputs (returns
48
88
  // undefined instead of "NaN:NaN"), and uses HH:MM today / MM/DD this
@@ -90,13 +130,7 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
90
130
 
91
131
  return (
92
132
  <ChatItem key={index}>
93
- <View pointerEvents="none">
94
- <ProfileImagePlaceholder
95
- name={displayName}
96
- icon={appendFileToken(chat?.icon, fileToken)}
97
- active={false}
98
- />
99
- </View>
133
+ <ProfileImagePlaceholder name={displayName} icon={chat?.icon} active={false} />
100
134
  <View
101
135
  style={{
102
136
  flexDirection: 'column',
@@ -106,9 +140,7 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
106
140
  paddingVertical: 8,
107
141
  paddingRight: 8,
108
142
  borderBottomWidth: 1,
109
- // Reads against the list's #E8EDF2 ground; #F0F0F0 was lighter
110
- // than the ground itself, so the row separators vanished.
111
- borderBottomColor: '#C6CFDA',
143
+ borderBottomColor: '#F0F0F0',
112
144
  }}
113
145
  >
114
146
  <View
@@ -219,11 +251,8 @@ const ChatRoomItem: React.FC<ChatRoomItemProps> = ({
219
251
  ) : null}
220
252
  </View>
221
253
  {isDriver && (
222
- // Darker than the list's own ground (#E8EDF2), otherwise the
223
- // separator disappears into it — white and the old #0052CD0D
224
- // hairline both did.
225
254
  <View
226
- style={{ height: 1, backgroundColor: '#C6CFDA', marginTop: 8 }}
255
+ style={{ height: 1, backgroundColor: '#0052CD0D', marginTop: 8 }}
227
256
  />
228
257
  )}
229
258
  </View>
@@ -8,19 +8,9 @@ import {
8
8
  } from './StyledRoomComponents';
9
9
  import { FileIcon } from '../../../assets/icons';
10
10
  import { Image, View } from 'react-native';
11
- import { useFileToken } from '../../../hooks/useFileToken';
12
- import {
13
- appendFileToken,
14
- isSecureFileUrl,
15
- requestFileTokenRecovery,
16
- } from '../../../helpers/secureFileUrl';
17
- import { getDisplayFileName } from '../../../helpers/getDisplayFileName';
18
11
 
19
12
  interface LastMessageFileProps
20
- extends Pick<
21
- LastMessage,
22
- 'user' | 'originalName' | 'fileName' | 'mimetype' | 'locationPreview'
23
- > {}
13
+ extends Pick<LastMessage, 'user' | 'originalName' | 'locationPreview'> {}
24
14
 
25
15
  const fallbackImage =
26
16
  'https://as2.ftcdn.net/v2/jpg/02/51/95/53/1000_F_251955356_FAQH0U1y1TZw3ZcdPGybwUkH90a3VAhb.jpg';
@@ -28,18 +18,9 @@ const fallbackImage =
28
18
  const LastMessageFile: FC<LastMessageFileProps> = ({
29
19
  user,
30
20
  originalName,
31
- fileName,
32
- mimetype,
33
21
  locationPreview,
34
22
  }) => {
35
23
  const [imgSrc, setImgSrc] = useState(locationPreview);
36
- const fileToken = useFileToken();
37
- // Bug #40: prefer the sender's original name over the stored hash
38
- // name; only fall back to the generic "file" label when neither is
39
- // present at all (avoids a synthetic "media_<timestamp>.bin" here).
40
- const displayName = originalName || fileName
41
- ? getDisplayFileName({ originalName, fileName, mimetype })
42
- : 'file';
43
24
 
44
25
  return (
45
26
  <LastRoomMessageContainer>
@@ -53,23 +34,18 @@ const LastMessageFile: FC<LastMessageFileProps> = ({
53
34
  >
54
35
  {imgSrc ? (
55
36
  <Image
56
- source={{ uri: appendFileToken(imgSrc, fileToken) }}
37
+ source={{ uri: imgSrc }}
57
38
  style={{
58
39
  borderRadius: 16,
59
40
  width: 20,
60
41
  height: 20,
61
42
  }}
62
- onError={() => {
63
- if (isSecureFileUrl(imgSrc)) {
64
- requestFileTokenRecovery();
65
- }
66
- setImgSrc(fallbackImage);
67
- }}
43
+ onError={() => setImgSrc(fallbackImage)}
68
44
  />
69
45
  ) : (
70
46
  <FileIcon style={{ width: '20px', height: '20px' }} />
71
47
  )}
72
- <LastRoomMessageText>{displayName}</LastRoomMessageText>
48
+ <LastRoomMessageText>{originalName || 'file'}</LastRoomMessageText>
73
49
  </View>
74
50
  </LastRoomMessageContainer>
75
51
  );
@@ -1,6 +1,4 @@
1
1
  import React, { FC } from 'react';
2
- import { useFileToken } from '../../../hooks/useFileToken';
3
- import { appendFileToken } from '../../../helpers/secureFileUrl';
4
2
  import styled from 'styled-components/native';
5
3
  import { LastMessage } from '../../../types/types';
6
4
  import {
@@ -11,7 +9,6 @@ import {
11
9
  ShadeWrapper,
12
10
  } from './StyledRoomComponents';
13
11
  import { View } from 'react-native';
14
- import { getDisplayFileName } from '../../../helpers/getDisplayFileName';
15
12
 
16
13
  const PhotoContainer = styled.View`
17
14
  position: relative;
@@ -26,25 +23,13 @@ const PhotoContainer = styled.View`
26
23
  `;
27
24
 
28
25
  interface LastMessagePhotoProps
29
- extends Pick<
30
- LastMessage,
31
- 'user' | 'originalName' | 'fileName' | 'mimetype' | 'locationPreview'
32
- > {}
26
+ extends Pick<LastMessage, 'user' | 'originalName' | 'locationPreview'> {}
33
27
 
34
28
  const LastMessagePhoto: FC<LastMessagePhotoProps> = ({
35
29
  user,
36
30
  locationPreview,
37
31
  originalName,
38
- fileName,
39
- mimetype,
40
32
  }) => {
41
- const fileToken = useFileToken();
42
- // Bug #40: prefer the sender's original name over the stored hash
43
- // name; only fall back to the generic "file" label when neither is
44
- // present at all (avoids a synthetic "media_<timestamp>.bin" here).
45
- const displayName = originalName || fileName
46
- ? getDisplayFileName({ originalName, fileName, mimetype })
47
- : 'file';
48
33
  return (
49
34
  <LastRoomMessageContainer>
50
35
  <LastRoomMessageName>{user?.name || ''}:</LastRoomMessageName>
@@ -57,10 +42,10 @@ const LastMessagePhoto: FC<LastMessagePhotoProps> = ({
57
42
  >
58
43
  <PhotoContainer>
59
44
  <ShadeWrapper>
60
- <LastMessageImg src={appendFileToken(locationPreview, fileToken)} />
45
+ <LastMessageImg src={locationPreview} />
61
46
  </ShadeWrapper>
62
47
  </PhotoContainer>
63
- <LastRoomMessageText>{displayName}</LastRoomMessageText>
48
+ <LastRoomMessageText>{originalName || 'file'}</LastRoomMessageText>
64
49
  </View>
65
50
  </LastRoomMessageContainer>
66
51
  );
@@ -1,6 +1,4 @@
1
1
  import React, { FC } from 'react';
2
- import { useFileToken } from '../../../hooks/useFileToken';
3
- import { appendFileToken } from '../../../helpers/secureFileUrl';
4
2
  import styled from 'styled-components/native';
5
3
  import { LastMessage } from '../../../types/types';
6
4
  import {
@@ -10,7 +8,6 @@ import {
10
8
  ShadeWrapper,
11
9
  } from './StyledRoomComponents';
12
10
  import { Text, View } from 'react-native';
13
- import { getDisplayFileName } from '../../../helpers/getDisplayFileName';
14
11
 
15
12
  const VideoContainer = styled.View`
16
13
  position: relative;
@@ -41,25 +38,13 @@ const PlayButton = styled.View`
41
38
  `;
42
39
 
43
40
  interface LastMessageVideoProps
44
- extends Pick<
45
- LastMessage,
46
- 'user' | 'location' | 'originalName' | 'fileName' | 'mimetype'
47
- > {}
41
+ extends Pick<LastMessage, 'user' | 'location' | 'originalName'> {}
48
42
 
49
43
  const LastMessageVideo: FC<LastMessageVideoProps> = ({
50
44
  user,
51
45
  location,
52
46
  originalName,
53
- fileName,
54
- mimetype,
55
47
  }) => {
56
- const fileToken = useFileToken();
57
- // Bug #40: prefer the sender's original name over the stored hash
58
- // name; only fall back to the generic "file" label when neither is
59
- // present at all (avoids a synthetic "media_<timestamp>.bin" here).
60
- const displayName = originalName || fileName
61
- ? getDisplayFileName({ originalName, fileName, mimetype })
62
- : 'file';
63
48
  return (
64
49
  <LastRoomMessageContainer>
65
50
  <LastRoomMessageName>{user?.name || ''}:</LastRoomMessageName>
@@ -72,11 +57,11 @@ const LastMessageVideo: FC<LastMessageVideoProps> = ({
72
57
  >
73
58
  <VideoContainer>
74
59
  <ShadeWrapper>
75
- <Thumbnail src={appendFileToken(location, fileToken)} />
60
+ <Thumbnail src={location} />
76
61
  </ShadeWrapper>
77
62
  <PlayButton><Text>▶</Text></PlayButton>
78
63
  </VideoContainer>
79
- <LastRoomMessageText>{displayName}</LastRoomMessageText>
64
+ <LastRoomMessageText>{originalName || 'file'}</LastRoomMessageText>
80
65
  </View>
81
66
  </LastRoomMessageContainer>
82
67
  );
@@ -345,14 +345,9 @@ export const VideoCallSession: FC<VideoCallSessionProps> = ({
345
345
  if (!runtime) {return;}
346
346
  try {
347
347
  if (Platform.OS === 'android') {
348
- // NB: not `setAndroidAudioConfiguration` — that method has never
349
- // existed on AudioSession (the old `?.` call silently no-oped, so
350
- // the speaker icon toggled while audio stayed on the earpiece).
351
- // `selectAudioOutput` routes directly; on Android its device ids
352
- // are the literal strings 'speaker' / 'earpiece'.
353
- await runtime.AudioSession.selectAudioOutput(
354
- next ? 'speaker' : 'earpiece'
355
- );
348
+ await runtime.AudioSession.setAndroidAudioConfiguration?.({
349
+ preferredOutputList: next ? ['speaker'] : ['earpiece'],
350
+ });
356
351
  } else {
357
352
  await runtime.AudioSession.setAppleAudioConfiguration?.({
358
353
  audioCategory: 'playAndRecord',
@@ -1,5 +1,4 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { withFileToken } from '../../helpers/secureFileUrl';
3
2
  import {
4
3
  View,
5
4
  TouchableOpacity,
@@ -426,7 +425,7 @@ const AudioMessage = ({
426
425
  const partInfo = await FileSystem.getInfoAsync(part);
427
426
  if (!partInfo.exists) {
428
427
  const download = await withTimeout(
429
- FileSystem.downloadAsync(withFileToken(src), part),
428
+ FileSystem.downloadAsync(src, part),
430
429
  12000,
431
430
  'audio_download_timeout'
432
431
  );
@@ -3,6 +3,7 @@ import styled from 'styled-components/native';
3
3
  import { Line } from './StyledComponents';
4
4
  import { Text } from 'react-native';
5
5
  import { getDateLabelColor } from '../../helpers/getDateLabelColor';
6
+ import { useT, useUiLocale } from '../../i18n/useT';
6
7
 
7
8
  interface DateLabelProps {
8
9
  date: Date;
@@ -40,6 +41,10 @@ export const StyledDateText = styled.Text<{ color?: string }>`
40
41
  `;
41
42
 
42
43
  const DateLabel: React.FC<DateLabelProps> = ({ date, colors }) => {
44
+ const t = useT();
45
+ // The reader's locale, so the fallback branch formats the date the way
46
+ // their language writes it ("15 septembre" and not "September 15").
47
+ const uiLocale = useUiLocale();
43
48
  const today = new Date();
44
49
  const yesterday = new Date(today);
45
50
  yesterday.setDate(today.getDate() - 1);
@@ -54,14 +59,16 @@ const DateLabel: React.FC<DateLabelProps> = ({ date, colors }) => {
54
59
 
55
60
  let label: string;
56
61
  if (sameDay(date, today)) {
57
- label = 'Today';
62
+ label = t('date.today');
58
63
  } else if (sameDay(date, yesterday)) {
59
- label = 'Yesterday';
64
+ label = t('date.yesterday');
60
65
  } else {
61
66
  const options: Intl.DateTimeFormatOptions = sameYear(date, today)
62
67
  ? { month: 'long', day: 'numeric' }
63
68
  : { month: 'long', day: 'numeric', year: 'numeric' };
64
- label = date.toLocaleDateString('en-US', options);
69
+ // `undefined` means "the runtime's own locale", which is the right
70
+ // default when the host has pinned nothing — never a hardcoded 'en-US'.
71
+ label = date.toLocaleDateString(uiLocale, options);
65
72
  }
66
73
 
67
74
  const textColor = getDateLabelColor({ colors });
@@ -1,9 +1,4 @@
1
1
  import React, { useEffect, useState } from 'react';
2
- import {
3
- isSecureFileUrl,
4
- requestFileTokenRecovery,
5
- } from '../../helpers/secureFileUrl';
6
- import { pushLog } from '../../utils/devLogger';
7
2
  import { Container } from './StyledInputComponents/MediaComponents';
8
3
  import { useDispatch } from 'react-redux';
9
4
  import {
@@ -19,43 +14,19 @@ import {
19
14
  } from '../../helpers/mediaDimensions';
20
15
 
21
16
  interface CustomMessageImageProps {
22
- /** Full-size file. Opened in the preview modal, NOT rendered inline. */
23
17
  fileURL: string;
24
18
  fileName: string;
25
- /**
26
- * The sender's original file name (bug #40) - kept alongside `fileName`
27
- * so the preview modal's save/share/download logic can prefer it over
28
- * the server's stored/hashed name.
29
- */
30
- originalName?: string;
31
19
  mimetype: string;
32
- /**
33
- * Server-generated thumbnail — what the bubble actually renders, same
34
- * as the web client. The full-size original can be many megabytes and,
35
- * for secure uploads, is served from a different (membership-gated)
36
- * route; rendering it inline is what left the bubbles blank.
37
- */
38
- locationPreview?: string;
39
20
  }
40
21
 
41
- /** Keep the personal file token out of the logs. */
42
- const maskToken = (url?: string) =>
43
- (url || '').replace(/([?&]ft=)[^&]*/i, '$1<redacted>');
44
-
45
22
  const FALLBACK_IMAGE =
46
23
  'https://as2.ftcdn.net/v2/jpg/02/51/95/53/1000_F_251955356_FAQH0U1y1TZw3ZcdPGybwUkH90a3VAhb.jpg';
47
24
 
48
25
  const CustomMessageImage: React.FC<CustomMessageImageProps> = ({
49
26
  fileURL,
50
27
  fileName,
51
- originalName,
52
28
  mimetype,
53
- locationPreview,
54
29
  }) => {
55
- // Preview first, original only as a fallback — mirrors the web client,
56
- // where the <img> src is the preview and `fileURL` is reserved for the
57
- // modal.
58
- const displayURL = locationPreview || fileURL;
59
30
  const [loading, setLoading] = useState(true);
60
31
  // Start with a neutral box; swap to the real aspect ratio once the
61
32
  // image's natural dimensions are known so it's shown scaled, not cropped.
@@ -64,34 +35,28 @@ const CustomMessageImage: React.FC<CustomMessageImageProps> = ({
64
35
  const dispatch = useDispatch();
65
36
 
66
37
  useEffect(() => {
67
- if (!displayURL) {
38
+ if (!fileURL) {
68
39
  return;
69
40
  }
70
41
  let active = true;
71
42
  Image.getSize(
72
- displayURL,
43
+ fileURL,
73
44
  (w, h) => {
74
45
  if (active) {
75
46
  setDims(fitMediaDimensions(w, h));
76
47
  }
77
48
  },
78
- (error) => {
79
- // Keep the default box — but say WHICH url failed. A blank
80
- // bubble is otherwise indistinguishable between "bad url",
81
- // "403 without a token" and "host unreachable".
82
- pushLog('warn', 'image: getSize failed', {
83
- url: maskToken(displayURL),
84
- error: (error as any)?.message || String(error),
85
- });
49
+ () => {
50
+ /* keep the default box if the size probe fails */
86
51
  }
87
52
  );
88
53
  return () => {
89
54
  active = false;
90
55
  };
91
- }, [displayURL]);
56
+ }, [fileURL]);
92
57
 
93
58
  const handleOpen = () => {
94
- dispatch(setActiveFile({ fileName, fileURL, mimetype, originalName }));
59
+ dispatch(setActiveFile({ fileName, fileURL, mimetype }));
95
60
  dispatch(setActiveModal(MODAL_TYPES.FILE_PREVIEW));
96
61
  };
97
62
 
@@ -113,7 +78,7 @@ const CustomMessageImage: React.FC<CustomMessageImageProps> = ({
113
78
  </View>
114
79
  )}
115
80
  <Image
116
- source={{ uri: displayURL || FALLBACK_IMAGE }}
81
+ source={{ uri: fileURL || FALLBACK_IMAGE }}
117
82
  style={{
118
83
  width: dims.width,
119
84
  height: dims.height,
@@ -121,17 +86,6 @@ const CustomMessageImage: React.FC<CustomMessageImageProps> = ({
121
86
  backgroundColor: 'rgba(0, 0, 0, 0)',
122
87
  }}
123
88
  onLoadEnd={() => setLoading(false)}
124
- onError={(event) => {
125
- setLoading(false);
126
- pushLog('warn', 'image: load failed', {
127
- url: maskToken(displayURL),
128
- usingPreview: !!locationPreview,
129
- error: (event as any)?.nativeEvent?.error,
130
- });
131
- if (isSecureFileUrl(displayURL)) {
132
- requestFileTokenRecovery();
133
- }
134
- }}
135
89
  // The box already matches the natural aspect ratio, so 'cover'
136
90
  // fills it edge-to-edge with no actual cropping or letterboxing.
137
91
  resizeMode="cover"