@ethora/chat-component-rn 26.5.7 → 26.5.10
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 +133 -0
- package/README.md +67 -10
- package/index.js +24 -0
- package/lib/commonjs/assets/icons.js +5 -1
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +11 -5
- package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +64 -38
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +57 -13
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +4 -2
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageContainer.js +2 -2
- package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +165 -28
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +17 -8
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/SystemMessage.js +34 -22
- package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +84 -39
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +82 -22
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +16 -4
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js +104 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +140 -24
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +29 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/commonjs/components/Modals/Modal/Modal.js +5 -1
- package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +77 -47
- package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/styledModalComponents.js +4 -9
- package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/commonjs/components/styled/MediaFilePreview.js +47 -28
- package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
- package/lib/commonjs/components/styled/MessageImage.js +49 -9
- package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
- package/lib/commonjs/components/styled/NewMessageLabel.js +8 -6
- package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +49 -27
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +14 -4
- package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
- package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/commonjs/components/styled/UnsupportedType.js +5 -1
- package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +60 -14
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/MessageNotificationContext.js +7 -7
- package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +244 -32
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/chatAutoEnterer.js +2 -7
- package/lib/commonjs/helpers/chatAutoEnterer.js.map +1 -1
- package/lib/commonjs/helpers/historyPreloadScheduler.js +4 -1
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +15 -5
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/keyboardLayout.js +18 -0
- package/lib/commonjs/helpers/keyboardLayout.js.map +1 -0
- package/lib/commonjs/helpers/mediaDimensions.js +51 -0
- package/lib/commonjs/helpers/mediaDimensions.js.map +1 -0
- package/lib/commonjs/helpers/normalizeRoomJid.js +20 -0
- package/lib/commonjs/helpers/normalizeRoomJid.js.map +1 -0
- package/lib/commonjs/hooks/useChatRoomFocus.js +87 -0
- package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -0
- package/lib/commonjs/hooks/useHeapSender.js +1 -1
- package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
- package/lib/commonjs/hooks/useLogout.js +3 -3
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/usePushNotifications.js +6 -2
- package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
- package/lib/commonjs/hooks/useRoomState.js +2 -0
- package/lib/commonjs/hooks/useRoomState.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +201 -10
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js +12 -14
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/commonjs/main.js +7 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +67 -0
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/apiClient.js +2 -1
- package/lib/commonjs/networking/apiClient.js.map +1 -1
- package/lib/commonjs/networking/outboundQueue.js +92 -0
- package/lib/commonjs/networking/outboundQueue.js.map +1 -0
- package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
- package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
- package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
- package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +26 -8
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +294 -35
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +22 -6
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +157 -23
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/utils/installPromiseRejectionTracker.js +83 -0
- package/lib/commonjs/utils/installPromiseRejectionTracker.js.map +1 -0
- package/lib/commonjs/utils/resendMessage.js +1 -1
- package/lib/commonjs/utils/resendMessage.js.map +1 -1
- package/lib/module/assets/icons.js +5 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/ContextMenu/ContextMenuComponents.js +11 -5
- package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +65 -39
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +57 -13
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +4 -2
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageContainer.js +2 -2
- package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +166 -29
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +18 -8
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/SystemMessage.js +33 -21
- package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +85 -40
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +84 -24
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +15 -3
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js +99 -0
- package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +143 -25
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js +31 -3
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/module/components/Modals/Modal/Modal.js +5 -1
- package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +79 -49
- package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/styledModalComponents.js +4 -9
- package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
- package/lib/module/components/styled/MediaFilePreview.js +47 -28
- package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
- package/lib/module/components/styled/MessageImage.js +51 -11
- package/lib/module/components/styled/MessageImage.js.map +1 -1
- package/lib/module/components/styled/NewMessageLabel.js +8 -6
- package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +50 -28
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +14 -4
- package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
- package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
- package/lib/module/components/styled/UnsupportedType.js +5 -1
- package/lib/module/components/styled/UnsupportedType.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +61 -15
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/MessageNotificationContext.js +7 -7
- package/lib/module/context/MessageNotificationContext.js.map +1 -1
- package/lib/module/context/xmppProvider.js +246 -34
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/chatAutoEnterer.js +2 -7
- package/lib/module/helpers/chatAutoEnterer.js.map +1 -1
- package/lib/module/helpers/historyPreloadScheduler.js +4 -1
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js +15 -5
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/keyboardLayout.js +12 -0
- package/lib/module/helpers/keyboardLayout.js.map +1 -0
- package/lib/module/helpers/mediaDimensions.js +46 -0
- package/lib/module/helpers/mediaDimensions.js.map +1 -0
- package/lib/module/helpers/normalizeRoomJid.js +15 -0
- package/lib/module/helpers/normalizeRoomJid.js.map +1 -0
- package/lib/module/hooks/useChatRoomFocus.js +82 -0
- package/lib/module/hooks/useChatRoomFocus.js.map +1 -0
- package/lib/module/hooks/useHeapSender.js +1 -1
- package/lib/module/hooks/useHeapSender.js.map +1 -1
- package/lib/module/hooks/useLogout.js +3 -3
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/usePushNotifications.js +6 -2
- package/lib/module/hooks/usePushNotifications.js.map +1 -1
- package/lib/module/hooks/useRoomState.js +2 -0
- package/lib/module/hooks/useRoomState.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +203 -12
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js +12 -14
- package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/module/main.js +1 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +67 -1
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/apiClient.js +2 -1
- package/lib/module/networking/apiClient.js.map +1 -1
- package/lib/module/networking/outboundQueue.js +84 -0
- package/lib/module/networking/outboundQueue.js.map +1 -0
- package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
- package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
- package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
- package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
- package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +26 -8
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +2 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +294 -35
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/Middleware/unreadMidlleware.js +22 -6
- package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +154 -22
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/utils/installPromiseRejectionTracker.js +78 -0
- package/lib/module/utils/installPromiseRejectionTracker.js.map +1 -0
- package/lib/module/utils/resendMessage.js +1 -1
- package/lib/module/utils/resendMessage.js.map +1 -1
- package/lib/typescript/assets/icons.d.ts +8 -4
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/ContextMenu/ContextMenuComponents.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/MediaMessage.d.ts +1 -0
- 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.map +1 -1
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts +1 -0
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/SystemMessage.d.ts +0 -7
- package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +4 -2
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts +29 -0
- package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts.map +1 -0
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +0 -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/ModalWrapper/ModalWrapper.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
- package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
- package/lib/typescript/components/styled/NewMessageLabel.d.ts +1 -5
- 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/StyledInputComponents/MediaComponents.d.ts +9 -1
- package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.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 +1 -0
- package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts +1 -0
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/chatAutoEnterer.d.ts.map +1 -1
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/keyboardLayout.d.ts +9 -0
- package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -0
- package/lib/typescript/helpers/mediaDimensions.d.ts +9 -0
- package/lib/typescript/helpers/mediaDimensions.d.ts.map +1 -0
- package/lib/typescript/helpers/normalizeRoomJid.d.ts +2 -0
- package/lib/typescript/helpers/normalizeRoomJid.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatRoomFocus.d.ts +42 -0
- package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -0
- package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
- package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
- package/lib/typescript/hooks/useRoomState.d.ts +1 -0
- package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
- package/lib/typescript/main.d.ts +1 -0
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -0
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/apiClient.d.ts.map +1 -1
- package/lib/typescript/networking/outboundQueue.d.ts +57 -0
- package/lib/typescript/networking/outboundQueue.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/createTimeoutPromise.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -1
- package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts +1 -1
- package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +33 -4
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +8 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/models/media.model.d.ts +1 -0
- package/lib/typescript/types/models/media.model.d.ts.map +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +4 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/installPromiseRejectionTracker.d.ts +20 -0
- package/lib/typescript/utils/installPromiseRejectionTracker.d.ts.map +1 -0
- package/lib/typescript/utils/resendMessage.d.ts.map +1 -1
- package/package.json +18 -2
- package/src/assets/icons.tsx +23 -14
- package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
- package/src/components/MainComponents/ChatRoom.tsx +81 -66
- package/src/components/MainComponents/ChatWrapper.tsx +99 -21
- package/src/components/MainComponents/MediaMessage.tsx +3 -0
- package/src/components/MainComponents/MessageContainer.tsx +4 -2
- package/src/components/MainComponents/MessageList.tsx +175 -28
- package/src/components/MainComponents/ReduxWrapper.tsx +19 -9
- package/src/components/MainComponents/SystemMessage.tsx +38 -26
- package/src/components/MessageBubble/Message.tsx +91 -62
- package/src/components/MessageBubble/MessageInteractions.tsx +98 -29
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +17 -3
- package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +152 -25
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
- package/src/components/Modals/Modal/Modal.tsx +4 -1
- package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +70 -58
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
- package/src/components/Modals/styledModalComponents.tsx +4 -9
- package/src/components/styled/MediaFilePreview.tsx +46 -26
- package/src/components/styled/MessageImage.tsx +58 -13
- package/src/components/styled/NewMessageLabel.tsx +8 -5
- package/src/components/styled/SendInput.tsx +64 -29
- package/src/components/styled/StyledInputComponents/MediaComponents.tsx +15 -5
- package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +7 -2
- package/src/components/styled/UnsupportedType.tsx +7 -1
- package/src/components/styled/VideoMessage.tsx +59 -11
- package/src/context/MessageNotificationContext.tsx +8 -8
- package/src/context/xmppProvider.tsx +247 -30
- package/src/helpers/chatAutoEnterer.ts +2 -8
- package/src/helpers/historyPreloadScheduler.ts +4 -1
- package/src/helpers/insertMessageWithDelimiter.ts +22 -15
- package/src/helpers/keyboardLayout.ts +18 -0
- package/src/helpers/mediaDimensions.ts +47 -0
- package/src/helpers/normalizeRoomJid.ts +6 -0
- package/src/hooks/useChatRoomFocus.ts +95 -0
- package/src/hooks/useHeapSender.tsx +2 -1
- package/src/hooks/useLogout.tsx +3 -3
- package/src/hooks/usePushNotifications.ts +21 -8
- package/src/hooks/useRoomState.tsx +4 -0
- package/src/hooks/useSendMessage.tsx +258 -13
- package/src/hooks/useUnreadMessagesCounter.ts +13 -16
- package/src/main.ts +1 -0
- package/src/networking/api-requests/auth.api.ts +55 -1
- package/src/networking/apiClient.ts +2 -1
- package/src/networking/outboundQueue.ts +98 -0
- package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +5 -1
- package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +11 -13
- package/src/networking/xmpp/getRoomsPaged.xmpp.ts +27 -3
- package/src/networking/xmpp/presenceInRoom.xmpp.ts +24 -9
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +2 -1
- package/src/networking/xmppClient.ts +317 -43
- package/src/roomStore/Middleware/unreadMidlleware.tsx +23 -5
- package/src/roomStore/roomsSlice.ts +177 -27
- package/src/types/models/media.model.ts +3 -0
- package/src/types/models/xmpp.model.ts +2 -1
- package/src/types/types.ts +15 -0
- package/src/utils/installPromiseRejectionTracker.ts +91 -0
- package/src/utils/resendMessage.ts +2 -1
|
@@ -26,6 +26,8 @@ var _inviteRoomRequest = require("./xmpp/inviteRoomRequest.xmpp");
|
|
|
26
26
|
var _getRooms = require("./xmpp/getRooms.xmpp");
|
|
27
27
|
var _handleStanzas = require("./xmpp/handleStanzas.xmpp");
|
|
28
28
|
var _devLogger = require("../utils/devLogger");
|
|
29
|
+
var _normalizeRoomJid = require("../helpers/normalizeRoomJid");
|
|
30
|
+
var _outboundQueue = require("./outboundQueue");
|
|
29
31
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
32
|
// Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
|
|
31
33
|
const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
|
|
@@ -54,7 +56,25 @@ class XmppClient {
|
|
|
54
56
|
reconnectAttempts = 0;
|
|
55
57
|
maxReconnectAttempts = 5;
|
|
56
58
|
reconnectDelay = 2000;
|
|
59
|
+
// Upper bound on the backoff delay. The old hard stop at
|
|
60
|
+
// maxReconnectAttempts gave up entirely after ~62s; now we keep retrying
|
|
61
|
+
// at a steady cadence on a long outage and just clamp the delay here.
|
|
62
|
+
maxReconnectDelay = 30000;
|
|
63
|
+
// Timestamp of the last forced reconnect so bursty external triggers
|
|
64
|
+
// (NetInfo + AppState + the provider watchdog firing together) can't
|
|
65
|
+
// spawn a reconnect storm.
|
|
66
|
+
lastReconnectAt = 0;
|
|
57
67
|
suppressReconnect = false;
|
|
68
|
+
// Tracked so close()/disconnect() can cancel a pending reconnect —
|
|
69
|
+
// otherwise a scheduleReconnect() timer fires after logout and (until
|
|
70
|
+
// suppressReconnect short-circuits it) keeps the dead instance alive.
|
|
71
|
+
reconnectTimer = null;
|
|
72
|
+
// Single-flight guard for reconnect(). Multiple triggers can fire near-
|
|
73
|
+
// simultaneously (AppState 'active' + NetInfo restore + a scheduled
|
|
74
|
+
// timer). Without this, two overlapping reconnect()s each spawn a fresh
|
|
75
|
+
// underlying client and one is leaked with its `stanza` handler still
|
|
76
|
+
// bound → duplicate stanza dispatch into redux.
|
|
77
|
+
reconnecting = false;
|
|
58
78
|
|
|
59
79
|
// Set when SASL fails with `not-authorized` (typically a stale JWT-
|
|
60
80
|
// derived XMPP password after idle). Triggers the credentialsProvider
|
|
@@ -62,6 +82,9 @@ class XmppClient {
|
|
|
62
82
|
lastAuthError = null;
|
|
63
83
|
credentialsProvider = null;
|
|
64
84
|
credentialsRefreshInFlight = null;
|
|
85
|
+
// Fired by the provider on every 'online' so it can re-join MUC rooms
|
|
86
|
+
// after a reconnect (bug #21 — reconnected but not in the room).
|
|
87
|
+
onOnlineCallback = null;
|
|
65
88
|
|
|
66
89
|
// ---- QoS state (mirrors web XmppClient) ----------------------------
|
|
67
90
|
presencesReady = false;
|
|
@@ -92,6 +115,12 @@ class XmppClient {
|
|
|
92
115
|
this.credentialsProvider = provider;
|
|
93
116
|
}
|
|
94
117
|
|
|
118
|
+
/** Install a callback invoked on every successful 'online'. The provider
|
|
119
|
+
* uses it to re-join MUC rooms after a reconnect. */
|
|
120
|
+
setOnOnline(cb) {
|
|
121
|
+
this.onOnlineCallback = cb;
|
|
122
|
+
}
|
|
123
|
+
|
|
95
124
|
/** Swap in fresh credentials before the next reconnect. */
|
|
96
125
|
updateCredentials(username, password) {
|
|
97
126
|
this.username = username;
|
|
@@ -250,11 +279,22 @@ class XmppClient {
|
|
|
250
279
|
this.host = this.xmppSettings?.host || url.match(/wss:\/\/([^:/]+)/)?.[1] || '';
|
|
251
280
|
this.conference = this.xmppSettings?.conference || `conference.${this.host}`;
|
|
252
281
|
this.status = 'connecting';
|
|
282
|
+
|
|
283
|
+
// Defensive: if a previous underlying client is still referenced
|
|
284
|
+
// (initializeClient reached from a path other than reconnect()),
|
|
285
|
+
// detach its handlers before we overwrite the ref so the orphaned
|
|
286
|
+
// client can't keep dispatching stanzas into redux.
|
|
287
|
+
try {
|
|
288
|
+
this.detachEventListeners();
|
|
289
|
+
} catch {}
|
|
253
290
|
this.client = _client.default.client({
|
|
254
291
|
service: url,
|
|
255
292
|
username: (0, _walletUsername.walletToUsername)(this.username),
|
|
256
293
|
password: this.password
|
|
257
294
|
});
|
|
295
|
+
try {
|
|
296
|
+
this.client?.reconnect?.stop?.();
|
|
297
|
+
} catch {}
|
|
258
298
|
|
|
259
299
|
// Concurrent room preloads each register their own short-lived
|
|
260
300
|
// 'stanza' handler (getHistory, getRooms, getChatsPrivateStore,
|
|
@@ -282,7 +322,18 @@ class XmppClient {
|
|
|
282
322
|
const to = stanza?.attrs?.to || '';
|
|
283
323
|
(0, _devLogger.pushLog)('xmpp', `→ ${tag}${id ? ` id=${id}` : ''}${to ? ` to=${to.split('/')[0]}` : ''}`, stanza?.toString ? stanza.toString() : undefined);
|
|
284
324
|
} catch {}
|
|
285
|
-
|
|
325
|
+
const result = origSend(stanza);
|
|
326
|
+
// Most stanza helpers fire-and-forget `client.send(...)`
|
|
327
|
+
// without awaiting/catching. On @xmpp/client builds where
|
|
328
|
+
// send() returns a Promise, a transient send failure (e.g.
|
|
329
|
+
// mid-reconnect) then surfaces as a red-screen "Uncaught (in
|
|
330
|
+
// promise, id: N)" (#4). Attach a no-op catch so the
|
|
331
|
+
// rejection is considered handled — callers that DO await/
|
|
332
|
+
// catch still get it, because we return the SAME promise.
|
|
333
|
+
if (result && typeof result.catch === 'function') {
|
|
334
|
+
result.catch(() => {});
|
|
335
|
+
}
|
|
336
|
+
return result;
|
|
286
337
|
};
|
|
287
338
|
// Property may be non-writable on some builds; defineProperty
|
|
288
339
|
// gives us a clearer error than a plain assignment.
|
|
@@ -302,14 +353,35 @@ class XmppClient {
|
|
|
302
353
|
this.lastAuthError = 'not-authorized';
|
|
303
354
|
}
|
|
304
355
|
this.status = 'error';
|
|
356
|
+
// A connect-time failure lands in 'error', which — unlike a
|
|
357
|
+
// 'disconnect' after being online — has no other retry path
|
|
358
|
+
// (onError doesn't reschedule; the provider only reacts to
|
|
359
|
+
// 'offline'). Schedule a backoff retry so a failed initial or
|
|
360
|
+
// reconnect attempt recovers on its own. reconnect() refreshes
|
|
361
|
+
// creds first when the failure was a SASL not-authorized.
|
|
362
|
+
if (!this.suppressReconnect) {
|
|
363
|
+
try {
|
|
364
|
+
this.scheduleReconnect();
|
|
365
|
+
} catch {}
|
|
366
|
+
}
|
|
305
367
|
});
|
|
306
368
|
} catch (error) {
|
|
307
369
|
console.error('Error initializing client:', error);
|
|
308
370
|
this.status = 'error';
|
|
309
371
|
}
|
|
310
372
|
}
|
|
373
|
+
|
|
374
|
+
// Stored so detachEventListeners() can remove exactly the handlers we
|
|
375
|
+
// added (not xmpp.js's internal ones). Without this a re-login left the
|
|
376
|
+
// previous instance's `stanza` handler bound, double-dispatching every
|
|
377
|
+
// incoming stanza into the (new session's) redux store.
|
|
378
|
+
|
|
311
379
|
attachEventListeners() {
|
|
312
|
-
|
|
380
|
+
// Idempotent: drop any previously-attached handlers first so a
|
|
381
|
+
// reconnect that re-runs initializeClient on a fresh underlying
|
|
382
|
+
// client doesn't stack duplicates.
|
|
383
|
+
this.detachEventListeners();
|
|
384
|
+
this.onDisconnect = () => {
|
|
313
385
|
console.log('XMPP disconnected.');
|
|
314
386
|
this.status = 'offline';
|
|
315
387
|
try {
|
|
@@ -317,8 +389,19 @@ class XmppClient {
|
|
|
317
389
|
// that don't reference it; tree-shaken via dead-code elim.
|
|
318
390
|
(0, _devLogger.pushLog)('xmpp', 'disconnect');
|
|
319
391
|
} catch {}
|
|
320
|
-
|
|
321
|
-
|
|
392
|
+
// Self-heal at the socket level. The provider's reconnect effect
|
|
393
|
+
// keys on `client.status`, but that's a mutated class field React
|
|
394
|
+
// does NOT track — so a silent socket drop (e.g. JS paused by the
|
|
395
|
+
// debugger, iOS WebSocket suspend) never re-runs the effect and the
|
|
396
|
+
// client sits 'offline' forever (sends then queue and time out).
|
|
397
|
+
// Driving reconnect here makes recovery independent of React.
|
|
398
|
+
if (!this.suppressReconnect) {
|
|
399
|
+
try {
|
|
400
|
+
this.scheduleReconnect();
|
|
401
|
+
} catch {}
|
|
402
|
+
}
|
|
403
|
+
};
|
|
404
|
+
this.onOnline = () => {
|
|
322
405
|
console.log('XMPP online.', new Date());
|
|
323
406
|
this.status = 'online';
|
|
324
407
|
this.presencesReady = true;
|
|
@@ -326,8 +409,30 @@ class XmppClient {
|
|
|
326
409
|
try {
|
|
327
410
|
(0, _devLogger.pushLog)('xmpp', 'online', this.username);
|
|
328
411
|
} catch {}
|
|
329
|
-
|
|
330
|
-
|
|
412
|
+
// Notify the provider that the session is live again. On a RECONNECT
|
|
413
|
+
// (new stream) the client is no longer joined to any MUC, so the
|
|
414
|
+
// provider must re-send room presences — otherwise messages get a
|
|
415
|
+
// local double-tick but never reach the room (bug #21). Harmless on
|
|
416
|
+
// the first connect (room list not loaded yet → joins nothing; the
|
|
417
|
+
// bootstrap's own allRoomPresences handles that pass).
|
|
418
|
+
try {
|
|
419
|
+
this.onOnlineCallback?.();
|
|
420
|
+
} catch (err) {
|
|
421
|
+
console.warn('onOnline callback failed', err);
|
|
422
|
+
}
|
|
423
|
+
// Drain any sends that were buffered while the stream was down. The
|
|
424
|
+
// presence stanzas from onOnlineCallback above were written to the
|
|
425
|
+
// socket synchronously (allRoomPresences → presenceInRoom send the
|
|
426
|
+
// <presence> before yielding), so flushing here puts the message
|
|
427
|
+
// stanzas AFTER the joins on the same stream — XMPP's in-order
|
|
428
|
+
// per-stream processing guarantees the MUC join lands first.
|
|
429
|
+
try {
|
|
430
|
+
this.flushPendingSends();
|
|
431
|
+
} catch (err) {
|
|
432
|
+
console.warn('flushPendingSends failed', err);
|
|
433
|
+
}
|
|
434
|
+
};
|
|
435
|
+
this.onError = error => {
|
|
331
436
|
console.error('XMPP client error:', error);
|
|
332
437
|
if (isNotAuthorizedError(error)) {
|
|
333
438
|
this.lastAuthError = 'not-authorized';
|
|
@@ -335,8 +440,8 @@ class XmppClient {
|
|
|
335
440
|
try {
|
|
336
441
|
(0, _devLogger.pushLog)('xmpp', 'error', error && error.message || error);
|
|
337
442
|
} catch {}
|
|
338
|
-
}
|
|
339
|
-
this.
|
|
443
|
+
};
|
|
444
|
+
this.onStanza = stanza => {
|
|
340
445
|
try {
|
|
341
446
|
const tag = stanza?.name || 'stanza';
|
|
342
447
|
const id = stanza?.attrs?.id || '';
|
|
@@ -345,7 +450,35 @@ class XmppClient {
|
|
|
345
450
|
(0, _devLogger.pushLog)('xmpp', `← ${tag}${id ? ` id=${id}` : ''}${type ? ` type=${type}` : ''}${from ? ` from=${from.split('/')[0]}` : ''}`, stanza?.toString ? stanza.toString() : undefined);
|
|
346
451
|
} catch {}
|
|
347
452
|
_handleStanzas.handleStanza.bind(this, stanza, this)();
|
|
348
|
-
}
|
|
453
|
+
};
|
|
454
|
+
this.client.on('disconnect', this.onDisconnect);
|
|
455
|
+
this.client.on('online', this.onOnline);
|
|
456
|
+
this.client.on('error', this.onError);
|
|
457
|
+
this.client.on('stanza', this.onStanza);
|
|
458
|
+
}
|
|
459
|
+
detachEventListeners() {
|
|
460
|
+
const c = this.client;
|
|
461
|
+
if (!c?.removeListener) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
try {
|
|
465
|
+
if (this.onDisconnect) {
|
|
466
|
+
c.removeListener('disconnect', this.onDisconnect);
|
|
467
|
+
}
|
|
468
|
+
if (this.onOnline) {
|
|
469
|
+
c.removeListener('online', this.onOnline);
|
|
470
|
+
}
|
|
471
|
+
if (this.onError) {
|
|
472
|
+
c.removeListener('error', this.onError);
|
|
473
|
+
}
|
|
474
|
+
if (this.onStanza) {
|
|
475
|
+
c.removeListener('stanza', this.onStanza);
|
|
476
|
+
}
|
|
477
|
+
} catch {}
|
|
478
|
+
this.onDisconnect = undefined;
|
|
479
|
+
this.onOnline = undefined;
|
|
480
|
+
this.onError = undefined;
|
|
481
|
+
this.onStanza = undefined;
|
|
349
482
|
}
|
|
350
483
|
|
|
351
484
|
/**
|
|
@@ -382,38 +515,96 @@ class XmppClient {
|
|
|
382
515
|
if (this.suppressReconnect) {
|
|
383
516
|
return;
|
|
384
517
|
}
|
|
385
|
-
if (this.
|
|
386
|
-
console.error('Max reconnect attempts reached.');
|
|
518
|
+
if (this.reconnecting || this.reconnectTimer) {
|
|
387
519
|
return;
|
|
388
520
|
}
|
|
389
521
|
this.reconnectAttempts++;
|
|
390
|
-
const
|
|
522
|
+
const exp = Math.min(this.reconnectAttempts - 1, Math.max(0, this.maxReconnectAttempts));
|
|
523
|
+
const delay = Math.min(this.maxReconnectDelay, this.reconnectDelay * Math.pow(2, exp));
|
|
391
524
|
console.log(`Reconnecting attempt ${this.reconnectAttempts} in ${delay}ms`);
|
|
392
|
-
|
|
525
|
+
// No clearTimeout needed — the guard above guarantees no pending timer.
|
|
526
|
+
this.reconnectTimer = setTimeout(() => {
|
|
527
|
+
this.reconnectTimer = null;
|
|
528
|
+
// The connection may have recovered on its own (xmpp.js auto-
|
|
529
|
+
// reconnect) between scheduling and firing — don't tear down a
|
|
530
|
+
// healthy stream. forceReconnect() bypasses this by calling
|
|
531
|
+
// reconnect() directly.
|
|
532
|
+
if (this.status === 'online') {
|
|
533
|
+
this.reconnectAttempts = 0;
|
|
534
|
+
return;
|
|
535
|
+
}
|
|
536
|
+
this.reconnect();
|
|
537
|
+
}, delay);
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Force an immediate reconnect, resetting the backoff counter. Called
|
|
542
|
+
* by the provider when NetInfo reports the network came back or the app
|
|
543
|
+
* returned to the foreground — we don't want to wait out the existing
|
|
544
|
+
* exponential delay (or a maxed-out attempt count) in those cases.
|
|
545
|
+
*/
|
|
546
|
+
forceReconnect() {
|
|
547
|
+
if (this.suppressReconnect) {
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
// Debounce bursts: NetInfo restore + AppState 'active' + the provider
|
|
551
|
+
// watchdog can fire within the same instant. reconnect() dedups
|
|
552
|
+
// CONCURRENT calls, but sequential ones (one finishes, the next
|
|
553
|
+
// arrives) would still each tear down + re-create the client. Ignore
|
|
554
|
+
// forces within 2s of the last one.
|
|
555
|
+
const now = Date.now();
|
|
556
|
+
if (now - this.lastReconnectAt < 2000) {
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
this.lastReconnectAt = now;
|
|
560
|
+
if (this.reconnectTimer) {
|
|
561
|
+
clearTimeout(this.reconnectTimer);
|
|
562
|
+
this.reconnectTimer = null;
|
|
563
|
+
}
|
|
564
|
+
this.reconnectAttempts = 0;
|
|
565
|
+
this.reconnect();
|
|
393
566
|
}
|
|
394
567
|
async reconnect() {
|
|
395
568
|
if (this.suppressReconnect) {
|
|
396
569
|
return;
|
|
397
570
|
}
|
|
571
|
+
// Single-flight: ignore overlapping triggers (AppState + NetInfo +
|
|
572
|
+
// scheduled timer) so we never spawn two underlying clients and leak
|
|
573
|
+
// one with live listeners (duplicate stanza dispatch).
|
|
574
|
+
if (this.reconnecting) {
|
|
575
|
+
console.log('reconnect already in progress — skip');
|
|
576
|
+
return;
|
|
577
|
+
}
|
|
578
|
+
this.reconnecting = true;
|
|
398
579
|
console.log('Attempting to reconnect xmpp client...');
|
|
580
|
+
try {
|
|
581
|
+
// If the last failure was a SASL `not-authorized` (typically a stale
|
|
582
|
+
// JWT-derived XMPP password after idle), try to fetch fresh creds
|
|
583
|
+
// before retrying. Without this, reconnect retries with the same
|
|
584
|
+
// stale password forever and the user has to kill the app.
|
|
585
|
+
if (this.lastAuthError === 'not-authorized' && this.credentialsProvider) {
|
|
586
|
+
try {
|
|
587
|
+
await this.refreshCredentialsOnce();
|
|
588
|
+
} catch (err) {
|
|
589
|
+
console.warn('XMPP credential refresh failed; reconnecting with cached creds', err);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
399
592
|
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
593
|
+
// Tear the OLD underlying client down FULLY before spinning up a new
|
|
594
|
+
// one: detach our handlers (so its `stanza` handler can't keep
|
|
595
|
+
// dispatching) and stop it. detachEventListeners() must run while
|
|
596
|
+
// `this.client` still points at the old client — i.e. before
|
|
597
|
+
// initializeClient() reassigns it.
|
|
598
|
+
const old = this.client;
|
|
599
|
+
if (old) {
|
|
600
|
+
this.detachEventListeners();
|
|
601
|
+
try {
|
|
602
|
+
await old.stop();
|
|
603
|
+
} catch {}
|
|
409
604
|
}
|
|
410
|
-
}
|
|
411
|
-
if (this.client) {
|
|
412
|
-
this.client.stop().finally(() => {
|
|
413
|
-
this.initializeClient();
|
|
414
|
-
});
|
|
415
|
-
} else {
|
|
416
605
|
this.initializeClient();
|
|
606
|
+
} finally {
|
|
607
|
+
this.reconnecting = false;
|
|
417
608
|
}
|
|
418
609
|
}
|
|
419
610
|
|
|
@@ -435,6 +626,13 @@ class XmppClient {
|
|
|
435
626
|
try {
|
|
436
627
|
const fresh = await provider();
|
|
437
628
|
if (fresh?.username && fresh?.password) {
|
|
629
|
+
// Apply whatever the provider returns and retry. We do NOT try to
|
|
630
|
+
// detect "auth expired" by comparing passwords — a stable
|
|
631
|
+
// xmppPassword (e.g. deterministic from the JWT/wallet) is the
|
|
632
|
+
// NORMAL case for a transient blip, and treating it as expiry
|
|
633
|
+
// falsely bricked recoverable sessions (sending stopped). If the
|
|
634
|
+
// creds really are stale we simply get not-authorized again and
|
|
635
|
+
// retry, which is the confirmed-good 26.5.7 behaviour.
|
|
438
636
|
this.updateCredentials(fresh.username, fresh.password);
|
|
439
637
|
this.lastAuthError = null;
|
|
440
638
|
}
|
|
@@ -451,7 +649,17 @@ class XmppClient {
|
|
|
451
649
|
return this.close();
|
|
452
650
|
}
|
|
453
651
|
async close() {
|
|
652
|
+
// Cancel any pending reconnect so a stale timer can't resurrect this
|
|
653
|
+
// instance after teardown/logout.
|
|
654
|
+
if (this.reconnectTimer) {
|
|
655
|
+
clearTimeout(this.reconnectTimer);
|
|
656
|
+
this.reconnectTimer = null;
|
|
657
|
+
}
|
|
454
658
|
if (this.client) {
|
|
659
|
+
// Detach OUR handlers first so a late stanza during the close
|
|
660
|
+
// handshake can't re-enter handleStanza and dispatch into a store
|
|
661
|
+
// that's being wiped (or, on re-login, the new session's store).
|
|
662
|
+
this.detachEventListeners();
|
|
455
663
|
try {
|
|
456
664
|
await this.client.stop();
|
|
457
665
|
console.log('XMPP client connection closed.');
|
|
@@ -460,6 +668,11 @@ class XmppClient {
|
|
|
460
668
|
}
|
|
461
669
|
}
|
|
462
670
|
this.status = 'offline';
|
|
671
|
+
this.presencesReady = false;
|
|
672
|
+
// Permanent teardown (logout / unmount) — drop buffered sends so they
|
|
673
|
+
// don't replay into the next session. Reconnect uses old.stop(), NOT
|
|
674
|
+
// close(), so the queue still survives a transient drop+reconnect.
|
|
675
|
+
(0, _outboundQueue.clearOutboundSends)();
|
|
463
676
|
}
|
|
464
677
|
getRoomsStanza = async () => {
|
|
465
678
|
await (0, _getRooms.getRooms)(this.client);
|
|
@@ -474,10 +687,10 @@ class XmppClient {
|
|
|
474
687
|
await (0, _inviteRoomRequest.inviteRoomRequest)(this.client, to, roomJid);
|
|
475
688
|
}
|
|
476
689
|
leaveTheRoomStanza = roomJID => {
|
|
477
|
-
(0, _leaveTheRoom.leaveTheRoom)(roomJID, this.client);
|
|
690
|
+
(0, _leaveTheRoom.leaveTheRoom)((0, _normalizeRoomJid.normalizeRoomJid)(roomJID, this.conference), this.client);
|
|
478
691
|
};
|
|
479
692
|
presenceInRoomStanza = roomJID => {
|
|
480
|
-
(0, _presenceInRoom.presenceInRoom)(this.client, roomJID);
|
|
693
|
+
(0, _presenceInRoom.presenceInRoom)(this.client, (0, _normalizeRoomJid.normalizeRoomJid)(roomJID, this.conference));
|
|
481
694
|
};
|
|
482
695
|
getHistoryStanza = async (chatJID, max, before, id, options) => {
|
|
483
696
|
if (options?.coalesceRoom) {
|
|
@@ -492,21 +705,49 @@ class XmppClient {
|
|
|
492
705
|
return await (0, _getHistory.getHistory)(this.client, chatJID, max, before, id);
|
|
493
706
|
};
|
|
494
707
|
getLastMessageArchiveStanza(roomJID) {
|
|
495
|
-
(0, _getLastMessageArchive.getLastMessage)(this.client, roomJID);
|
|
708
|
+
(0, _getLastMessageArchive.getLastMessage)(this.client, (0, _normalizeRoomJid.normalizeRoomJid)(roomJID, this.conference));
|
|
496
709
|
}
|
|
497
710
|
setRoomImageStanza = (roomJid, roomThumbnail, type, roomBackground) => {
|
|
498
711
|
(0, _setRoomImage.setRoomImage)(roomJid, roomThumbnail, type, this.client, roomBackground);
|
|
499
712
|
};
|
|
500
713
|
getRoomInfoStanza = roomJID => {
|
|
501
|
-
(0, _getRoomInfo.getRoomInfo)(roomJID, this.client);
|
|
714
|
+
(0, _getRoomInfo.getRoomInfo)((0, _normalizeRoomJid.normalizeRoomJid)(roomJID, this.conference), this.client);
|
|
502
715
|
};
|
|
503
716
|
getRoomMembersStanza = roomJID => {
|
|
504
|
-
(0, _getRoomMembers.getRoomMembers)(roomJID, this.client);
|
|
717
|
+
(0, _getRoomMembers.getRoomMembers)((0, _normalizeRoomJid.normalizeRoomJid)(roomJID, this.conference), this.client);
|
|
505
718
|
};
|
|
506
719
|
|
|
720
|
+
/**
|
|
721
|
+
* True when the underlying stream is live enough to actually put a
|
|
722
|
+
* stanza on the wire. Used to gate sends: when false we buffer instead
|
|
723
|
+
* of firing a fire-and-forget stanza into a dead/half-open socket
|
|
724
|
+
* (which is silently dropped and only caught by the 30s watchdog).
|
|
725
|
+
*/
|
|
726
|
+
isStreamReady() {
|
|
727
|
+
return !!this.client && this.status === 'online' && !this.reconnecting;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
/** Replay buffered sends against this (now-online) client, in order. */
|
|
731
|
+
flushPendingSends() {
|
|
732
|
+
(0, _outboundQueue.flushOutboundSends)(this, Date.now());
|
|
733
|
+
}
|
|
734
|
+
|
|
507
735
|
//messages
|
|
508
736
|
sendMessage = (roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId) => {
|
|
737
|
+
// Stream down (start race / reconnect window): buffer and replay on
|
|
738
|
+
// the next 'online' instead of losing the stanza. Returns false so
|
|
739
|
+
// callers know the send was deferred, not delivered.
|
|
740
|
+
if (!this.isStreamReady()) {
|
|
741
|
+
(0, _outboundQueue.enqueueOutboundSend)({
|
|
742
|
+
optimisticId: customId || `send-text-message-${Date.now()}`,
|
|
743
|
+
roomJID,
|
|
744
|
+
enqueuedAt: Date.now(),
|
|
745
|
+
send: c => c.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId)
|
|
746
|
+
});
|
|
747
|
+
return false;
|
|
748
|
+
}
|
|
509
749
|
(0, _sendTextMessage.sendTextMessage)(this.client, roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, this.devServer || DEFAULT_DEV_SERVER, customId);
|
|
750
|
+
return true;
|
|
510
751
|
};
|
|
511
752
|
deleteMessageStanza(room, msgId) {
|
|
512
753
|
(0, _deleteMessage.deleteMessage)(this.client, room, msgId);
|
|
@@ -551,6 +792,19 @@ class XmppClient {
|
|
|
551
792
|
}
|
|
552
793
|
}
|
|
553
794
|
sendMediaMessageStanza(roomJID, data, customId) {
|
|
795
|
+
// Media: the file is already uploaded by the time we get here; only the
|
|
796
|
+
// stanza needs the stream. Buffer + replay on reconnect if it's down so
|
|
797
|
+
// the upload isn't wasted (otherwise the stanza is lost and the media
|
|
798
|
+
// bubble sits pending until the 30s watchdog fails it).
|
|
799
|
+
if (!this.isStreamReady()) {
|
|
800
|
+
(0, _outboundQueue.enqueueOutboundSend)({
|
|
801
|
+
optimisticId: customId || `send-media-message-${Date.now()}`,
|
|
802
|
+
roomJID,
|
|
803
|
+
enqueuedAt: Date.now(),
|
|
804
|
+
send: c => c.sendMediaMessageStanza(roomJID, data, customId)
|
|
805
|
+
});
|
|
806
|
+
return undefined;
|
|
807
|
+
}
|
|
554
808
|
return (0, _sendMediaMessage.sendMediaMessage)(this.client, roomJID, data, customId, this.devServer || DEFAULT_DEV_SERVER);
|
|
555
809
|
}
|
|
556
810
|
|
|
@@ -572,9 +826,14 @@ class XmppClient {
|
|
|
572
826
|
sendMessageReactionStanza(_messageId, _roomJid, _reactionsList, _reactionSymbol) {
|
|
573
827
|
console.warn('sendMessageReactionStanza: not implemented in RN xmpp client');
|
|
574
828
|
}
|
|
575
|
-
sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, _langSource) {
|
|
829
|
+
sendTextMessageWithTranslateTagStanza(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, _langSource, customId) {
|
|
576
830
|
// No translate tag support yet — fall back to a regular text send.
|
|
577
|
-
|
|
831
|
+
// Forward the caller's customId so the optimistic message (heap/redux)
|
|
832
|
+
// reconciles with the server echo. Without it, translated sends went
|
|
833
|
+
// out with no client id → the echo carried a server-assigned id and
|
|
834
|
+
// surfaced as a stuck-pending message PLUS a duplicate (affected both
|
|
835
|
+
// the live translated-send path and resend).
|
|
836
|
+
this.sendMessage(roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId);
|
|
578
837
|
}
|
|
579
838
|
}
|
|
580
839
|
exports.XmppClient = XmppClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_client","_interopRequireDefault","require","_walletUsername","_sendMediaMessage","_getChatsPrivateStoreRequest","_actionSetTimestampToPrivateStore","_flushLastViewedToPrivateStore","_sendTypingRequest","_getHistory","_sendTextMessage","_deleteMessage","_presenceInRoom","_getLastMessageArchive","_createRoom","_setRoomImage","_getRoomMembers","_getRoomInfo","_leaveTheRoom","_editMessage","_inviteRoomRequest","_getRooms","_handleStanzas","_devLogger","e","__esModule","default","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","suppressReconnect","lastAuthError","credentialsProvider","credentialsRefreshInFlight","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","getHistory","cur","delete","set","startedAt","s","url","match","xmpp","walletToUsername","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","devPushLog","split","undefined","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","catch","on","log","from","handleStanza","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","scheduleReconnect","delay","Math","pow","reconnect","refreshCredentialsOnce","stop","finally","fresh","disconnect","options","close","getRoomsStanza","getRooms","createRoomStanza","title","description","createRoom","inviteRoomRequestStanza","roomJid","inviteRoomRequest","leaveTheRoomStanza","leaveTheRoom","presenceInRoom","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","getLastMessage","setRoomImageStanza","roomThumbnail","roomBackground","setRoomImage","getRoomInfoStanza","getRoomInfo","getRoomMembersStanza","getRoomMembers","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","sendTextMessage","deleteMessageStanza","room","msgId","deleteMessage","editMessageStanza","editMessage","sendTypingRequestStanza","chatId","fullName","sendTypingRequest","getChatsPrivateStoreRequestStanza","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStoreStanza","timestamp","chats","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStoreStanza","rooms","opts","flushLastViewedToPrivateStore","sendMediaMessageStanza","data","sendMediaMessage","setVCardStanza","_xmppUsername","createPrivateRoomStanza","result","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource","exports","_default"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_client","_interopRequireDefault","require","_walletUsername","_sendMediaMessage","_getChatsPrivateStoreRequest","_actionSetTimestampToPrivateStore","_flushLastViewedToPrivateStore","_sendTypingRequest","_getHistory","_sendTextMessage","_deleteMessage","_presenceInRoom","_getLastMessageArchive","_createRoom","_setRoomImage","_getRoomMembers","_getRoomInfo","_leaveTheRoom","_editMessage","_inviteRoomRequest","_getRooms","_handleStanzas","_devLogger","_normalizeRoomJid","_outboundQueue","e","__esModule","default","DEFAULT_DEV_SERVER","isNotAuthorizedError","err","condition","name","type","error","includes","message","text","toString","test","XmppClient","host","service","conference","status","password","reconnectAttempts","maxReconnectAttempts","reconnectDelay","maxReconnectDelay","lastReconnectAt","suppressReconnect","reconnectTimer","reconnecting","lastAuthError","credentialsProvider","credentialsRefreshInFlight","onOnlineCallback","presencesReady","disableLastRead","activeRoomJID","activeRoomBoostUntil","softPauseUntil","mamInFlightByRoom","Map","maxInFlightHistory","softPauseAfterSendMs","activeRoomBoostTtlMs","alwaysPrioritizeActiveRoom","checkOnline","client","setCredentialsProvider","provider","setOnOnline","cb","updateCredentials","username","constructor","xmppSettings","devServer","qos","historyQoS","initializeClient","setActiveRoomJid","roomJID","promoteRoomHistory","_roomJID","Date","now","isActiveRoomGateOpen","size","onCriticalSend","_messageId","prioritizeRoomPresence","presenceInRoomStanza","enqueueHistoryTask","params","chatJID","max","before","id","source","existing","get","sourceRank","promise","Promise","r","setTimeout","wait","handle","p","getHistory","cur","delete","set","startedAt","s","url","match","detachEventListeners","xmpp","walletToUsername","reconnect","stop","setMaxListeners","origSend","send","bind","wrapped","stanza","tag","attrs","to","devPushLog","split","undefined","result","catch","Object","defineProperty","value","writable","configurable","console","warn","attachEventListeners","start","scheduleReconnect","onDisconnect","log","onOnline","flushPendingSends","onError","onStanza","from","handleStanza","on","c","removeListener","waitForOnline","timeoutMs","resolve","reject","tick","Error","ensureConnected","timeout","exp","Math","min","delay","pow","forceReconnect","clearTimeout","refreshCredentialsOnce","old","fresh","disconnect","options","close","clearOutboundSends","getRoomsStanza","getRooms","createRoomStanza","title","description","createRoom","inviteRoomRequestStanza","roomJid","inviteRoomRequest","leaveTheRoomStanza","leaveTheRoom","normalizeRoomJid","presenceInRoom","getHistoryStanza","coalesceRoom","getLastMessageArchiveStanza","getLastMessage","setRoomImageStanza","roomThumbnail","roomBackground","setRoomImage","getRoomInfoStanza","getRoomInfo","getRoomMembersStanza","getRoomMembers","isStreamReady","flushOutboundSends","sendMessage","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","enqueueOutboundSend","optimisticId","enqueuedAt","sendTextMessage","deleteMessageStanza","room","msgId","deleteMessage","editMessageStanza","editMessage","sendTypingRequestStanza","chatId","fullName","sendTypingRequest","getChatsPrivateStoreRequestStanza","getChatsPrivateStoreRequest","actionSetTimestampToPrivateStoreStanza","timestamp","chats","actionSetTimestampToPrivateStore","flushLastViewedToPrivateStoreStanza","rooms","opts","flushLastViewedToPrivateStore","sendMediaMessageStanza","data","sendMediaMessage","setVCardStanza","_xmppUsername","createPrivateRoomStanza","sendMessageReactionStanza","_roomJid","_reactionsList","_reactionSymbol","sendTextMessageWithTranslateTagStanza","_langSource","exports","_default"],"sourceRoot":"../../../src","sources":["networking/xmppClient.ts"],"mappings":"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","ignoreList":[]}
|