@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
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// expo-haptics is an OPTIONAL peer, probed the same way as expo-blur: the JS
|
|
4
|
+
// package alone is not enough, the native module has to be in the binary,
|
|
5
|
+
// otherwise the call throws. Without it the gesture simply has no feedback.
|
|
6
|
+
let Haptics = null;
|
|
7
|
+
try {
|
|
8
|
+
const {
|
|
9
|
+
requireNativeModule
|
|
10
|
+
} = require('expo-modules-core');
|
|
11
|
+
requireNativeModule('ExpoHaptics');
|
|
12
|
+
Haptics = require('expo-haptics');
|
|
13
|
+
} catch {
|
|
14
|
+
Haptics = null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Short tap, the messenger "I got your long-press" feedback. Never throws. */
|
|
18
|
+
export const hapticTap = () => {
|
|
19
|
+
if (!Haptics) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
Haptics.impactAsync?.(Haptics.ImpactFeedbackStyle?.Medium).catch?.(() => {});
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=haptics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Haptics","requireNativeModule","require","hapticTap","impactAsync","ImpactFeedbackStyle","Medium","catch"],"sourceRoot":"../../../src","sources":["helpers/haptics.ts"],"mappings":";;AAAA;AACA;AACA;AACA,IAAIA,OAAY,GAAG,IAAI;AACvB,IAAI;EACF,MAAM;IAAEC;EAAoB,CAAC,GAAGC,OAAO,CAAC,mBAAmB,CAAC;EAC5DD,mBAAmB,CAAC,aAAa,CAAC;EAClCD,OAAO,GAAGE,OAAO,CAAC,cAAc,CAAC;AACnC,CAAC,CAAC,MAAM;EACNF,OAAO,GAAG,IAAI;AAChB;;AAEA;AACA,OAAO,MAAMG,SAAS,GAAGA,CAAA,KAAM;EAC7B,IAAI,CAACH,OAAO,EAAE;IACZ;EACF;EACAA,OAAO,CAACI,WAAW,GAAGJ,OAAO,CAACK,mBAAmB,EAAEC,MAAM,CAAC,CAACC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AAC9E,CAAC","ignoreList":[]}
|
|
@@ -4,18 +4,10 @@ import { AppState } from 'react-native';
|
|
|
4
4
|
import { store } from '../roomStore';
|
|
5
5
|
import { applyRoomsPreloadBatch, setUnreadSyncing, RUNTIME_MESSAGE_LIMIT } from '../roomStore/roomsSlice';
|
|
6
6
|
const DEFAULT_CONCURRENCY = 3;
|
|
7
|
-
|
|
8
|
-
// also means more id-overlap with cache, so the merge in
|
|
9
|
-
// `mergeHistoryIntoCache` rarely has to fall back to clear-and-replace.
|
|
10
|
-
const DEFAULT_PAGE_SIZE = 20;
|
|
7
|
+
const DEFAULT_PAGE_SIZE = 10;
|
|
11
8
|
const DEFAULT_RETRY_LIMIT = 2;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
// than `pageSize` — `useUnread()` only ever sees what's been loaded. Page
|
|
15
|
-
// further back, up to this many extra fetches, until we either find the
|
|
16
|
-
// boundary or give up (`unreadCapped` then stays true so callers at least
|
|
17
|
-
// know the count is a floor, not exact). Customer-reported #34.
|
|
18
|
-
const MAX_UNREAD_CATCHUP_PAGES = 8;
|
|
9
|
+
const DEFAULT_FIRST_WAVE = 30;
|
|
10
|
+
const BACKGROUND_BATCH_PAUSE_MS = 400;
|
|
19
11
|
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|
20
12
|
const messageTimestamp = m => {
|
|
21
13
|
if (!m) {
|
|
@@ -32,10 +24,10 @@ const messageTimestamp = m => {
|
|
|
32
24
|
return 0;
|
|
33
25
|
};
|
|
34
26
|
const getRoomLastActivityScore = room => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return
|
|
27
|
+
const fromMessages = room?.messages?.length ? room.messages.reduce((max, m) => Math.max(max, messageTimestamp(m)), 0) : 0;
|
|
28
|
+
const fromStamp = Number(room?.lastMessageTimestamp) || 0;
|
|
29
|
+
const fromSeed = Number(room?.lastMessage?.id) || 0;
|
|
30
|
+
return Math.max(fromMessages, fromStamp, fromSeed);
|
|
39
31
|
};
|
|
40
32
|
const computeUnreadCapped = (room, messages, pageSize) => {
|
|
41
33
|
if (!room) {
|
|
@@ -52,8 +44,11 @@ const computeUnreadCapped = (room, messages, pageSize) => {
|
|
|
52
44
|
return false;
|
|
53
45
|
}
|
|
54
46
|
const lastViewed = Number(room.lastViewedTimestamp) || 0;
|
|
47
|
+
// No read marker yet (the private-store markers often land after the
|
|
48
|
+
// first preload page): the count is unknown, not "more than a page".
|
|
49
|
+
// Claiming capped here showed "10+" on rooms with a single unread.
|
|
55
50
|
if (lastViewed <= 0) {
|
|
56
|
-
return
|
|
51
|
+
return false;
|
|
57
52
|
}
|
|
58
53
|
const oldestTs = countable.reduce((minTs, m) => {
|
|
59
54
|
const ts = messageTimestamp(m);
|
|
@@ -94,6 +89,7 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
94
89
|
pageSize = DEFAULT_PAGE_SIZE,
|
|
95
90
|
retryLimit = DEFAULT_RETRY_LIMIT,
|
|
96
91
|
roomLimit,
|
|
92
|
+
firstWave = DEFAULT_FIRST_WAVE,
|
|
97
93
|
selectedRoomJid = null,
|
|
98
94
|
defaultRoomJids = [],
|
|
99
95
|
forceReload = false
|
|
@@ -101,6 +97,13 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
101
97
|
if (signal?.aborted) {
|
|
102
98
|
return;
|
|
103
99
|
}
|
|
100
|
+
const startedAt = Date.now();
|
|
101
|
+
let firstWaveLogged = false;
|
|
102
|
+
const devLog = msg => {
|
|
103
|
+
if (typeof __DEV__ !== 'undefined' && __DEV__) {
|
|
104
|
+
console.log(msg);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
104
107
|
store.dispatch(setUnreadSyncing(true));
|
|
105
108
|
try {
|
|
106
109
|
const state = store.getState();
|
|
@@ -124,6 +127,8 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
124
127
|
const queue = roomLimit && roomLimit > 0 ? sortedQueue.slice(0, roomLimit) : sortedQueue;
|
|
125
128
|
const inFlightByRoom = new Map();
|
|
126
129
|
let consecutiveErrorCount = 0;
|
|
130
|
+
let started = 0;
|
|
131
|
+
devLog(`[preload] ${queue.length} rooms queued, first wave ${Math.min(firstWave, queue.length)}, page ${pageSize}`);
|
|
127
132
|
while (queue.length > 0) {
|
|
128
133
|
if (signal?.aborted) {
|
|
129
134
|
return;
|
|
@@ -143,6 +148,12 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
143
148
|
continue;
|
|
144
149
|
}
|
|
145
150
|
const batch = readyItems.slice(0, Math.max(1, concurrency));
|
|
151
|
+
const inBackgroundWave = started >= firstWave;
|
|
152
|
+
if (inBackgroundWave && !firstWaveLogged) {
|
|
153
|
+
firstWaveLogged = true;
|
|
154
|
+
devLog(`[preload] first wave done in ${Date.now() - startedAt}ms`);
|
|
155
|
+
}
|
|
156
|
+
started += batch.length;
|
|
146
157
|
|
|
147
158
|
// Snapshot each room's historyPreloadState BEFORE marking the
|
|
148
159
|
// batch as 'loading'. Without this snapshot the per-task
|
|
@@ -178,7 +189,8 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
178
189
|
const fetchedMessages = await client.getHistoryStanza(item.jid, pageSize, undefined, undefined, {
|
|
179
190
|
coalesceRoom: true,
|
|
180
191
|
skipIfPreloaded: !forceReload,
|
|
181
|
-
source: 'background'
|
|
192
|
+
source: 'background',
|
|
193
|
+
selfApplied: true
|
|
182
194
|
});
|
|
183
195
|
if (signal?.aborted) {
|
|
184
196
|
return;
|
|
@@ -187,52 +199,7 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
187
199
|
throw new Error('history_timeout');
|
|
188
200
|
}
|
|
189
201
|
const nextRoom = store.getState().rooms.rooms[item.jid];
|
|
190
|
-
|
|
191
|
-
const lastViewed = Number(nextRoom?.lastViewedTimestamp) || 0;
|
|
192
|
-
|
|
193
|
-
// The first page was entirely unread — keep paging older until
|
|
194
|
-
// we find a message at/before `lastViewedTimestamp` (the true
|
|
195
|
-
// boundary) or run out of catch-up budget, so the count isn't
|
|
196
|
-
// silently truncated at `pageSize`.
|
|
197
|
-
if (lastViewed > 0 && computeUnreadCapped(nextRoom, combined, pageSize)) {
|
|
198
|
-
let lastPageLen = combined.length;
|
|
199
|
-
let extraPages = 0;
|
|
200
|
-
while (extraPages < MAX_UNREAD_CATCHUP_PAGES && lastPageLen >= pageSize && !signal?.aborted) {
|
|
201
|
-
const oldestId = combined.reduce((min, m) => {
|
|
202
|
-
const idNum = Number(m?.id);
|
|
203
|
-
if (!Number.isFinite(idNum)) {
|
|
204
|
-
return min;
|
|
205
|
-
}
|
|
206
|
-
return min === null || idNum < min ? idNum : min;
|
|
207
|
-
}, null);
|
|
208
|
-
if (oldestId === null) {
|
|
209
|
-
break;
|
|
210
|
-
}
|
|
211
|
-
let older;
|
|
212
|
-
try {
|
|
213
|
-
older = await client.getHistoryStanza(item.jid, pageSize, oldestId, undefined, {
|
|
214
|
-
coalesceRoom: true,
|
|
215
|
-
skipIfPreloaded: !forceReload,
|
|
216
|
-
source: 'background'
|
|
217
|
-
});
|
|
218
|
-
} catch {
|
|
219
|
-
break;
|
|
220
|
-
}
|
|
221
|
-
if (!older || !older.length) {
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
combined = [...older, ...combined];
|
|
225
|
-
lastPageLen = older.length;
|
|
226
|
-
extraPages++;
|
|
227
|
-
const oldestTs = combined.reduce((minTs, m) => {
|
|
228
|
-
const ts = messageTimestamp(m);
|
|
229
|
-
return ts > 0 ? Math.min(minTs, ts) : minTs;
|
|
230
|
-
}, Number.MAX_SAFE_INTEGER);
|
|
231
|
-
if (oldestTs !== Number.MAX_SAFE_INTEGER && oldestTs <= lastViewed) {
|
|
232
|
-
break;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
202
|
+
const combined = fetchedMessages || [];
|
|
236
203
|
|
|
237
204
|
// `mergeHistoryIntoCache` (roomsSlice) caps whatever we dispatch
|
|
238
205
|
// here to the newest RUNTIME_MESSAGE_LIMIT messages before it
|
|
@@ -282,11 +249,10 @@ export const runHistoryPreloadScheduler = async options => {
|
|
|
282
249
|
inFlightByRoom.set(item.jid, task);
|
|
283
250
|
await task.finally(() => inFlightByRoom.delete(item.jid));
|
|
284
251
|
}));
|
|
285
|
-
|
|
286
|
-
// Yield to JS event loop (no requestIdleCallback in RN).
|
|
287
|
-
await new Promise(r => setTimeout(r, 0));
|
|
252
|
+
await sleep(inBackgroundWave ? BACKGROUND_BATCH_PAUSE_MS : 0);
|
|
288
253
|
}
|
|
289
254
|
} finally {
|
|
255
|
+
devLog(`[preload] finished in ${Date.now() - startedAt}ms`);
|
|
290
256
|
store.dispatch(setUnreadSyncing(false));
|
|
291
257
|
}
|
|
292
258
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","RUNTIME_MESSAGE_LIMIT","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","MAX_UNREAD_CATCHUP_PAGES","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","combined","lastPageLen","extraPages","oldestId","idNum","older","simulatedStored","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","RUNTIME_MESSAGE_LIMIT","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","DEFAULT_FIRST_WAVE","BACKGROUND_BATCH_PAUSE_MS","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","fromMessages","messages","length","reduce","max","Math","fromStamp","lastMessageTimestamp","fromSeed","lastMessage","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","firstWave","forceReload","aborted","startedAt","Date","now","firstWaveLogged","devLog","__DEV__","console","log","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","started","isActiveRoomGateOpen","readyItems","item","batch","inBackgroundWave","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","selfApplied","Error","nextRoom","combined","simulatedStored","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { isDateAfter, isDateBefore } from './dateComparison';
|
|
4
3
|
import { msgSortableMs } from './msgSortableMs';
|
|
5
4
|
|
|
6
5
|
// Robustly resolve a caller-supplied read marker to epoch milliseconds.
|
|
@@ -80,16 +79,26 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
|
|
|
80
79
|
roomMessages[existingIndex] = merged;
|
|
81
80
|
return;
|
|
82
81
|
}
|
|
83
|
-
const newMessageDate = message.date;
|
|
84
82
|
const lastMessage = roomMessages[roomMessages.length - 1];
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
// Ordered by the id-encoded server timestamp (msgSortableMs), the same
|
|
84
|
+
// key the list and the unread logic use. The old `date` string compare
|
|
85
|
+
// had a hole: a message neither strictly after the last one nor
|
|
86
|
+
// strictly before the first (same second, or an unparseable date) fell
|
|
87
|
+
// through every branch and was silently DROPPED.
|
|
88
|
+
const newMs = msgSortableMs(message);
|
|
89
|
+
const lastMs = lastMessage ? msgSortableMs(lastMessage) : 0;
|
|
90
|
+
if (!lastMessage || !newMs || newMs >= lastMs) {
|
|
87
91
|
const index = roomMessages.findIndex(msg => msg.id === message.xmppId || msg.id === message.id);
|
|
88
92
|
if (index !== -1) {
|
|
93
|
+
// Keep an open thread open when its parent is replaced by the echo.
|
|
94
|
+
const keepThread = roomMessages[index]?.activeMessage;
|
|
89
95
|
roomMessages[index] = {
|
|
90
96
|
...message,
|
|
91
97
|
id: message.id,
|
|
92
|
-
pending: false
|
|
98
|
+
pending: false,
|
|
99
|
+
...(keepThread ? {
|
|
100
|
+
activeMessage: true
|
|
101
|
+
} : {})
|
|
93
102
|
};
|
|
94
103
|
} else {
|
|
95
104
|
roomMessages.push(message);
|
|
@@ -134,14 +143,14 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
|
|
|
134
143
|
});
|
|
135
144
|
}
|
|
136
145
|
}
|
|
137
|
-
} else if (isDateBefore(newMessageDate.toString(), firstMessage?.date?.toString() ?? '')) {
|
|
138
|
-
roomMessages.unshift(message);
|
|
139
146
|
} else {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
147
|
+
// Before the first message strictly newer than it; equal keys keep
|
|
148
|
+
// arrival order.
|
|
149
|
+
const at = roomMessages.findIndex(msg => msgSortableMs(msg) > newMs);
|
|
150
|
+
if (at === -1) {
|
|
151
|
+
roomMessages.push(message);
|
|
152
|
+
} else {
|
|
153
|
+
roomMessages.splice(at, 0, message);
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["msgSortableMs","resolveMarkerMs","marker","Number","isFinite","raw","toString","trim","asNumber","parsed","Date","parse","deepMerge","target","source","key","undefined","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","lastMessage","length","newMs","lastMs","index","keepThread","activeMessage","push","lastViewedMs","newMessageMs","some","delimiterIndex","firstUnreadMs","anchorMs","splice","name","token","refreshToken","date","toISOString","body","roomJid","at"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export const ANDROID_INPUT_DOCK_GAP = 12;
|
|
4
|
+
// Bottom padding the dock keeps while the iOS keyboard is open, so the
|
|
5
|
+
// composer is glued to the keyboard without touching its edge.
|
|
6
|
+
export const IOS_KEYBOARD_DOCK_GAP = 4;
|
|
4
7
|
export const getKeyboardVerticalOffset = ({
|
|
5
8
|
platform,
|
|
6
9
|
configuredOffset = 0,
|
|
7
10
|
bottomInset = 0
|
|
8
11
|
}) => configuredOffset + (platform === 'ios' ? bottomInset : 0);
|
|
12
|
+
|
|
13
|
+
// Offset for the KeyboardAvoidingView strategy. Unlike KeyboardStickyView
|
|
14
|
+
// (where a positive `opened` offset pushes the dock DOWN into the keyboard),
|
|
15
|
+
// a positive value here ADDS bottom padding above the keyboard — so the
|
|
16
|
+
// safe-area inset must not be added: the avoiding view already ends exactly
|
|
17
|
+
// at the keyboard's top edge.
|
|
18
|
+
export const getKeyboardAvoidingOffset = ({
|
|
19
|
+
configuredOffset = 0
|
|
20
|
+
}) => configuredOffset;
|
|
21
|
+
|
|
22
|
+
// Dock bottom padding while the keyboard is open (KeyboardAvoidingView
|
|
23
|
+
// strategy). On iOS the safe-area padding collapses to a small gap; Android
|
|
24
|
+
// keeps its fixed gap.
|
|
25
|
+
export const getInputDockKeyboardPadding = ({
|
|
26
|
+
platform,
|
|
27
|
+
inputDockPaddingBottom
|
|
28
|
+
}) => platform === 'ios' ? Math.min(inputDockPaddingBottom, IOS_KEYBOARD_DOCK_GAP) : inputDockPaddingBottom;
|
|
9
29
|
export const getInputDockPaddingBottom = ({
|
|
10
30
|
platform,
|
|
11
31
|
bottomInset = 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ANDROID_INPUT_DOCK_GAP","getKeyboardVerticalOffset","platform","configuredOffset","bottomInset","getInputDockPaddingBottom","keyboardVisible","configuredPadding","hostOwnsLayout"],"sourceRoot":"../../../src","sources":["helpers/keyboardLayout.ts"],"mappings":";;AAOA,OAAO,MAAMA,sBAAsB,GAAG,EAAE;
|
|
1
|
+
{"version":3,"names":["ANDROID_INPUT_DOCK_GAP","IOS_KEYBOARD_DOCK_GAP","getKeyboardVerticalOffset","platform","configuredOffset","bottomInset","getKeyboardAvoidingOffset","getInputDockKeyboardPadding","inputDockPaddingBottom","Math","min","getInputDockPaddingBottom","keyboardVisible","configuredPadding","hostOwnsLayout"],"sourceRoot":"../../../src","sources":["helpers/keyboardLayout.ts"],"mappings":";;AAOA,OAAO,MAAMA,sBAAsB,GAAG,EAAE;AACxC;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAG,CAAC;AAEtC,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACxCC,QAAQ;EACRC,gBAAgB,GAAG,CAAC;EACpBC,WAAW,GAAG;AACI,CAAC,KACnBD,gBAAgB,IAAID,QAAQ,KAAK,KAAK,GAAGE,WAAW,GAAG,CAAC,CAAC;;AAE3D;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACxCF,gBAAgB,GAAG;AACyB,CAAC,KAAaA,gBAAgB;;AAE5E;AACA;AACA;AACA,OAAO,MAAMG,2BAA2B,GAAGA,CAAC;EAC1CJ,QAAQ;EACRK;AAIF,CAAC,KACCL,QAAQ,KAAK,KAAK,GACdM,IAAI,CAACC,GAAG,CAACF,sBAAsB,EAAEP,qBAAqB,CAAC,GACvDO,sBAAsB;AAc5B,OAAO,MAAMG,yBAAyB,GAAGA,CAAC;EACxCR,QAAQ;EACRE,WAAW,GAAG,CAAC;EACfO,eAAe,GAAG,KAAK;EACvBC,iBAAiB;EACjBC,cAAc,GAAG;AACG,CAAC,KAAa;EAClC,IAAI,OAAOD,iBAAiB,KAAK,QAAQ,EAAE;IACzC,OAAOA,iBAAiB;EAC1B;EACA,IAAIC,cAAc,EAAE;IAClB,OAAO,CAAC;EACV;EACA,OAAOX,QAAQ,KAAK,KAAK,GAAGE,WAAW,GAAGL,sBAAsB;AAClE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { applyReactionToMessage, compareStanzaIds } from '../roomStore/roomsSlice';
|
|
4
|
+
export const extractReaction = (msg, fallbackRoomJID, archiveId) => {
|
|
5
|
+
const reactionsEl = msg?.getChild?.('reactions');
|
|
6
|
+
if (!reactionsEl) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const messageId = reactionsEl.attrs?.id;
|
|
10
|
+
const from = String(reactionsEl.attrs?.from || '');
|
|
11
|
+
if (!messageId || !from.split('@')[0]) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const emoji = (reactionsEl.getChildren?.('reaction') || []).map(reaction => reaction.text ? reaction.text() : '').filter(Boolean);
|
|
15
|
+
const data = msg.getChild?.('data')?.attrs || {};
|
|
16
|
+
const stanzaId = msg.getChild?.('stanza-id');
|
|
17
|
+
const roomJID = String(stanzaId?.attrs?.by || fallbackRoomJID || msg.attrs?.from || '').split('/')[0];
|
|
18
|
+
const rawTs = String(archiveId || stanzaId?.attrs?.id || '');
|
|
19
|
+
const ts = /^\d+$/.test(rawTs) ? rawTs : undefined;
|
|
20
|
+
return {
|
|
21
|
+
messageId,
|
|
22
|
+
from,
|
|
23
|
+
emoji,
|
|
24
|
+
data,
|
|
25
|
+
roomJID,
|
|
26
|
+
...(ts ? {
|
|
27
|
+
ts
|
|
28
|
+
} : {})
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export const applyMamReactions = (messages, reactions) => {
|
|
32
|
+
const byId = new Map();
|
|
33
|
+
for (const message of messages) {
|
|
34
|
+
if (message?.id) {
|
|
35
|
+
byId.set(String(message.id), message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const deferred = [];
|
|
39
|
+
// Oldest first, so the newest state of each reactor wins.
|
|
40
|
+
const ordered = reactions.slice().sort((a, b) => a.ts && b.ts ? compareStanzaIds(a.ts, b.ts) : 0);
|
|
41
|
+
for (const reaction of ordered) {
|
|
42
|
+
const target = byId.get(String(reaction.messageId));
|
|
43
|
+
if (target) {
|
|
44
|
+
applyReactionToMessage(target, reaction.from, reaction.emoji, reaction.data, reaction.ts);
|
|
45
|
+
} else {
|
|
46
|
+
deferred.push(reaction);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return deferred;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=mamReactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["applyReactionToMessage","compareStanzaIds","extractReaction","msg","fallbackRoomJID","archiveId","reactionsEl","getChild","messageId","attrs","id","from","String","split","emoji","getChildren","map","reaction","text","filter","Boolean","data","stanzaId","roomJID","by","rawTs","ts","test","undefined","applyMamReactions","messages","reactions","byId","Map","message","set","deferred","ordered","slice","sort","a","b","target","get","push"],"sourceRoot":"../../../src","sources":["helpers/mamReactions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/** The parent a reply points at, read from its `mainMessage` JSON. */
|
|
4
|
+
|
|
5
|
+
const cache = new WeakMap();
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Safe read of `message.mainMessage` (a JSON string on the wire). Null for
|
|
9
|
+
* a missing or malformed value — a bad payload must not crash a bubble.
|
|
10
|
+
* Cached per message object.
|
|
11
|
+
*/
|
|
12
|
+
export const parseMessageReference = message => {
|
|
13
|
+
if (!message?.mainMessage) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
const cached = cache.get(message);
|
|
17
|
+
if (cached !== undefined) {
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
let ref = null;
|
|
21
|
+
try {
|
|
22
|
+
const parsed = JSON.parse(message.mainMessage);
|
|
23
|
+
if (parsed && parsed.id != null) {
|
|
24
|
+
ref = {
|
|
25
|
+
id: String(parsed.id),
|
|
26
|
+
text: typeof parsed.text === 'string' ? parsed.text : '',
|
|
27
|
+
roomJid: typeof parsed.roomJid === 'string' ? parsed.roomJid : '',
|
|
28
|
+
userName: typeof parsed.userName === 'string' ? parsed.userName : undefined
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
} catch {
|
|
32
|
+
ref = null;
|
|
33
|
+
}
|
|
34
|
+
cache.set(message, ref);
|
|
35
|
+
return ref;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=parseMessageReference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cache","WeakMap","parseMessageReference","message","mainMessage","cached","get","undefined","ref","parsed","JSON","parse","id","String","text","roomJid","userName","set"],"sourceRoot":"../../../src","sources":["helpers/parseMessageReference.ts"],"mappings":";;AAAA;;AAQA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkC,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAIC,OAElB,IAA8B;EAChD,IAAI,CAACA,OAAO,EAAEC,WAAW,EAAE;IAAC,OAAO,IAAI;EAAC;EACxC,MAAMC,MAAM,GAAGL,KAAK,CAACM,GAAG,CAACH,OAAO,CAAC;EACjC,IAAIE,MAAM,KAAKE,SAAS,EAAE;IAAC,OAAOF,MAAM;EAAC;EACzC,IAAIG,GAA4B,GAAG,IAAI;EACvC,IAAI;IACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACR,OAAO,CAACC,WAAW,CAAC;IAC9C,IAAIK,MAAM,IAAIA,MAAM,CAACG,EAAE,IAAI,IAAI,EAAE;MAC/BJ,GAAG,GAAG;QACJI,EAAE,EAAEC,MAAM,CAACJ,MAAM,CAACG,EAAE,CAAC;QACrBE,IAAI,EAAE,OAAOL,MAAM,CAACK,IAAI,KAAK,QAAQ,GAAGL,MAAM,CAACK,IAAI,GAAG,EAAE;QACxDC,OAAO,EAAE,OAAON,MAAM,CAACM,OAAO,KAAK,QAAQ,GAAGN,MAAM,CAACM,OAAO,GAAG,EAAE;QACjEC,QAAQ,EAAE,OAAOP,MAAM,CAACO,QAAQ,KAAK,QAAQ,GAAGP,MAAM,CAACO,QAAQ,GAAGT;MACpE,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACNC,GAAG,GAAG,IAAI;EACZ;EACAR,KAAK,CAACiB,GAAG,CAACd,OAAO,EAAEK,GAAG,CAAC;EACvB,OAAOA,GAAG;AACZ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_QUICK_REACTIONS } from './emoji';
|
|
4
|
+
export const reactionsEnabled = config => !config?.disableReactions && config?.reactions?.enabled !== false;
|
|
5
|
+
export const quickReactionIds = config => {
|
|
6
|
+
const ids = config?.reactions?.quickReactions;
|
|
7
|
+
return Array.isArray(ids) && ids.length ? ids.slice(0, 8) : DEFAULT_QUICK_REACTIONS;
|
|
8
|
+
};
|
|
9
|
+
export const reactionPickerEnabled = config => reactionsEnabled(config) && config?.reactions?.picker !== false;
|
|
10
|
+
//# sourceMappingURL=reactionsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_QUICK_REACTIONS","reactionsEnabled","config","disableReactions","reactions","enabled","quickReactionIds","ids","quickReactions","Array","isArray","length","slice","reactionPickerEnabled","picker"],"sourceRoot":"../../../src","sources":["helpers/reactionsConfig.ts"],"mappings":";;AACA,SAASA,uBAAuB,QAAQ,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAIC,MAAuB,IACtD,CAACA,MAAM,EAAEC,gBAAgB,IAAID,MAAM,EAAEE,SAAS,EAAEC,OAAO,KAAK,KAAK;AAEnE,OAAO,MAAMC,gBAAgB,GAAIJ,MAAuB,IAAe;EACrE,MAAMK,GAAG,GAAGL,MAAM,EAAEE,SAAS,EAAEI,cAAc;EAC7C,OAAOC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,IAAIA,GAAG,CAACI,MAAM,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGZ,uBAAuB;AACrF,CAAC;AAED,OAAO,MAAMa,qBAAqB,GAAIX,MAAuB,IAC3DD,gBAAgB,CAACC,MAAM,CAAC,IAAIA,MAAM,EAAEE,SAAS,EAAEU,MAAM,KAAK,KAAK","ignoreList":[]}
|
|
@@ -20,7 +20,18 @@ export const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFe
|
|
|
20
20
|
const currentBatch = roomEntries.slice(processedIndex, processedIndex + batchSize);
|
|
21
21
|
const lastTimestampsByJid = currentBatch.reduce((acc, current) => {
|
|
22
22
|
const room = store.getState().rooms?.rooms?.[current];
|
|
23
|
-
|
|
23
|
+
const cached = Array.isArray(room?.messages) ? room.messages : [];
|
|
24
|
+
let newest = 0;
|
|
25
|
+
for (const m of cached) {
|
|
26
|
+
if (!m || m.pending || m.id === 'delimiter-new') {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const id = Number(m.id);
|
|
30
|
+
if (Number.isFinite(id) && id > newest) {
|
|
31
|
+
newest = id;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
acc[current] = newest;
|
|
24
35
|
return acc;
|
|
25
36
|
}, {});
|
|
26
37
|
await Promise.all(currentBatch.map(async (jid, index) => {
|
|
@@ -37,7 +48,11 @@ export const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFe
|
|
|
37
48
|
}
|
|
38
49
|
while (!isMessageFound && counter < maxFetchAttempts) {
|
|
39
50
|
const lastMessageId = counter > 0 ? currentJidNewMessages[0]?.id : undefined;
|
|
40
|
-
const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId)
|
|
51
|
+
const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId), undefined, {
|
|
52
|
+
coalesceRoom: true,
|
|
53
|
+
source: 'background',
|
|
54
|
+
selfApplied: true
|
|
55
|
+
});
|
|
41
56
|
if (!fetchedMessages.length) {
|
|
42
57
|
break;
|
|
43
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["store","setRoomMessages","checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","getState","Number","
|
|
1
|
+
{"version":3,"names":["store","setRoomMessages","checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","getState","cached","Array","isArray","messages","newest","m","pending","id","Number","isFinite","Promise","all","map","jid","index","res","setTimeout","counter","isMessageFound","currentJidNewMessages","lastCachedMessagesTimeStamp","lastMessageId","undefined","fetchedMessages","getHistoryStanza","coalesceRoom","source","selfApplied","some","message","dispatch","roomJID","error","console","log"],"sourceRoot":"../../../src","sources":["helpers/updateMessagesTillLast.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,7 +33,9 @@ export const useHeapSender = client => {
|
|
|
33
33
|
if (msg.langSource) {
|
|
34
34
|
await client.sendTextMessageWithTranslateTagStanza(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, msg.showInChannel === 'true', msg.mainMessage || '', msg.langSource, msg.id);
|
|
35
35
|
} else {
|
|
36
|
-
await client.sendMessage(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '',
|
|
36
|
+
await client.sendMessage(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '',
|
|
37
|
+
// Wire values are strings: '"false"' is truthy.
|
|
38
|
+
String(msg.isReply) === 'true', String(msg.showInChannel) === 'true', msg.mainMessage, msg.id);
|
|
37
39
|
}
|
|
38
40
|
} catch (err) {
|
|
39
41
|
console.warn('Failed to send heap message', msg, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useRef","useDispatch","useMessageHeapState","useHeapSender","client","dispatch","queue","sendingRef","inFlightRef","Map","sendHeapMessages","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","err","delete","prevReadyRef","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACtD,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,mBAAmB,QAAQ,uBAAuB;AAI3D,OAAO,MAAMC,aAAa,GAAIC,MAAyB,IAAK;EAC1D,MAAMC,QAAQ,GAAGJ,WAAW,CAAC,CAAC;EAC9B,MAAM;IAAEK;EAAM,CAAC,GAAGJ,mBAAmB,CAAC,CAAC;EACvC,MAAMK,UAAU,GAAGP,MAAM,CAAC,KAAK,CAAC;EAChC,MAAMQ,WAAW,GAAGR,MAAM,CAAsB,IAAIS,GAAG,CAAC,CAAC,CAAC;EAE1D,MAAMC,gBAAgB,GAAGZ,WAAW,CAAC,YAAY;IAC/C,IAAI,CAACM,MAAM,IAAIE,KAAK,CAACK,MAAM,KAAK,CAAC,EAAE;MAAC;IAAO;IAC3C,IAAI,CAACP,MAAM,CAACQ,cAAc,EAAE;MAC1BC,OAAO,CAACC,IAAI,CAAC,yCAAyC,CAAC;MACvD;IACF;IACA,IAAIP,UAAU,CAACQ,OAAO,EAAE;MAAC;IAAO;IAChCR,UAAU,CAACQ,OAAO,GAAG,IAAI;IACzB,IAAI;MACF,KAAK,MAAMC,GAAG,IAAIV,KAAK,EAAE;QACvB,MAAMW,WAAW,GAAGT,WAAW,CAACO,OAAO,CAACG,GAAG,CAACF,GAAG,CAACG,EAAE,CAAC;QACnD,IAAIF,WAAW,IAAIG,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGJ,WAAW,GAAG,KAAK,EAAE;UACnD;QACF;QACAT,WAAW,CAACO,OAAO,CAACO,GAAG,CAACN,GAAG,CAACG,EAAE,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI;UACF,IAAIL,GAAG,CAACO,UAAU,EAAE;YAClB,MAAMnB,MAAM,CAACoB,qCAAqC,CAChDR,GAAG,CAACS,OAAO,EACXT,GAAG,CAACU,IAAI,CAACC,SAAS,IAAIX,GAAG,CAACU,IAAI,CAACE,IAAI,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACxDb,GAAG,CAACU,IAAI,CAACI,QAAQ,IAAId,GAAG,CAACU,IAAI,CAACE,IAAI,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACvD,EAAE,EACFb,GAAG,CAACU,IAAI,CAACK,aAAa,IAAI,EAAE,EAC5Bf,GAAG,CAACgB,IAAI,EACR,EAAE,EACF,CAAC,CAAChB,GAAG,CAACiB,OAAO,EACbjB,GAAG,CAACkB,aAAa,KAAK,MAAM,EAC5BlB,GAAG,CAACmB,WAAW,IAAI,EAAE,EACrBnB,GAAG,CAACO,UAAU,EACdP,GAAG,CAACG,EACN,CAAC;UACH,CAAC,MAAM;YACL,MAAMf,MAAM,CAACgC,WAAW,CACtBpB,GAAG,CAACS,OAAO,EACXT,GAAG,CAACU,IAAI,CAACC,SAAS,IAAIX,GAAG,CAACU,IAAI,CAACE,IAAI,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACxDb,GAAG,CAACU,IAAI,CAACI,QAAQ,IAAId,GAAG,CAACU,IAAI,CAACE,IAAI,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EACvD,EAAE,EACFb,GAAG,CAACU,IAAI,CAACK,aAAa,IAAI,EAAE,EAC5Bf,GAAG,CAACgB,IAAI,EACR,EAAE,
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useDispatch","useMessageHeapState","useHeapSender","client","dispatch","queue","sendingRef","inFlightRef","Map","sendHeapMessages","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","String","err","delete","prevReadyRef","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { useMemo } from 'react';
|
|
3
4
|
import { useSelector } from 'react-redux';
|
|
4
5
|
export const useMessageHeapState = () => {
|
|
5
6
|
const queue = useSelector(state => state.roomHeapSlice?.messageHeap);
|
|
6
7
|
const failedMessages = useSelector(state => state.roomHeapSlice?.failedMessages);
|
|
7
|
-
const idSet = new Set(queue?.map(m => m.id) ?? []);
|
|
8
|
-
const failedIdSet = new Set(Object.keys(failedMessages || {}));
|
|
8
|
+
const idSet = useMemo(() => new Set(queue?.map(m => m.id) ?? []), [queue]);
|
|
9
|
+
const failedIdSet = useMemo(() => new Set(Object.keys(failedMessages || {})), [failedMessages]);
|
|
9
10
|
return {
|
|
10
11
|
queue,
|
|
11
12
|
idSet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelector","useMessageHeapState","queue","state","roomHeapSlice","messageHeap","failedMessages","idSet","Set","map","m","id","failedIdSet","Object","keys"],"sourceRoot":"../../../src","sources":["hooks/useMessageHeapState.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,KAAK,GAAGF,WAAW,CACtBG,KAAgB,IAAKA,KAAK,CAACC,aAAa,EAAEC,WAC7C,CAAC;EACD,MAAMC,cAAc,GAAGN,WAAW,CAC/BG,KAAgB,IAAKA,KAAK,CAACC,aAAa,EAAEE,cAC7C,CAAC;EACD,MAAMC,KAAK,
|
|
1
|
+
{"version":3,"names":["useMemo","useSelector","useMessageHeapState","queue","state","roomHeapSlice","messageHeap","failedMessages","idSet","Set","map","m","id","failedIdSet","Object","keys"],"sourceRoot":"../../../src","sources":["hooks/useMessageHeapState.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,WAAW,QAAQ,aAAa;AAGzC,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAMC,KAAK,GAAGF,WAAW,CACtBG,KAAgB,IAAKA,KAAK,CAACC,aAAa,EAAEC,WAC7C,CAAC;EACD,MAAMC,cAAc,GAAGN,WAAW,CAC/BG,KAAgB,IAAKA,KAAK,CAACC,aAAa,EAAEE,cAC7C,CAAC;EACD,MAAMC,KAAK,GAAGR,OAAO,CAAC,MAAM,IAAIS,GAAG,CAACN,KAAK,EAAEO,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAACT,KAAK,CAAC,CAAC;EAC5E,MAAMU,WAAW,GAAGb,OAAO,CACzB,MAAM,IAAIS,GAAG,CAACK,MAAM,CAACC,IAAI,CAACR,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,EAChD,CAACA,cAAc,CACjB,CAAC;EAED,OAAO;IAAEJ,KAAK;IAAEK,KAAK;IAAED,cAAc;IAAEM;EAAY,CAAC;AACtD,CAAC","ignoreList":[]}
|