@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
|
@@ -6,6 +6,7 @@ import ChatRoom from './ChatRoom';
|
|
|
6
6
|
import { setActiveModal, setConfig, setDeleteModal, setStoreClient } from '../../roomStore/chatSettingsSlice';
|
|
7
7
|
import { ChatWrapperBox } from '../styled/ChatWrapperBox';
|
|
8
8
|
import { Overlay } from '../styled/MediaModal';
|
|
9
|
+
import ConnectionBanner from './ConnectionBanner';
|
|
9
10
|
import { Message } from '../MessageBubble/Message';
|
|
10
11
|
import { useXmppClient } from '../../context/xmppProvider';
|
|
11
12
|
import LoginForm from '../AuthForms/Login';
|
|
@@ -19,6 +20,8 @@ import { ModalWrapper } from '../Modals/ModalWrapper/ModalWrapper';
|
|
|
19
20
|
import { useChatSettingState } from '../../hooks/useChatSettingState';
|
|
20
21
|
import { DeviceEventEmitter, Pressable, Text, View } from 'react-native';
|
|
21
22
|
import { pushLog as devPushLog } from '../../utils/devLogger';
|
|
23
|
+
import { normalizeRoomJid } from '../../helpers/normalizeRoomJid';
|
|
24
|
+
import { InteractionsOverlayProvider } from '../MessageBubble/InteractionsOverlay';
|
|
22
25
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
23
26
|
const ChatWrapper = ({
|
|
24
27
|
MainComponentStyles,
|
|
@@ -111,7 +114,7 @@ const ChatWrapper = ({
|
|
|
111
114
|
useEffect(() => {
|
|
112
115
|
if (roomJID) {
|
|
113
116
|
dispatch(setCurrentRoom({
|
|
114
|
-
roomJID: roomJID
|
|
117
|
+
roomJID: normalizeRoomJid(roomJID, config?.xmppSettings?.conference)
|
|
115
118
|
}));
|
|
116
119
|
}
|
|
117
120
|
const initXmmpClient = async () => {
|
|
@@ -159,40 +162,54 @@ const ChatWrapper = ({
|
|
|
159
162
|
setErrorMsg(null);
|
|
160
163
|
if (!client && !storedClient) {
|
|
161
164
|
devPushLog('rn', 'ChatWrapper: initing xmpp client (legacy path)');
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
// The outer `.then(c => {...})` used to lack a `.catch()` —
|
|
166
|
+
// if initializeClient rejected (network / SASL), the outer
|
|
167
|
+
// try/catch couldn't see it because the rejection happens in
|
|
168
|
+
// the .then handler, not in the awaited promise itself.
|
|
169
|
+
// Convert to await + try/catch.
|
|
170
|
+
try {
|
|
171
|
+
const c = await initializeClient(user.xmppUsername || user.defaultWallet?.walletAddress, user.xmppPassword, config?.xmppSettings);
|
|
172
|
+
try {
|
|
173
|
+
await c.getRoomsStanza();
|
|
174
|
+
c.getChatsPrivateStoreRequestStanza().catch(err => console.warn('getChatsPrivateStoreRequestStanza failed', err));
|
|
165
175
|
dispatch(setStoreClient(c));
|
|
166
176
|
setClient(c);
|
|
167
|
-
}
|
|
168
|
-
|
|
177
|
+
} catch (err) {
|
|
178
|
+
console.warn('getRoomsStanza failed', err);
|
|
179
|
+
}
|
|
180
|
+
} catch (err) {
|
|
181
|
+
devPushLog('warn', 'initializeClient failed (legacy path)', err);
|
|
182
|
+
}
|
|
169
183
|
setInited(true);
|
|
170
184
|
if (config?.refreshTokens?.enabled) {
|
|
171
|
-
refresh()
|
|
185
|
+
// refresh() is fire-and-forget but rejects on bad
|
|
186
|
+
// refreshToken / network — surface via .catch instead of
|
|
187
|
+
// leaving the rejection unhandled (was bug #4, id:2).
|
|
188
|
+
refresh().catch(err => console.warn('refresh failed', err));
|
|
172
189
|
}
|
|
173
190
|
} else if (storedClient) {
|
|
174
191
|
devPushLog('rn', 'ChatWrapper: reusing storedClient');
|
|
175
192
|
setClient(storedClient);
|
|
176
193
|
if (!activeRoomJID) {
|
|
177
194
|
storedClient.getRoomsStanza().then(() => {
|
|
178
|
-
storedClient.getChatsPrivateStoreRequestStanza();
|
|
195
|
+
storedClient.getChatsPrivateStoreRequestStanza().catch(err => console.warn('getChatsPrivateStoreRequestStanza failed', err));
|
|
179
196
|
}).catch(err => console.warn('getRoomsStanza failed', err));
|
|
180
197
|
}
|
|
181
198
|
setInited(true);
|
|
182
199
|
if (config?.refreshTokens?.enabled) {
|
|
183
|
-
refresh();
|
|
200
|
+
refresh().catch(err => console.warn('refresh failed', err));
|
|
184
201
|
}
|
|
185
202
|
} else if (client) {
|
|
186
203
|
devPushLog('rn', 'ChatWrapper: reusing provider client');
|
|
187
204
|
if (!activeRoomJID) {
|
|
188
205
|
client.getRoomsStanza().then(() => {
|
|
189
|
-
client.getChatsPrivateStoreRequestStanza();
|
|
206
|
+
client.getChatsPrivateStoreRequestStanza().catch(err => console.warn('getChatsPrivateStoreRequestStanza failed', err));
|
|
190
207
|
}).catch(err => console.warn('getRoomsStanza failed', err));
|
|
191
208
|
}
|
|
192
|
-
client.getChatsPrivateStoreRequestStanza();
|
|
209
|
+
client.getChatsPrivateStoreRequestStanza().catch(err => console.warn('getChatsPrivateStoreRequestStanza failed', err));
|
|
193
210
|
setInited(true);
|
|
194
211
|
if (config?.refreshTokens?.enabled) {
|
|
195
|
-
refresh();
|
|
212
|
+
refresh().catch(err => console.warn('refresh failed', err));
|
|
196
213
|
}
|
|
197
214
|
}
|
|
198
215
|
dispatch(setIsLoading({
|
|
@@ -212,6 +229,34 @@ const ChatWrapper = ({
|
|
|
212
229
|
initXmmpClient();
|
|
213
230
|
}, [user.xmppPassword, user.defaultWallet, providerBootstrapStatus, initMode, config?.initBeforeLoad]);
|
|
214
231
|
|
|
232
|
+
// Cache-first display (initBeforeLoad). The main effect above only marks
|
|
233
|
+
// the chat `inited` once the provider bootstrap reaches 'ready' — which
|
|
234
|
+
// waits on the cold XMPP connect. On re-entry that left the user staring
|
|
235
|
+
// at a loader while fully-cached rooms/messages sat in redux-persist
|
|
236
|
+
// ("pulls a new connection for 100 years"). Here we render the cached
|
|
237
|
+
// content the instant rehydration lands; the live client gets wired by
|
|
238
|
+
// the main effect when the connect completes (send/loadMore activate
|
|
239
|
+
// then). Mirrors web showing cached rooms immediately + refreshing in
|
|
240
|
+
// the background.
|
|
241
|
+
useEffect(() => {
|
|
242
|
+
if (!config?.initBeforeLoad || initMode !== 'provider') {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
if (isInited || showModal) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (providerBootstrapStatus === 'failed') {
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const haveCachedRooms = !!rooms && Object.keys(rooms).length > 0;
|
|
252
|
+
const haveUser = !!user?.xmppUsername || !!user?.defaultWallet?.walletAddress;
|
|
253
|
+
if (haveCachedRooms && haveUser) {
|
|
254
|
+
devPushLog('rn', 'ChatWrapper: cache-first — showing persisted rooms while provider connects');
|
|
255
|
+
setShowModal(false);
|
|
256
|
+
setInited(true);
|
|
257
|
+
}
|
|
258
|
+
}, [config?.initBeforeLoad, initMode, isInited, showModal, providerBootstrapStatus, rooms, user?.xmppUsername, user?.defaultWallet?.walletAddress]);
|
|
259
|
+
|
|
215
260
|
// Skip the legacy email/password LoginForm entirely when XmppProvider
|
|
216
261
|
// is driving auth via initBeforeLoad — the bootstrap effect will
|
|
217
262
|
// populate the user shortly. Showing LoginForm here causes a flicker
|
|
@@ -228,7 +273,7 @@ const ChatWrapper = ({
|
|
|
228
273
|
// the list. With `roomJID` or `disableRooms`, skip the list entirely.
|
|
229
274
|
const showRoomList = !config?.disableRooms && !roomJID && !activeRoomJID;
|
|
230
275
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
231
|
-
children: [showModal && /*#__PURE__*/_jsx(Overlay, {
|
|
276
|
+
children: [showModal && config?.disableConnectionErrorOverlay && /*#__PURE__*/_jsx(ConnectionBanner, {}), showModal && !config?.disableConnectionErrorOverlay && /*#__PURE__*/_jsx(Overlay, {
|
|
232
277
|
children: /*#__PURE__*/_jsxs(View, {
|
|
233
278
|
style: {
|
|
234
279
|
padding: 20,
|
|
@@ -285,20 +330,22 @@ const ChatWrapper = ({
|
|
|
285
330
|
style: {
|
|
286
331
|
...MainComponentStyles
|
|
287
332
|
},
|
|
288
|
-
children: [
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
333
|
+
children: [/*#__PURE__*/_jsx(InteractionsOverlayProvider, {
|
|
334
|
+
children: showRoomList ? /*#__PURE__*/_jsx(RoomList, {
|
|
335
|
+
chats: Object.values(rooms),
|
|
336
|
+
onRoomClick: handleChangeChat
|
|
337
|
+
}) : /*#__PURE__*/_jsx(ChatWrapperBox, {
|
|
338
|
+
style: {
|
|
339
|
+
...MainComponentStyles
|
|
340
|
+
},
|
|
341
|
+
children: /*#__PURE__*/_jsx(ChatRoom, {
|
|
342
|
+
CustomMessageComponent: CustomMessageComponent || Message,
|
|
343
|
+
handleBackClick: roomJID || config?.disableRooms ? undefined : () => {
|
|
344
|
+
dispatch(setCurrentRoom({
|
|
345
|
+
roomJID: ''
|
|
346
|
+
}));
|
|
347
|
+
}
|
|
348
|
+
})
|
|
302
349
|
})
|
|
303
350
|
}), /*#__PURE__*/_jsx(Modal, {
|
|
304
351
|
modal: activeModal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useMemo","useState","useDispatch","useSelector","ChatRoom","setActiveModal","setConfig","setDeleteModal","setStoreClient","ChatWrapperBox","Overlay","Message","useXmppClient","LoginForm","Loader","setCurrentRoom","setEditAction","setIsLoading","refresh","RoomList","StyledLoaderWrapper","Modal","ModalWrapper","useChatSettingState","DeviceEventEmitter","Pressable","Text","View","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ChatWrapper","MainComponentStyles","CustomMessageComponent","room","config","roomJID","user","activeModal","deleteModal","client","storedClient","isInited","setInited","showModal","setShowModal","errorMsg","setErrorMsg","isChatVisible","setIsChatVisible","isSmallScreen","setIsSmallScreen","handleItemClick","value","dispatch","initializeClient","setClient","providerBootstrapStatus","initMode","rooms","activeRoomJID","state","activeMessage","messages","find","message","handleChangeChat","chat","jid","chatJID","loading","isEdit","handleDeleteClick","roomJid","messageId","isDeleteModal","deleteMessageStanza","handleCloseDeleteModal","xmppPassword","console","log","close","setActiveRoomJid","initXmmpClient","hasUser","defaultWallet","walletAddress","initBeforeLoad","xmppUsername","xmppSettings","then","c","getRoomsStanza","getChatsPrivateStoreRequestStanza","catch","err","warn","refreshTokens","enabled","error","msg","response","data","String","showRoomList","disableRooms","children","style","padding","backgroundColor","borderRadius","maxWidth","alignItems","fontSize","fontWeight","marginBottom","color","onPress","emit","pressed","paddingVertical","paddingHorizontal","chats","Object","values","onRoomClick","handleBackClick","undefined","modal","setOpenModal","title","description","buttonText","backgroundColorButton","handleClick","handleCloseModal","compact","colors","primary"],"sourceRoot":"../../../../src","sources":["components/MainComponents/ChatWrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","useState","useDispatch","useSelector","ChatRoom","setActiveModal","setConfig","setDeleteModal","setStoreClient","ChatWrapperBox","Overlay","ConnectionBanner","Message","useXmppClient","LoginForm","Loader","setCurrentRoom","setEditAction","setIsLoading","refresh","RoomList","StyledLoaderWrapper","Modal","ModalWrapper","useChatSettingState","DeviceEventEmitter","Pressable","Text","View","pushLog","devPushLog","normalizeRoomJid","InteractionsOverlayProvider","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ChatWrapper","MainComponentStyles","CustomMessageComponent","room","config","roomJID","user","activeModal","deleteModal","client","storedClient","isInited","setInited","showModal","setShowModal","errorMsg","setErrorMsg","isChatVisible","setIsChatVisible","isSmallScreen","setIsSmallScreen","handleItemClick","value","dispatch","initializeClient","setClient","providerBootstrapStatus","initMode","rooms","activeRoomJID","state","activeMessage","messages","find","message","handleChangeChat","chat","jid","chatJID","loading","isEdit","handleDeleteClick","roomJid","messageId","isDeleteModal","deleteMessageStanza","handleCloseDeleteModal","xmppPassword","console","log","close","setActiveRoomJid","xmppSettings","conference","initXmmpClient","hasUser","defaultWallet","walletAddress","initBeforeLoad","c","xmppUsername","getRoomsStanza","getChatsPrivateStoreRequestStanza","catch","err","warn","refreshTokens","enabled","then","error","msg","response","data","String","haveCachedRooms","Object","keys","length","haveUser","showRoomList","disableRooms","children","disableConnectionErrorOverlay","style","padding","backgroundColor","borderRadius","maxWidth","alignItems","fontSize","fontWeight","marginBottom","color","onPress","emit","pressed","paddingVertical","paddingHorizontal","chats","values","onRoomClick","handleBackClick","undefined","modal","setOpenModal","title","description","buttonText","backgroundColorButton","handleClick","handleCloseModal","compact","colors","primary"],"sourceRoot":"../../../../src","sources":["components/MainComponents/ChatWrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,14 @@ import CustomMessageImage from '../styled/MessageImage';
|
|
|
6
6
|
import CustomMessageVideo from '../styled/VideoMessage';
|
|
7
7
|
import AudioMessage from '../styled/AudioMessage';
|
|
8
8
|
import { Text } from 'react-native';
|
|
9
|
-
import { deriveDisplayFilename } from '../../helpers/mimeToExtension';
|
|
9
|
+
import { deriveDisplayFilename, isLikelyAudio } from '../../helpers/mimeToExtension';
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
const MediaMessage = ({
|
|
12
12
|
mimeType,
|
|
13
13
|
location,
|
|
14
14
|
messageText,
|
|
15
|
-
message
|
|
15
|
+
message,
|
|
16
|
+
isUser
|
|
16
17
|
}) => {
|
|
17
18
|
if (mimeType) {
|
|
18
19
|
const displayName = deriveDisplayFilename({
|
|
@@ -42,20 +43,24 @@ const MediaMessage = ({
|
|
|
42
43
|
}
|
|
43
44
|
default:
|
|
44
45
|
{
|
|
45
|
-
//
|
|
46
|
-
// application/octet-stream
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
// Some senders (notably the web app's voice-message uploader)
|
|
47
|
+
// ship audio as `application/octet-stream` with no audio file
|
|
48
|
+
// extension. `isLikelyAudio` recognises those via the URL path,
|
|
49
|
+
// filename, or voice-message naming hints (voicemail-,
|
|
50
|
+
// voice-note-, recording-, …) so we still render the AudioMessage
|
|
51
|
+
// player instead of falling through to the generic FileDownload
|
|
52
|
+
// card (where the voicemail rendered as a broken `.bin`
|
|
53
|
+
// attachment). Customer-reported #9 voicemail fix.
|
|
54
|
+
if (isLikelyAudio(mimeType, displayName, location)) {
|
|
55
|
+
return /*#__PURE__*/_jsx(AudioMessage, {
|
|
56
|
+
src: location || ''
|
|
57
|
+
});
|
|
54
58
|
}
|
|
55
59
|
return /*#__PURE__*/_jsx(FileDownload, {
|
|
56
60
|
fileURL: location ? location : '',
|
|
57
61
|
fileName: displayName,
|
|
58
|
-
mimetype: mimeType
|
|
62
|
+
mimetype: mimeType,
|
|
63
|
+
isUser: isUser
|
|
59
64
|
});
|
|
60
65
|
}
|
|
61
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","FileDownload","CustomMessageImage","CustomMessageVideo","AudioMessage","Text","deriveDisplayFilename","jsx","_jsx","MediaMessage","mimeType","location","messageText","message","displayName","fileName","originalName","url","mime","startsWith","fileURL","mimetype","src","
|
|
1
|
+
{"version":3,"names":["React","FileDownload","CustomMessageImage","CustomMessageVideo","AudioMessage","Text","deriveDisplayFilename","isLikelyAudio","jsx","_jsx","MediaMessage","mimeType","location","messageText","message","isUser","displayName","fileName","originalName","url","mime","startsWith","fileURL","mimetype","src","children"],"sourceRoot":"../../../../src","sources":["components/MainComponents/MediaMessage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,YAAY,MAAM,2BAA2B;AACpD,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,OAAOC,YAAY,MAAM,wBAAwB;AACjD,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUrF,MAAMC,YAAyC,GAAGA,CAAC;EACjDC,QAAQ;EACRC,QAAQ;EACRC,WAAW;EACXC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,IAAIJ,QAAQ,EAAE;IACZ,MAAMK,WAAW,GAAGV,qBAAqB,CAAC;MACxCW,QAAQ,EAAEH,OAAO,EAAEG,QAAQ;MAC3BC,YAAY,EAAGJ,OAAO,EAAUI,YAAY;MAC5CC,GAAG,EAAEP,QAAQ,IAAIC,WAAW;MAC5BO,IAAI,EAAET;IACR,CAAC,CAAC;IACF,QAAQ,IAAI;MACV,KAAKA,QAAQ,CAACU,UAAU,CAAC,QAAQ,CAAC;QAChC,oBACEZ,IAAA,CAACP,kBAAkB;UACjBe,QAAQ,EAAED,WAAY;UACtBM,OAAO,EAAET,WAAW,IAAI,EAAG;UAC3BU,QAAQ,EAAEZ;QAAS,CACpB,CAAC;MAEN,KAAKA,QAAQ,CAACU,UAAU,CAAC,QAAQ,CAAC;QAChC,oBACEZ,IAAA,CAACN,kBAAkB;UACjBc,QAAQ,EAAED,WAAY;UACtBM,OAAO,EAAEV,QAAQ,IAAI,EAAG;UACxBW,QAAQ,EAAEZ;QAAS,CACpB,CAAC;MAEN,KAAKA,QAAQ,CAACU,UAAU,CAAC,QAAQ,CAAC;QAAE;UAClC,oBAAOZ,IAAA,CAACL,YAAY;YAACoB,GAAG,EAAEZ,QAAQ,IAAI;UAAG,CAAE,CAAC;QAC9C;MACA;QAAS;UACP;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA,IAAIL,aAAa,CAACI,QAAQ,EAAEK,WAAW,EAAEJ,QAAQ,CAAC,EAAE;YAClD,oBAAOH,IAAA,CAACL,YAAY;cAACoB,GAAG,EAAEZ,QAAQ,IAAI;YAAG,CAAE,CAAC;UAC9C;UACA,oBACEH,IAAA,CAACR,YAAY;YACXqB,OAAO,EAAEV,QAAQ,GAAGA,QAAQ,GAAG,EAAG;YAClCK,QAAQ,EAAED,WAAY;YACtBO,QAAQ,EAAEZ,QAAS;YACnBI,MAAM,EAAEA;UAAO,CAChB,CAAC;QAEN;IACF;EACF;EACA,oBAAON,IAAA,CAACJ,IAAI;IAAAoB,QAAA,EAAC;EAAsB,CAAM,CAAC;AAC5C,CAAC;AAED,eAAef,YAAY","ignoreList":[]}
|
|
@@ -40,7 +40,7 @@ export const MessageContainer = ({
|
|
|
40
40
|
})]
|
|
41
41
|
}, message.id);
|
|
42
42
|
}
|
|
43
|
-
if (message?.id
|
|
43
|
+
if (String(message?.id || '').startsWith('delimiter-new')) {
|
|
44
44
|
return CustomNewMessageLabel ? /*#__PURE__*/_jsx(CustomNewMessageLabel, {
|
|
45
45
|
color: config?.colors?.primary
|
|
46
46
|
}) : /*#__PURE__*/_jsx(NewMessageLabel, {
|
|
@@ -49,7 +49,7 @@ export const MessageContainer = ({
|
|
|
49
49
|
}
|
|
50
50
|
const MessageComponent = CustomMessage || Message;
|
|
51
51
|
return /*#__PURE__*/_jsxs(View, {
|
|
52
|
-
children: [showDateLabel && !activeMessage && message.id
|
|
52
|
+
children: [showDateLabel && !activeMessage && !String(message.id || '').startsWith('delimiter-new') ? CustomDaySeparator ? /*#__PURE__*/_jsx(CustomDaySeparator, {
|
|
53
53
|
date: messageDate,
|
|
54
54
|
formattedDate: messageDate.toLocaleDateString()
|
|
55
55
|
}) : /*#__PURE__*/_jsx(DateLabel, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","DateLabel","SystemMessage","NewMessageLabel","Message","MessageText","MessageTimestamp","UserName","View","jsx","_jsx","jsxs","_jsxs","_Fragment","MessageContainer","CustomMessage","CustomDaySeparator","CustomNewMessageLabel","message","activeMessage","config","walletAddress","showDateLabel","isReply","className","isUser","user","id","messageDate","Date","date","isSystemMessage","SystemMessageComponent","customSystemMessage","children","formattedDate","toLocaleDateString","colors","messageText","body","color","primary","MessageComponent","toLocaleTimeString","name"],"sourceRoot":"../../../../src","sources":["components/MainComponents/MessageContainer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAQC,QAAQ,QAAiB,OAAO;AAEpD,OAAOC,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,aAAa,MAAM,iBAAiB;AAC3C,OAAOC,eAAe,MAAM,2BAA2B;AACvD,SACEC,OAAO,EACPC,WAAW,EACXC,gBAAgB,EAChBC,QAAQ,QACH,4BAA4B;AACnC,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAZ,QAAA,IAAAa,SAAA;AAyBpC,OAAO,MAAMC,gBAA2C,GAAGA,CAAC;EAC1DC,aAAa;EACbC,kBAAkB;EAClBC,qBAAqB;EACrBC,OAAO;EACPC,aAAa;EACbC,MAAM;EACNC,aAAa;EACbC,aAAa;EACbC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAMC,MAAM,GAAGP,OAAO,CAACQ,IAAI,CAACC,EAAE,KAAKN,aAAa;EAEhD,MAAMO,WAAW,GAAG,IAAIC,IAAI,CAACX,OAAO,CAACY,IAAI,CAAC;EAE1C,IAAIZ,OAAO,EAAEa,eAAe,KAAK,MAAM,EAAE;IACvC,MAAMC,sBAAsB,GAAGZ,MAAM,EAAEa,mBAAmB;IAC1D,oBACErB,KAAA,CAACZ,QAAQ;MAAAkC,QAAA,GACNZ,aAAa,KACZN,kBAAkB,gBAChBN,IAAA,CAACM,kBAAkB;QACjBc,IAAI,EAAEF,WAAY;QAClBO,aAAa,EAAEP,WAAW,CAACQ,kBAAkB,CAAC;MAAE,CACjD,CAAC,gBAEF1B,IAAA,CAACT,SAAS;QAAC6B,IAAI,EAAEF,WAAY;QAACS,MAAM,EAAEjB,MAAM,EAAEiB;MAAO,CAAE,CACxD,CACF,EACAL,sBAAsB,gBACrBtB,IAAA,CAACsB,sBAAsB;QAACd,OAAO,EAAEA,OAAQ;QAACO,MAAM,EAAE,KAAM;QAACF,OAAO,EAAE;MAAM,CAAE,CAAC,gBAE3Eb,IAAA,CAACR,aAAa;QAACoC,WAAW,EAAEpB,OAAO,CAACqB,IAAK;QAACF,MAAM,EAAEjB,MAAM,EAAEiB;MAAO,CAAE,CACpE;IAAA,GAfYnB,OAAO,CAACS,EAgBb,CAAC;EAEf;EAEA,
|
|
1
|
+
{"version":3,"names":["React","Fragment","DateLabel","SystemMessage","NewMessageLabel","Message","MessageText","MessageTimestamp","UserName","View","jsx","_jsx","jsxs","_jsxs","_Fragment","MessageContainer","CustomMessage","CustomDaySeparator","CustomNewMessageLabel","message","activeMessage","config","walletAddress","showDateLabel","isReply","className","isUser","user","id","messageDate","Date","date","isSystemMessage","SystemMessageComponent","customSystemMessage","children","formattedDate","toLocaleDateString","colors","messageText","body","String","startsWith","color","primary","MessageComponent","toLocaleTimeString","name"],"sourceRoot":"../../../../src","sources":["components/MainComponents/MessageContainer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
/** @format */
|
|
4
4
|
|
|
5
5
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
|
-
import { View, StyleSheet, FlatList, Image, TouchableOpacity } from 'react-native';
|
|
6
|
+
import { View, Text, StyleSheet, FlatList, Image, TouchableOpacity } from 'react-native';
|
|
7
|
+
import { msgSortableMs } from '../../roomStore/roomsSlice';
|
|
7
8
|
import Composing from '../styled/StyledInputComponents/Composing';
|
|
8
9
|
import TreadLabel from '../styled/TreadLabel';
|
|
9
10
|
import { MessageContainer } from './MessageContainer';
|
|
@@ -31,10 +32,24 @@ const MessageList = ({
|
|
|
31
32
|
} = useRoomState(roomJID).room;
|
|
32
33
|
const [isUserAtBottom, setIsUserAtBottom] = useState(true);
|
|
33
34
|
const [showNewMessageIndicator, setShowNewMessageIndicator] = useState(false);
|
|
34
|
-
const [isContentOffset, setIsContentOffset] = useState(false);
|
|
35
35
|
const [isLoadingMore, setIsLoadingMore] = useState(false);
|
|
36
36
|
const [isScrollBlocked, setIsScrollBlocked] = useState(false);
|
|
37
|
-
|
|
37
|
+
// Count of messages that arrived while the user was scrolled up.
|
|
38
|
+
// Renders as a badge on the scroll-to-bottom arrow so they know how
|
|
39
|
+
// much they're missing without having to scroll to find out.
|
|
40
|
+
const [unreadWhileScrolledUp, setUnreadWhileScrolledUp] = useState(0);
|
|
41
|
+
// Newest message timestamp at the moment the user scrolled away from
|
|
42
|
+
// the bottom. The badge counts only messages NEWER than this, so
|
|
43
|
+
// back-pagination (loading OLDER history while scrolled up) never
|
|
44
|
+
// inflates the count. Was previously a message-COUNT snapshot, which
|
|
45
|
+
// wrongly counted back-paginated old messages as "new" (Android repro).
|
|
46
|
+
const newestSeenTsRef = useRef(null);
|
|
47
|
+
// Refs mirror the viewport state synchronously. The auto-follow logic
|
|
48
|
+
// runs from FlatList callbacks where setState hasn't necessarily
|
|
49
|
+
// committed yet; relying on stale React state is what caused the chat
|
|
50
|
+
// to jump back to the bottom when a new message landed mid-scroll.
|
|
51
|
+
const isUserAtBottomRef = useRef(true);
|
|
52
|
+
const hasUserScrolledRef = useRef(false);
|
|
38
53
|
const flatListRef = useRef(null);
|
|
39
54
|
const addReplyMessages = useMemo(() => {
|
|
40
55
|
return messages.map(message => {
|
|
@@ -94,15 +109,64 @@ const MessageList = ({
|
|
|
94
109
|
}
|
|
95
110
|
}, [memoizedMessages, loadMoreMessages, loading, isLoadingMore, isScrollBlocked, roomJID]);
|
|
96
111
|
const dataMessages = useMemo(() => {
|
|
97
|
-
|
|
98
|
-
|
|
112
|
+
const base = memoizedMessages.slice().reverse();
|
|
113
|
+
const boundaryTs = newestSeenTsRef.current;
|
|
114
|
+
if (isUserAtBottomRef.current || boundaryTs === null || unreadWhileScrolledUp === 0) {
|
|
115
|
+
return base;
|
|
116
|
+
}
|
|
117
|
+
let lastNewIndex = -1;
|
|
118
|
+
for (let i = 0; i < base.length; i++) {
|
|
119
|
+
if (msgSortableMs(base[i]) > boundaryTs) {
|
|
120
|
+
lastNewIndex = i;
|
|
121
|
+
} else {
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (lastNewIndex === -1) {
|
|
126
|
+
return base;
|
|
127
|
+
}
|
|
128
|
+
const withDivider = base.slice();
|
|
129
|
+
withDivider.splice(lastNewIndex + 1, 0, {
|
|
130
|
+
id: 'delimiter-new-local',
|
|
131
|
+
user: {
|
|
132
|
+
id: 'system',
|
|
133
|
+
name: undefined,
|
|
134
|
+
token: '',
|
|
135
|
+
refreshToken: ''
|
|
136
|
+
},
|
|
137
|
+
date: new Date(boundaryTs).toISOString(),
|
|
138
|
+
body: 'New Messages',
|
|
139
|
+
roomJid: roomJID
|
|
140
|
+
});
|
|
141
|
+
return withDivider;
|
|
142
|
+
}, [memoizedMessages, isUserAtBottom, roomJID, unreadWhileScrolledUp]);
|
|
99
143
|
const renderMessage = useCallback(({
|
|
100
144
|
item,
|
|
101
145
|
index
|
|
102
146
|
}) => {
|
|
147
|
+
if (String(item.id).startsWith('delimiter-new')) {
|
|
148
|
+
return /*#__PURE__*/_jsx(MessageContainer, {
|
|
149
|
+
CustomMessage: CustomMessage,
|
|
150
|
+
CustomDaySeparator: CustomDaySeparator,
|
|
151
|
+
CustomNewMessageLabel: CustomNewMessageLabel,
|
|
152
|
+
message: item,
|
|
153
|
+
activeMessage: activeMessage,
|
|
154
|
+
config: config,
|
|
155
|
+
walletAddress: user.xmppUsername || user.walletAddress,
|
|
156
|
+
isReply: isReply,
|
|
157
|
+
showDateLabel: false
|
|
158
|
+
});
|
|
159
|
+
}
|
|
103
160
|
const messageDate = new Date(item.date).toDateString();
|
|
104
161
|
let showDateLabel = false;
|
|
105
|
-
|
|
162
|
+
let nextMessage = null;
|
|
163
|
+
for (let i = index + 1; i < dataMessages.length; i++) {
|
|
164
|
+
const candidate = dataMessages[i];
|
|
165
|
+
if (!String(candidate.id).startsWith('delimiter-new')) {
|
|
166
|
+
nextMessage = candidate;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
106
170
|
const nextMessageDate = nextMessage ? new Date(nextMessage.date).toDateString() : null;
|
|
107
171
|
if (!nextMessage || messageDate !== nextMessageDate) {
|
|
108
172
|
showDateLabel = true;
|
|
@@ -118,7 +182,7 @@ const MessageList = ({
|
|
|
118
182
|
isReply: isReply,
|
|
119
183
|
showDateLabel: showDateLabel
|
|
120
184
|
});
|
|
121
|
-
}, [activeMessage, config, user.xmppUsername, user.walletAddress
|
|
185
|
+
}, [activeMessage, config, CustomDaySeparator, CustomMessage, CustomNewMessageLabel, dataMessages, isReply, user.xmppUsername, user.walletAddress]);
|
|
122
186
|
const scrollToBottom = useCallback(() => {
|
|
123
187
|
if (flatListRef.current) {
|
|
124
188
|
flatListRef.current.scrollToOffset({
|
|
@@ -128,16 +192,12 @@ const MessageList = ({
|
|
|
128
192
|
}
|
|
129
193
|
}, [flatListRef]);
|
|
130
194
|
const handleContentSizeChange = useCallback(() => {
|
|
131
|
-
if (
|
|
132
|
-
scrollToBottom();
|
|
133
|
-
setIsContentOffset(false);
|
|
134
|
-
}
|
|
135
|
-
if (!isLoadingMore && flatListRef.current && isUserAtBottom) {
|
|
195
|
+
if (!isLoadingMore && flatListRef.current && isUserAtBottomRef.current) {
|
|
136
196
|
scrollToBottom();
|
|
137
|
-
} else if (!isLoadingMore &&
|
|
197
|
+
} else if (!isLoadingMore && hasUserScrolledRef.current) {
|
|
138
198
|
setShowNewMessageIndicator(true);
|
|
139
199
|
}
|
|
140
|
-
}, [
|
|
200
|
+
}, [scrollToBottom, isLoadingMore]);
|
|
141
201
|
const handleScroll = useCallback(event => {
|
|
142
202
|
const contentOffset = event.nativeEvent.contentOffset.y;
|
|
143
203
|
|
|
@@ -146,34 +206,70 @@ const MessageList = ({
|
|
|
146
206
|
// to a long thread feel broken. Drag-to-dismiss still works via
|
|
147
207
|
// FlatList's keyboardDismissMode="interactive" below.
|
|
148
208
|
|
|
149
|
-
if (contentOffset > 150 && !
|
|
150
|
-
|
|
209
|
+
if (contentOffset > 150 && !hasUserScrolledRef.current) {
|
|
210
|
+
hasUserScrolledRef.current = true;
|
|
151
211
|
}
|
|
152
212
|
if (contentOffset < 150) {
|
|
153
|
-
|
|
213
|
+
isUserAtBottomRef.current = true;
|
|
154
214
|
setShowNewMessageIndicator(false);
|
|
155
215
|
setIsUserAtBottom(true);
|
|
216
|
+
// Back at the bottom — clear the unread-while-scrolled-up
|
|
217
|
+
// counter so the badge disappears with the arrow.
|
|
218
|
+
setUnreadWhileScrolledUp(0);
|
|
219
|
+
newestSeenTsRef.current = null;
|
|
156
220
|
} else {
|
|
157
|
-
|
|
158
|
-
if (
|
|
221
|
+
isUserAtBottomRef.current = false;
|
|
222
|
+
if (hasUserScrolledRef.current) {
|
|
159
223
|
setShowNewMessageIndicator(true);
|
|
160
224
|
}
|
|
225
|
+
if (newestSeenTsRef.current === null) {
|
|
226
|
+
// Snapshot the NEWEST message's timestamp the moment the user
|
|
227
|
+
// first leaves the bottom. Anything newer than this that
|
|
228
|
+
// arrives later is genuinely "new"; older history loaded by
|
|
229
|
+
// back-pagination is < this and never counts.
|
|
230
|
+
newestSeenTsRef.current = memoizedMessages.reduce((mx, m) => {
|
|
231
|
+
const t = msgSortableMs(m);
|
|
232
|
+
return t > mx ? t : mx;
|
|
233
|
+
}, 0);
|
|
234
|
+
}
|
|
161
235
|
setIsUserAtBottom(false);
|
|
162
236
|
}
|
|
163
|
-
}, [
|
|
237
|
+
}, [memoizedMessages]);
|
|
238
|
+
|
|
239
|
+
// Keep the badge in sync with messages that arrive while the user is
|
|
240
|
+
// scrolled up. Count ONLY messages newer than the newest-seen snapshot
|
|
241
|
+
// — so loading older history (back-pagination) doesn't inflate it.
|
|
242
|
+
useEffect(() => {
|
|
243
|
+
if (isUserAtBottomRef.current) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (newestSeenTsRef.current === null) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const since = newestSeenTsRef.current;
|
|
250
|
+
const count = memoizedMessages.reduce((n, m) => msgSortableMs(m) > since ? n + 1 : n, 0);
|
|
251
|
+
setUnreadWhileScrolledUp(count);
|
|
252
|
+
}, [memoizedMessages, isUserAtBottom]);
|
|
164
253
|
const handleLayout = () => {
|
|
165
|
-
|
|
254
|
+
isUserAtBottomRef.current = true;
|
|
255
|
+
hasUserScrolledRef.current = false;
|
|
166
256
|
setIsUserAtBottom(true);
|
|
167
257
|
};
|
|
168
258
|
const handleNewMessageIndicatorPress = () => {
|
|
259
|
+
isUserAtBottomRef.current = true;
|
|
169
260
|
setShowNewMessageIndicator(false);
|
|
170
261
|
setIsUserAtBottom(true);
|
|
262
|
+
setUnreadWhileScrolledUp(0);
|
|
263
|
+
newestSeenTsRef.current = null;
|
|
171
264
|
scrollToBottom();
|
|
172
265
|
};
|
|
173
266
|
useEffect(() => {
|
|
174
|
-
|
|
267
|
+
hasUserScrolledRef.current = false;
|
|
268
|
+
isUserAtBottomRef.current = true;
|
|
175
269
|
setShowNewMessageIndicator(false);
|
|
176
270
|
setIsUserAtBottom(true);
|
|
271
|
+
setUnreadWhileScrolledUp(0);
|
|
272
|
+
newestSeenTsRef.current = null;
|
|
177
273
|
}, [roomJID]);
|
|
178
274
|
const BackgroundImage = useMemo(() => {
|
|
179
275
|
const image = config?.backgroundChat?.image;
|
|
@@ -209,7 +305,7 @@ const MessageList = ({
|
|
|
209
305
|
})]
|
|
210
306
|
}), /*#__PURE__*/_jsx(FlatList, {
|
|
211
307
|
ref: flatListRef,
|
|
212
|
-
data:
|
|
308
|
+
data: dataMessages,
|
|
213
309
|
renderItem: renderMessage,
|
|
214
310
|
keyExtractor: item => item.id.toString(),
|
|
215
311
|
onEndReached: handleLoadMore,
|
|
@@ -225,12 +321,22 @@ const MessageList = ({
|
|
|
225
321
|
ListFooterComponent: loading && memoizedMessages.length > 15 ? /*#__PURE__*/_jsx(Loader, {
|
|
226
322
|
color: config?.colors?.primary
|
|
227
323
|
}) : null
|
|
228
|
-
}), showNewMessageIndicator && /*#__PURE__*/
|
|
324
|
+
}), showNewMessageIndicator && /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
229
325
|
style: [styles.newMessageIndicator, {
|
|
230
|
-
backgroundColor: config?.colors?.
|
|
326
|
+
backgroundColor: config?.colors?.primary || '#0052CD'
|
|
231
327
|
}],
|
|
232
328
|
onPress: handleNewMessageIndicatorPress,
|
|
233
|
-
children: /*#__PURE__*/_jsx(ArowDownIcon, {
|
|
329
|
+
children: [/*#__PURE__*/_jsx(ArowDownIcon, {
|
|
330
|
+
color: "#FFFFFF",
|
|
331
|
+
width: 22,
|
|
332
|
+
height: 22
|
|
333
|
+
}), unreadWhileScrolledUp > 0 && /*#__PURE__*/_jsx(View, {
|
|
334
|
+
style: styles.newMessageBadge,
|
|
335
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
336
|
+
style: styles.newMessageBadgeText,
|
|
337
|
+
children: unreadWhileScrolledUp > 99 ? '99+' : unreadWhileScrolledUp
|
|
338
|
+
})
|
|
339
|
+
})]
|
|
234
340
|
}), config?.customTypingIndicator?.enabled && composing && /*#__PURE__*/_jsx(CustomTypingIndicator, {
|
|
235
341
|
usersTyping: composingList || ['User'],
|
|
236
342
|
text: config.customTypingIndicator.text,
|
|
@@ -280,13 +386,44 @@ const styles = StyleSheet.create({
|
|
|
280
386
|
height: 40,
|
|
281
387
|
bottom: 20,
|
|
282
388
|
right: 20,
|
|
283
|
-
backgroundColor: '#
|
|
284
|
-
|
|
285
|
-
|
|
389
|
+
backgroundColor: '#0052CD',
|
|
390
|
+
borderRadius: 20,
|
|
391
|
+
justifyContent: 'center',
|
|
392
|
+
alignItems: 'center',
|
|
393
|
+
// Lift the FAB off the chat background so it reads as a button.
|
|
394
|
+
shadowColor: '#000',
|
|
395
|
+
shadowOffset: {
|
|
396
|
+
width: 0,
|
|
397
|
+
height: 2
|
|
398
|
+
},
|
|
399
|
+
shadowOpacity: 0.2,
|
|
400
|
+
shadowRadius: 3,
|
|
401
|
+
elevation: 4
|
|
286
402
|
},
|
|
287
403
|
newMessageText: {
|
|
288
404
|
color: '#fff',
|
|
289
405
|
fontWeight: 'bold'
|
|
406
|
+
},
|
|
407
|
+
newMessageBadge: {
|
|
408
|
+
position: 'absolute',
|
|
409
|
+
top: -6,
|
|
410
|
+
right: -6,
|
|
411
|
+
minWidth: 20,
|
|
412
|
+
height: 20,
|
|
413
|
+
paddingHorizontal: 6,
|
|
414
|
+
borderRadius: 10,
|
|
415
|
+
justifyContent: 'center',
|
|
416
|
+
alignItems: 'center',
|
|
417
|
+
// Fixed red so it stays distinct from the (primary-coloured) FAB,
|
|
418
|
+
// with a white ring to separate the two.
|
|
419
|
+
backgroundColor: '#E53935',
|
|
420
|
+
borderWidth: 2,
|
|
421
|
+
borderColor: '#fff'
|
|
422
|
+
},
|
|
423
|
+
newMessageBadgeText: {
|
|
424
|
+
color: '#fff',
|
|
425
|
+
fontWeight: 'bold',
|
|
426
|
+
fontSize: 11
|
|
290
427
|
}
|
|
291
428
|
});
|
|
292
429
|
//# sourceMappingURL=MessageList.js.map
|