@ethora/chat-component-rn 26.7.10 → 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 -96
- package/README.md +10 -43
- 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 +14 -150
- 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 +59 -177
- 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 +22 -51
- 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/keyboardLayout.js +2 -12
- package/lib/commonjs/helpers/keyboardLayout.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 +12 -45
- 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 -23
- 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 +38 -151
- 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 +16 -152
- 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 +60 -177
- 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 +22 -52
- 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/keyboardLayout.js +2 -12
- package/lib/module/helpers/keyboardLayout.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 +13 -46
- 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 -23
- 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 +34 -139
- 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 +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/keyboardLayout.d.ts +1 -5
- package/lib/typescript/helpers/keyboardLayout.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 +3 -43
- 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 -50
- 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 +15 -161
- 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 +57 -209
- 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 +32 -55
- package/src/helpers/isUnresolvedSenderId.ts +9 -1
- package/src/helpers/keyboardLayout.ts +2 -23
- 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 +9 -49
- package/src/hooks/useChatWrapperInit.ts +16 -32
- package/src/hooks/useComposing.tsx +1 -37
- package/src/hooks/useLogout.tsx +9 -29
- 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 +29 -161
- package/src/services/pushSubscriptionService.ts +13 -18
- package/src/types/types.ts +5 -72
- 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 -188
- 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/msgSortableMs.js +0 -37
- package/lib/commonjs/helpers/msgSortableMs.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 -181
- 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/msgSortableMs.js +0 -32
- package/lib/module/helpers/msgSortableMs.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 -108
- 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/msgSortableMs.d.ts +0 -2
- package/lib/typescript/helpers/msgSortableMs.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 -197
- package/src/helpers/isOwnMessage.ts +0 -90
- package/src/helpers/mediaLibraryRuntime.ts +0 -25
- package/src/helpers/msgSortableMs.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
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _secureFileUrl = require("../../helpers/secureFileUrl");
|
|
9
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _expoVideo = require("expo-video");
|
|
10
10
|
var _reactRedux = require("react-redux");
|
|
11
11
|
var _chatSettingsSlice = require("../../roomStore/chatSettingsSlice");
|
|
12
12
|
var _MODAL_TYPES = require("../../helpers/constants/MODAL_TYPES");
|
|
@@ -14,136 +14,78 @@ var _icons = require("../../assets/icons");
|
|
|
14
14
|
var _mediaDimensions = require("../../helpers/mediaDimensions");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
|
-
const PlayBadge = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
18
|
-
style: styles.overlay,
|
|
19
|
-
pointerEvents: "none",
|
|
20
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
21
|
-
style: styles.playButton,
|
|
22
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlayIcon, {
|
|
23
|
-
width: 28,
|
|
24
|
-
height: 28
|
|
25
|
-
})
|
|
26
|
-
})
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Poster path — taken whenever the message carries a `locationPreview`.
|
|
31
|
-
*
|
|
32
|
-
* A chat row only ever needs a still and a play affordance; actual
|
|
33
|
-
* playback happens in the full-screen preview. Drawing that still with a
|
|
34
|
-
* plain <Image> keeps the whole bubble inside the RN view hierarchy, so
|
|
35
|
-
* the play badge is guaranteed to composite on top of it.
|
|
36
|
-
*/
|
|
37
|
-
const PosterVideo = ({
|
|
38
|
-
previewURL,
|
|
39
|
-
onOpen,
|
|
40
|
-
onPosterError
|
|
41
|
-
}) => {
|
|
42
|
-
const [dims, setDims] = (0, _react.useState)((0, _mediaDimensions.defaultMediaDims)());
|
|
43
|
-
(0, _react.useEffect)(() => {
|
|
44
|
-
if (!previewURL) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
let active = true;
|
|
48
|
-
_reactNative.Image.getSize(previewURL, (w, h) => {
|
|
49
|
-
if (active) {
|
|
50
|
-
setDims((0, _mediaDimensions.fitMediaDimensions)(w, h));
|
|
51
|
-
}
|
|
52
|
-
}, () => {
|
|
53
|
-
/* keep the default box if the size probe fails */
|
|
54
|
-
});
|
|
55
|
-
return () => {
|
|
56
|
-
active = false;
|
|
57
|
-
};
|
|
58
|
-
}, [previewURL]);
|
|
59
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
60
|
-
onPress: onOpen,
|
|
61
|
-
style: [styles.wrapper, {
|
|
62
|
-
width: dims.width,
|
|
63
|
-
height: dims.height
|
|
64
|
-
}],
|
|
65
|
-
accessibilityRole: "button",
|
|
66
|
-
accessibilityLabel: "Play video",
|
|
67
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
68
|
-
source: {
|
|
69
|
-
uri: previewURL
|
|
70
|
-
},
|
|
71
|
-
style: styles.video,
|
|
72
|
-
resizeMode: "cover"
|
|
73
|
-
// Not every backend returns a real still — some set
|
|
74
|
-
// locationPreview to the video URL itself, which decodes to
|
|
75
|
-
// nothing. Rather than show an empty box, fall back to the
|
|
76
|
-
// static placeholder branch.
|
|
77
|
-
,
|
|
78
|
-
onError: onPosterError
|
|
79
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(PlayBadge, {})]
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Fallback for messages with no usable poster frame: a static dark
|
|
85
|
-
* placeholder behind the play badge.
|
|
86
|
-
*
|
|
87
|
-
* This branch used to mount an expo-video player purely to paint the
|
|
88
|
-
* first frame (`VideoView` + `surfaceType="textureView"`). That never
|
|
89
|
-
* composited reliably: on Android (Pixel, Android 16, New Architecture)
|
|
90
|
-
* the native video surface draws ABOVE sibling RN views, swallowing the
|
|
91
|
-
* play badge — the video looked like a plain photo. There is no
|
|
92
|
-
* surfaceType/zIndex combination that guarantees ordering across SDK 54
|
|
93
|
-
* and 57, so we don't fight it: no live surface in the bubble at all.
|
|
94
|
-
* The badge is plain RN views over a plain RN background, which cannot
|
|
95
|
-
* be occluded, and we drop the per-row player instance as a bonus.
|
|
96
|
-
* Actual playback (and the real first frame) happens in the full-screen
|
|
97
|
-
* preview modal.
|
|
98
|
-
*/
|
|
99
|
-
const PlaceholderVideo = ({
|
|
100
|
-
onOpen
|
|
101
|
-
}) => {
|
|
102
|
-
const dims = (0, _mediaDimensions.defaultMediaDims)();
|
|
103
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
104
|
-
onPress: onOpen,
|
|
105
|
-
style: [styles.wrapper, {
|
|
106
|
-
width: dims.width,
|
|
107
|
-
height: dims.height
|
|
108
|
-
}],
|
|
109
|
-
accessibilityRole: "button",
|
|
110
|
-
accessibilityLabel: "Play video",
|
|
111
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PlayBadge, {})
|
|
112
|
-
});
|
|
113
|
-
};
|
|
114
17
|
const CustomMessageVideo = ({
|
|
115
18
|
fileName,
|
|
116
|
-
originalName,
|
|
117
19
|
fileURL,
|
|
118
|
-
mimetype
|
|
119
|
-
previewURL
|
|
20
|
+
mimetype
|
|
120
21
|
}) => {
|
|
121
22
|
const dispatch = (0, _reactRedux.useDispatch)();
|
|
122
|
-
const [
|
|
23
|
+
const [dims, setDims] = (0, _react.useState)((0, _mediaDimensions.defaultMediaDims)());
|
|
24
|
+
const player = (0, _expoVideo.useVideoPlayer)(fileURL, p => {
|
|
25
|
+
p.muted = true;
|
|
26
|
+
});
|
|
27
|
+
(0, _react.useEffect)(() => {
|
|
28
|
+
const sub = player.addListener('statusChange', () => {
|
|
29
|
+
const size = player.videoTrack?.size;
|
|
30
|
+
if (size?.width && size?.height) {
|
|
31
|
+
setDims((0, _mediaDimensions.fitMediaDimensions)(size.width, size.height));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return () => sub.remove();
|
|
35
|
+
}, [player]);
|
|
123
36
|
const handleOpen = () => {
|
|
124
37
|
dispatch((0, _chatSettingsSlice.setActiveFile)({
|
|
125
38
|
fileName,
|
|
126
39
|
fileURL,
|
|
127
|
-
mimetype
|
|
128
|
-
originalName
|
|
40
|
+
mimetype
|
|
129
41
|
}));
|
|
130
42
|
dispatch((0, _chatSettingsSlice.setActiveModal)(_MODAL_TYPES.MODAL_TYPES.FILE_PREVIEW));
|
|
131
43
|
};
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
44
|
+
return (
|
|
45
|
+
/*#__PURE__*/
|
|
46
|
+
// Capture-overlay pattern: VideoView sits underneath without ANY
|
|
47
|
+
// touch participation; a transparent absolute-fill <Pressable> on
|
|
48
|
+
// top owns the tap. Previously we wrapped VideoView in a
|
|
49
|
+
// TouchableOpacity and set `pointerEvents="none"` on the inner
|
|
50
|
+
// VideoView — but on some expo-video versions / iOS the native
|
|
51
|
+
// VideoView still intercepted gestures despite that hint, so
|
|
52
|
+
// tapping the poster did nothing. Customer-reported #9 (video
|
|
53
|
+
// preview unresponsive). The Pressable now guarantees the tap
|
|
54
|
+
// reaches `handleOpen`.
|
|
55
|
+
(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
56
|
+
style: [styles.wrapper, {
|
|
57
|
+
width: dims.width,
|
|
58
|
+
height: dims.height
|
|
59
|
+
}],
|
|
60
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_expoVideo.VideoView, {
|
|
61
|
+
player: player,
|
|
62
|
+
style: styles.video,
|
|
63
|
+
contentFit: "cover",
|
|
64
|
+
nativeControls: false,
|
|
65
|
+
surfaceType: "textureView",
|
|
66
|
+
pointerEvents: "none"
|
|
67
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
68
|
+
style: styles.overlay,
|
|
69
|
+
pointerEvents: "none",
|
|
70
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
71
|
+
style: styles.playButton,
|
|
72
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlayIcon, {
|
|
73
|
+
width: 28,
|
|
74
|
+
height: 28
|
|
75
|
+
})
|
|
76
|
+
})
|
|
77
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
78
|
+
onPress: handleOpen
|
|
79
|
+
// Sits ON TOP of VideoView + the play-button overlay; transparent
|
|
80
|
+
// so the poster + play icon show through. Captures the tap and
|
|
81
|
+
// routes to handleOpen → setActiveModal(FILE_PREVIEW).
|
|
82
|
+
,
|
|
83
|
+
style: _reactNative.StyleSheet.absoluteFill,
|
|
84
|
+
accessibilityRole: "button",
|
|
85
|
+
accessibilityLabel: "Play video"
|
|
86
|
+
})]
|
|
87
|
+
})
|
|
88
|
+
);
|
|
147
89
|
};
|
|
148
90
|
var _default = exports.default = CustomMessageVideo;
|
|
149
91
|
const styles = _reactNative.StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_expoVideo","_reactRedux","_chatSettingsSlice","_MODAL_TYPES","_icons","_mediaDimensions","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CustomMessageVideo","fileName","fileURL","mimetype","dispatch","useDispatch","dims","setDims","useState","defaultMediaDims","player","useVideoPlayer","p","muted","useEffect","sub","addListener","size","videoTrack","width","height","fitMediaDimensions","remove","handleOpen","setActiveFile","setActiveModal","MODAL_TYPES","FILE_PREVIEW","jsxs","View","style","styles","wrapper","children","jsx","VideoView","video","contentFit","nativeControls","surfaceType","pointerEvents","overlay","playButton","PlayIcon","Pressable","onPress","StyleSheet","absoluteFill","accessibilityRole","accessibilityLabel","_default","exports","create","borderRadius","overflow","backgroundColor","justifyContent","alignItems"],"sourceRoot":"../../../../src","sources":["components/styled/VideoMessage.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,20 +11,17 @@ var _reactNative = require("react-native");
|
|
|
11
11
|
var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
|
|
12
12
|
var _VideoCallOverlay = require("../components/VideoCalls/VideoCallOverlay");
|
|
13
13
|
var _xmppClient = _interopRequireDefault(require("../networking/xmppClient"));
|
|
14
|
-
var
|
|
14
|
+
var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
|
|
15
15
|
var _clientRegistry = require("../utils/clientRegistry");
|
|
16
16
|
var _resolveInitBeforeLoadUser = require("../helpers/resolveInitBeforeLoadUser");
|
|
17
17
|
var _ensureScopedChatCache = require("../helpers/ensureScopedChatCache");
|
|
18
18
|
var _rooms = require("../networking/api-requests/rooms.api");
|
|
19
19
|
var _allRoomPresences = require("../networking/xmpp/allRoomPresences.xmpp");
|
|
20
|
-
var _pushSubscriptionService = require("../services/pushSubscriptionService");
|
|
21
20
|
var _roomStore = require("../roomStore");
|
|
22
|
-
var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
|
|
23
21
|
var _roomsSlice = require("../roomStore/roomsSlice");
|
|
24
|
-
var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
|
|
25
22
|
var _historyPreloadScheduler = require("../helpers/historyPreloadScheduler");
|
|
26
|
-
var
|
|
27
|
-
var
|
|
23
|
+
var _useLocalStorage = require("../hooks/useLocalStorage");
|
|
24
|
+
var _LOCAL_STORAGE = require("../helpers/constants/LOCAL_STORAGE");
|
|
28
25
|
var _persistence = require("../roomStore/persistence");
|
|
29
26
|
var _devLogger = require("../utils/devLogger");
|
|
30
27
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -32,14 +29,6 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
32
29
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
33
30
|
const XmppContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
34
31
|
const LOGOUT_EVENT = 'ethora-xmpp-logout';
|
|
35
|
-
const subscribeAllRoomsForPush = (client, reason) => {
|
|
36
|
-
const rooms = Object.keys(_roomStore.store.getState().rooms.rooms || {});
|
|
37
|
-
if (!client || !rooms.length) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
const nick = client.jid?.getLocal();
|
|
41
|
-
_pushSubscriptionService.pushSubscriptionService.subscribeToRooms(client, rooms, nick).then(() => (0, _devLogger.pushLog)('xmpp', `${reason}: mucsub ok for ${rooms.length} rooms`)).catch(e => (0, _devLogger.pushLog)('warn', `${reason}: mucsub subscribe failed`, e));
|
|
42
|
-
};
|
|
43
32
|
const XmppProvider = ({
|
|
44
33
|
children,
|
|
45
34
|
config,
|
|
@@ -66,23 +55,21 @@ const XmppProvider = ({
|
|
|
66
55
|
// the XmppClient at least doesn't crash on `undefined.password`.
|
|
67
56
|
const credentialsProvider = (0, _react.useMemo)(() => {
|
|
68
57
|
return async () => {
|
|
69
|
-
// 1.
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
password: rotated.xmppPassword
|
|
85
|
-
};
|
|
58
|
+
// 1. Consumer-supplied REST refresh (when wired). This runs
|
|
59
|
+
// before the SDK's own refresh chain so non-Ethora backends
|
|
60
|
+
// can keep auth state in sync with their own token endpoint.
|
|
61
|
+
const customRefresh = config?.refreshTokens?.refreshFunction;
|
|
62
|
+
if (customRefresh) {
|
|
63
|
+
try {
|
|
64
|
+
const result = await customRefresh();
|
|
65
|
+
if (result?.accessToken) {
|
|
66
|
+
_roomStore.store.dispatch((0, _chatSettingsSlice.refreshTokens)({
|
|
67
|
+
token: result.accessToken,
|
|
68
|
+
refreshToken: result.refreshToken || ''
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
} catch (err) {
|
|
72
|
+
(0, _devLogger.pushLog)('warn', 'XMPP creds refresh: customRefresh failed', err);
|
|
86
73
|
}
|
|
87
74
|
}
|
|
88
75
|
|
|
@@ -114,7 +101,7 @@ const XmppProvider = ({
|
|
|
114
101
|
password: u?.xmppPassword || ''
|
|
115
102
|
};
|
|
116
103
|
};
|
|
117
|
-
}, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.
|
|
104
|
+
}, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.refreshFunction, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
|
|
118
105
|
const initializeClient = (0, _react.useCallback)(async (username, password, xmppSettings) => {
|
|
119
106
|
const settings = xmppSettings || config?.xmppSettings;
|
|
120
107
|
const key = (0, _clientRegistry.buildXmppClientKey)(username, settings);
|
|
@@ -180,22 +167,11 @@ const XmppProvider = ({
|
|
|
180
167
|
if (!underlying) {
|
|
181
168
|
return;
|
|
182
169
|
}
|
|
183
|
-
(0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e))
|
|
170
|
+
(0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e));
|
|
184
171
|
// Also refresh the private store so unread / lastViewed markers
|
|
185
172
|
// are accurate after a long reconnect — the MUC re-join above only
|
|
186
173
|
// restores delivery, not unread state. Idempotent on first connect.
|
|
187
174
|
created.getChatsPrivateStoreRequestStanza().catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: privateStore refresh failed', e));
|
|
188
|
-
// Pull whatever landed in each room's archive while the stream was
|
|
189
|
-
// down. MUC presence re-join above only restores delivery for
|
|
190
|
-
// messages sent AFTER this reconnect — anything sent during the
|
|
191
|
-
// offline window has no live stanza to catch, and previously only
|
|
192
|
-
// came back on a full app restart (fresh useChatWrapperInit mount
|
|
193
|
-
// re-running its own one-shot boot sync). Safe on the very first
|
|
194
|
-
// connect too: rooms have no `lastMessageTimestamp` yet at that
|
|
195
|
-
// point, so this is a no-op until the bootstrap's own history load
|
|
196
|
-
// populates it. Customer-reported #32.
|
|
197
|
-
const rooms = _roomStore.store.getState().rooms?.rooms || {};
|
|
198
|
-
(0, _updateMessagesTillLast.updateMessagesTillLast)(rooms, created).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: offline catch-up sync failed', e));
|
|
199
175
|
});
|
|
200
176
|
setClient(created);
|
|
201
177
|
lastCredsRef.current = {
|
|
@@ -268,7 +244,7 @@ const XmppProvider = ({
|
|
|
268
244
|
(0, _devLogger.pushLog)('rn', 'initBeforeLoad: clearStoreBeforeInit');
|
|
269
245
|
_roomStore.store.dispatch((0, _roomsSlice.setLogoutState)());
|
|
270
246
|
_roomStore.store.dispatch((0, _chatSettingsSlice.logout)());
|
|
271
|
-
await (0,
|
|
247
|
+
await (0, _useLocalStorage.asyncLocalStorage)(_LOCAL_STORAGE.localStorageConstants.ETHORA_USER).remove().catch(() => undefined);
|
|
272
248
|
}
|
|
273
249
|
await (0, _ensureScopedChatCache.ensureScopedChatCache)(config);
|
|
274
250
|
(0, _devLogger.pushLog)('rn', 'initBeforeLoad: scope ok, resolving user…');
|
|
@@ -296,40 +272,13 @@ const XmppProvider = ({
|
|
|
296
272
|
_roomStore.store.dispatch((0, _chatSettingsSlice.setConfig)(config));
|
|
297
273
|
}
|
|
298
274
|
|
|
299
|
-
// Rotate BEFORE the first XMPP connect. On the rotating backend
|
|
300
|
-
// the xmpp password is a short-lived JWT that only the newest
|
|
301
|
-
// rotation knows, and each rotation invalidates its predecessors
|
|
302
|
-
// — so a snapshot's password (a host's cached `userLogin.user`,
|
|
303
|
-
// a persisted session) is usually already dead at boot. Without
|
|
304
|
-
// this, the first SASL attempt fails `not-authorized`, all three
|
|
305
|
-
// bootstrap retries re-present the same dead password, and the
|
|
306
|
-
// user dead-ends on the Connection error modal even though one
|
|
307
|
-
// rotation away a perfectly good session existed. The rotation
|
|
308
|
-
// also lands the fileToken pre-render, so secure media never
|
|
309
|
-
// paints blank first. Quiet + deduped; when it can't rotate
|
|
310
|
-
// (no refresh material, non-rotating backend) we just connect
|
|
311
|
-
// with what the snapshot has, exactly as before.
|
|
312
|
-
// jwtLogin is skipped: /users/client just minted fresh creds.
|
|
313
|
-
let connectPassword = resolved.xmppPassword;
|
|
314
|
-
if (config?.refreshTokens?.enabled && !config?.jwtLogin?.enabled) {
|
|
315
|
-
const rotated = await (0, _authRefresh.refreshAuthTokensQuietly)({
|
|
316
|
-
force: true
|
|
317
|
-
});
|
|
318
|
-
if (cancelled) {
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
if (rotated?.xmppPassword) {
|
|
322
|
-
connectPassword = rotated.xmppPassword;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
|
|
326
275
|
// Kick off REST /chats/my; allRoomPresences below needs the
|
|
327
276
|
// room list to be in redux, otherwise it joins 0 MUCs and the
|
|
328
277
|
// user receives zero realtime messages until they manually tap
|
|
329
278
|
// into each room. Track the promise so we can await it before
|
|
330
279
|
// joining presences.
|
|
331
280
|
const restRoomsPromise = (0, _rooms.getRooms)().catch(() => undefined);
|
|
332
|
-
const c = await initializeClient(resolved.xmppUsername,
|
|
281
|
+
const c = await initializeClient(resolved.xmppUsername, resolved.xmppPassword, config?.xmppSettings);
|
|
333
282
|
if (cancelled) {
|
|
334
283
|
return;
|
|
335
284
|
}
|
|
@@ -365,7 +314,6 @@ const XmppProvider = ({
|
|
|
365
314
|
} catch (e) {
|
|
366
315
|
(0, _devLogger.pushLog)('warn', 'initBeforeLoad: allRoomPresences failed', e);
|
|
367
316
|
}
|
|
368
|
-
subscribeAllRoomsForPush(c.client, 'initBeforeLoad');
|
|
369
317
|
_roomStore.store.dispatch((0, _chatSettingsSlice.setStoreClient)(c));
|
|
370
318
|
completedBootstrapKeyRef.current = key;
|
|
371
319
|
inflightBootstrapKeyRef.current = '';
|
|
@@ -498,14 +446,9 @@ const XmppProvider = ({
|
|
|
498
446
|
// be re-marked visible on return. Lives in the effect closure (one per
|
|
499
447
|
// client) — persists across the listener's many invocations.
|
|
500
448
|
let visibleBeforeBackground = null;
|
|
501
|
-
const suspendInBackground = !config?.xmppSettings?.keepAliveInBackground;
|
|
502
449
|
const sub = _reactNative.AppState.addEventListener('change', next => {
|
|
503
450
|
const c = client;
|
|
504
451
|
if (next === 'active') {
|
|
505
|
-
if (c?.isSuspended) {
|
|
506
|
-
(0, _devLogger.pushLog)('rn', 'AppState active: resuming suspended XMPP client');
|
|
507
|
-
c.resume();
|
|
508
|
-
}
|
|
509
452
|
// Returned to foreground. If the socket died while backgrounded
|
|
510
453
|
// (iOS suspends the WebSocket; long background kills it), the
|
|
511
454
|
// status may still read 'online' until xmpp.js notices the dead
|
|
@@ -537,49 +480,23 @@ const XmppProvider = ({
|
|
|
537
480
|
if (!c) {
|
|
538
481
|
return;
|
|
539
482
|
}
|
|
540
|
-
if (next === 'background' && suspendInBackground) {
|
|
541
|
-
c.suspend().catch(() => undefined);
|
|
542
|
-
}
|
|
543
483
|
const state = _roomStore.store.getState();
|
|
544
484
|
const rooms = state.rooms?.rooms;
|
|
545
485
|
const visibleRoomJID = state.rooms?.visibleRoomJID || null;
|
|
546
486
|
// Mark the open room "not visible" while backgrounded so messages
|
|
547
487
|
// that arrive (or MAM-replay on reconnect) count as unread instead
|
|
548
488
|
// of being silently treated as read — the "mounted == visible ==
|
|
549
|
-
// read" gap. Stamp lastViewed
|
|
550
|
-
//
|
|
551
|
-
//
|
|
552
|
-
//
|
|
553
|
-
//
|
|
554
|
-
// clear visibility and flush that marker to the server private
|
|
555
|
-
// store. Restored on the next 'active' transition above. Handled
|
|
556
|
-
// here in the provider so consumers using the component as a
|
|
557
|
-
// package get correct unread without reaching into the chat store
|
|
558
|
-
// themselves.
|
|
559
|
-
//
|
|
560
|
-
// The read boundary (rooms.readBoundaries) is deliberately left
|
|
561
|
-
// untouched here - MessageList normally stays mounted through a
|
|
562
|
-
// simple background/foreground cycle, so its own scroll-tracking
|
|
563
|
-
// ref (the only thing that could re-derive this value) is still
|
|
564
|
-
// intact, and clearing the redux copy would desync the two. It's
|
|
565
|
-
// only USED here for the one-shot stamp+flush, matching customer
|
|
566
|
-
// #42: leaving (or backgrounding) a room while scrolled up must not
|
|
567
|
-
// mark messages the user never reached as read.
|
|
489
|
+
// read" gap. Stamp lastViewed=now as the read baseline, clear
|
|
490
|
+
// visibility, then flush that marker to the server private store.
|
|
491
|
+
// Restored on the next 'active' transition above. Handled here in
|
|
492
|
+
// the provider so consumers using the component as a package get
|
|
493
|
+
// correct unread without reaching into the chat store themselves.
|
|
568
494
|
visibleBeforeBackground = visibleRoomJID;
|
|
569
|
-
let boundaryTs = null;
|
|
570
495
|
if (visibleRoomJID) {
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
// clock. The flush below still runs so the visibility clear
|
|
576
|
-
// isn't blocked on this.
|
|
577
|
-
if (readTs > 0) {
|
|
578
|
-
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
579
|
-
chatJID: visibleRoomJID,
|
|
580
|
-
timestamp: readTs
|
|
581
|
-
}));
|
|
582
|
-
}
|
|
496
|
+
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
497
|
+
chatJID: visibleRoomJID,
|
|
498
|
+
timestamp: Date.now()
|
|
499
|
+
}));
|
|
583
500
|
// Drop the "New messages" divider for the room we're leaving so it
|
|
584
501
|
// doesn't linger when the user comes back (mirrors ChatRoom's
|
|
585
502
|
// unmount cleanup, which never runs while the pane stays mounted).
|
|
@@ -590,18 +507,13 @@ const XmppProvider = ({
|
|
|
590
507
|
_roomStore.store.dispatch((0, _roomsSlice.clearVisibleRoom)());
|
|
591
508
|
}
|
|
592
509
|
// Fire-and-forget — we're going to the background and don't
|
|
593
|
-
// care about the resolution path.
|
|
594
|
-
// boundary to the SERVER marker - without it the flush defaults to
|
|
595
|
-
// "everything" for the visible room, overriding a correct smaller
|
|
596
|
-
// local count.
|
|
510
|
+
// care about the resolution path.
|
|
597
511
|
c.flushLastViewedToPrivateStoreStanza(rooms, {
|
|
598
|
-
visibleRoomJID
|
|
599
|
-
// Clamped through the same helper as the local stamp above.
|
|
600
|
-
visibleRoomTs: visibleRoomJID ? (0, _getServerReadTimestamp.getFlushBoundaryTs)(rooms?.[visibleRoomJID], state.roomHeapSlice, boundaryTs) : undefined
|
|
512
|
+
visibleRoomJID
|
|
601
513
|
}).catch(() => {});
|
|
602
514
|
});
|
|
603
515
|
return () => sub.remove();
|
|
604
|
-
}, [client
|
|
516
|
+
}, [client]);
|
|
605
517
|
|
|
606
518
|
// -----------------------------------------------------------
|
|
607
519
|
// Consumer visibility signal (`isVisible` prop). For hosts that keep
|
|
@@ -610,11 +522,11 @@ const XmppProvider = ({
|
|
|
610
522
|
// "shown" from "hidden", so the unread middleware would keep the open
|
|
611
523
|
// room's badge at 0 and messages arriving while you're elsewhere look
|
|
612
524
|
// already-read. When the host passes `isVisible`, mirror the AppState
|
|
613
|
-
// background/foreground handling: hidden → stamp lastViewed
|
|
614
|
-
//
|
|
615
|
-
//
|
|
616
|
-
//
|
|
617
|
-
//
|
|
525
|
+
// background/foreground handling: hidden → stamp lastViewed=now + clear
|
|
526
|
+
// room visibility (so later messages count) + flush; shown → restore
|
|
527
|
+
// visibility for the open room. Doing it here means consumers never
|
|
528
|
+
// touch the chat store themselves. (Undefined = host unmounts on hide,
|
|
529
|
+
// nothing to do.)
|
|
618
530
|
// -----------------------------------------------------------
|
|
619
531
|
const chatWasVisibleRef = (0, _react.useRef)(false);
|
|
620
532
|
(0, _react.useEffect)(() => {
|
|
@@ -633,25 +545,11 @@ const XmppProvider = ({
|
|
|
633
545
|
}));
|
|
634
546
|
}
|
|
635
547
|
} else {
|
|
636
|
-
// The read boundary (rooms.readBoundaries) is USED for the stamp
|
|
637
|
-
// and flush below but deliberately left in place - a host using
|
|
638
|
-
// `isVisible` keeps <Chat> mounted while hidden, so MessageList's
|
|
639
|
-
// own scroll-tracking ref is still intact and the redux copy must
|
|
640
|
-
// stay in sync with it. Only consumed, never Date.now(): a fast
|
|
641
|
-
// device clock would write a future marker that the forward-only
|
|
642
|
-
// private-store merge could then never correct (bug #38). And
|
|
643
|
-
// never "the newest acked message" unconditionally either - that
|
|
644
|
-
// silently marks messages the user scrolled past and never reached
|
|
645
|
-
// as read (bug #42, a regression of #33).
|
|
646
|
-
const boundaryTs = activeRoomJID ? state.rooms?.readBoundaries?.[activeRoomJID] ?? null : null;
|
|
647
548
|
if (wasVisible && activeRoomJID) {
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
timestamp: readTs
|
|
653
|
-
}));
|
|
654
|
-
}
|
|
549
|
+
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
550
|
+
chatJID: activeRoomJID,
|
|
551
|
+
timestamp: Date.now()
|
|
552
|
+
}));
|
|
655
553
|
// Drop the "New messages" divider so it's gone when the user
|
|
656
554
|
// returns to the chat (mirrors ChatRoom's unmount cleanup).
|
|
657
555
|
_roomStore.store.dispatch((0, _roomsSlice.deleteRoomMessage)({
|
|
@@ -662,11 +560,7 @@ const XmppProvider = ({
|
|
|
662
560
|
_roomStore.store.dispatch((0, _roomsSlice.clearVisibleRoom)());
|
|
663
561
|
if (wasVisible && client?.flushLastViewedToPrivateStoreStanza) {
|
|
664
562
|
client.flushLastViewedToPrivateStoreStanza(rooms, {
|
|
665
|
-
visibleRoomJID: activeRoomJID
|
|
666
|
-
// Carry the same boundary to the SERVER marker - without it
|
|
667
|
-
// the flush defaults to "everything" for the visible room.
|
|
668
|
-
// Clamped exactly like the local stamp above.
|
|
669
|
-
visibleRoomTs: activeRoomJID ? (0, _getServerReadTimestamp.getFlushBoundaryTs)(rooms?.[activeRoomJID], state.roomHeapSlice, boundaryTs) : undefined
|
|
563
|
+
visibleRoomJID: activeRoomJID
|
|
670
564
|
}).catch(() => {});
|
|
671
565
|
}
|
|
672
566
|
}
|
|
@@ -692,44 +586,32 @@ const XmppProvider = ({
|
|
|
692
586
|
return;
|
|
693
587
|
}
|
|
694
588
|
lastMessagesRef = room.messages;
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
// private-store merge, leaving 0 unread even after a restart
|
|
708
|
-
// (customer #42, a regression of #33 reintroduced by #38).
|
|
709
|
-
const boundaryTs = s.rooms?.readBoundaries?.[jid] ?? null;
|
|
710
|
-
const newest = (0, _getServerReadTimestamp.getReadMarkerTimestamp)(room, s.roomHeapSlice, boundaryTs);
|
|
711
|
-
if (!newest || newest <= lastStampedMs) {
|
|
589
|
+
let newest = 0;
|
|
590
|
+
const list = room.messages || [];
|
|
591
|
+
for (const m of list) {
|
|
592
|
+
if (!m || m.id === 'delimiter-new') {
|
|
593
|
+
continue;
|
|
594
|
+
}
|
|
595
|
+
const ms = (0, _roomsSlice.msgSortableMs)(m);
|
|
596
|
+
if (ms > newest) {
|
|
597
|
+
newest = ms;
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
if (newest <= lastStampedMs) {
|
|
712
601
|
return;
|
|
713
602
|
}
|
|
714
603
|
lastStampedMs = newest;
|
|
715
604
|
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
716
605
|
chatJID: jid,
|
|
717
|
-
timestamp:
|
|
606
|
+
timestamp: Date.now()
|
|
718
607
|
}));
|
|
719
608
|
if (flushTimer) {
|
|
720
609
|
clearTimeout(flushTimer);
|
|
721
610
|
}
|
|
722
611
|
if (client?.flushLastViewedToPrivateStoreStanza) {
|
|
723
612
|
flushTimer = setTimeout(() => {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
// boundary) in the 2s between the stamp and this flush, and
|
|
727
|
-
// the flush should reflect that.
|
|
728
|
-
const freshState = _roomStore.store.getState();
|
|
729
|
-
const freshBoundaryTs = freshState.rooms?.readBoundaries?.[jid] ?? null;
|
|
730
|
-
client.flushLastViewedToPrivateStoreStanza(freshState.rooms?.rooms, {
|
|
731
|
-
visibleRoomJID: jid,
|
|
732
|
-
visibleRoomTs: (0, _getServerReadTimestamp.getFlushBoundaryTs)(freshState.rooms?.rooms?.[jid], freshState.roomHeapSlice, freshBoundaryTs)
|
|
613
|
+
client.flushLastViewedToPrivateStoreStanza(_roomStore.store.getState().rooms?.rooms, {
|
|
614
|
+
visibleRoomJID: jid
|
|
733
615
|
}).catch(() => {});
|
|
734
616
|
}, 2000);
|
|
735
617
|
}
|