@ethora/chat-component-rn 26.5.7 → 26.5.11
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 +191 -0
- package/README.md +95 -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/ChatHeader.js +31 -16
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +78 -38
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +74 -27
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +16 -11
- 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/InteractionsOverlay.js +119 -0
- package/lib/commonjs/components/MessageBubble/InteractionsOverlay.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/Message.js +122 -41
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +132 -44
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +155 -52
- package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +20 -5
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.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 +144 -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/ModalHeaderComponent.js +10 -0
- package/lib/commonjs/components/Modals/ModalHeaderComponent.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 +17 -13
- 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/StyledComponents.js +6 -3
- package/lib/commonjs/components/styled/StyledComponents.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 +81 -16
- 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/mimeToExtension.js +56 -0
- package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
- 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 +36 -11
- 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/api-requests/rooms.api.js +29 -4
- package/lib/commonjs/networking/api-requests/rooms.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/ChatHeader.js +31 -16
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +80 -40
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +74 -27
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +17 -12
- 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/InteractionsOverlay.js +112 -0
- package/lib/module/components/MessageBubble/InteractionsOverlay.js.map +1 -0
- package/lib/module/components/MessageBubble/Message.js +123 -42
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +134 -46
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js +155 -52
- package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +20 -5
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.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 +148 -26
- 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/ModalHeaderComponent.js +10 -0
- package/lib/module/components/Modals/ModalHeaderComponent.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 +17 -13
- 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/StyledComponents.js +6 -3
- package/lib/module/components/styled/StyledComponents.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 +82 -17
- 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/mimeToExtension.js +55 -0
- package/lib/module/helpers/mimeToExtension.js.map +1 -1
- 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 +36 -11
- 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/api-requests/rooms.api.js +29 -4
- package/lib/module/networking/api-requests/rooms.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/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/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/InteractionsOverlay.d.ts +13 -0
- package/lib/typescript/components/MessageBubble/InteractionsOverlay.d.ts.map +1 -0
- 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/ChatProfileModal/ChatProfileModal.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/ModalHeaderComponent.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/StyledComponents.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/mimeToExtension.d.ts +8 -0
- package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
- 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/useLogout.d.ts +23 -1
- package/lib/typescript/hooks/useLogout.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/api-requests/rooms.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 +20 -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 +23 -4
- package/src/assets/icons.tsx +23 -14
- package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
- package/src/components/MainComponents/ChatHeader.tsx +46 -15
- package/src/components/MainComponents/ChatRoom.tsx +95 -66
- package/src/components/MainComponents/ChatWrapper.tsx +127 -42
- package/src/components/MainComponents/MediaMessage.tsx +14 -8
- 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/InteractionsOverlay.tsx +121 -0
- package/src/components/MessageBubble/Message.tsx +133 -63
- package/src/components/MessageBubble/MessageInteractions.tsx +146 -58
- package/src/components/Modals/AttachSheet/AttachSheet.tsx +146 -39
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +25 -3
- package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +161 -26
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
- package/src/components/Modals/Modal/Modal.tsx +4 -1
- package/src/components/Modals/ModalHeaderComponent.tsx +8 -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 +17 -13
- 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/StyledComponents.ts +6 -3
- 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 +76 -12
- 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/mimeToExtension.ts +64 -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 +36 -13
- 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/api-requests/rooms.api.ts +31 -7
- 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 +31 -0
- package/src/utils/installPromiseRejectionTracker.ts +91 -0
- package/src/utils/resendMessage.ts +2 -1
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
+
import { Platform } from 'react-native';
|
|
4
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
5
6
|
import { useXmppClient } from '../context/xmppProvider';
|
|
6
|
-
import { useDispatch, useSelector } from 'react-redux';
|
|
7
|
+
import { useDispatch, useSelector, useStore } from 'react-redux';
|
|
7
8
|
import { addRoomMessage, setEditAction } from '../roomStore/roomsSlice';
|
|
8
9
|
import { addMessageToHeap, clearMessageFailure, markMessageFailed } from '../roomStore/roomHeapSlice';
|
|
9
|
-
import {
|
|
10
|
+
import { uploadFileViaFetch } from '../networking/api-requests/auth.api';
|
|
11
|
+
import { enqueueOutboundSend } from '../networking/outboundQueue';
|
|
12
|
+
import { store } from '../roomStore';
|
|
13
|
+
import { getGlobalXmppClient } from '../utils/clientRegistry';
|
|
10
14
|
import { useEventHandlers } from './useEventHandlers';
|
|
15
|
+
// Watchdog: if a message stays "pending" (no server echo) for this
|
|
16
|
+
// long after the optimistic dispatch, mark it failed so the bubble
|
|
17
|
+
// flips out of the "sending..." state. Covers the silent-failure
|
|
18
|
+
// case (e.g. device offline before the message ever made it to the
|
|
19
|
+
// XMPP socket) — bug #18. Tuned generously so a brief network blip
|
|
20
|
+
// followed by reconnect within 30s still resolves naturally via the
|
|
21
|
+
// server echo.
|
|
22
|
+
const PENDING_WATCHDOG_MS = 30_000;
|
|
23
|
+
|
|
11
24
|
// Monotonic counter for stanza ids. Bumped on each send within a single
|
|
12
25
|
// process. Two rapid sends in the same millisecond used to collide on
|
|
13
26
|
// `send-text-message-${Date.now()}`; that collision made
|
|
@@ -16,11 +29,20 @@ import { useEventHandlers } from './useEventHandlers';
|
|
|
16
29
|
// whose body was whatever the last dispatch wrote.
|
|
17
30
|
let __sendIdSeq = 0;
|
|
18
31
|
const nextStanzaId = prefix => `${prefix}-${Date.now()}-${__sendIdSeq = __sendIdSeq + 1 >>> 0}`;
|
|
32
|
+
|
|
33
|
+
// Hard client-side cap on a single upload. The backend rejects oversized
|
|
34
|
+
// bodies with HTTP 413; SendInput blocks oversized files at pick time,
|
|
35
|
+
// and this mirrors that limit on every send path (including retries).
|
|
36
|
+
const MAX_MEDIA_BYTES = 50 * 1024 * 1024;
|
|
19
37
|
export const useSendMessage = _configOverride => {
|
|
20
38
|
const {
|
|
21
39
|
client
|
|
22
40
|
} = useXmppClient();
|
|
23
41
|
const dispatch = useDispatch();
|
|
42
|
+
// useStore gives us imperative getState() access for the watchdog —
|
|
43
|
+
// peek at the message's current pending/failed state from inside a
|
|
44
|
+
// setTimeout callback without re-rendering on every redux change.
|
|
45
|
+
const reduxStore = useStore();
|
|
24
46
|
|
|
25
47
|
// Split selectors so each returns a primitive/stable reference — the
|
|
26
48
|
// single-object selector above caused a "returned a different result
|
|
@@ -98,16 +120,56 @@ export const useSendMessage = _configOverride => {
|
|
|
98
120
|
message: optimisticMessage
|
|
99
121
|
}));
|
|
100
122
|
}
|
|
123
|
+
|
|
124
|
+
// Silent-failure watchdog (bug #18). If no echo lands within
|
|
125
|
+
// PENDING_WATCHDOG_MS, flip the bubble to "failed → tap to
|
|
126
|
+
// retry". We check at fire-time whether the message is still
|
|
127
|
+
// pending and not already marked failed by the catch path.
|
|
128
|
+
const watchdogTimer = setTimeout(() => {
|
|
129
|
+
const state = reduxStore.getState();
|
|
130
|
+
const roomMsgs = state.rooms?.rooms?.[activeRoomJID]?.messages || [];
|
|
131
|
+
const stillPending = roomMsgs.find(m => m.id === optimisticId && m.pending);
|
|
132
|
+
const alreadyFailed = state.roomHeapSlice?.failedMessages?.[optimisticId];
|
|
133
|
+
if (stillPending && !alreadyFailed) {
|
|
134
|
+
console.warn(`Send watchdog fired — message ${optimisticId} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
|
|
135
|
+
dispatch(markMessageFailed({
|
|
136
|
+
kind: 'text',
|
|
137
|
+
id: optimisticId,
|
|
138
|
+
roomJID: activeRoomJID,
|
|
139
|
+
body: message,
|
|
140
|
+
isReply,
|
|
141
|
+
isChecked,
|
|
142
|
+
mainMessage
|
|
143
|
+
}));
|
|
144
|
+
handleMessageFailed({
|
|
145
|
+
message,
|
|
146
|
+
roomJID: activeRoomJID,
|
|
147
|
+
error: new Error('Send timed out (no server echo)'),
|
|
148
|
+
messageType: 'text'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}, PENDING_WATCHDOG_MS);
|
|
101
152
|
try {
|
|
102
|
-
|
|
103
|
-
|
|
153
|
+
const effectiveClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
|
|
154
|
+
if (!effectiveClient) {
|
|
155
|
+
const anyClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
|
|
156
|
+
try {
|
|
157
|
+
anyClient?.forceReconnect?.();
|
|
158
|
+
} catch {}
|
|
159
|
+
enqueueOutboundSend({
|
|
160
|
+
optimisticId,
|
|
161
|
+
roomJID: activeRoomJID,
|
|
162
|
+
enqueuedAt: Date.now(),
|
|
163
|
+
send: c => c.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId)
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
104
166
|
}
|
|
105
167
|
// Pass the optimistic id as the stanza id so the server echoes
|
|
106
168
|
// it back with the same value — the reducer's dedupe lookup
|
|
107
169
|
// matches and the bubble flips from pending → delivered in-place
|
|
108
170
|
// (instead of rendering two copies, which is what happens when
|
|
109
171
|
// ids don't match).
|
|
110
|
-
|
|
172
|
+
effectiveClient.sendMessage(activeRoomJID, user.firstName, user.lastName, '', user.walletAddress, message, '', isReply || false, isChecked || false, mainMessage || '', optimisticId);
|
|
111
173
|
await handleMessageSent({
|
|
112
174
|
message,
|
|
113
175
|
roomJID: activeRoomJID,
|
|
@@ -115,6 +177,7 @@ export const useSendMessage = _configOverride => {
|
|
|
115
177
|
messageType: 'text'
|
|
116
178
|
});
|
|
117
179
|
} catch (error) {
|
|
180
|
+
clearTimeout(watchdogTimer);
|
|
118
181
|
dispatch(markMessageFailed({
|
|
119
182
|
kind: 'text',
|
|
120
183
|
id: optimisticId,
|
|
@@ -131,9 +194,37 @@ export const useSendMessage = _configOverride => {
|
|
|
131
194
|
messageType: 'text'
|
|
132
195
|
});
|
|
133
196
|
}
|
|
134
|
-
}, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed]);
|
|
197
|
+
}, [editAction, client, user, dispatch, handleMessageSent, handleMessageEdited, handleMessageFailed, reduxStore]);
|
|
135
198
|
const sendMedia = useCallback(async (data, type, activeRoomJID, isReply = false, isChecked = false, mainMessage = '', existingId) => {
|
|
136
199
|
client?.onCriticalSend?.(activeRoomJID);
|
|
200
|
+
|
|
201
|
+
// Defensive 50 MB guard on every send path (SendInput blocks it at
|
|
202
|
+
// pick time, but retries replay the saved payload straight here).
|
|
203
|
+
if (typeof data?.size === 'number' && data.size > MAX_MEDIA_BYTES) {
|
|
204
|
+
console.warn('media exceeds 50MB cap — not uploading', {
|
|
205
|
+
name: data?.name,
|
|
206
|
+
size: data?.size
|
|
207
|
+
});
|
|
208
|
+
if (existingId) {
|
|
209
|
+
dispatch(markMessageFailed({
|
|
210
|
+
kind: 'media',
|
|
211
|
+
id: existingId,
|
|
212
|
+
roomJID: activeRoomJID,
|
|
213
|
+
data,
|
|
214
|
+
type,
|
|
215
|
+
isReply,
|
|
216
|
+
isChecked,
|
|
217
|
+
mainMessage
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
handleMessageFailed({
|
|
221
|
+
message: 'media',
|
|
222
|
+
roomJID: activeRoomJID,
|
|
223
|
+
error: new Error('File exceeds the 50 MB upload limit'),
|
|
224
|
+
messageType: 'media'
|
|
225
|
+
});
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
137
228
|
const id = existingId || `send-media-message:${uuidv4()}`;
|
|
138
229
|
const optimisticTimestamp = Date.now();
|
|
139
230
|
const optimisticDate = new Date(optimisticTimestamp).toISOString();
|
|
@@ -188,10 +279,82 @@ export const useSendMessage = _configOverride => {
|
|
|
188
279
|
mainMessage
|
|
189
280
|
}));
|
|
190
281
|
}
|
|
282
|
+
|
|
283
|
+
// Silent-failure watchdog for media-send (bug #18). Same shape
|
|
284
|
+
// as the text path: if the optimistic bubble never gets the echo
|
|
285
|
+
// (e.g. upload completed but XMPP send is buffered offline), flip
|
|
286
|
+
// to failed → tap to retry.
|
|
287
|
+
const mediaWatchdog = setTimeout(() => {
|
|
288
|
+
const state = reduxStore.getState();
|
|
289
|
+
const roomMsgs = state.rooms?.rooms?.[activeRoomJID]?.messages || [];
|
|
290
|
+
const stillPending = roomMsgs.find(m => m.id === id && m.pending);
|
|
291
|
+
const alreadyFailed = state.roomHeapSlice?.failedMessages?.[id];
|
|
292
|
+
if (stillPending && !alreadyFailed) {
|
|
293
|
+
console.warn(`Media-send watchdog fired — ${id} stuck pending > ${PENDING_WATCHDOG_MS}ms; marking failed`);
|
|
294
|
+
dispatch(markMessageFailed({
|
|
295
|
+
kind: 'media',
|
|
296
|
+
id,
|
|
297
|
+
roomJID: activeRoomJID,
|
|
298
|
+
data,
|
|
299
|
+
type,
|
|
300
|
+
isReply,
|
|
301
|
+
isChecked,
|
|
302
|
+
mainMessage
|
|
303
|
+
}));
|
|
304
|
+
handleMessageFailed({
|
|
305
|
+
message: 'media',
|
|
306
|
+
roomJID: activeRoomJID,
|
|
307
|
+
error: new Error('Media send timed out (no server echo)'),
|
|
308
|
+
messageType: 'media'
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}, PENDING_WATCHDOG_MS);
|
|
312
|
+
|
|
313
|
+
// Help RN's FormData polyfill build a proper multipart/file part
|
|
314
|
+
// (instead of serialising the JS object as JSON). On iOS the
|
|
315
|
+
// picker can return ph:// or assets-library:// URIs for some
|
|
316
|
+
// legacy library items — those can't be read as files. Coerce
|
|
317
|
+
// to a file:// scheme when possible so the body is a real blob.
|
|
318
|
+
const fileBlob = {
|
|
319
|
+
uri: typeof data?.uri === 'string' ? data.uri.replace(/^assets-library:\/\//, 'file://') : data?.uri,
|
|
320
|
+
type: data?.type || data?.mimeType || type || 'application/octet-stream',
|
|
321
|
+
name: data?.name || data?.fileName || `media_${Date.now()}`
|
|
322
|
+
};
|
|
323
|
+
|
|
324
|
+
// Mirror the web client: a single multipart POST to /files/ with
|
|
325
|
+
// the file under the plural "files" field. We send it via fetch
|
|
326
|
+
// (not axios) because RN's fetch sets the multipart boundary on the
|
|
327
|
+
// Content-Type header correctly. The previous axios fallback omitted
|
|
328
|
+
// a valid boundary, so the server mis-parsed one file as many and
|
|
329
|
+
// rejected the request with HTTP 413 "TOO_MANY_FILES". The only
|
|
330
|
+
// retry is the documented singular-"file" fallback for deployments
|
|
331
|
+
// that 500 on the plural field (bug #10).
|
|
332
|
+
const tryUpload = async () => {
|
|
333
|
+
const fd = new FormData();
|
|
334
|
+
fd.append('files', fileBlob);
|
|
335
|
+
try {
|
|
336
|
+
return await uploadFileViaFetch(fd);
|
|
337
|
+
} catch (err) {
|
|
338
|
+
if (err?.response?.status === 500) {
|
|
339
|
+
console.warn('upload "files" field returned 500 — retrying with "file" (singular)', {
|
|
340
|
+
name: fileBlob.name,
|
|
341
|
+
type: fileBlob.type
|
|
342
|
+
});
|
|
343
|
+
const fd2 = new FormData();
|
|
344
|
+
fd2.append('file', fileBlob);
|
|
345
|
+
return await uploadFileViaFetch(fd2);
|
|
346
|
+
}
|
|
347
|
+
throw err;
|
|
348
|
+
}
|
|
349
|
+
};
|
|
191
350
|
try {
|
|
192
|
-
const
|
|
193
|
-
|
|
194
|
-
|
|
351
|
+
const response = await tryUpload();
|
|
352
|
+
// Upload succeeded — the stanza is now in flight. If the
|
|
353
|
+
// server echo arrives within the watchdog window the bubble
|
|
354
|
+
// flips normally; if not, the watchdog still fires and marks
|
|
355
|
+
// it failed. We don't clear the timer on upload success because
|
|
356
|
+
// the XMPP send could still fail silently.
|
|
357
|
+
|
|
195
358
|
for (const item of response.data.results) {
|
|
196
359
|
const messagePayload = {
|
|
197
360
|
firstName: user.firstName,
|
|
@@ -222,7 +385,21 @@ export const useSendMessage = _configOverride => {
|
|
|
222
385
|
// Stanza id == placeholder id so the MUC echo's outer
|
|
223
386
|
// <message id="..."> matches xmppId on the placeholder and
|
|
224
387
|
// insertMessageWithDelimiter merges in place + flips pending.
|
|
225
|
-
client
|
|
388
|
+
const effectiveMediaClient = client || [getGlobalXmppClient(), store.getState()?.chatSettingStore?.client].find(c => c && c.status === 'online');
|
|
389
|
+
if (effectiveMediaClient) {
|
|
390
|
+
effectiveMediaClient.sendMediaMessageStanza(activeRoomJID, messagePayload, id);
|
|
391
|
+
} else {
|
|
392
|
+
const anyMediaClient = client || getGlobalXmppClient() || store.getState()?.chatSettingStore?.client;
|
|
393
|
+
try {
|
|
394
|
+
anyMediaClient?.forceReconnect?.();
|
|
395
|
+
} catch {}
|
|
396
|
+
enqueueOutboundSend({
|
|
397
|
+
optimisticId: id,
|
|
398
|
+
roomJID: activeRoomJID,
|
|
399
|
+
enqueuedAt: Date.now(),
|
|
400
|
+
send: c => c.sendMediaMessageStanza(activeRoomJID, messagePayload, id)
|
|
401
|
+
});
|
|
402
|
+
}
|
|
226
403
|
}
|
|
227
404
|
await handleMessageSent({
|
|
228
405
|
message: 'media',
|
|
@@ -240,16 +417,30 @@ export const useSendMessage = _configOverride => {
|
|
|
240
417
|
}
|
|
241
418
|
});
|
|
242
419
|
} catch (error) {
|
|
420
|
+
// Upload (or stanza send) threw an explicit error. Clear the
|
|
421
|
+
// watchdog so it doesn't double-fire `markMessageFailed`.
|
|
422
|
+
clearTimeout(mediaWatchdog);
|
|
243
423
|
// Surface the real server payload so we can see why the upload
|
|
244
424
|
// was rejected (axios collapses the message to "Request failed
|
|
245
425
|
// with status code N"; the actual reason lives in
|
|
246
426
|
// `error.response.data`).
|
|
427
|
+
const uriStr = typeof data?.uri === 'string' ? data.uri : '';
|
|
428
|
+
const uriScheme = uriStr.match(/^([a-z]+):/i)?.[1] ?? 'unknown';
|
|
247
429
|
console.error('upload failed', {
|
|
248
430
|
status: error?.response?.status,
|
|
249
431
|
statusText: error?.response?.statusText,
|
|
250
432
|
serverBody: error?.response?.data,
|
|
251
433
|
requestUrl: error?.config?.url,
|
|
252
|
-
axiosMessage: error?.message
|
|
434
|
+
axiosMessage: error?.message,
|
|
435
|
+
axiosCode: error?.code,
|
|
436
|
+
axiosCauseMessage: error?.cause?.message,
|
|
437
|
+
uri: uriStr,
|
|
438
|
+
uriScheme,
|
|
439
|
+
mime: fileBlob.type,
|
|
440
|
+
fileSizeBytes: data?.size ?? null,
|
|
441
|
+
fileName: fileBlob.name,
|
|
442
|
+
platformOS: Platform.OS,
|
|
443
|
+
platformVersion: Platform.Version
|
|
253
444
|
});
|
|
254
445
|
dispatch(markMessageFailed({
|
|
255
446
|
kind: 'media',
|
|
@@ -268,7 +459,7 @@ export const useSendMessage = _configOverride => {
|
|
|
268
459
|
messageType: 'media'
|
|
269
460
|
});
|
|
270
461
|
}
|
|
271
|
-
}, [client, config, user, dispatch, handleMessageSent, handleMessageFailed]);
|
|
462
|
+
}, [client, config, user, dispatch, handleMessageSent, handleMessageFailed, reduxStore]);
|
|
272
463
|
|
|
273
464
|
// Retry a previously-failed send by replaying the saved payload from
|
|
274
465
|
// the heap. Clears the failure flag first so the bubble flips back to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","v4","uuidv4","useXmppClient","useDispatch","useSelector","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFile","useEventHandlers","__sendIdSeq","nextStanzaId","prefix","Date","now","useSendMessage","_configOverride","client","dispatch","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","Error","kind","sendMedia","data","type","existingId","optimisticTimestamp","displayName","fileSizeStr","size","String","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaData","FormData","append","response","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","sendMediaMessageStanza","metadata","fileData","fileType","uploadResults","console","status","statusText","serverBody","requestUrl","url","axiosMessage","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","messages","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,SAASC,aAAa,QAAQ,yBAAyB;AACvD,SAASC,WAAW,EAAEC,WAAW,QAAQ,aAAa;AACtD,SAASC,cAAc,EAAEC,aAAa,QAAQ,yBAAyB;AACvE,SACEC,gBAAgB,EAChBC,mBAAmB,EACnBC,iBAAiB,QACZ,4BAA4B;AACnC,SAASC,UAAU,QAAQ,qCAAqC;AAEhE,SAASC,gBAAgB,QAAQ,oBAAoB;AAGrD;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,WAAW,GAAG,CAAC;AACnB,MAAMC,YAAY,GAAIC,MAAc,IAClC,GAAGA,MAAM,IAAIC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAKJ,WAAW,GAAIA,WAAW,GAAG,CAAC,KAAM,CAAC,EAAG;AAEtE,OAAO,MAAMK,cAAc,GAAIC,eAAyB,IAAK;EAC3D,MAAM;IAAEC;EAAO,CAAC,GAAGjB,aAAa,CAAC,CAAC;EAClC,MAAMkB,QAAQ,GAAGjB,WAAW,CAAC,CAAC;;EAE9B;EACA;EACA;EACA;EACA,MAAMkB,IAAI,GAAGjB,WAAW,CAAEkB,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACF,IAAI,CAAC;EAC3E,MAAMG,MAAM,GAAGpB,WAAW,CACvBkB,KAAgB,IAAKA,KAAK,CAACC,gBAAgB,CAACC,MAC/C,CAAC;EACD,MAAMC,UAAU,GAAGrB,WAAW,CAAEkB,KAAgB,IAAKA,KAAK,CAACI,KAAK,CAACD,UAAU,CAAC;EAC5E,MAAMC,KAAK,GAAGtB,WAAW,CAAEkB,KAAgB,IAAKA,KAAK,CAACI,KAAK,CAACA,KAAK,CAAC;EAElE,MAAM;IACJC,iBAAiB;IACjBC,mBAAmB;IACnBC,mBAAmB;IACnBC;EACF,CAAC,GAAGnB,gBAAgB,CAACa,MAAM,CAAC;EAE5B,MAAMO,cAAc,GAAG3B,WAAW,CAC/BkB,KAAgB,IAAKA,KAAK,CAACU,aAAa,EAAED,cAAc,IAAI,CAAC,CAChE,CAAC;EAED,MAAME,WAAW,GAAGlC,WAAW,CAC7B,OACEmC,OAAe,EACfC,aAAqB,EACrBC,OAAiB,EACjBC,SAAmB,EACnBC,WAAoB,KACjB;IACH,IAAIb,UAAU,EAAEc,MAAM,EAAE;MACtB,IAAI;QACFpB,MAAM,EAAEqB,iBAAiB,CACvBf,UAAU,CAACgB,OAAO,EAClBhB,UAAU,CAACiB,SAAS,EACpBR,OACF,CAAC;QACDL,mBAAmB,CAAC;UAClBa,SAAS,EAAEjB,UAAU,CAACiB,SAAU;UAChCC,UAAU,EAAET,OAAO;UACnBU,OAAO,EAAEnB,UAAU,CAACgB,OAAQ;UAC5BpB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOwB,KAAK,EAAE;QACdjB,mBAAmB,CAAC;UAClBM,OAAO;UACPU,OAAO,EAAEnB,UAAU,CAACgB,OAAQ;UAC5BI,KAAK,EAAEA,KAAc;UACrBC,WAAW,EAAE;QACf,CAAC,CAAC;MACJ;MACA1B,QAAQ,CAACd,aAAa,CAAC;QAAEiC,MAAM,EAAE;MAAM,CAAC,CAAC,CAAC;MAC1C;IACF;;IAEA;IACApB,MAAM,EAAE4B,cAAc,GAAGZ,aAAa,CAAC;;IAEvC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMa,YAAY,GAAGnC,YAAY,CAAC,mBAAmB,CAAC;IACtD,MAAMoC,cAAc,GAAG,IAAIlC,IAAI,CAAC,CAAC,CAACmC,WAAW,CAAC,CAAC;IAC/C,MAAMC,MAAM,GACT9B,IAAI,EAAU+B,YAAY,IAAK/B,IAAI,EAAUgC,aAAa,IAAI,EAAE;IACnE,MAAMC,iBAA2B,GAAG;MAClCC,EAAE,EAAEP,YAAY;MAChB;MACA;MACA;MACA;MACAQ,MAAM,EAAER,YAAY;MACpBS,IAAI,EAAEvB,OAAO;MACbO,OAAO,EAAEN,aAAa;MACtBuB,IAAI,EAAET,cAAc;MACpBU,OAAO,EAAE,IAAI;MACbC,SAAS,EAAE,KAAK;MAChBvC,IAAI,EAAE;QACJ,GAAIA,IAAY;QAChBkC,EAAE,EAAEJ,MAAM;QACVU,IAAI,EAAE,GAAGxC,IAAI,EAAEyC,SAAS,IAAI,EAAE,IAAIzC,IAAI,EAAE0C,QAAQ,IAAI,EAAE,EAAE,CAACC,IAAI,CAAC,CAAC,IAAIb;MACrE;IACF,CAAa;IACb,IAAI,CAAC3B,MAAM,EAAEyC,gBAAgB,EAAE;MAC7B7C,QAAQ,CACNf,cAAc,CAAC;QAAEuC,OAAO,EAAET,aAAa;QAAED,OAAO,EAAEoB;MAAkB,CAAC,CACvE,CAAC;IACH;IAEA,IAAI;MACF,IAAI,CAACnC,MAAM,EAAE;QACX,MAAM,IAAI+C,KAAK,CAAC,gBAAgB,CAAC;MACnC;MACA;MACA;MACA;MACA;MACA;MACA/C,MAAM,CAACc,WAAW,CAChBE,aAAa,EACbd,IAAI,CAACyC,SAAS,EACdzC,IAAI,CAAC0C,QAAQ,EACb,EAAE,EACF1C,IAAI,CAACgC,aAAa,EAClBnB,OAAO,EACP,EAAE,EACFE,OAAO,IAAI,KAAK,EAChBC,SAAS,IAAI,KAAK,EAClBC,WAAW,IAAI,EAAE,EACjBU,YACF,CAAC;MACD,MAAMrB,iBAAiB,CAAC;QACtBO,OAAO;QACPU,OAAO,EAAET,aAAa;QACtBd,IAAI;QACJyB,WAAW,EAAE;MACf,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOD,KAAK,EAAE;MACdzB,QAAQ,CACNX,iBAAiB,CAAC;QAChB0D,IAAI,EAAE,MAAM;QACZZ,EAAE,EAAEP,YAAY;QAChBJ,OAAO,EAAET,aAAa;QACtBsB,IAAI,EAAEvB,OAAO;QACbE,OAAO;QACPC,SAAS;QACTC;MACF,CAAC,CACH,CAAC;MACDV,mBAAmB,CAAC;QAClBM,OAAO;QACPU,OAAO,EAAET,aAAa;QACtBU,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACrB,UAAU,EAAEN,MAAM,EAAEE,IAAI,EAAED,QAAQ,EAAEO,iBAAiB,EAAEE,mBAAmB,EAAED,mBAAmB,CAClG,CAAC;EAED,MAAMwC,SAAS,GAAGrE,WAAW,CAC3B,OACEsE,IAAS,EACTC,IAAY,EACZnC,aAAqB,EACrBC,OAAgB,GAAG,KAAK,EACxBC,SAAkB,GAAG,KAAK,EAC1BC,WAAmB,GAAG,EAAE,EACxBiC,UAAmB,KAChB;IACHpD,MAAM,EAAE4B,cAAc,GAAGZ,aAAa,CAAC;IAEvC,MAAMoB,EAAE,GAAGgB,UAAU,IAAI,sBAAsBtE,MAAM,CAAC,CAAC,EAAE;IACzD,MAAMuE,mBAAmB,GAAGzD,IAAI,CAACC,GAAG,CAAC,CAAC;IACtC,MAAMiC,cAAc,GAAG,IAAIlC,IAAI,CAACyD,mBAAmB,CAAC,CAACtB,WAAW,CAAC,CAAC;IAClE,MAAMC,MAAM,GACT9B,IAAI,EAAU+B,YAAY,IAAK/B,IAAI,EAAUgC,aAAa,IAAI,EAAE;IACnE,MAAMoB,WAAW,GACf,GAAGpD,IAAI,EAAEyC,SAAS,IAAI,EAAE,IAAIzC,IAAI,EAAE0C,QAAQ,IAAI,EAAE,EAAE,CAACC,IAAI,CAAC,CAAC,IAAIb,MAAM;IACrE,MAAMuB,WAAW,GAAGL,IAAI,EAAEM,IAAI,IAAI,IAAI,GAAGC,MAAM,CAACP,IAAI,CAACM,IAAI,CAAC,GAAG,EAAE;IAE/D,IAAI,CAACnD,MAAM,EAAEyC,gBAAgB,IAAI,CAACM,UAAU,EAAE;MAC5CnD,QAAQ,CACNf,cAAc,CAAC;QACbuC,OAAO,EAAET,aAAa;QACtBD,OAAO,EAAE;UACPqB,EAAE,EAAEA,EAAE;UACNE,IAAI,EAAE,OAAO;UACbhB,OAAO,EAAEN,aAAa;UACtBuB,IAAI,EAAET,cAAc;UACpB4B,kBAAkB,EAAEL,mBAAmB;UACvCnD,IAAI,EAAE;YACJ,GAAIA,IAAY;YAChBkC,EAAE,EAAEJ,MAAM;YACVU,IAAI,EAAEY;UACR,CAAC;UACDd,OAAO,EAAE,IAAI;UACbC,SAAS,EAAE,KAAK;UAChBJ,MAAM,EAAED,EAAE;UACVuB,QAAQ,EAAE,GAAG3C,aAAa,IAAIgB,MAAM,EAAE;UACtC4B,eAAe,EAAE,OAAO;UACxBC,WAAW,EAAE,MAAM;UACnBC,QAAQ,EAAEZ,IAAI,EAAER,IAAI;UACpBqB,QAAQ,EAAE,EAAE;UACZC,eAAe,EAAE,EAAE;UACnBC,QAAQ,EAAEd,IAAI;UACde,YAAY,EAAEhB,IAAI,EAAER,IAAI;UACxBc,IAAI,EAAED,WAAW;UACjBtC,OAAO;UACPkD,aAAa,EAAE,GAAGjD,SAAS,EAAE;UAC7BC;QACF;MACF,CAAC,CACH,CAAC;MACDlB,QAAQ,CACNb,gBAAgB,CAAC;QACfgD,EAAE,EAAEA,EAAE;QACNlC,IAAI,EAAE;UACJ,GAAIA,IAAY;UAChBkC,EAAE,EAAEJ,MAAM;UACVU,IAAI,EAAEY;QACR,CAAC;QACDf,IAAI,EAAET,cAAc;QACpB4B,kBAAkB,EAAEL,mBAAmB;QACvCf,IAAI,EAAE,OAAO;QACbhB,OAAO,EAAEN,aAAa;QACtB2C,QAAQ,EAAE,GAAG3C,aAAa,IAAIgB,MAAM,EAAE;QACtCf,OAAO;QACPkD,aAAa,EAAE,GAAGjD,SAAS,EAAS;QACpCC;MACF,CAAoB,CACtB,CAAC;IACH;IAEA,IAAI;MACF,MAAMiD,SAAS,GAAG,IAAIC,QAAQ,CAAC,CAAC;MAChCD,SAAS,CAACE,MAAM,CAAC,OAAO,EAAEpB,IAAI,CAAC;MAE/B,MAAMqB,QAAQ,GAAG,MAAMhF,UAAU,CAAC6E,SAAS,CAAC;MAE5C,KAAK,MAAMI,IAAI,IAAID,QAAQ,CAACrB,IAAI,CAACuB,OAAO,EAAE;QACxC,MAAMC,cAAc,GAAG;UACrB/B,SAAS,EAAEzC,IAAI,CAACyC,SAAS;UACzBC,QAAQ,EAAE1C,IAAI,CAAC0C,QAAQ;UACvBV,aAAa,EAAEhC,IAAI,CAACgC,aAAa;UACjCyC,SAAS,EAAEH,IAAI,CAACG,SAAS;UACzBC,SAAS,EAAEJ,IAAI,CAACI,SAAS;UACzBd,QAAQ,EAAEU,IAAI,CAACK,QAAQ;UACvBC,SAAS,EAAEN,IAAI,EAAEM,SAAS;UAC1Bf,QAAQ,EAAES,IAAI,CAACT,QAAQ;UACvBC,eAAe,EAAEQ,IAAI,CAACR,eAAe;UACrCC,QAAQ,EAAEO,IAAI,CAACP,QAAQ;UACvBC,YAAY,EAAEM,IAAI,EAAEO,YAAY;UAChCC,QAAQ,EAAER,IAAI,EAAEQ,QAAQ;UACxBxB,IAAI,EAAEgB,IAAI,CAAChB,IAAI;UACfyB,QAAQ,EAAET,IAAI,EAAES,QAAQ;UACxBC,SAAS,EAAEV,IAAI,EAAEU,SAAS;UAC1BC,MAAM,EAAEX,IAAI,EAAEW,MAAM;UACpBC,YAAY,EAAEZ,IAAI,EAAEa,GAAG;UACvBC,SAAS,EAAE,IAAI;UACfhE,OAAO,EAAEN,aAAa;UACtBmD,aAAa,EAAEjD,SAAS;UACxBD,OAAO;UACPE,WAAW;UACXoE,SAAS,EAAEf,IAAI,EAAEe,SAAS;UAC1BC,GAAG,EAAEhB,IAAI,CAACgB;QACZ,CAAC;QACD;QACA;QACA;QACAxF,MAAM,EAAEyF,sBAAsB,CAACzE,aAAa,EAAE0D,cAAc,EAAEtC,EAAE,CAAC;MACnE;MAEA,MAAM5B,iBAAiB,CAAC;QACtBO,OAAO,EAAE,OAAO;QAChBU,OAAO,EAAET,aAAa;QACtBd,IAAI;QACJyB,WAAW,EAAE,OAAO;QACpB+D,QAAQ,EAAE;UACRzE,OAAO;UACPC,SAAS;UACTC,WAAW;UACXwE,QAAQ,EAAEzC,IAAI;UACd0C,QAAQ,EAAEzC,IAAI;UACd5B,SAAS,EAAEa,EAAE;UACbyD,aAAa,EAAEtB,QAAQ,CAACrB,IAAI,CAACuB;QAC/B;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO/C,KAAU,EAAE;MACnB;MACA;MACA;MACA;MACAoE,OAAO,CAACpE,KAAK,CAAC,eAAe,EAAE;QAC7BqE,MAAM,EAAErE,KAAK,EAAE6C,QAAQ,EAAEwB,MAAM;QAC/BC,UAAU,EAAEtE,KAAK,EAAE6C,QAAQ,EAAEyB,UAAU;QACvCC,UAAU,EAAEvE,KAAK,EAAE6C,QAAQ,EAAErB,IAAI;QACjCgD,UAAU,EAAExE,KAAK,EAAErB,MAAM,EAAE8F,GAAG;QAC9BC,YAAY,EAAE1E,KAAK,EAAEX;MACvB,CAAC,CAAC;MACFd,QAAQ,CACNX,iBAAiB,CAAC;QAChB0D,IAAI,EAAE,OAAO;QACbZ,EAAE;QACFX,OAAO,EAAET,aAAa;QACtBkC,IAAI;QACJC,IAAI;QACJlC,OAAO;QACPC,SAAS;QACTC;MACF,CAAC,CACH,CAAC;MACDV,mBAAmB,CAAC;QAClBM,OAAO,EAAE,OAAO;QAChBU,OAAO,EAAET,aAAa;QACtBU,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAAC3B,MAAM,EAAEK,MAAM,EAAEH,IAAI,EAAED,QAAQ,EAAEO,iBAAiB,EAAEC,mBAAmB,CACzE,CAAC;;EAED;EACA;EACA;EACA;EACA,MAAM4F,YAAY,GAAGzH,WAAW,CAC9B,MAAO0H,QAAgB,IAAK;IAC1B,MAAMC,OAAO,GAAG3F,cAAc,CAAC0F,QAAQ,CAAC;IACxC,IAAI,CAACC,OAAO,EAAE;MAAC;IAAO;IACtBtG,QAAQ,CAACZ,mBAAmB,CAACiH,QAAQ,CAAC,CAAC;IACvC3F,kBAAkB,CAAC;MACjBY,SAAS,EAAE+E,QAAQ;MACnB7E,OAAO,EAAE8E,OAAO,CAAC9E,OAAO;MACxBE,WAAW,EAAE4E,OAAO,CAACvD;IACvB,CAAC,CAAC;IACF,IAAIuD,OAAO,CAACvD,IAAI,KAAK,MAAM,EAAE;MAC3B,MAAMlC,WAAW,CACfyF,OAAO,CAACjE,IAAI,EACZiE,OAAO,CAAC9E,OAAO,EACf8E,OAAO,CAACtF,OAAO,EACfsF,OAAO,CAACrF,SAAS,EACjBqF,OAAO,CAACpF,WACV,CAAC;IACH,CAAC,MAAM;MACL,MAAM8B,SAAS,CACbsD,OAAO,CAACrD,IAAI,EACZqD,OAAO,CAACpD,IAAI,EACZoD,OAAO,CAAC9E,OAAO,EACf8E,OAAO,CAACtF,OAAO,EACfsF,OAAO,CAACrF,SAAS,EACjBqF,OAAO,CAACpF,WAAW,EACnBmF,QACF,CAAC;IACH;EACF,CAAC,EACD,CAAC1F,cAAc,EAAEX,QAAQ,EAAEU,kBAAkB,EAAEG,WAAW,EAAEmC,SAAS,CACvE,CAAC;;EAED;EACA;EACA;EACA,MAAMuD,eAAe,GAAG5H,WAAW,CACjC,OAAOmC,OAAe,EAAE0F,cAAuB,KAAK;IAClD,IAAI,CAACnG,UAAU,EAAEc,MAAM,IAAI,CAACd,UAAU,CAACgB,OAAO,IAAI,CAAChB,UAAU,CAACiB,SAAS,EAAE;MACvE;IACF;IACA,IAAI;MACFvB,MAAM,EAAEqB,iBAAiB,CACvBf,UAAU,CAACgB,OAAO,EAClBhB,UAAU,CAACiB,SAAS,EACpBR,OACF,CAAC;MACDL,mBAAmB,CAAC;QAClBa,SAAS,EAAEjB,UAAU,CAACiB,SAAS;QAC/BC,UAAU,EAAET,OAAO;QACnBU,OAAO,EAAEnB,UAAU,CAACgB,OAAO;QAC3BpB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACdjB,mBAAmB,CAAC;QAClBM,OAAO;QACPU,OAAO,EAAEnB,UAAU,CAACgB,OAAO;QAC3BI,KAAK,EAAEA,KAAc;QACrBC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;IACA1B,QAAQ,CAACd,aAAa,CAAC;MAAEiC,MAAM,EAAE;IAAM,CAAC,CAAC,CAAC;EAC5C,CAAC,EACD,CAACpB,MAAM,EAAEM,UAAU,EAAEJ,IAAI,EAAED,QAAQ,EAAES,mBAAmB,EAAED,mBAAmB,CAC/E,CAAC;;EAED;EACA;EACA;EACA,MAAMiG,kCAAkC,GAAG9H,WAAW,CACnD6C,OAAe,IAAc;IAC5B,IAAI,CAACA,OAAO,EAAE;MAAC,OAAO,KAAK;IAAC;IAC5B,MAAMkF,IAAI,GAAGpG,KAAK,GAAGkB,OAAO,CAAC,EAAEmF,QAAQ;IACvC,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACE,MAAM,KAAK,CAAC,EAAE;MAAC,OAAO,KAAK;IAAC;IAC9C,MAAMC,IAAI,GAAGH,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC;IAClC,IAAI,CAACC,IAAI,EAAEtE,OAAO,EAAE;MAAC,OAAO,KAAK;IAAC;IAClC,MAAMR,MAAM,GAAG9B,IAAI,EAAE+B,YAAY,IAAI/B,IAAI,EAAEgC,aAAa;IACxD,IAAI,CAACF,MAAM,EAAE;MAAC,OAAO,KAAK;IAAC;IAC3B,OAAO8E,IAAI,CAAC5G,IAAI,EAAEkC,EAAE,KAAKJ,MAAM;EACjC,CAAC,EACD,CAACzB,KAAK,EAAEL,IAAI,EAAE+B,YAAY,EAAE/B,IAAI,EAAEgC,aAAa,CACjD,CAAC;EAED,OAAO;IACLpB,WAAW;IACXmC,SAAS;IACTuD,eAAe;IACfH,YAAY;IACZK;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","Platform","v4","uuidv4","useXmppClient","useDispatch","useSelector","useStore","addRoomMessage","setEditAction","addMessageToHeap","clearMessageFailure","markMessageFailed","uploadFileViaFetch","enqueueOutboundSend","store","getGlobalXmppClient","useEventHandlers","PENDING_WATCHDOG_MS","__sendIdSeq","nextStanzaId","prefix","Date","now","MAX_MEDIA_BYTES","useSendMessage","_configOverride","client","dispatch","reduxStore","user","state","chatSettingStore","config","editAction","rooms","handleMessageSent","handleMessageFailed","handleMessageEdited","handleMessageRetry","failedMessages","roomHeapSlice","sendMessage","message","activeRoomJID","isReply","isChecked","mainMessage","isEdit","editMessageStanza","roomJid","messageId","newMessage","roomJID","error","messageType","onCriticalSend","optimisticId","optimisticDate","toISOString","selfId","xmppUsername","walletAddress","optimisticMessage","id","xmppId","body","date","pending","isDeleted","name","firstName","lastName","trim","disableSentLogic","watchdogTimer","setTimeout","getState","roomMsgs","messages","stillPending","find","m","alreadyFailed","console","warn","kind","Error","effectiveClient","c","status","anyClient","forceReconnect","enqueuedAt","send","clearTimeout","sendMedia","data","type","existingId","size","optimisticTimestamp","displayName","fileSizeStr","String","messageTimestampMs","xmppFrom","isSystemMessage","isMediafile","fileName","location","locationPreview","mimetype","originalName","showInChannel","mediaWatchdog","fileBlob","uri","replace","mimeType","tryUpload","fd","FormData","append","err","response","fd2","item","results","messagePayload","createdAt","expiresAt","filename","isVisible","originalname","ownerKey","duration","updatedAt","userId","attachmentId","_id","wrappable","isPrivate","__v","effectiveMediaClient","sendMediaMessageStanza","anyMediaClient","metadata","fileData","fileType","uploadResults","uriStr","uriScheme","match","statusText","serverBody","requestUrl","url","axiosMessage","axiosCode","code","axiosCauseMessage","cause","mime","fileSizeBytes","platformOS","OS","platformVersion","Version","retryMessage","failedId","payload","sendEditMessage","_activeRoomJID","isLastMessageFromUserAndProcessing","msgs","length","last"],"sourceRoot":"../../../src","sources":["hooks/useSendMessage.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,20 +3,18 @@
|
|
|
3
3
|
import { useSyncExternalStore } from 'react';
|
|
4
4
|
import { store } from '../roomStore';
|
|
5
5
|
export const useUnreadMessagesCounter = () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return unsubscribe;
|
|
19
|
-
};
|
|
6
|
+
// Notify React on EVERY store change and let useSyncExternalStore's
|
|
7
|
+
// snapshot comparison (Object.is on the `rooms` reference) decide
|
|
8
|
+
// whether to re-render. The previous implementation only fired the
|
|
9
|
+
// callback while iterating rooms that already had `unreadMessages`
|
|
10
|
+
// defined — so when `rooms` became empty (logout, or the last room
|
|
11
|
+
// removed) the loop body never ran, the callback never fired, and the
|
|
12
|
+
// hook never re-rendered: a consumer's badge stayed stuck at its last
|
|
13
|
+
// non-zero count after logout. (It's also cheaper — one callback per
|
|
14
|
+
// change instead of one per unread room. Redux Toolkit keeps the
|
|
15
|
+
// `rooms` slice reference stable across actions that don't touch it,
|
|
16
|
+
// so non-rooms dispatches still don't trigger a re-render.)
|
|
17
|
+
const subscribe = callback => store.subscribe(callback);
|
|
20
18
|
const rooms = useSyncExternalStore(subscribe, () => store.getState().rooms.rooms);
|
|
21
19
|
const unreadByRoom = {};
|
|
22
20
|
let totalCount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","
|
|
1
|
+
{"version":3,"names":["useSyncExternalStore","store","useUnreadMessagesCounter","subscribe","callback","rooms","getState","unreadByRoom","totalCount","Object","entries","forEach","roomJid","room","unreadCount","unreadMessages","hasUnread","useUnread"],"sourceRoot":"../../../src","sources":["hooks/useUnreadMessagesCounter.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,OAAO;AAE5C,SAASC,KAAK,QAAQ,cAAc;AAYpC,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAA2B;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,SAAS,GAAIC,QAAoB,IAAKH,KAAK,CAACE,SAAS,CAACC,QAAQ,CAAC;EAErE,MAAMC,KAAK,GAAGL,oBAAoB,CAChCG,SAAS,EACT,MAAMF,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACD,KAAK,CAACA,KAC/B,CAAC;EAED,MAAME,YAA+B,GAAG,CAAC,CAAC;EAC1C,IAAIC,UAAU,GAAG,CAAC;EAElBC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CAACM,OAAO,CAAC,CAAC,CAACC,OAAO,EAAEC,IAAI,CAAkB,KAAK;IAClE,MAAMC,WAAW,GAAGD,IAAI,CAACE,cAAc,IAAI,CAAC;IAC5C,IAAID,WAAW,GAAG,CAAC,EAAE;MACnBP,YAAY,CAACK,OAAO,CAAC,GAAGE,WAAW;MACnCN,UAAU,IAAIM,WAAW;IAC3B;EACF,CAAC,CAAC;EAEF,OAAO;IACLE,SAAS,EAAER,UAAU,GAAG,CAAC;IACzBA,UAAU;IACVD;EACF,CAAC;AACH,CAAC;AAED,SAASL,wBAAwB,IAAIe,SAAS","ignoreList":[]}
|
package/lib/module/main.js
CHANGED
|
@@ -30,6 +30,7 @@ export { XmppProvider } from './context/xmppProvider';
|
|
|
30
30
|
|
|
31
31
|
// Hooks that consumers usually need (badge counts, logout, push, etc.).
|
|
32
32
|
export { useUnread } from './hooks/useUnreadMessagesCounter';
|
|
33
|
+
export { useChatRoomFocus } from './hooks/useChatRoomFocus';
|
|
33
34
|
export { logoutService } from './hooks/useLogout';
|
|
34
35
|
export { useQRCodeChat, handleQRChatId } from './hooks/useQRCodeChatHandler';
|
|
35
36
|
export { resendMessage } from './utils/resendMessage';
|
package/lib/module/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","logoutService","useQRCodeChat","handleQRChatId","resendMessage"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ReduxWrapper","Chat","XmppProvider","useUnread","useChatRoomFocus","logoutService","useQRCodeChat","handleQRChatId","resendMessage"],"sourceRoot":"../../src","sources":["main.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,gCAAgC;;AAEvC;AACA,SAASA,YAAY,IAAIC,IAAI,QAAQ,0CAA0C;AAC/E,SAASC,YAAY,QAAQ,wBAAwB;;AAErD;AACA,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,aAAa,QAAQ,mBAAmB;AACjD,SAASC,aAAa,EAAEC,cAAc,QAAQ,8BAA8B;AAC5E,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA","ignoreList":[]}
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
// } from 'firebase/auth';
|
|
9
9
|
// import { app } from '../../../firebase-config';
|
|
10
10
|
|
|
11
|
-
import http, { getCurrentAppToken } from '../apiClient';
|
|
11
|
+
import http, { getCurrentAppToken, getCurrentBaseURL } from '../apiClient';
|
|
12
12
|
import { store } from '../../roomStore';
|
|
13
|
+
import { pushLog } from '../../utils/devLogger';
|
|
13
14
|
|
|
14
15
|
// login functions
|
|
15
16
|
export async function loginEmail(email, password) {
|
|
@@ -120,4 +121,69 @@ export function uploadFile(formData) {
|
|
|
120
121
|
}
|
|
121
122
|
});
|
|
122
123
|
}
|
|
124
|
+
export async function uploadFileViaFetch(formData) {
|
|
125
|
+
const token = store.getState().chatSettingStore?.user?.token ?? '';
|
|
126
|
+
const baseUrl = getCurrentBaseURL();
|
|
127
|
+
const url = `${baseUrl.replace(/\/$/, '')}/files/`;
|
|
128
|
+
pushLog('http', `→ POST ${url} (fetch)`, {
|
|
129
|
+
headers: {
|
|
130
|
+
Authorization: token ? token.slice(0, 16) + '…' : '[empty]',
|
|
131
|
+
Accept: '*/*'
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
let res;
|
|
135
|
+
try {
|
|
136
|
+
res = await fetch(url, {
|
|
137
|
+
method: 'POST',
|
|
138
|
+
headers: {
|
|
139
|
+
Authorization: token,
|
|
140
|
+
Accept: '*/*'
|
|
141
|
+
},
|
|
142
|
+
body: formData
|
|
143
|
+
});
|
|
144
|
+
} catch (e) {
|
|
145
|
+
pushLog('http', `← ERR fetch /files/`, {
|
|
146
|
+
name: e?.name,
|
|
147
|
+
message: e?.message,
|
|
148
|
+
stack: e?.stack
|
|
149
|
+
});
|
|
150
|
+
const err = new Error(e?.message || 'Network request failed');
|
|
151
|
+
err.code = 'ERR_NETWORK';
|
|
152
|
+
err.cause = e;
|
|
153
|
+
err.config = {
|
|
154
|
+
url: '/files/'
|
|
155
|
+
};
|
|
156
|
+
throw err;
|
|
157
|
+
}
|
|
158
|
+
if (!res.ok) {
|
|
159
|
+
let body = null;
|
|
160
|
+
try {
|
|
161
|
+
body = await res.json();
|
|
162
|
+
} catch {
|
|
163
|
+
try {
|
|
164
|
+
body = await res.text();
|
|
165
|
+
} catch {
|
|
166
|
+
body = null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
pushLog('http', `← ${res.status} POST /files/ (fetch)`, body);
|
|
170
|
+
const err = new Error(`Upload failed: ${res.status}`);
|
|
171
|
+
err.response = {
|
|
172
|
+
status: res.status,
|
|
173
|
+
statusText: res.statusText,
|
|
174
|
+
data: body
|
|
175
|
+
};
|
|
176
|
+
err.config = {
|
|
177
|
+
url: '/files/'
|
|
178
|
+
};
|
|
179
|
+
throw err;
|
|
180
|
+
}
|
|
181
|
+
const data = await res.json();
|
|
182
|
+
pushLog('http', `← ${res.status} POST /files/ (fetch)`, {
|
|
183
|
+
resultsCount: Array.isArray(data?.results) ? data.results.length : 'n/a'
|
|
184
|
+
});
|
|
185
|
+
return {
|
|
186
|
+
data
|
|
187
|
+
};
|
|
188
|
+
}
|
|
123
189
|
//# sourceMappingURL=auth.api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["http","getCurrentAppToken","store","loginEmail","email","password","res","post","headers","Authorization","console","log","data","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","get","loginViaJwt","clientToken","response","hasUser","user","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","getState","chatSettingStore","Accept","transformRequest","delete"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,IAAI,IAAIC,kBAAkB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["http","getCurrentAppToken","getCurrentBaseURL","store","pushLog","loginEmail","email","password","res","post","headers","Authorization","console","log","data","loginSocial","idToken","accessToken","loginType","authToken","registerSocial","signUpPlan","signupPlan","checkEmailExist","get","loginViaJwt","clientToken","response","hasUser","user","hasToken","token","hasRefreshToken","refreshToken","userData","_id","firstName","lastName","xmppUsername","uploadFile","formData","getState","chatSettingStore","Accept","transformRequest","delete","uploadFileViaFetch","baseUrl","url","replace","slice","fetch","method","body","e","name","message","stack","err","Error","code","cause","config","ok","json","text","status","statusText","resultsCount","Array","isArray","results","length"],"sourceRoot":"../../../../src","sources":["networking/api-requests/auth.api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,16 +14,41 @@ import http from '../apiClient';
|
|
|
14
14
|
* 1. explicit `room.jid` from the server (if present)
|
|
15
15
|
* 2. `<name>@conference.<xmppHost>` where xmppHost comes from the
|
|
16
16
|
* provider's `xmppSettings.host` saved to `chatSettingStore.config`
|
|
17
|
-
* 3.
|
|
17
|
+
* 3. derive host from `config.baseUrl` (api.<host> → xmpp.<host>)
|
|
18
|
+
* as a last-resort heuristic for misconfigured deployments
|
|
19
|
+
* 4. otherwise: skip the room with a warn log (NEVER fall back to a
|
|
20
|
+
* hardcoded vendor host — previously `xmpp.chat.ethora.com`, which
|
|
21
|
+
* manifested as a phantom "ethora" room stub on third-party servers,
|
|
22
|
+
* customer-reported #23)
|
|
18
23
|
*/
|
|
19
24
|
function dispatchRoomsFromRestItems(items) {
|
|
20
25
|
if (!items?.length) return;
|
|
21
26
|
const config = store.getState().chatSettingStore?.config;
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
// Best: explicit xmpp settings.
|
|
28
|
+
let host = config?.xmppSettings?.host || config?.xmppSettings?.conference?.replace(/^conference\./, '');
|
|
29
|
+
// Heuristic fallback: derive xmpp host from the REST baseUrl.
|
|
30
|
+
// `https://api.foo.com/v1` → `xmpp.foo.com`. Better than a hardcoded
|
|
31
|
+
// vendor host and right in 99% of single-domain deployments.
|
|
32
|
+
if (!host && typeof config?.baseUrl === 'string') {
|
|
33
|
+
const m = /^https?:\/\/(?:api\.)?([^/]+)/i.exec(config.baseUrl);
|
|
34
|
+
if (m && m[1]) {
|
|
35
|
+
host = `xmpp.${m[1].replace(/^api\./, '')}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const conference = config?.xmppSettings?.conference || (host ? `conference.${host}` : undefined);
|
|
24
39
|
for (const item of items) {
|
|
25
40
|
if (!item) continue;
|
|
26
|
-
|
|
41
|
+
let jid = item.jid;
|
|
42
|
+
if (!jid) {
|
|
43
|
+
if (!conference) {
|
|
44
|
+
// No server-supplied JID and no way to synthesize one safely —
|
|
45
|
+
// skip rather than create a phantom room on a wrong host.
|
|
46
|
+
// Consumers who hit this should set config.xmppSettings.host.
|
|
47
|
+
console.warn(`[ethora-rn] rooms.api: skipping room "${item.name}" — no item.jid and no xmppSettings.host / baseUrl to derive host from`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
jid = `${item.name}@${conference}`;
|
|
51
|
+
}
|
|
27
52
|
if (!jid.includes('@')) continue;
|
|
28
53
|
const room = {
|
|
29
54
|
id: item._id || jid,
|