@ethora/chat-component-rn 26.8.4 → 26.8.6
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/README.md +55 -0
- package/lib/commonjs/assets/emojiData.js +40 -0
- package/lib/commonjs/assets/emojiData.js.map +1 -0
- package/lib/commonjs/assets/icons.js +1 -1
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/Header/HeaderRoomList.js +12 -7
- package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +7 -9
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +47 -26
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +58 -21
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/KeyboardInputDock.js +40 -0
- package/lib/commonjs/components/MainComponents/KeyboardInputDock.js.map +1 -0
- package/lib/commonjs/components/MainComponents/MessageContainer.js +4 -12
- package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +110 -35
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +32 -29
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomStack.js +270 -0
- package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -0
- package/lib/commonjs/components/MainComponents/SystemMessage.js +6 -2
- package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Avatar.js +5 -1
- package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +17 -21
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js +447 -0
- package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/Message.js +200 -132
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +213 -12
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageReaction.js +113 -94
- package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageReply.js +66 -24
- package/lib/commonjs/components/MessageBubble/MessageReply.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +6 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/Modal/Modal.js +24 -0
- package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js +178 -0
- package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js.map +1 -0
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +28 -10
- package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +9 -3
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +5 -4
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
- package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadWrapper.js +265 -152
- package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/commonjs/components/styled/DateLabel.js +6 -3
- package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
- package/lib/commonjs/context/MessageNotificationContext.js +188 -9
- package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +22 -7
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/createRoomFromApi.js +36 -2
- package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
- package/lib/commonjs/helpers/emoji.js +51 -0
- package/lib/commonjs/helpers/emoji.js.map +1 -0
- package/lib/commonjs/helpers/haptics.js +29 -0
- package/lib/commonjs/helpers/haptics.js.map +1 -0
- package/lib/commonjs/helpers/historyPreloadScheduler.js +32 -66
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +21 -12
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/keyboardLayout.js +23 -1
- package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
- package/lib/commonjs/helpers/mamReactions.js +57 -0
- package/lib/commonjs/helpers/mamReactions.js.map +1 -0
- package/lib/commonjs/helpers/parseMessageReference.js +42 -0
- package/lib/commonjs/helpers/parseMessageReference.js.map +1 -0
- package/lib/commonjs/helpers/reactionsConfig.js +17 -0
- package/lib/commonjs/helpers/reactionsConfig.js.map +1 -0
- package/lib/commonjs/helpers/updateMessagesTillLast.js +17 -2
- package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/commonjs/hooks/useHeapSender.js +3 -1
- package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
- package/lib/commonjs/hooks/useMessageHeapState.js +3 -2
- package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
- package/lib/commonjs/hooks/useRoomInitialization.js +16 -7
- package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +14 -8
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +106 -50
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +29 -74
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +4 -0
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/mamRouter.js +186 -0
- package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -0
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +41 -4
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +98 -23
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +29 -34
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/perfMiddleware.js +51 -0
- package/lib/commonjs/roomStore/Middleware/perfMiddleware.js.map +1 -0
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +66 -43
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +88 -68
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +18 -14
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistBackend.js +96 -0
- package/lib/commonjs/roomStore/persistBackend.js.map +1 -0
- package/lib/commonjs/roomStore/persistence.js +245 -50
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +282 -136
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/theme/theme.js +3 -0
- package/lib/commonjs/theme/theme.js.map +1 -1
- package/lib/commonjs/utils/devLogger.js +14 -0
- package/lib/commonjs/utils/devLogger.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/assets/emojiData.js +36 -0
- package/lib/module/assets/emojiData.js.map +1 -0
- package/lib/module/assets/icons.js +1 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/Header/HeaderRoomList.js +12 -7
- package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +8 -10
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +49 -28
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +60 -23
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/KeyboardInputDock.js +33 -0
- package/lib/module/components/MainComponents/KeyboardInputDock.js.map +1 -0
- package/lib/module/components/MainComponents/MessageContainer.js +7 -14
- package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +110 -35
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +32 -29
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MainComponents/RoomStack.js +266 -0
- package/lib/module/components/MainComponents/RoomStack.js.map +1 -0
- package/lib/module/components/MainComponents/SystemMessage.js +6 -2
- package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/module/components/MessageBubble/Avatar.js +5 -1
- package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js +18 -22
- package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/module/components/MessageBubble/EmojiPickerSheet.js +438 -0
- package/lib/module/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
- package/lib/module/components/MessageBubble/Message.js +203 -134
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +215 -14
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageReaction.js +115 -94
- package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageReply.js +65 -24
- package/lib/module/components/MessageBubble/MessageReply.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +6 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/Modal/Modal.js +25 -1
- package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/module/components/Modals/Modal/SwipeBackLayer.js +172 -0
- package/lib/module/components/Modals/Modal/SwipeBackLayer.js.map +1 -0
- package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +29 -11
- package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +10 -4
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +5 -4
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
- package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
- package/lib/module/components/Thread/ThreadWrapper.js +264 -152
- package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/module/components/styled/DateLabel.js +6 -3
- package/lib/module/components/styled/DateLabel.js.map +1 -1
- package/lib/module/context/MessageNotificationContext.js +190 -11
- package/lib/module/context/MessageNotificationContext.js.map +1 -1
- package/lib/module/context/xmppProvider.js +22 -7
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/createRoomFromApi.js +36 -2
- package/lib/module/helpers/createRoomFromApi.js.map +1 -1
- package/lib/module/helpers/emoji.js +44 -0
- package/lib/module/helpers/emoji.js.map +1 -0
- package/lib/module/helpers/haptics.js +24 -0
- package/lib/module/helpers/haptics.js.map +1 -0
- package/lib/module/helpers/historyPreloadScheduler.js +32 -66
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js +21 -12
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/keyboardLayout.js +20 -0
- package/lib/module/helpers/keyboardLayout.js.map +1 -1
- package/lib/module/helpers/mamReactions.js +51 -0
- package/lib/module/helpers/mamReactions.js.map +1 -0
- package/lib/module/helpers/parseMessageReference.js +37 -0
- package/lib/module/helpers/parseMessageReference.js.map +1 -0
- package/lib/module/helpers/reactionsConfig.js +10 -0
- package/lib/module/helpers/reactionsConfig.js.map +1 -0
- package/lib/module/helpers/updateMessagesTillLast.js +17 -2
- package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/module/hooks/useHeapSender.js +3 -1
- package/lib/module/hooks/useHeapSender.js.map +1 -1
- package/lib/module/hooks/useMessageHeapState.js +3 -2
- package/lib/module/hooks/useMessageHeapState.js.map +1 -1
- package/lib/module/hooks/useRoomInitialization.js +17 -8
- package/lib/module/hooks/useRoomInitialization.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +14 -8
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +107 -51
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/getHistory.xmpp.js +29 -74
- package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +4 -0
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/mamRouter.js +175 -0
- package/lib/module/networking/xmpp/mamRouter.js.map +1 -0
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +38 -2
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +99 -24
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js +29 -34
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/module/roomStore/Middleware/perfMiddleware.js +45 -0
- package/lib/module/roomStore/Middleware/perfMiddleware.js.map +1 -0
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js +66 -43
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/module/roomStore/Middleware/unreadMidlleware.js +89 -69
- package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/module/roomStore/index.js +19 -15
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistBackend.js +89 -0
- package/lib/module/roomStore/persistBackend.js.map +1 -0
- package/lib/module/roomStore/persistence.js +245 -48
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +275 -134
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/theme/theme.js +3 -0
- package/lib/module/theme/theme.js.map +1 -1
- package/lib/module/utils/devLogger.js +13 -0
- package/lib/module/utils/devLogger.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/assets/emojiData.d.ts +8 -0
- package/lib/typescript/assets/emojiData.d.ts.map +1 -0
- package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/KeyboardInputDock.d.ts +16 -0
- package/lib/typescript/components/MainComponents/KeyboardInputDock.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/MessageContainer.d.ts +2 -2
- 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/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomStack.d.ts +42 -0
- package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Avatar.d.ts +2 -0
- package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts +11 -0
- package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/Message.d.ts +2 -2
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +2 -0
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageReaction.d.ts +1 -0
- package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageReply.d.ts +7 -7
- package/lib/typescript/components/MessageBubble/MessageReply.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts +16 -0
- package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts.map +1 -0
- package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts +2 -2
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts +3 -6
- package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts.map +1 -1
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts +7 -1
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
- package/lib/typescript/components/styled/DateLabel.d.ts +1 -0
- package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
- package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
- package/lib/typescript/helpers/emoji.d.ts +6 -0
- package/lib/typescript/helpers/emoji.d.ts.map +1 -0
- package/lib/typescript/helpers/haptics.d.ts +3 -0
- package/lib/typescript/helpers/haptics.d.ts.map +1 -0
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts +1 -0
- 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 +6 -0
- package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
- package/lib/typescript/helpers/mamReactions.d.ts +13 -0
- package/lib/typescript/helpers/mamReactions.d.ts.map +1 -0
- package/lib/typescript/helpers/parseMessageReference.d.ts +16 -0
- package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -0
- package/lib/typescript/helpers/reactionsConfig.d.ts +5 -0
- package/lib/typescript/helpers/reactionsConfig.d.ts.map +1 -0
- package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
- package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
- package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
- package/lib/typescript/hooks/useRoomInitialization.d.ts +2 -2
- package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts +4 -2
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +3 -1
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/mamRouter.d.ts +23 -0
- package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +1 -0
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +22 -1
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts +4 -0
- package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts.map +1 -0
- package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts +9 -0
- package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistBackend.d.ts +11 -0
- package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -0
- package/lib/typescript/roomStore/persistence.d.ts +5 -6
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +41 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/theme/theme.d.ts +4 -1
- package/lib/typescript/theme/theme.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +4 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/models/room.model.d.ts +16 -0
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts +6 -1
- package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +15 -3
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/devLogger.d.ts +8 -0
- package/lib/typescript/utils/devLogger.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +10 -1
- package/src/assets/emojiData.ts +2146 -0
- package/src/assets/icons.tsx +5 -5
- package/src/components/Header/HeaderRoomList.tsx +7 -5
- package/src/components/MainComponents/ChatHeader.tsx +16 -7
- package/src/components/MainComponents/ChatRoom.tsx +64 -32
- package/src/components/MainComponents/ChatWrapper.tsx +73 -21
- package/src/components/MainComponents/KeyboardInputDock.tsx +47 -0
- package/src/components/MainComponents/MessageContainer.tsx +7 -15
- package/src/components/MainComponents/MessageList.tsx +96 -43
- package/src/components/MainComponents/RoomList.tsx +28 -29
- package/src/components/MainComponents/RoomStack.tsx +309 -0
- package/src/components/MainComponents/SystemMessage.tsx +6 -2
- package/src/components/MessageBubble/Avatar.tsx +7 -1
- package/src/components/MessageBubble/BottomReplyContainer.tsx +19 -21
- package/src/components/MessageBubble/EmojiPickerSheet.tsx +468 -0
- package/src/components/MessageBubble/Message.tsx +146 -87
- package/src/components/MessageBubble/MessageInteractions.tsx +213 -12
- package/src/components/MessageBubble/MessageReaction.tsx +120 -96
- package/src/components/MessageBubble/MessageReply.tsx +65 -32
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +4 -0
- package/src/components/Modals/Modal/Modal.tsx +32 -1
- package/src/components/Modals/Modal/SwipeBackLayer.tsx +221 -0
- package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +29 -8
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +6 -3
- package/src/components/RoomComponents/ChatRoomItem.tsx +11 -4
- package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +7 -8
- package/src/components/Thread/ThreadWrapper.tsx +274 -198
- package/src/components/styled/DateLabel.tsx +7 -3
- package/src/context/MessageNotificationContext.tsx +205 -7
- package/src/context/xmppProvider.tsx +29 -9
- package/src/helpers/createRoomFromApi.tsx +37 -1
- package/src/helpers/emoji.ts +39 -0
- package/src/helpers/haptics.ts +19 -0
- package/src/helpers/historyPreloadScheduler.ts +37 -69
- package/src/helpers/insertMessageWithDelimiter.ts +23 -16
- package/src/helpers/keyboardLayout.ts +26 -0
- package/src/helpers/mamReactions.ts +59 -0
- package/src/helpers/parseMessageReference.ts +38 -0
- package/src/helpers/reactionsConfig.ts +13 -0
- package/src/helpers/updateMessagesTillLast.tsx +14 -2
- package/src/hooks/useHeapSender.tsx +3 -2
- package/src/hooks/useMessageHeapState.tsx +6 -2
- package/src/hooks/useRoomInitialization.tsx +32 -15
- package/src/hooks/useSendMessage.tsx +18 -11
- package/src/hooks/useUnreadMessagesCounter.ts +1 -1
- package/src/networking/stanzaHandlers.ts +116 -60
- package/src/networking/xmpp/getHistory.xmpp.ts +44 -106
- package/src/networking/xmpp/handleStanzas.xmpp.ts +2 -0
- package/src/networking/xmpp/mamRouter.ts +176 -0
- package/src/networking/xmpp/presenceInRoom.xmpp.ts +46 -3
- package/src/networking/xmppClient.ts +105 -20
- package/src/roomStore/Middleware/newMessageMidlleware.tsx +35 -38
- package/src/roomStore/Middleware/perfMiddleware.ts +50 -0
- package/src/roomStore/Middleware/reactionsMiddleware.tsx +53 -52
- package/src/roomStore/Middleware/unreadMidlleware.tsx +92 -80
- package/src/roomStore/index.ts +28 -27
- package/src/roomStore/persistBackend.ts +96 -0
- package/src/roomStore/persistence.ts +280 -73
- package/src/roomStore/roomsSlice.ts +304 -155
- package/src/theme/theme.ts +10 -1
- package/src/types/models/message.model.ts +4 -0
- package/src/types/models/room.model.ts +17 -0
- package/src/types/models/xmpp.model.ts +4 -2
- package/src/types/types.ts +15 -3
- package/src/utils/devLogger.ts +16 -0
- package/src/version.ts +1 -1
|
@@ -13,6 +13,9 @@ import { msgSortableMs } from '../helpers/msgSortableMs';
|
|
|
13
13
|
// page backward arbitrarily far without instantly losing what they
|
|
14
14
|
// just fetched. After cap eviction we drop from the head (oldest).
|
|
15
15
|
export const RUNTIME_MESSAGE_LIMIT = 100;
|
|
16
|
+
/** One preload page: "N+" badges only ever mean "at least this many". */
|
|
17
|
+
export const UNREAD_CAP_PAGE = 10;
|
|
18
|
+
export const RUNTIME_MESSAGE_CEILING = 2000;
|
|
16
19
|
|
|
17
20
|
// Body strings the server uses for call signaling broadcasts (call-token,
|
|
18
21
|
// call-state ringing/ended, etc). These should never reach the chat
|
|
@@ -96,11 +99,168 @@ const collapseCallLogDuplicates = messages => {
|
|
|
96
99
|
return callId ? byCallId.get(callId) || message : message;
|
|
97
100
|
});
|
|
98
101
|
};
|
|
99
|
-
const
|
|
102
|
+
const NO_GROWTH = {
|
|
103
|
+
grew: false,
|
|
104
|
+
atHead: false
|
|
105
|
+
};
|
|
106
|
+
const insertRoomMessage = (state, roomJID, message, start) => {
|
|
107
|
+
if (isCallSignalMessage(message)) {
|
|
108
|
+
return NO_GROWTH;
|
|
109
|
+
}
|
|
110
|
+
if (!state.rooms[roomJID]) {
|
|
111
|
+
return NO_GROWTH;
|
|
112
|
+
}
|
|
113
|
+
if (!state.rooms[roomJID].messages) {
|
|
114
|
+
state.rooms[roomJID].messages = [];
|
|
115
|
+
}
|
|
116
|
+
const roomMessages = state.rooms[roomJID].messages;
|
|
117
|
+
const incomingCallLog = message.callLog;
|
|
118
|
+
if (incomingCallLog?.callId) {
|
|
119
|
+
const existingCallIdx = roomMessages.findIndex(msg => msg.callLog?.callId === incomingCallLog.callId);
|
|
120
|
+
if (existingCallIdx !== -1) {
|
|
121
|
+
const existing = roomMessages[existingCallIdx];
|
|
122
|
+
const merged = mergeCallLogEntries(existing, message);
|
|
123
|
+
if (merged !== existing) {
|
|
124
|
+
roomMessages[existingCallIdx] = merged;
|
|
125
|
+
}
|
|
126
|
+
return NO_GROWTH;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
takePendingReactions(state, roomJID, message);
|
|
130
|
+
const lengthBefore = roomMessages.length;
|
|
131
|
+
const tailBefore = roomMessages[lengthBefore - 1];
|
|
132
|
+
if (roomMessages.length === 0 || start) {
|
|
133
|
+
roomMessages.unshift(message);
|
|
134
|
+
} else {
|
|
135
|
+
const lastViewedValue = state.rooms[roomJID].lastViewedTimestamp;
|
|
136
|
+
const lastViewedTimestamp = state.visibleRoomJID === roomJID ? null : lastViewedValue ? lastViewedValue : null;
|
|
137
|
+
insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp);
|
|
138
|
+
}
|
|
139
|
+
const grew = roomMessages.length > lengthBefore;
|
|
140
|
+
const atHead = grew && lengthBefore > 0 && roomMessages[roomMessages.length - 1] === tailBefore;
|
|
141
|
+
return {
|
|
142
|
+
grew,
|
|
143
|
+
atHead
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
const capAfterGrowth = (messages, lengthBefore, atHead) => {
|
|
147
|
+
if (atHead) {
|
|
148
|
+
enforceMessageCap(messages, RUNTIME_MESSAGE_CEILING);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
enforceMessageCap(messages, Math.min(RUNTIME_MESSAGE_CEILING, Math.max(RUNTIME_MESSAGE_LIMIT, lengthBefore)));
|
|
152
|
+
};
|
|
153
|
+
const bumpLastMessageTimestamp = (state, roomJID, message) => {
|
|
154
|
+
const room = state.rooms[roomJID];
|
|
155
|
+
if (!room || message?.id === 'delimiter-new') {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const ts = Number(message?.id);
|
|
159
|
+
if (!Number.isFinite(ts)) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if ((room.lastMessageTimestamp ?? 0) <= ts) {
|
|
163
|
+
room.lastMessageTimestamp = ts;
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
const upsertRoom = (state, roomData) => {
|
|
167
|
+
const existing = state.rooms[roomData.jid];
|
|
168
|
+
let lastViewed;
|
|
169
|
+
const serverMarker = state.privateStoreMarkers?.[roomData.jid] || 0;
|
|
170
|
+
if (roomData.lastViewedTimestamp != null && roomData.lastViewedTimestamp !== 0) {
|
|
171
|
+
lastViewed = roomData.lastViewedTimestamp;
|
|
172
|
+
} else if (existing?.lastViewedTimestamp != null && existing.lastViewedTimestamp > 0) {
|
|
173
|
+
lastViewed = existing.lastViewedTimestamp;
|
|
174
|
+
} else if (serverMarker > 0) {
|
|
175
|
+
lastViewed = serverMarker;
|
|
176
|
+
} else {
|
|
177
|
+
const msgs = roomData.messages || [];
|
|
178
|
+
let newest = 0;
|
|
179
|
+
for (const m of msgs) {
|
|
180
|
+
const t = m?.messageTimestampMs || (m?.date ? new Date(m.date).getTime() : 0);
|
|
181
|
+
if (t > newest) {
|
|
182
|
+
newest = t;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
lastViewed = newest; // 0 if no messages → cold-start safe
|
|
186
|
+
}
|
|
187
|
+
const incomingMessages = Array.isArray(roomData.messages) ? roomData.messages : [];
|
|
188
|
+
const existingMessages = Array.isArray(existing?.messages) ? existing.messages : [];
|
|
189
|
+
state.rooms[roomData.jid] = {
|
|
190
|
+
...roomData,
|
|
191
|
+
icon: roomData.icon !== undefined ? roomData.icon : existing?.icon,
|
|
192
|
+
roomBg: roomData.roomBg !== undefined ? roomData.roomBg : existing?.roomBg,
|
|
193
|
+
messages: existingMessages.length > 0 ? existingMessages : incomingMessages,
|
|
194
|
+
lastViewedTimestamp: lastViewed,
|
|
195
|
+
unreadMessages: roomData.unreadMessages ?? existing?.unreadMessages ?? 0,
|
|
196
|
+
unreadBaselineTimestamp: existing?.unreadBaselineTimestamp ?? existing?.lastViewedTimestamp ?? roomData.unreadBaselineTimestamp ?? 0
|
|
197
|
+
};
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
/** Order two numeric stanza ids (microsecond timestamps, too long for a
|
|
201
|
+
* double) without BigInt: by length, then lexicographically. */
|
|
202
|
+
export const compareStanzaIds = (a, b) => a.length !== b.length ? a.length - b.length : a < b ? -1 : a > b ? 1 : 0;
|
|
203
|
+
export const applyReactionToMessage = (message, from, reactions, data, ts) => {
|
|
204
|
+
const fromId = String(from || '').split('/')[0].split('@')[0];
|
|
205
|
+
if (!fromId) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const list = (reactions || []).filter(r => !!r);
|
|
209
|
+
const current = {
|
|
210
|
+
...(message.reaction || {})
|
|
211
|
+
};
|
|
212
|
+
const prev = current[fromId];
|
|
213
|
+
// An older reaction (from a history page loaded after a newer one) never
|
|
214
|
+
// overwrites what is already known.
|
|
215
|
+
if (ts && prev?.ts && compareStanzaIds(ts, prev.ts) < 0) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
if (list.length === 0) {
|
|
219
|
+
if (ts) {
|
|
220
|
+
// Keep a "removed" marker so an older reaction can't come back.
|
|
221
|
+
current[fromId] = {
|
|
222
|
+
emoji: [],
|
|
223
|
+
data: data || {},
|
|
224
|
+
ts
|
|
225
|
+
};
|
|
226
|
+
} else {
|
|
227
|
+
delete current[fromId];
|
|
228
|
+
}
|
|
229
|
+
} else {
|
|
230
|
+
current[fromId] = {
|
|
231
|
+
emoji: list,
|
|
232
|
+
data: data || {},
|
|
233
|
+
...(ts ? {
|
|
234
|
+
ts
|
|
235
|
+
} : {})
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
const anyShown = Object.values(current).some(r => r?.emoji?.length);
|
|
239
|
+
message.reaction = anyShown || Object.keys(current).length ? current : undefined;
|
|
240
|
+
};
|
|
241
|
+
/** Reactions whose message is not loaded yet — applied when it arrives. */
|
|
242
|
+
const takePendingReactions = (state, roomJID, message) => {
|
|
243
|
+
const byMessage = state.pendingReactions?.[roomJID];
|
|
244
|
+
if (!byMessage) {
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
const keys = [String(message.id), message.xmppId ? String(message.xmppId) : ''];
|
|
248
|
+
for (const key of keys) {
|
|
249
|
+
const list = key ? byMessage[key] : undefined;
|
|
250
|
+
if (!list) {
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
for (const r of list) {
|
|
254
|
+
applyReactionToMessage(message, r.from, r.reactions, r.data, r.ts);
|
|
255
|
+
}
|
|
256
|
+
delete byMessage[key];
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const enforceMessageCap = (messages, limit = RUNTIME_MESSAGE_LIMIT) => {
|
|
100
260
|
// Trim oldest until we're at/under the limit. Mutates in place
|
|
101
261
|
// (immer-compatible inside reducers).
|
|
102
|
-
|
|
103
|
-
messages.
|
|
262
|
+
if (messages.length > limit) {
|
|
263
|
+
messages.splice(0, messages.length - limit);
|
|
104
264
|
}
|
|
105
265
|
};
|
|
106
266
|
|
|
@@ -179,10 +339,24 @@ function mergeHistoryIntoCache(existing, fetched) {
|
|
|
179
339
|
// body). Preserve `isEdited` from the cached copy so a message edited
|
|
180
340
|
// before reload keeps its marker instead of losing it on history sync.
|
|
181
341
|
const prev = byId.get(String(m.id));
|
|
182
|
-
|
|
342
|
+
let next = prev?.isEdited && !m.isEdited ? {
|
|
183
343
|
...m,
|
|
184
344
|
isEdited: true
|
|
185
|
-
} : m
|
|
345
|
+
} : m;
|
|
346
|
+
if (prev?.reaction && !next.reaction) {
|
|
347
|
+
next = {
|
|
348
|
+
...next,
|
|
349
|
+
reaction: prev.reaction
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
// A history merge must not close a thread the user has open.
|
|
353
|
+
if (prev?.activeMessage && !next.activeMessage) {
|
|
354
|
+
next = {
|
|
355
|
+
...next,
|
|
356
|
+
activeMessage: true
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
byId.set(String(m.id), next);
|
|
186
360
|
}
|
|
187
361
|
const merged = collapseCallLogDuplicates(Array.from(byId.values()).sort(byMs));
|
|
188
362
|
return [...capTail(merged), ...pending];
|
|
@@ -201,7 +375,8 @@ const initialState = {
|
|
|
201
375
|
},
|
|
202
376
|
pendingNotificationJid: null,
|
|
203
377
|
privateStoreMarkers: {},
|
|
204
|
-
readBoundaries: {}
|
|
378
|
+
readBoundaries: {},
|
|
379
|
+
pendingReactions: {}
|
|
205
380
|
};
|
|
206
381
|
const isValidRoomJid = jid => {
|
|
207
382
|
if (typeof jid !== 'string' || !jid) return false;
|
|
@@ -226,74 +401,33 @@ export const addRoomViaApi = createAsyncThunk('roomMessages/addRoomViaApi', asyn
|
|
|
226
401
|
// emitted .d.ts (TS4023). See chatSettingsSlice.ts for the same pattern.
|
|
227
402
|
const reducers = {
|
|
228
403
|
addRoom(state, action) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
// markers when the privateStore pull lands before
|
|
237
|
-
// /chats/my).
|
|
238
|
-
// 3. Otherwise, anchor to the *newest known message* in the
|
|
239
|
-
// payload — this marks everything currently in the room
|
|
240
|
-
// as "seen" but lets any NEWER incoming message count as
|
|
241
|
-
// unread. Previously this fell back to `Date.now()`, which
|
|
242
|
-
// stamped a future-leaning marker that hid genuinely-new
|
|
243
|
-
// messages received while the app was closed.
|
|
244
|
-
// 4. If there are no messages at all yet, stamp `0` (=
|
|
245
|
-
// "unknown — let the privateStore hydration set the real
|
|
246
|
-
// marker before any future message arrives").
|
|
247
|
-
let lastViewed;
|
|
248
|
-
// Treat an incoming `0` as "unset". stanzaHandlers' addRoom passes
|
|
249
|
-
// `lastViewedTimestamp: 0` as a placeholder; the old `!= null` check
|
|
250
|
-
// let that 0 win and OVERWROTE the persisted/hydrated marker from
|
|
251
|
-
// the previous session, so cold-start showed no unread badge for
|
|
252
|
-
// messages received while the app was closed (bug #19/#20). A real
|
|
253
|
-
// (non-zero) explicit value still wins; otherwise keep the existing
|
|
254
|
-
// value; otherwise fall back to the server-side read marker fetched
|
|
255
|
-
// from the private store (so a room the user has NEVER opened this
|
|
256
|
-
// session still gets a real baseline — without it the unread
|
|
257
|
-
// middleware's `lastViewedTimestamp > 0` gate skipped the room
|
|
258
|
-
// forever and the badge never lit up); otherwise anchor to the
|
|
259
|
-
// newest message in the payload.
|
|
260
|
-
const serverMarker = state.privateStoreMarkers?.[roomData.jid] || 0;
|
|
261
|
-
if (roomData.lastViewedTimestamp != null && roomData.lastViewedTimestamp !== 0) {
|
|
262
|
-
lastViewed = roomData.lastViewedTimestamp;
|
|
263
|
-
} else if (existing?.lastViewedTimestamp != null && existing.lastViewedTimestamp > 0) {
|
|
264
|
-
lastViewed = existing.lastViewedTimestamp;
|
|
265
|
-
} else if (serverMarker > 0) {
|
|
266
|
-
lastViewed = serverMarker;
|
|
267
|
-
} else {
|
|
268
|
-
const msgs = roomData.messages || [];
|
|
269
|
-
let newest = 0;
|
|
270
|
-
for (const m of msgs) {
|
|
271
|
-
const t = m?.messageTimestampMs || (m?.date ? new Date(m.date).getTime() : 0);
|
|
272
|
-
if (t > newest) {
|
|
273
|
-
newest = t;
|
|
274
|
-
}
|
|
404
|
+
upsertRoom(state, action.payload.roomData);
|
|
405
|
+
},
|
|
406
|
+
setUnreadCounts(state, action) {
|
|
407
|
+
for (const [jid, count] of Object.entries(action.payload || {})) {
|
|
408
|
+
const room = state.rooms[jid];
|
|
409
|
+
if (!room) {
|
|
410
|
+
continue;
|
|
275
411
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
unreadBaselineTimestamp: existing?.unreadBaselineTimestamp ?? existing?.lastViewedTimestamp ?? roomData.unreadBaselineTimestamp ?? 0
|
|
296
|
-
};
|
|
412
|
+
if (room.unreadMessages !== count) {
|
|
413
|
+
room.unreadMessages = count;
|
|
414
|
+
}
|
|
415
|
+
// "N+" only means "a whole page was unread"; an exact count below a
|
|
416
|
+
// page (or read to zero) settles it.
|
|
417
|
+
if (room.unreadCapped && count < UNREAD_CAP_PAGE) {
|
|
418
|
+
room.unreadCapped = false;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
/** Several rooms in one action — the cold-start rehydrate of the whole
|
|
423
|
+
* cache used to be one `addRoom` per room, each running every
|
|
424
|
+
* middleware over every room already added (O(rooms²)). */
|
|
425
|
+
addRooms(state, action) {
|
|
426
|
+
for (const roomData of action.payload.rooms || []) {
|
|
427
|
+
if (roomData?.jid) {
|
|
428
|
+
upsertRoom(state, roomData);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
297
431
|
},
|
|
298
432
|
deleteRoom(state, action) {
|
|
299
433
|
const {
|
|
@@ -356,6 +490,7 @@ const reducers = {
|
|
|
356
490
|
room.messages.map(message => {
|
|
357
491
|
if (message.id === messageId) {
|
|
358
492
|
message.isDeleted = true;
|
|
493
|
+
message.reaction = undefined;
|
|
359
494
|
}
|
|
360
495
|
});
|
|
361
496
|
},
|
|
@@ -395,67 +530,50 @@ const reducers = {
|
|
|
395
530
|
message,
|
|
396
531
|
start
|
|
397
532
|
} = action.payload;
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
// or the room-list "last message" preview.
|
|
403
|
-
if (isCallSignalMessage(message)) {
|
|
404
|
-
return;
|
|
533
|
+
const lengthBefore = state.rooms[roomJID]?.messages?.length || 0;
|
|
534
|
+
const outcome = insertRoomMessage(state, roomJID, message, start);
|
|
535
|
+
if (outcome.grew) {
|
|
536
|
+
capAfterGrowth(state.rooms[roomJID].messages, lengthBefore, outcome.atHead);
|
|
405
537
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
538
|
+
bumpLastMessageTimestamp(state, roomJID, message);
|
|
539
|
+
},
|
|
540
|
+
/**
|
|
541
|
+
* A whole page of messages (a MAM history page) in ONE action: the same
|
|
542
|
+
* per-message insert as `addRoomMessage`, but the cap, the middleware
|
|
543
|
+
* chain and every subscriber run once per page instead of once per
|
|
544
|
+
* message.
|
|
545
|
+
*/
|
|
546
|
+
addRoomMessages(state, action) {
|
|
547
|
+
const {
|
|
548
|
+
roomJID,
|
|
549
|
+
messages,
|
|
550
|
+
start
|
|
551
|
+
} = action.payload;
|
|
552
|
+
if (!state.rooms[roomJID] || !Array.isArray(messages)) {
|
|
414
553
|
return;
|
|
415
554
|
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
// - the SERVER copy is canonical for identity (id/date/xmppId): its
|
|
427
|
-
// archive id is what MAM and the catch-up anchor return later, so
|
|
428
|
-
// keeping a local "calllog-" id around breaks anchor matching and
|
|
429
|
-
// duplicates the entry on the next history merge;
|
|
430
|
-
// - the LARGEST duration wins for display, so a 2-minute call doesn't
|
|
431
|
-
// render as "2 sec".
|
|
432
|
-
const incomingCallLog = message.callLog;
|
|
433
|
-
if (incomingCallLog?.callId) {
|
|
434
|
-
const existingCallIdx = roomMessages.findIndex(msg => msg.callLog?.callId === incomingCallLog.callId);
|
|
435
|
-
if (existingCallIdx !== -1) {
|
|
436
|
-
const existing = roomMessages[existingCallIdx];
|
|
437
|
-
const merged = mergeCallLogEntries(existing, message);
|
|
438
|
-
if (merged !== existing) {
|
|
439
|
-
roomMessages[existingCallIdx] = merged;
|
|
555
|
+
const lengthBefore = state.rooms[roomJID].messages?.length || 0;
|
|
556
|
+
let grew = false;
|
|
557
|
+
let anyAtTail = false;
|
|
558
|
+
let newest;
|
|
559
|
+
for (const message of messages) {
|
|
560
|
+
const outcome = insertRoomMessage(state, roomJID, message, start);
|
|
561
|
+
if (outcome.grew) {
|
|
562
|
+
grew = true;
|
|
563
|
+
if (!outcome.atHead) {
|
|
564
|
+
anyAtTail = true;
|
|
440
565
|
}
|
|
441
|
-
|
|
566
|
+
}
|
|
567
|
+
if (!newest || Number(message?.id) > Number(newest.id)) {
|
|
568
|
+
newest = message;
|
|
442
569
|
}
|
|
443
570
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
} else {
|
|
448
|
-
const lastViewedValue = state.rooms[roomJID].lastViewedTimestamp;
|
|
449
|
-
const lastViewedTimestamp = state.visibleRoomJID === roomJID ? null : lastViewedValue ? lastViewedValue : null;
|
|
450
|
-
insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp);
|
|
571
|
+
if (grew) {
|
|
572
|
+
// A page that only prepended older history is never trimmed.
|
|
573
|
+
capAfterGrowth(state.rooms[roomJID].messages, lengthBefore, !anyAtTail);
|
|
451
574
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
// (i.e. this wasn't a dedupe/merge that left length unchanged).
|
|
455
|
-
// Otherwise repeated echoes of the same message would chip away
|
|
456
|
-
// at the oldest history for no reason.
|
|
457
|
-
if (roomMessages.length > lengthBefore) {
|
|
458
|
-
enforceMessageCap(roomMessages);
|
|
575
|
+
if (newest) {
|
|
576
|
+
bumpLastMessageTimestamp(state, roomJID, newest);
|
|
459
577
|
}
|
|
460
578
|
},
|
|
461
579
|
deleteAllRooms(state) {
|
|
@@ -674,21 +792,38 @@ const reducers = {
|
|
|
674
792
|
const {
|
|
675
793
|
roomJID,
|
|
676
794
|
messageId,
|
|
677
|
-
reactions
|
|
795
|
+
reactions,
|
|
796
|
+
from,
|
|
797
|
+
data,
|
|
798
|
+
latestReactionTimestamp
|
|
678
799
|
} = action.payload;
|
|
800
|
+
if (!from) {
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
679
803
|
const room = state.rooms[roomJID];
|
|
680
|
-
|
|
804
|
+
const target = room?.messages?.find(msg => msg?.id === messageId || msg?.xmppId === messageId);
|
|
805
|
+
if (target) {
|
|
806
|
+
applyReactionToMessage(target, from, reactions, data, latestReactionTimestamp);
|
|
681
807
|
return;
|
|
682
808
|
}
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
809
|
+
// The message is not loaded (yet): keep the reaction for it.
|
|
810
|
+
if (!state.pendingReactions) {
|
|
811
|
+
state.pendingReactions = {};
|
|
812
|
+
}
|
|
813
|
+
const byMessage = state.pendingReactions[roomJID] ||= {};
|
|
814
|
+
const list = byMessage[messageId] ||= [];
|
|
815
|
+
if (list.length < 50) {
|
|
816
|
+
list.push({
|
|
817
|
+
from,
|
|
818
|
+
reactions,
|
|
819
|
+
data,
|
|
820
|
+
ts: latestReactionTimestamp
|
|
821
|
+
});
|
|
688
822
|
}
|
|
689
823
|
},
|
|
690
824
|
setLogoutState: state => {
|
|
691
825
|
state.rooms = {};
|
|
826
|
+
state.pendingReactions = {};
|
|
692
827
|
state.activeRoomJID = null;
|
|
693
828
|
state.visibleRoomJID = null;
|
|
694
829
|
state.isLoading = false;
|
|
@@ -772,6 +907,9 @@ const reducers = {
|
|
|
772
907
|
room.historyComplete = patch.historyComplete;
|
|
773
908
|
}
|
|
774
909
|
if (Array.isArray(patch.messages)) {
|
|
910
|
+
for (const m of patch.messages) {
|
|
911
|
+
takePendingReactions(state, patch.jid, m);
|
|
912
|
+
}
|
|
775
913
|
// Merge the fetched page into cache by message id rather than
|
|
776
914
|
// replacing — preserves older history + unread on re-entry. Only
|
|
777
915
|
// a true gap (no overlapping id) clears this chat's cache. See
|
|
@@ -903,6 +1041,9 @@ export const {
|
|
|
903
1041
|
deleteRoom,
|
|
904
1042
|
updateRoom,
|
|
905
1043
|
applyRoomsPreloadBatch,
|
|
1044
|
+
addRoomMessages,
|
|
1045
|
+
addRooms,
|
|
1046
|
+
setUnreadCounts,
|
|
906
1047
|
setPendingNotificationJid,
|
|
907
1048
|
clearPendingNotificationJid,
|
|
908
1049
|
setReactions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","msgSortableMs","RUNTIME_MESSAGE_LIMIT","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","enforceMessageCap","length","shift","mergeHistoryIntoCache","fetched","ex","fe","realExisting","m","pending","realFetched","fetchedKeys","byMs","capTail","arr","slice","existingIds","overlaps","some","sort","byId","prev","isEdited","merged","from","values","initialState","rooms","activeRoomJID","visibleRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","privateStoreMarkers","readBoundaries","isValidRoomJid","jid","includes","addRoomViaApi","room","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","state","action","roomData","payload","lastViewed","serverMarker","lastViewedTimestamp","msgs","newest","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","roomJID","capped","deleteRoomMessage","idx","findIndex","splice","isDeleted","setEditAction","editRoomMessage","addRoomMessage","start","roomMessages","incomingCallLog","existingCallIdx","msg","lengthBefore","unshift","lastViewedValue","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","Object","keys","ts","Number","isFinite","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setReadBoundary","clearReadBoundary","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","reactions","setLogoutState","setActiveMessage","activeMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","Math","max","unreadCapped","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","name","norm","s","v","split","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","count","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createAsyncThunk","createSlice","insertMessageWithDelimiter","msgSortableMs","RUNTIME_MESSAGE_LIMIT","UNREAD_CAP_PAGE","RUNTIME_MESSAGE_CEILING","CALL_SIGNAL_BODIES","Set","isCallSignalMessage","message","body","String","trim","toLowerCase","has","stripCallSignals","messages","Array","isArray","filter","isLocalCallLogEntry","id","startsWith","mergeCallLogEntries","a","b","aLocal","bLocal","identity","display","callLog","durationMs","xmppId","date","collapseCallLogDuplicates","byCallId","Map","hasDuplicates","callId","existing","get","set","emitted","add","map","NO_GROWTH","grew","atHead","insertRoomMessage","state","roomJID","start","rooms","roomMessages","incomingCallLog","existingCallIdx","findIndex","msg","merged","takePendingReactions","lengthBefore","length","tailBefore","unshift","lastViewedValue","lastViewedTimestamp","visibleRoomJID","capAfterGrowth","enforceMessageCap","Math","min","max","bumpLastMessageTimestamp","room","ts","Number","isFinite","lastMessageTimestamp","upsertRoom","roomData","jid","lastViewed","serverMarker","privateStoreMarkers","msgs","newest","m","t","messageTimestampMs","Date","getTime","incomingMessages","existingMessages","icon","undefined","roomBg","unreadMessages","unreadBaselineTimestamp","compareStanzaIds","applyReactionToMessage","from","reactions","data","fromId","split","list","r","current","reaction","prev","emoji","anyShown","Object","values","some","keys","byMessage","pendingReactions","key","limit","splice","mergeHistoryIntoCache","fetched","ex","fe","realExisting","pending","realFetched","fetchedKeys","byMs","capTail","arr","slice","existingIds","overlaps","sort","byId","next","isEdited","activeMessage","initialState","activeRoomJID","isLoading","isUnreadSyncing","editAction","isEdit","roomJid","messageId","text","pendingNotificationJid","readBoundaries","isValidRoomJid","includes","addRoomViaApi","xmpp","_xmpp","dispatch","roomsStore","actions","addRoomFromApi","reducers","addRoom","action","payload","setUnreadCounts","count","entries","unreadCapped","addRooms","deleteRoom","updateRoom","updates","existingRoom","setRoomMessages","capped","deleteRoomMessage","idx","isDeleted","setEditAction","editRoomMessage","addRoomMessage","outcome","addRoomMessages","anyAtTail","deleteAllRooms","setComposing","chatJID","composing","composingList","setIsLoading","loading","loadingText","setUnreadSyncing","setLastViewedTimestamp","timestamp","countNewerMessages","applyPrivateStoreMarkers","markers","newestKnownMs","newestAckedMessageMs","nowMs","now","looksCorrupt","FUTURE_MARKER_TOLERANCE_MS","cachedMarker","setReadBoundary","clearReadBoundary","setRoomRole","role","setRoomNoMessages","value","noMessages","setCurrentRoom","setVisibleRoom","clearVisibleRoom","setPendingNotificationJid","clearPendingNotificationJid","setReactions","latestReactionTimestamp","target","find","push","setLogoutState","setActiveMessage","setCloseActiveMessage","title","usersCnt","incoming","previous","historyPreloadState","messageStats","historyComplete","applyRoomsPreloadBatch","patch","mergeUsersSet","usersSet","members","name","norm","s","v","replace","isOwn","selfXmpp","selfWallet","candidates","user","userJID","xmppUsername","xmppFrom","Boolean","self","c","ms","reducer"],"sourceRoot":"../../../src","sources":["roomStore/roomsSlice.ts"],"mappings":"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","ignoreList":[]}
|