@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
|
@@ -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,37 +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
|
-
// store. Restored on the next 'active' transition above. Handled
|
|
555
|
-
// here in the provider so consumers using the component as a
|
|
556
|
-
// package get correct unread without reaching into the chat store
|
|
557
|
-
// themselves.
|
|
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.
|
|
558
494
|
visibleBeforeBackground = visibleRoomJID;
|
|
559
495
|
if (visibleRoomJID) {
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
// isn't blocked on this.
|
|
565
|
-
if (readTs > 0) {
|
|
566
|
-
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
567
|
-
chatJID: visibleRoomJID,
|
|
568
|
-
timestamp: readTs
|
|
569
|
-
}));
|
|
570
|
-
}
|
|
496
|
+
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
497
|
+
chatJID: visibleRoomJID,
|
|
498
|
+
timestamp: Date.now()
|
|
499
|
+
}));
|
|
571
500
|
// Drop the "New messages" divider for the room we're leaving so it
|
|
572
501
|
// doesn't linger when the user comes back (mirrors ChatRoom's
|
|
573
502
|
// unmount cleanup, which never runs while the pane stays mounted).
|
|
@@ -584,7 +513,7 @@ const XmppProvider = ({
|
|
|
584
513
|
}).catch(() => {});
|
|
585
514
|
});
|
|
586
515
|
return () => sub.remove();
|
|
587
|
-
}, [client
|
|
516
|
+
}, [client]);
|
|
588
517
|
|
|
589
518
|
// -----------------------------------------------------------
|
|
590
519
|
// Consumer visibility signal (`isVisible` prop). For hosts that keep
|
|
@@ -593,11 +522,11 @@ const XmppProvider = ({
|
|
|
593
522
|
// "shown" from "hidden", so the unread middleware would keep the open
|
|
594
523
|
// room's badge at 0 and messages arriving while you're elsewhere look
|
|
595
524
|
// already-read. When the host passes `isVisible`, mirror the AppState
|
|
596
|
-
// background/foreground handling: hidden → stamp lastViewed
|
|
597
|
-
//
|
|
598
|
-
//
|
|
599
|
-
//
|
|
600
|
-
//
|
|
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.)
|
|
601
530
|
// -----------------------------------------------------------
|
|
602
531
|
const chatWasVisibleRef = (0, _react.useRef)(false);
|
|
603
532
|
(0, _react.useEffect)(() => {
|
|
@@ -617,16 +546,10 @@ const XmppProvider = ({
|
|
|
617
546
|
}
|
|
618
547
|
} else {
|
|
619
548
|
if (wasVisible && activeRoomJID) {
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
if (readTs > 0) {
|
|
625
|
-
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
626
|
-
chatJID: activeRoomJID,
|
|
627
|
-
timestamp: readTs
|
|
628
|
-
}));
|
|
629
|
-
}
|
|
549
|
+
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
550
|
+
chatJID: activeRoomJID,
|
|
551
|
+
timestamp: Date.now()
|
|
552
|
+
}));
|
|
630
553
|
// Drop the "New messages" divider so it's gone when the user
|
|
631
554
|
// returns to the chat (mirrors ChatRoom's unmount cleanup).
|
|
632
555
|
_roomStore.store.dispatch((0, _roomsSlice.deleteRoomMessage)({
|
|
@@ -663,21 +586,24 @@ const XmppProvider = ({
|
|
|
663
586
|
return;
|
|
664
587
|
}
|
|
665
588
|
lastMessagesRef = room.messages;
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
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) {
|
|
675
601
|
return;
|
|
676
602
|
}
|
|
677
603
|
lastStampedMs = newest;
|
|
678
604
|
_roomStore.store.dispatch((0, _roomsSlice.setLastViewedTimestamp)({
|
|
679
605
|
chatJID: jid,
|
|
680
|
-
timestamp:
|
|
606
|
+
timestamp: Date.now()
|
|
681
607
|
}));
|
|
682
608
|
if (flushTimer) {
|
|
683
609
|
clearTimeout(flushTimer);
|