@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.
- package/CHANGELOG.md +0 -93
- package/README.md +10 -33
- package/lib/commonjs/assets/icons.js +2 -7
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/AuthForms/Login.js +4 -4
- package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
- package/lib/commonjs/components/Header/HeaderRoomList.js +7 -26
- package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +3 -9
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +13 -101
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +38 -34
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LoginWrapper.js +1 -2
- package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +9 -29
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageContainer.js +1 -5
- package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +5 -13
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +13 -14
- package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +24 -3
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +35 -208
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +98 -317
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js +16 -7
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +112 -320
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +215 -556
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
- package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +27 -69
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +1 -2
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/commonjs/components/Modals/Modal/Modal.js +0 -8
- package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +1 -2
- package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +109 -205
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
- package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +21 -7
- package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +244 -507
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +46 -74
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/commonjs/components/Modals/styledModalComponents.js +2 -9
- package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +39 -23
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +3 -22
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +3 -17
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js +3 -6
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/commonjs/components/styled/AudioMessage.js +1 -2
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/DateLabel.js +10 -3
- package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
- package/lib/commonjs/components/styled/MessageImage.js +9 -37
- package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
- package/lib/commonjs/components/styled/NewMessageLabel.js +3 -1
- package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +17 -86
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledComponents.js +3 -9
- package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/commonjs/components/styled/UnsupportedType.js +4 -14
- package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +61 -119
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +54 -128
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/createMessageFromXml.js +1 -19
- package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
- package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
- package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
- package/lib/commonjs/helpers/getDataFromXml.js +24 -1
- package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
- package/lib/commonjs/helpers/historyPreloadScheduler.js +2 -65
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/initXmppRooms.js +8 -14
- package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -0
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/isUnresolvedSenderId.js +6 -1
- package/lib/commonjs/helpers/isUnresolvedSenderId.js.map +1 -1
- package/lib/commonjs/helpers/mimeToExtension.js +14 -6
- package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
- package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +17 -130
- package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
- package/lib/commonjs/helpers/resolveLangSource.js +38 -0
- package/lib/commonjs/helpers/resolveLangSource.js.map +1 -0
- package/lib/commonjs/helpers/xmppUsername.js +39 -0
- package/lib/commonjs/helpers/xmppUsername.js.map +1 -0
- package/lib/commonjs/hooks/useChatRoomFocus.js +8 -17
- package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
- package/lib/commonjs/hooks/useChatWrapperInit.js +14 -32
- package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/commonjs/hooks/useComposing.js +0 -27
- package/lib/commonjs/hooks/useComposing.js.map +1 -1
- package/lib/commonjs/hooks/useLogout.js +7 -15
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/usePendingNotification.js +11 -8
- package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +14 -50
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -6
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +133 -121
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/i18n/useT.js +1 -1
- package/lib/commonjs/main.js +0 -44
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +60 -134
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
- package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +9 -9
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/user.api.js +9 -68
- package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
- package/lib/commonjs/networking/apiClient.js +112 -62
- package/lib/commonjs/networking/apiClient.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +51 -93
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +1 -8
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
- package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +8 -124
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -26
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +2 -35
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +39 -226
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +8 -87
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/services/pushSubscriptionService.js +13 -15
- package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
- package/lib/commonjs/version.js +3 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/assets/icons.js +1 -6
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/AuthForms/Login.js +4 -4
- package/lib/module/components/AuthForms/Login.js.map +1 -1
- package/lib/module/components/Header/HeaderRoomList.js +7 -26
- package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +3 -9
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +14 -102
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +40 -36
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/LoginWrapper.js +1 -2
- package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +10 -30
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageContainer.js +1 -5
- package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +5 -13
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +13 -14
- package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +26 -5
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +35 -207
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/Menu/HeaderRoomListMenu.js +101 -319
- package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageTranslate.js +16 -7
- package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +115 -311
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +219 -559
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +9 -7
- package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +28 -70
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js +1 -2
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/module/components/Modals/Modal/Modal.js +1 -9
- package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/ModalContent.js +1 -2
- package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js +111 -208
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +0 -8
- package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +2 -4
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +23 -9
- package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +248 -509
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +48 -76
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/module/components/Modals/styledModalComponents.js +2 -9
- package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +40 -24
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js +3 -22
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +3 -17
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +3 -17
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/module/components/VideoCalls/VideoCallSession.js +3 -6
- package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
- package/lib/module/components/styled/AudioMessage.js +1 -2
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/DateLabel.js +10 -3
- package/lib/module/components/styled/DateLabel.js.map +1 -1
- package/lib/module/components/styled/MessageImage.js +9 -37
- package/lib/module/components/styled/MessageImage.js.map +1 -1
- package/lib/module/components/styled/NewMessageLabel.js +3 -1
- package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +18 -87
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledComponents.js +3 -9
- package/lib/module/components/styled/StyledComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +4 -11
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/module/components/styled/UnsupportedType.js +4 -14
- package/lib/module/components/styled/UnsupportedType.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +62 -120
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/xmppProvider.js +55 -128
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/createMessageFromXml.js +1 -19
- package/lib/module/helpers/createMessageFromXml.js.map +1 -1
- package/lib/module/helpers/ensureScopedChatCache.js +2 -2
- package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
- package/lib/module/helpers/getDataFromXml.js +23 -1
- package/lib/module/helpers/getDataFromXml.js.map +1 -1
- package/lib/module/helpers/historyPreloadScheduler.js +3 -66
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/initXmppRooms.js +8 -14
- package/lib/module/helpers/initXmppRooms.js.map +1 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js +13 -0
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/isUnresolvedSenderId.js +6 -1
- package/lib/module/helpers/isUnresolvedSenderId.js.map +1 -1
- package/lib/module/helpers/mimeToExtension.js +13 -6
- package/lib/module/helpers/mimeToExtension.js.map +1 -1
- package/lib/module/helpers/resolveInitBeforeLoadUser.js +16 -130
- package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
- package/lib/module/helpers/resolveLangSource.js +32 -0
- package/lib/module/helpers/resolveLangSource.js.map +1 -0
- package/lib/module/helpers/xmppUsername.js +35 -0
- package/lib/module/helpers/xmppUsername.js.map +1 -0
- package/lib/module/hooks/useChatRoomFocus.js +8 -17
- package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
- package/lib/module/hooks/useChatWrapperInit.js +14 -32
- package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/module/hooks/useComposing.js +1 -28
- package/lib/module/hooks/useComposing.js.map +1 -1
- package/lib/module/hooks/useLogout.js +7 -15
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/usePendingNotification.js +11 -8
- package/lib/module/hooks/usePendingNotification.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +16 -52
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js +1 -6
- package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/module/i18n/strings.js +133 -121
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/i18n/useT.js +1 -1
- package/lib/module/main.js +2 -14
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +59 -131
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
- package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +9 -9
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/api-requests/user.api.js +7 -64
- package/lib/module/networking/api-requests/user.api.js.map +1 -1
- package/lib/module/networking/apiClient.js +113 -61
- package/lib/module/networking/apiClient.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +52 -94
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +8 -46
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +1 -8
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +1 -5
- package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +8 -124
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/chatSettingsSlice.js +7 -26
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/index.js +4 -37
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistence.js +38 -223
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +7 -86
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/services/pushSubscriptionService.js +13 -15
- package/lib/module/services/pushSubscriptionService.js.map +1 -1
- package/lib/module/version.js +3 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/assets/icons.d.ts +0 -16
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
- package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts +1 -10
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts +0 -7
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +0 -3
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +0 -9
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +0 -10
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
- package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +2 -4
- package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
- package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +1 -6
- package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +0 -16
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +0 -1
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
- package/lib/typescript/components/styled/MessageImage.d.ts +0 -14
- package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
- package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts +0 -8
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
- package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -1
- package/lib/typescript/helpers/mimeToExtension.d.ts +15 -0
- package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
- package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
- package/lib/typescript/helpers/resolveLangSource.d.ts +30 -0
- package/lib/typescript/helpers/resolveLangSource.d.ts.map +1 -0
- package/lib/typescript/helpers/xmppUsername.d.ts +13 -0
- package/lib/typescript/helpers/xmppUsername.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatRoomFocus.d.ts +1 -4
- package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
- package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
- package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +0 -1
- package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/i18n/useT.d.ts +1 -1
- package/lib/typescript/main.d.ts +2 -9
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +1 -3
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/user.api.d.ts +0 -27
- package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
- package/lib/typescript/networking/apiClient.d.ts +6 -12
- package/lib/typescript/networking/apiClient.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +2 -10
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +0 -14
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +0 -16
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts +1 -18
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +1 -14
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/services/pushSubscriptionService.d.ts +1 -1
- package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +5 -49
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +29 -41
- package/src/assets/icons.tsx +9 -48
- package/src/components/AuthForms/Login.tsx +3 -3
- package/src/components/Header/HeaderRoomList.tsx +6 -24
- package/src/components/MainComponents/ChatHeader.tsx +3 -9
- package/src/components/MainComponents/ChatRoom.tsx +16 -111
- package/src/components/MainComponents/ChatWrapper.tsx +53 -36
- package/src/components/MainComponents/LoginWrapper.tsx +0 -1
- package/src/components/MainComponents/MediaMessage.tsx +8 -26
- package/src/components/MainComponents/MessageContainer.tsx +1 -5
- package/src/components/MainComponents/MessageList.tsx +4 -23
- package/src/components/MainComponents/ProfileImagePlaceholder.tsx +14 -21
- package/src/components/MainComponents/ReduxWrapper.tsx +18 -1
- package/src/components/MainComponents/RoomList.tsx +39 -236
- package/src/components/Menu/HeaderRoomListMenu.tsx +75 -328
- package/src/components/MessageBubble/MessageTranslate.tsx +17 -12
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +99 -331
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +293 -611
- package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +9 -7
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +38 -79
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +1 -2
- package/src/components/Modals/Modal/Modal.tsx +0 -7
- package/src/components/Modals/NewChatModal/ModalContent.tsx +3 -6
- package/src/components/Modals/NewChatModal/NewChatModal.tsx +126 -223
- package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +1 -12
- package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +4 -14
- package/src/components/Modals/UserProfileModal/EditUserModal.tsx +25 -9
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +307 -617
- package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +58 -75
- package/src/components/Modals/styledModalComponents.tsx +2 -9
- package/src/components/RoomComponents/ChatRoomItem.tsx +50 -21
- package/src/components/RoomComponents/styled/LastMessageFile.tsx +4 -28
- package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +3 -18
- package/src/components/RoomComponents/styled/LastMessageVideo.tsx +3 -18
- package/src/components/VideoCalls/VideoCallSession.tsx +3 -8
- package/src/components/styled/AudioMessage.tsx +1 -2
- package/src/components/styled/DateLabel.tsx +10 -3
- package/src/components/styled/MessageImage.tsx +7 -53
- package/src/components/styled/NewMessageLabel.tsx +3 -1
- package/src/components/styled/SendInput.tsx +18 -91
- package/src/components/styled/StyledComponents.ts +3 -9
- package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +4 -11
- package/src/components/styled/UnsupportedType.tsx +4 -14
- package/src/components/styled/VideoMessage.tsx +54 -131
- package/src/context/xmppProvider.tsx +51 -134
- package/src/helpers/createMessageFromXml.ts +1 -20
- package/src/helpers/ensureScopedChatCache.ts +2 -2
- package/src/helpers/getDataFromXml.ts +25 -1
- package/src/helpers/historyPreloadScheduler.ts +3 -80
- package/src/helpers/initXmppRooms.tsx +10 -14
- package/src/helpers/insertMessageWithDelimiter.ts +13 -0
- package/src/helpers/isUnresolvedSenderId.ts +9 -1
- package/src/helpers/mimeToExtension.ts +22 -6
- package/src/helpers/resolveInitBeforeLoadUser.ts +18 -125
- package/src/helpers/resolveLangSource.ts +40 -0
- package/src/helpers/xmppUsername.ts +38 -0
- package/src/hooks/useChatRoomFocus.ts +5 -14
- package/src/hooks/useChatWrapperInit.ts +16 -32
- package/src/hooks/useComposing.tsx +1 -37
- package/src/hooks/useLogout.tsx +9 -15
- package/src/hooks/usePendingNotification.ts +11 -5
- package/src/hooks/useSendMessage.tsx +15 -60
- package/src/hooks/useUnreadMessagesCounter.ts +0 -11
- package/src/i18n/strings.ts +133 -121
- package/src/i18n/useT.ts +1 -1
- package/src/main.ts +2 -26
- package/src/networking/api-requests/auth.api.ts +48 -156
- package/src/networking/api-requests/roomMembers.api.ts +1 -1
- package/src/networking/api-requests/rooms.api.ts +9 -9
- package/src/networking/api-requests/user.api.ts +7 -79
- package/src/networking/apiClient.ts +123 -68
- package/src/networking/stanzaHandlers.ts +51 -92
- package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +10 -71
- package/src/networking/xmpp/presenceInRoom.xmpp.ts +1 -6
- package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +1 -12
- package/src/networking/xmppClient.ts +9 -141
- package/src/roomStore/chatSettingsSlice.ts +10 -34
- package/src/roomStore/index.ts +4 -40
- package/src/roomStore/persistence.ts +40 -234
- package/src/roomStore/roomsSlice.ts +7 -87
- package/src/services/pushSubscriptionService.ts +13 -18
- package/src/types/types.ts +5 -58
- package/src/version.ts +3 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +0 -226
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +0 -556
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +0 -210
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
- package/lib/commonjs/helpers/getChatBackground.js +0 -23
- package/lib/commonjs/helpers/getChatBackground.js.map +0 -1
- package/lib/commonjs/helpers/getDisplayFileName.js +0 -79
- package/lib/commonjs/helpers/getDisplayFileName.js.map +0 -1
- package/lib/commonjs/helpers/getServerReadTimestamp.js +0 -125
- package/lib/commonjs/helpers/getServerReadTimestamp.js.map +0 -1
- package/lib/commonjs/helpers/isOwnMessage.js +0 -75
- package/lib/commonjs/helpers/isOwnMessage.js.map +0 -1
- package/lib/commonjs/helpers/mediaLibraryRuntime.js +0 -31
- package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +0 -1
- package/lib/commonjs/helpers/persistCrypto.js +0 -122
- package/lib/commonjs/helpers/persistCrypto.js.map +0 -1
- package/lib/commonjs/helpers/pickImageAsset.js +0 -68
- package/lib/commonjs/helpers/pickImageAsset.js.map +0 -1
- package/lib/commonjs/helpers/pushPayload.js +0 -71
- package/lib/commonjs/helpers/pushPayload.js.map +0 -1
- package/lib/commonjs/helpers/secureFileUrl.js +0 -101
- package/lib/commonjs/helpers/secureFileUrl.js.map +0 -1
- package/lib/commonjs/helpers/secureKeyValue.js +0 -83
- package/lib/commonjs/helpers/secureKeyValue.js.map +0 -1
- package/lib/commonjs/helpers/secureStoreRuntime.js +0 -59
- package/lib/commonjs/helpers/secureStoreRuntime.js.map +0 -1
- package/lib/commonjs/helpers/secureUserStorage.js +0 -75
- package/lib/commonjs/helpers/secureUserStorage.js.map +0 -1
- package/lib/commonjs/helpers/shallowEqual.js +0 -36
- package/lib/commonjs/helpers/shallowEqual.js.map +0 -1
- package/lib/commonjs/helpers/sheetGestures.js +0 -32
- package/lib/commonjs/helpers/sheetGestures.js.map +0 -1
- package/lib/commonjs/hooks/useFileToken.js +0 -10
- package/lib/commonjs/hooks/useFileToken.js.map +0 -1
- package/lib/commonjs/networking/authRefresh.js +0 -332
- package/lib/commonjs/networking/authRefresh.js.map +0 -1
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +0 -223
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +0 -1
- package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +0 -548
- package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +0 -1
- package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +0 -205
- package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +0 -1
- package/lib/module/helpers/getChatBackground.js +0 -18
- package/lib/module/helpers/getChatBackground.js.map +0 -1
- package/lib/module/helpers/getDisplayFileName.js +0 -73
- package/lib/module/helpers/getDisplayFileName.js.map +0 -1
- package/lib/module/helpers/getServerReadTimestamp.js +0 -120
- package/lib/module/helpers/getServerReadTimestamp.js.map +0 -1
- package/lib/module/helpers/isOwnMessage.js +0 -70
- package/lib/module/helpers/isOwnMessage.js.map +0 -1
- package/lib/module/helpers/mediaLibraryRuntime.js +0 -25
- package/lib/module/helpers/mediaLibraryRuntime.js.map +0 -1
- package/lib/module/helpers/persistCrypto.js +0 -115
- package/lib/module/helpers/persistCrypto.js.map +0 -1
- package/lib/module/helpers/pickImageAsset.js +0 -63
- package/lib/module/helpers/pickImageAsset.js.map +0 -1
- package/lib/module/helpers/pushPayload.js +0 -63
- package/lib/module/helpers/pushPayload.js.map +0 -1
- package/lib/module/helpers/secureFileUrl.js +0 -91
- package/lib/module/helpers/secureFileUrl.js.map +0 -1
- package/lib/module/helpers/secureKeyValue.js +0 -75
- package/lib/module/helpers/secureKeyValue.js.map +0 -1
- package/lib/module/helpers/secureStoreRuntime.js +0 -52
- package/lib/module/helpers/secureStoreRuntime.js.map +0 -1
- package/lib/module/helpers/secureUserStorage.js +0 -72
- package/lib/module/helpers/secureUserStorage.js.map +0 -1
- package/lib/module/helpers/shallowEqual.js +0 -31
- package/lib/module/helpers/shallowEqual.js.map +0 -1
- package/lib/module/helpers/sheetGestures.js +0 -26
- package/lib/module/helpers/sheetGestures.js.map +0 -1
- package/lib/module/hooks/useFileToken.js +0 -5
- package/lib/module/hooks/useFileToken.js.map +0 -1
- package/lib/module/networking/authRefresh.js +0 -321
- package/lib/module/networking/authRefresh.js.map +0 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +0 -9
- package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +0 -1
- package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +0 -75
- package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +0 -1
- package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +0 -25
- package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +0 -1
- package/lib/typescript/helpers/getChatBackground.d.ts +0 -15
- package/lib/typescript/helpers/getChatBackground.d.ts.map +0 -1
- package/lib/typescript/helpers/getDisplayFileName.d.ts +0 -49
- package/lib/typescript/helpers/getDisplayFileName.d.ts.map +0 -1
- package/lib/typescript/helpers/getServerReadTimestamp.d.ts +0 -69
- package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +0 -1
- package/lib/typescript/helpers/isOwnMessage.d.ts +0 -36
- package/lib/typescript/helpers/isOwnMessage.d.ts.map +0 -1
- package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +0 -3
- package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +0 -1
- package/lib/typescript/helpers/persistCrypto.d.ts +0 -13
- package/lib/typescript/helpers/persistCrypto.d.ts.map +0 -1
- package/lib/typescript/helpers/pickImageAsset.d.ts +0 -27
- package/lib/typescript/helpers/pickImageAsset.d.ts.map +0 -1
- package/lib/typescript/helpers/pushPayload.d.ts +0 -7
- package/lib/typescript/helpers/pushPayload.d.ts.map +0 -1
- package/lib/typescript/helpers/secureFileUrl.d.ts +0 -7
- package/lib/typescript/helpers/secureFileUrl.d.ts.map +0 -1
- package/lib/typescript/helpers/secureKeyValue.d.ts +0 -13
- package/lib/typescript/helpers/secureKeyValue.d.ts.map +0 -1
- package/lib/typescript/helpers/secureStoreRuntime.d.ts +0 -29
- package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +0 -1
- package/lib/typescript/helpers/secureUserStorage.d.ts +0 -23
- package/lib/typescript/helpers/secureUserStorage.d.ts.map +0 -1
- package/lib/typescript/helpers/shallowEqual.d.ts +0 -11
- package/lib/typescript/helpers/shallowEqual.d.ts.map +0 -1
- package/lib/typescript/helpers/sheetGestures.d.ts +0 -20
- package/lib/typescript/helpers/sheetGestures.d.ts.map +0 -1
- package/lib/typescript/hooks/useFileToken.d.ts +0 -2
- package/lib/typescript/hooks/useFileToken.d.ts.map +0 -1
- package/lib/typescript/networking/authRefresh.d.ts +0 -95
- package/lib/typescript/networking/authRefresh.d.ts.map +0 -1
- package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +0 -244
- package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +0 -615
- package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +0 -217
- package/src/helpers/getChatBackground.ts +0 -18
- package/src/helpers/getDisplayFileName.ts +0 -87
- package/src/helpers/getServerReadTimestamp.ts +0 -120
- package/src/helpers/isOwnMessage.ts +0 -90
- package/src/helpers/mediaLibraryRuntime.ts +0 -25
- package/src/helpers/persistCrypto.ts +0 -127
- package/src/helpers/pickImageAsset.ts +0 -68
- package/src/helpers/pushPayload.ts +0 -62
- package/src/helpers/secureFileUrl.ts +0 -103
- package/src/helpers/secureKeyValue.ts +0 -80
- package/src/helpers/secureStoreRuntime.ts +0 -62
- package/src/helpers/secureUserStorage.ts +0 -80
- package/src/helpers/shallowEqual.ts +0 -33
- package/src/helpers/sheetGestures.ts +0 -25
- package/src/hooks/useFileToken.ts +0 -7
- package/src/networking/authRefresh.ts +0 -451
|
@@ -3,14 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.PERSIST_KEYS = exports.MESSAGE_LIMIT =
|
|
6
|
+
exports.PERSIST_KEYS = exports.MESSAGE_LIMIT = void 0;
|
|
7
7
|
exports.clearPersistedState = clearPersistedState;
|
|
8
|
-
exports.computeBootTimeFailures = computeBootTimeFailures;
|
|
9
8
|
exports.persistenceMiddleware = void 0;
|
|
10
9
|
exports.readPersistedState = readPersistedState;
|
|
11
|
-
exports.reconstructFailedMessagePayload = reconstructFailedMessagePayload;
|
|
12
10
|
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
13
|
-
var _persistCrypto = require("../helpers/persistCrypto");
|
|
14
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
12
|
// -------------------------------------------------------------------
|
|
16
13
|
// Lightweight RN persistence layer. Mirrors what redux-persist gives
|
|
@@ -21,32 +18,16 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
21
18
|
// - cap each room's messages to the most recent MESSAGE_LIMIT (100)
|
|
22
19
|
// - debounced writes (200ms) on relevant action types
|
|
23
20
|
//
|
|
24
|
-
//
|
|
25
|
-
// under each key below is encrypted before it reaches AsyncStorage, with
|
|
26
|
-
// the symmetric key held in the platform Keychain/Keystore. `user` here
|
|
27
|
-
// is already secret-free (see `sanitizeUser`) — the encryption is for
|
|
28
|
-
// the message bodies in `rooms`, which aren't.
|
|
21
|
+
// Not encrypted. We rely on AsyncStorage's per-app sandbox.
|
|
29
22
|
// -------------------------------------------------------------------
|
|
30
23
|
|
|
31
24
|
const KEY_CHAT = '@ethora/persist:chatSettingStore';
|
|
32
25
|
const KEY_ROOMS = '@ethora/persist:rooms';
|
|
33
|
-
// bug #39: a failed send needs to survive a relaunch as "failed / tap
|
|
34
|
-
// to retry", not silently render as delivered. `roomHeapStore.failedMessages`
|
|
35
|
-
// is the map the bubble reads (`isFailed = failedMessages[id]`, see
|
|
36
|
-
// Message.tsx / useMessageHeapState): it lives in a separate, previously
|
|
37
|
-
// non-persisted slice from `rooms`, so it gets its own key here.
|
|
38
|
-
const KEY_HEAP = '@ethora/persist:roomHeap';
|
|
39
26
|
|
|
40
27
|
// Per-room message cap on disk. Mirror this value in `roomsSlice`'s
|
|
41
28
|
// in-memory cap (see `enforceMessageCap`) so the runtime and persisted
|
|
42
29
|
// shapes stay aligned.
|
|
43
30
|
const MESSAGE_LIMIT = exports.MESSAGE_LIMIT = 100;
|
|
44
|
-
|
|
45
|
-
// Defensive cap on the number of failed-message payloads written to
|
|
46
|
-
// disk. In practice this map only grows while the user is actively
|
|
47
|
-
// sending offline, but a runaway sender (or a bug that never clears an
|
|
48
|
-
// entry) must not turn this key into an unbounded write.
|
|
49
|
-
const MAX_PERSISTED_FAILED_MESSAGES = exports.MAX_PERSISTED_FAILED_MESSAGES = 200;
|
|
50
31
|
const sanitizeUser = user => {
|
|
51
32
|
if (!user) {
|
|
52
33
|
return null;
|
|
@@ -71,14 +52,23 @@ const sanitizeUser = user => {
|
|
|
71
52
|
// on reload before MAM catches up. That needs the fields the bubbles and
|
|
72
53
|
// room-list previews actually read, nothing else. Everything outside this
|
|
73
54
|
// list is either re-derived on render or re-fetched from the server.
|
|
74
|
-
const PERSISTED_MESSAGE_FIELDS = ['id', 'xmppId', 'xmppFrom', 'body', 'date', 'timestamp', 'roomJid', 'isSystemMessage', 'isMediafile', 'isDeleted', 'isEdited', 'isReply', 'showInChannel', 'mainMessage', 'mimetype', 'location', 'locationPreview', 'fileName', 'originalName', 'size', 'langSource',
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
|
|
55
|
+
const PERSISTED_MESSAGE_FIELDS = ['id', 'xmppId', 'xmppFrom', 'body', 'date', 'timestamp', 'roomJid', 'isSystemMessage', 'isMediafile', 'isDeleted', 'isEdited', 'isReply', 'showInChannel', 'mainMessage', 'mimetype', 'location', 'locationPreview', 'fileName', 'originalName', 'size', 'langSource',
|
|
56
|
+
// `translations` MUST be here. A previous version of this list dropped
|
|
57
|
+
// it, on the theory that it mirrored the web SDK's persist contract —
|
|
58
|
+
// it doesn't: web's redux-persist config (web/src/roomStore/index.ts)
|
|
59
|
+
// has no per-field message whitelist at all, it persists whatever is in
|
|
60
|
+
// `room.messages` (capped to the last 50) and that includes
|
|
61
|
+
// `translations` verbatim. Field-picking is an RN-only mechanism, so
|
|
62
|
+
// "same as web" was never true for this key.
|
|
63
|
+
//
|
|
64
|
+
// Dropping it meant every cold start painted the cached transcript in
|
|
65
|
+
// the ORIGINAL language and only flipped to the translation once MAM
|
|
66
|
+
// re-sent the history a few seconds later (onMessageHistory re-parses
|
|
67
|
+
// <translations> off the wire) — visible on every launch, for every
|
|
68
|
+
// translated message, since the cache never had a translation to show
|
|
69
|
+
// in the first place. Persisting it here is what lets the very first
|
|
70
|
+
// paint already be translated, the way the live path already is.
|
|
71
|
+
'translations', 'callLog'];
|
|
82
72
|
|
|
83
73
|
// The sender identity that rides along on every message over the wire
|
|
84
74
|
// (senderFirstName / senderLastName / photo, which createMessageFromXml
|
|
@@ -169,167 +159,6 @@ const sanitizeRooms = rooms => {
|
|
|
169
159
|
}
|
|
170
160
|
return out;
|
|
171
161
|
};
|
|
172
|
-
|
|
173
|
-
// Only the fields retryMessage actually needs to replay the send (see
|
|
174
|
-
// FailedMessagePayload / useSendMessage.retryMessage). In particular, the
|
|
175
|
-
// media `data` blob is trimmed to `uri/type/name/size` (the picker never
|
|
176
|
-
// hands us auth material, but this stays defensive against a future
|
|
177
|
-
// picker change smuggling extra fields, or a huge inline payload, into
|
|
178
|
-
// `data`).
|
|
179
|
-
const sanitizeMediaData = data => {
|
|
180
|
-
if (!data || typeof data !== 'object') {
|
|
181
|
-
return {};
|
|
182
|
-
}
|
|
183
|
-
const out = {};
|
|
184
|
-
if (typeof data.uri === 'string') {
|
|
185
|
-
out.uri = data.uri;
|
|
186
|
-
}
|
|
187
|
-
if (typeof data.type === 'string') {
|
|
188
|
-
out.type = data.type;
|
|
189
|
-
}
|
|
190
|
-
if (typeof data.name === 'string') {
|
|
191
|
-
out.name = data.name;
|
|
192
|
-
}
|
|
193
|
-
if (typeof data.size === 'number') {
|
|
194
|
-
out.size = data.size;
|
|
195
|
-
}
|
|
196
|
-
return out;
|
|
197
|
-
};
|
|
198
|
-
const sanitizeFailedMessagePayload = payload => {
|
|
199
|
-
if (!payload || typeof payload !== 'object') {
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
if (!payload.id || typeof payload.id !== 'string') {
|
|
203
|
-
return null;
|
|
204
|
-
}
|
|
205
|
-
if (!payload.roomJID || typeof payload.roomJID !== 'string') {
|
|
206
|
-
return null;
|
|
207
|
-
}
|
|
208
|
-
if (payload.kind === 'media') {
|
|
209
|
-
return {
|
|
210
|
-
kind: 'media',
|
|
211
|
-
id: payload.id,
|
|
212
|
-
roomJID: payload.roomJID,
|
|
213
|
-
data: sanitizeMediaData(payload.data),
|
|
214
|
-
type: typeof payload.type === 'string' ? payload.type : '',
|
|
215
|
-
isReply: payload.isReply,
|
|
216
|
-
isChecked: payload.isChecked,
|
|
217
|
-
mainMessage: payload.mainMessage
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
if (payload.kind === 'text') {
|
|
221
|
-
return {
|
|
222
|
-
kind: 'text',
|
|
223
|
-
id: payload.id,
|
|
224
|
-
roomJID: payload.roomJID,
|
|
225
|
-
body: typeof payload.body === 'string' ? payload.body : '',
|
|
226
|
-
isReply: payload.isReply,
|
|
227
|
-
isChecked: payload.isChecked,
|
|
228
|
-
mainMessage: payload.mainMessage
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
return null;
|
|
232
|
-
};
|
|
233
|
-
const sanitizeFailedMessages = failedMessages => {
|
|
234
|
-
if (!failedMessages || typeof failedMessages !== 'object') {
|
|
235
|
-
return {};
|
|
236
|
-
}
|
|
237
|
-
const out = {};
|
|
238
|
-
let count = 0;
|
|
239
|
-
for (const [id, payload] of Object.entries(failedMessages)) {
|
|
240
|
-
if (count >= MAX_PERSISTED_FAILED_MESSAGES) {
|
|
241
|
-
break;
|
|
242
|
-
}
|
|
243
|
-
const clean = sanitizeFailedMessagePayload(payload);
|
|
244
|
-
if (clean) {
|
|
245
|
-
out[id] = clean;
|
|
246
|
-
count++;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
return out;
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
// -------------------------------------------------------------------
|
|
253
|
-
// Boot-time pending -> failed conversion (bug #39).
|
|
254
|
-
//
|
|
255
|
-
// `messageHeap` (the "still sending" buffer) is intentionally NOT
|
|
256
|
-
// persisted: it's a process-lifetime thing. That means on a cold start
|
|
257
|
-
// there is no such thing as "still sending": a persisted message that
|
|
258
|
-
// carries `pending: true` never got a server echo NOR got the chance to
|
|
259
|
-
// trip the in-session watchdog (see PENDING_WATCHDOG_MS in
|
|
260
|
-
// useSendMessage.tsx) before the process died. It must render as failed
|
|
261
|
-
// with a working retry, not as delivered and not as stuck "sending...".
|
|
262
|
-
//
|
|
263
|
-
// Reconstructs the same FailedMessagePayload shape the live send path
|
|
264
|
-
// builds in useSendMessage (markMessageFailed calls), from the fields we
|
|
265
|
-
// persist per message.
|
|
266
|
-
// -------------------------------------------------------------------
|
|
267
|
-
|
|
268
|
-
function reconstructFailedMessagePayload(message, roomJID) {
|
|
269
|
-
if (!message?.id || !roomJID) {
|
|
270
|
-
return null;
|
|
271
|
-
}
|
|
272
|
-
const isReply = !!message.isReply;
|
|
273
|
-
const isChecked = message.showInChannel === 'true';
|
|
274
|
-
const mainMessage = message.mainMessage;
|
|
275
|
-
if (message.isMediafile === 'true') {
|
|
276
|
-
return {
|
|
277
|
-
kind: 'media',
|
|
278
|
-
id: message.id,
|
|
279
|
-
roomJID,
|
|
280
|
-
data: sanitizeMediaData({
|
|
281
|
-
uri: message.location,
|
|
282
|
-
name: message.fileName,
|
|
283
|
-
type: message.mimetype,
|
|
284
|
-
size: message.size !== undefined && message.size !== null ? Number(message.size) : undefined
|
|
285
|
-
}),
|
|
286
|
-
type: message.mimetype || '',
|
|
287
|
-
isReply,
|
|
288
|
-
isChecked,
|
|
289
|
-
mainMessage
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
return {
|
|
293
|
-
kind: 'text',
|
|
294
|
-
id: message.id,
|
|
295
|
-
roomJID,
|
|
296
|
-
body: message.body || '',
|
|
297
|
-
isReply,
|
|
298
|
-
isChecked,
|
|
299
|
-
mainMessage
|
|
300
|
-
};
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Scan every persisted room for messages still `pending: true` that
|
|
305
|
-
* DON'T already have a restored failure entry (those are handled by the
|
|
306
|
-
* caller separately, from the persisted `failedMessages` map), and
|
|
307
|
-
* synthesize a retry-able FailedMessagePayload for each. Pure function:
|
|
308
|
-
* the caller (roomStore/index.ts) is responsible for dispatching
|
|
309
|
-
* `markMessageFailed` for the results.
|
|
310
|
-
*/
|
|
311
|
-
function computeBootTimeFailures(rooms, alreadyFailed) {
|
|
312
|
-
if (!rooms || typeof rooms !== 'object') {
|
|
313
|
-
return [];
|
|
314
|
-
}
|
|
315
|
-
const out = [];
|
|
316
|
-
for (const [jid, room] of Object.entries(rooms)) {
|
|
317
|
-
const messages = Array.isArray(room?.messages) ? room.messages : [];
|
|
318
|
-
for (const message of messages) {
|
|
319
|
-
if (!message || !message.pending) {
|
|
320
|
-
continue;
|
|
321
|
-
}
|
|
322
|
-
if (alreadyFailed && alreadyFailed[message.id]) {
|
|
323
|
-
continue;
|
|
324
|
-
}
|
|
325
|
-
const payload = reconstructFailedMessagePayload(message, jid);
|
|
326
|
-
if (payload) {
|
|
327
|
-
out.push(payload);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return out;
|
|
332
|
-
}
|
|
333
162
|
let writeTimer = null;
|
|
334
163
|
|
|
335
164
|
/**
|
|
@@ -339,31 +168,25 @@ let writeTimer = null;
|
|
|
339
168
|
const persistenceMiddleware = storeAPI => next => action => {
|
|
340
169
|
const result = next(action);
|
|
341
170
|
const type = action?.type || '';
|
|
342
|
-
if (!type.startsWith('roomMessages/') && !type.startsWith('
|
|
171
|
+
if (!type.startsWith('roomMessages/') && !type.startsWith('chat/setUser') && !type.startsWith('chat/updateUser') && !type.startsWith('chat/refreshTokens') && !type.startsWith('chat/logout')) {
|
|
343
172
|
return result;
|
|
344
173
|
}
|
|
345
174
|
if (writeTimer) {
|
|
346
175
|
clearTimeout(writeTimer);
|
|
347
176
|
}
|
|
348
177
|
writeTimer = setTimeout(() => {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
const [chatCipher, roomsCipher, heapCipher] = await Promise.all([(0, _persistCrypto.encryptForPersist)(JSON.stringify(chatPayload)), (0, _persistCrypto.encryptForPersist)(JSON.stringify(roomsPayload)), (0, _persistCrypto.encryptForPersist)(JSON.stringify(heapPayload))]);
|
|
362
|
-
await _asyncStorage.default.multiSet([[KEY_CHAT, chatCipher], [KEY_ROOMS, roomsCipher], [KEY_HEAP, heapCipher]]);
|
|
363
|
-
} catch (e) {
|
|
364
|
-
console.warn('persist write failed', e);
|
|
365
|
-
}
|
|
366
|
-
})();
|
|
178
|
+
try {
|
|
179
|
+
const state = storeAPI.getState();
|
|
180
|
+
const chatPayload = {
|
|
181
|
+
user: sanitizeUser(state.chatSettingStore?.user)
|
|
182
|
+
};
|
|
183
|
+
const roomsPayload = {
|
|
184
|
+
rooms: sanitizeRooms(state.rooms?.rooms || {})
|
|
185
|
+
};
|
|
186
|
+
_asyncStorage.default.multiSet([[KEY_CHAT, JSON.stringify(chatPayload)], [KEY_ROOMS, JSON.stringify(roomsPayload)]]).catch(e => console.warn('persist write failed', e));
|
|
187
|
+
} catch (e) {
|
|
188
|
+
console.warn('persist serialize failed', e);
|
|
189
|
+
}
|
|
367
190
|
}, 200);
|
|
368
191
|
return result;
|
|
369
192
|
};
|
|
@@ -376,40 +199,30 @@ const persistenceMiddleware = storeAPI => next => action => {
|
|
|
376
199
|
exports.persistenceMiddleware = persistenceMiddleware;
|
|
377
200
|
async function readPersistedState() {
|
|
378
201
|
try {
|
|
379
|
-
const [chatRaw, roomsRaw
|
|
380
|
-
const
|
|
381
|
-
|
|
382
|
-
// for "stored value isn't a valid envelope for the current key" —
|
|
383
|
-
// notably a plaintext blob left over from a pre-encryption install.
|
|
384
|
-
// Either way there is nothing safe to parse, so the caller treats it
|
|
385
|
-
// as a cold start and re-hydrates from the server.
|
|
386
|
-
const chat = chatPlain ? JSON.parse(chatPlain) : null;
|
|
387
|
-
const rooms = roomsPlain ? JSON.parse(roomsPlain) : null;
|
|
388
|
-
const heap = heapPlain ? JSON.parse(heapPlain) : null;
|
|
202
|
+
const [chatRaw, roomsRaw] = await _asyncStorage.default.multiGet([KEY_CHAT, KEY_ROOMS]);
|
|
203
|
+
const chat = chatRaw[1] ? JSON.parse(chatRaw[1]) : null;
|
|
204
|
+
const rooms = roomsRaw[1] ? JSON.parse(roomsRaw[1]) : null;
|
|
389
205
|
return {
|
|
390
206
|
chat,
|
|
391
|
-
rooms
|
|
392
|
-
heap
|
|
207
|
+
rooms
|
|
393
208
|
};
|
|
394
209
|
} catch (e) {
|
|
395
210
|
console.warn('persist read failed', e);
|
|
396
211
|
return {
|
|
397
212
|
chat: null,
|
|
398
|
-
rooms: null
|
|
399
|
-
heap: null
|
|
213
|
+
rooms: null
|
|
400
214
|
};
|
|
401
215
|
}
|
|
402
216
|
}
|
|
403
217
|
async function clearPersistedState() {
|
|
404
218
|
try {
|
|
405
|
-
await _asyncStorage.default.multiRemove([KEY_CHAT, KEY_ROOMS
|
|
219
|
+
await _asyncStorage.default.multiRemove([KEY_CHAT, KEY_ROOMS]);
|
|
406
220
|
} catch (e) {
|
|
407
221
|
console.warn('persist clear failed', e);
|
|
408
222
|
}
|
|
409
223
|
}
|
|
410
224
|
const PERSIST_KEYS = exports.PERSIST_KEYS = {
|
|
411
225
|
KEY_CHAT,
|
|
412
|
-
KEY_ROOMS
|
|
413
|
-
KEY_HEAP
|
|
226
|
+
KEY_ROOMS
|
|
414
227
|
};
|
|
415
228
|
//# sourceMappingURL=persistence.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_persistCrypto","e","__esModule","default","KEY_CHAT","KEY_ROOMS","KEY_HEAP","MESSAGE_LIMIT","exports","MAX_PERSISTED_FAILED_MESSAGES","sanitizeUser","user","token","_token","refreshToken","_refreshToken","xmppPassword","_xmppPassword","rest","PERSISTED_MESSAGE_FIELDS","PERSISTED_MESSAGE_USER_FIELDS","REFETCHED_ROOM_FIELDS","pickDefined","source","keys","out","key","value","undefined","compactMessageForPersist","message","compact","sanitizeMessages","messages","Array","isArray","capped","length","slice","map","sanitizeRooms","rooms","jid","room","Object","entries","includes","compactRoom","usersCnt","members","field","composing","composingList","isLoading","historyPreloadState","sanitizeMediaData","data","uri","type","name","size","sanitizeFailedMessagePayload","payload","id","roomJID","kind","isReply","isChecked","mainMessage","body","sanitizeFailedMessages","failedMessages","count","clean","reconstructFailedMessagePayload","showInChannel","isMediafile","location","fileName","mimetype","Number","computeBootTimeFailures","alreadyFailed","pending","push","writeTimer","persistenceMiddleware","storeAPI","next","action","result","startsWith","clearTimeout","setTimeout","state","getState","chatPayload","chatSettingStore","roomsPayload","heapPayload","roomHeapSlice","chatCipher","roomsCipher","heapCipher","Promise","all","encryptForPersist","JSON","stringify","AsyncStorage","multiSet","console","warn","readPersistedState","chatRaw","roomsRaw","heapRaw","multiGet","chatPlain","roomsPlain","heapPlain","decryptFromPersist","resolve","chat","parse","heap","clearPersistedState","multiRemove","PERSIST_KEYS"],"sourceRoot":"../../../src","sources":["roomStore/persistence.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","e","__esModule","default","KEY_CHAT","KEY_ROOMS","MESSAGE_LIMIT","exports","sanitizeUser","user","token","_token","refreshToken","_refreshToken","xmppPassword","_xmppPassword","rest","PERSISTED_MESSAGE_FIELDS","PERSISTED_MESSAGE_USER_FIELDS","REFETCHED_ROOM_FIELDS","pickDefined","source","keys","out","key","value","undefined","compactMessageForPersist","message","compact","sanitizeMessages","messages","Array","isArray","capped","length","slice","map","sanitizeRooms","rooms","jid","room","Object","entries","includes","compactRoom","usersCnt","members","field","composing","composingList","isLoading","historyPreloadState","writeTimer","persistenceMiddleware","storeAPI","next","action","result","type","startsWith","clearTimeout","setTimeout","state","getState","chatPayload","chatSettingStore","roomsPayload","AsyncStorage","multiSet","JSON","stringify","catch","console","warn","readPersistedState","chatRaw","roomsRaw","multiGet","chat","parse","clearPersistedState","multiRemove","PERSIST_KEYS"],"sourceRoot":"../../../src","sources":["roomStore/persistence.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.updateRoom = exports.setVisibleRoom = exports.setUnreadSyncing = exports.setRoomRole = exports.setRoomNoMessages = exports.setRoomMessages = exports.setReactions = exports.setPendingNotificationJid = exports.setLogoutState = exports.setLastViewedTimestamp = exports.setIsLoading = exports.setEditAction = exports.setCurrentRoom = exports.setComposing = exports.setCloseActiveMessage = exports.setActiveMessage = exports.roomsStore = exports.msgSortableMs = exports.mergeUsersSet = exports.editRoomMessage = exports.deleteRoomMessage = exports.deleteRoom = exports.deleteAllRooms = exports.default = exports.clearVisibleRoom = exports.clearPendingNotificationJid = exports.applyRoomsPreloadBatch = exports.applyPrivateStoreMarkers = exports.addRoomViaApi = exports.addRoomMessage = exports.addRoom =
|
|
6
|
+
exports.updateRoom = exports.setVisibleRoom = exports.setUnreadSyncing = exports.setRoomRole = exports.setRoomNoMessages = exports.setRoomMessages = exports.setReactions = exports.setPendingNotificationJid = exports.setLogoutState = exports.setLastViewedTimestamp = exports.setIsLoading = exports.setEditAction = exports.setCurrentRoom = exports.setComposing = exports.setCloseActiveMessage = exports.setActiveMessage = exports.roomsStore = exports.msgSortableMs = exports.mergeUsersSet = exports.editRoomMessage = exports.deleteRoomMessage = exports.deleteRoom = exports.deleteAllRooms = exports.default = exports.clearVisibleRoom = exports.clearPendingNotificationJid = exports.applyRoomsPreloadBatch = exports.applyPrivateStoreMarkers = exports.addRoomViaApi = exports.addRoomMessage = exports.addRoom = void 0;
|
|
7
7
|
var _toolkit = require("@reduxjs/toolkit");
|
|
8
8
|
var _insertMessageWithDelimiter = require("../helpers/insertMessageWithDelimiter");
|
|
9
9
|
// Per-room runtime message cap. Mirrors the persistence layer's
|
|
@@ -15,7 +15,7 @@ var _insertMessageWithDelimiter = require("../helpers/insertMessageWithDelimiter
|
|
|
15
15
|
// older history added via unshift/splice is exempt, so the user can
|
|
16
16
|
// page backward arbitrarily far without instantly losing what they
|
|
17
17
|
// just fetched. After cap eviction we drop from the head (oldest).
|
|
18
|
-
const RUNTIME_MESSAGE_LIMIT =
|
|
18
|
+
const RUNTIME_MESSAGE_LIMIT = 100;
|
|
19
19
|
|
|
20
20
|
// Body strings the server uses for call signaling broadcasts (call-token,
|
|
21
21
|
// call-state ringing/ended, etc). These should never reach the chat
|
|
@@ -131,6 +131,7 @@ function mergeHistoryIntoCache(existing, fetched) {
|
|
|
131
131
|
// fetched MAM page (the live-stream swallow doesn't cover history).
|
|
132
132
|
const ex = stripCallSignals(existing);
|
|
133
133
|
const fe = stripCallSignals(fetched);
|
|
134
|
+
const pending = ex.filter(m => m?.pending);
|
|
134
135
|
const realExisting = ex.filter(m => m && !m.pending && m.id !== 'delimiter-new');
|
|
135
136
|
const realFetched = fe.filter(m => m && m.id !== 'delimiter-new');
|
|
136
137
|
|
|
@@ -138,28 +139,6 @@ function mergeHistoryIntoCache(existing, fetched) {
|
|
|
138
139
|
if (realFetched.length === 0) {
|
|
139
140
|
return ex;
|
|
140
141
|
}
|
|
141
|
-
|
|
142
|
-
// Optimistic sends are preserved across a history merge - EXCEPT the
|
|
143
|
-
// ones the fetched page proves the server already has. That happens
|
|
144
|
-
// whenever a send reached the server but its echo did not reach us
|
|
145
|
-
// before the process died: the optimistic bubble is restored from disk
|
|
146
|
-
// still `pending: true` (and, since bug #39, flagged failed at boot),
|
|
147
|
-
// while MAM hands back the very same message under its ARCHIVE id.
|
|
148
|
-
// Keying only on `id` never matched those two, so the room ended up
|
|
149
|
-
// showing the message twice - once for real and once as a bubble stuck
|
|
150
|
-
// on "sending…"/"Failed" that nothing could ever clear. The archived
|
|
151
|
-
// copy carries our original stanza id as `xmppId` (getDataFromXml), so
|
|
152
|
-
// match on that too and drop the local ghost.
|
|
153
|
-
const fetchedKeys = new Set();
|
|
154
|
-
for (const m of realFetched) {
|
|
155
|
-
if (m?.id != null) {
|
|
156
|
-
fetchedKeys.add(String(m.id));
|
|
157
|
-
}
|
|
158
|
-
if (m?.xmppId) {
|
|
159
|
-
fetchedKeys.add(String(m.xmppId));
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
const pending = ex.filter(m => m?.pending && !fetchedKeys.has(String(m.id)) && !(m.xmppId && fetchedKeys.has(String(m.xmppId))));
|
|
163
142
|
const byMs = (a, b) => msgSortableMs(a) - msgSortableMs(b);
|
|
164
143
|
const capTail = arr => arr.length > RUNTIME_MESSAGE_LIMIT ? arr.slice(-RUNTIME_MESSAGE_LIMIT) : arr;
|
|
165
144
|
const existingIds = new Set(realExisting.map(m => String(m.id)));
|
|
@@ -289,8 +268,6 @@ const reducers = {
|
|
|
289
268
|
const existingMessages = Array.isArray(existing?.messages) ? existing.messages : [];
|
|
290
269
|
state.rooms[roomData.jid] = {
|
|
291
270
|
...roomData,
|
|
292
|
-
icon: roomData.icon !== undefined ? roomData.icon : existing?.icon,
|
|
293
|
-
roomBg: roomData.roomBg !== undefined ? roomData.roomBg : existing?.roomBg,
|
|
294
271
|
messages: existingMessages.length > 0 ? existingMessages : incomingMessages,
|
|
295
272
|
lastViewedTimestamp: lastViewed,
|
|
296
273
|
unreadMessages: roomData.unreadMessages ?? existing?.unreadMessages ?? 0,
|
|
@@ -522,19 +499,7 @@ const reducers = {
|
|
|
522
499
|
*
|
|
523
500
|
* Monotonic: a marker only ever moves a baseline FORWARD, so a stale
|
|
524
501
|
* server value can't resurrect already-read messages and a more-recent
|
|
525
|
-
* local read (tab blur stamping
|
|
526
|
-
*
|
|
527
|
-
* Bug #38 self-heal: forward-only is correct for a SANE existing
|
|
528
|
-
* value, but a device whose clock was ahead may have already stamped
|
|
529
|
-
* a marker in the future (either persisted locally from a previous
|
|
530
|
-
* session, or fetched from the server before this fix existed). To
|
|
531
|
-
* "only ever move forward" from a corrupt future value is to never
|
|
532
|
-
* move at all - the room would stay stuck at `unreadMessages: 0`
|
|
533
|
-
* forever. When the room is loaded, detect a marker that sits well
|
|
534
|
-
* past the newest message we actually know it has and waive the
|
|
535
|
-
* forward-only check for that one comparison, so the incoming
|
|
536
|
-
* (already-clamped, see xmppClient.getChatsPrivateStoreRequestStanza)
|
|
537
|
-
* value can correct it even though it's numerically smaller.
|
|
502
|
+
* local read (tab blur stamping Date.now()) always wins.
|
|
538
503
|
*/
|
|
539
504
|
applyPrivateStoreMarkers: (state, action) => {
|
|
540
505
|
const markers = action.payload;
|
|
@@ -549,30 +514,15 @@ const reducers = {
|
|
|
549
514
|
if (!jid || !Number.isFinite(ts) || ts <= 0) {
|
|
550
515
|
continue;
|
|
551
516
|
}
|
|
552
|
-
const room = state.rooms[jid];
|
|
553
|
-
const newestKnownMs = room ? newestAckedMessageMs(room.messages) : 0;
|
|
554
|
-
// Mirrors isCorruptFutureReadMarker in helpers/getServerReadTimestamp.ts
|
|
555
|
-
// (duplicated to avoid a roomStore <-> helpers import cycle):
|
|
556
|
-
// BOTH signals are required. "Further ahead than the newest
|
|
557
|
-
// message this room has locally" happens all the time on a room
|
|
558
|
-
// whose history hasn't synced yet, and healing on that alone
|
|
559
|
-
// would drop a legitimate marker another device wrote after
|
|
560
|
-
// reading newer messages. A real read marker can never be ahead
|
|
561
|
-
// of real time, so that second signal is what distinguishes a
|
|
562
|
-
// stale cache from a wrong clock.
|
|
563
|
-
const nowMs = Date.now();
|
|
564
|
-
const looksCorrupt = existing => newestKnownMs > 0 && existing > newestKnownMs + FUTURE_MARKER_TOLERANCE_MS && existing > nowMs + FUTURE_MARKER_TOLERANCE_MS;
|
|
565
|
-
|
|
566
517
|
// Remember the marker so rooms that load LATER (via addRoom)
|
|
567
518
|
// inherit it even though they don't exist in the store yet.
|
|
568
|
-
|
|
569
|
-
if (ts > cachedMarker || looksCorrupt(cachedMarker)) {
|
|
519
|
+
if (ts > (state.privateStoreMarkers[jid] || 0)) {
|
|
570
520
|
state.privateStoreMarkers[jid] = ts;
|
|
571
521
|
}
|
|
572
522
|
// Upgrade an already-loaded room's baseline + recompute its badge.
|
|
573
|
-
//
|
|
574
|
-
|
|
575
|
-
if (room &&
|
|
523
|
+
// Only ever forward, so a later local read isn't clobbered.
|
|
524
|
+
const room = state.rooms[jid];
|
|
525
|
+
if (room && ts > (room.lastViewedTimestamp || 0)) {
|
|
576
526
|
room.lastViewedTimestamp = ts;
|
|
577
527
|
room.unreadMessages = countNewerMessages(room.messages, ts);
|
|
578
528
|
}
|
|
@@ -810,35 +760,6 @@ const isOwn = (msg, selfXmpp, selfWallet) => {
|
|
|
810
760
|
}
|
|
811
761
|
return false;
|
|
812
762
|
};
|
|
813
|
-
|
|
814
|
-
// Bug #38 tolerance: a stored read marker more than this far past the
|
|
815
|
-
// newest message a room actually has is not "the user is a little
|
|
816
|
-
// ahead" - it's a leftover from a device whose clock was wrong when it
|
|
817
|
-
// stamped the marker. Kept in sync with (but duplicated from, to avoid
|
|
818
|
-
// a roomStore ↔ helpers import cycle) FUTURE_READ_MARKER_TOLERANCE_MS
|
|
819
|
-
// in helpers/getServerReadTimestamp.ts.
|
|
820
|
-
const FUTURE_MARKER_TOLERANCE_MS = 5 * 60 * 1000;
|
|
821
|
-
|
|
822
|
-
// Newest message in `messages` this room actually has proof the server
|
|
823
|
-
// accepted - used only to sanity-check an already-stored read marker
|
|
824
|
-
// against reality (see applyPrivateStoreMarkers's self-heal). Excludes
|
|
825
|
-
// pending/optimistic sends via the `pending` flag alone: unlike
|
|
826
|
-
// getServerReadTimestamp, this runs inside a reducer and can't reach
|
|
827
|
-
// across to the roomHeapSlice slice, but `pending` already identifies
|
|
828
|
-
// every optimistic send that matters for this comparison.
|
|
829
|
-
const newestAckedMessageMs = messages => {
|
|
830
|
-
let newest = 0;
|
|
831
|
-
for (const m of messages || []) {
|
|
832
|
-
if (!m || m.id === 'delimiter-new' || m.pending) {
|
|
833
|
-
continue;
|
|
834
|
-
}
|
|
835
|
-
const ms = msgSortableMs(m);
|
|
836
|
-
if (ms > newest) {
|
|
837
|
-
newest = ms;
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
return newest;
|
|
841
|
-
};
|
|
842
763
|
const countNewerMessages = (messages, timestamp, selfXmpp = '', selfWallet = '') => {
|
|
843
764
|
if (!messages?.length || !timestamp) {
|
|
844
765
|
return 0;
|