@ethora/chat-component-rn 26.8.5 → 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/MainComponents/ChatHeader.js +7 -9
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +24 -23
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +22 -16
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- 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 +133 -65
- package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -1
- 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/Modal/SwipeBackLayer.js +76 -44
- package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.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/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/MainComponents/ChatHeader.js +8 -10
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +25 -24
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +23 -17
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- 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 +131 -63
- package/lib/module/components/MainComponents/RoomStack.js.map +1 -1
- 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/Modal/SwipeBackLayer.js +76 -44
- package/lib/module/components/Modals/Modal/SwipeBackLayer.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/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/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/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 +7 -2
- package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -1
- 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/Modal/SwipeBackLayer.d.ts +2 -1
- package/lib/typescript/components/Modals/Modal/SwipeBackLayer.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/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/MainComponents/ChatHeader.tsx +16 -7
- package/src/components/MainComponents/ChatRoom.tsx +35 -29
- package/src/components/MainComponents/ChatWrapper.tsx +28 -10
- 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 +156 -83
- 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/Modal/SwipeBackLayer.tsx +114 -63
- 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/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
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useRef } from 'react';
|
|
4
|
-
import { BackHandler, Keyboard, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
5
|
-
import Animated, { Easing, interpolate, runOnJS, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
3
|
+
import React, { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { Animated, BackHandler, Easing, Keyboard, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
6
5
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
7
6
|
|
|
8
7
|
// Width of the left-edge strip that starts the back swipe.
|
|
9
|
-
import {
|
|
8
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
9
|
export const EDGE_WIDTH = 28;
|
|
11
10
|
// Released past this share of the width (or faster than the velocity
|
|
12
11
|
// below), the swipe completes; otherwise the room settles back.
|
|
@@ -23,10 +22,27 @@ export const POP = {
|
|
|
23
22
|
duration: 240,
|
|
24
23
|
easing: Easing.out(Easing.cubic)
|
|
25
24
|
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Holds its children still while `frozen`: the list under an open room is
|
|
28
|
+
* fully covered, so re-rendering it on every store update (each incoming
|
|
29
|
+
* message) is wasted work on the JS thread. It thaws as soon as it is
|
|
30
|
+
* about to be seen again.
|
|
31
|
+
*/
|
|
32
|
+
const Freezable = /*#__PURE__*/memo(({
|
|
33
|
+
children
|
|
34
|
+
}) => /*#__PURE__*/_jsx(_Fragment, {
|
|
35
|
+
children: children
|
|
36
|
+
}), (_prev, next) => next.frozen);
|
|
26
37
|
/**
|
|
27
38
|
* Two-layer stack for the list → room navigation: the room slides in over
|
|
28
39
|
* the list, and a swipe from the left edge drags it back out, following the
|
|
29
40
|
* finger, with the list parallaxing in underneath (the iOS navigation feel).
|
|
41
|
+
*
|
|
42
|
+
* Driven by RN's own `Animated` (native driver), not Reanimated: every layer
|
|
43
|
+
* derives from ONE value through interpolation, so the layers cannot drift
|
|
44
|
+
* apart, and a React re-render mid-flight cannot reset a layer to the style
|
|
45
|
+
* it was first rendered with.
|
|
30
46
|
*/
|
|
31
47
|
export const RoomStack = /*#__PURE__*/forwardRef(({
|
|
32
48
|
list,
|
|
@@ -38,43 +54,83 @@ export const RoomStack = /*#__PURE__*/forwardRef(({
|
|
|
38
54
|
const {
|
|
39
55
|
width: windowWidth
|
|
40
56
|
} = useWindowDimensions();
|
|
41
|
-
const width =
|
|
57
|
+
const [width, setWidth] = useState(windowWidth);
|
|
58
|
+
const widthRef = useRef(width);
|
|
59
|
+
widthRef.current = width;
|
|
42
60
|
const hasRoom = !!room;
|
|
43
61
|
// Room's horizontal offset: 0 = covering the list, `width` = off-screen.
|
|
44
62
|
// A room already open on the first render is shown in place.
|
|
45
|
-
const x =
|
|
46
|
-
const closing =
|
|
63
|
+
const x = useRef(new Animated.Value(hasRoom ? 0 : windowWidth)).current;
|
|
64
|
+
const closing = useRef(false);
|
|
65
|
+
|
|
66
|
+
// True while the list is (about to be) visible under a moving room.
|
|
67
|
+
const [peeking, setPeeking] = useState(false);
|
|
68
|
+
// Bumped after every completed pop — see the settle effect below.
|
|
69
|
+
const [popCount, setPopCount] = useState(0);
|
|
70
|
+
const slideTo = useCallback((toValue, config, done) => {
|
|
71
|
+
Animated.timing(x, {
|
|
72
|
+
toValue,
|
|
73
|
+
...config,
|
|
74
|
+
useNativeDriver: true
|
|
75
|
+
}).start(({
|
|
76
|
+
finished
|
|
77
|
+
}) => done?.(finished));
|
|
78
|
+
}, [x]);
|
|
47
79
|
const isFirstRender = useRef(true);
|
|
48
80
|
useEffect(() => {
|
|
49
81
|
if (isFirstRender.current) {
|
|
50
82
|
isFirstRender.current = false;
|
|
51
83
|
return;
|
|
52
84
|
}
|
|
53
|
-
closing.
|
|
85
|
+
closing.current = false;
|
|
86
|
+
setPeeking(false);
|
|
87
|
+
x.stopAnimation();
|
|
88
|
+
x.setValue(widthRef.current);
|
|
54
89
|
if (hasRoom) {
|
|
55
|
-
|
|
56
|
-
x.value = withTiming(0, PUSH);
|
|
57
|
-
} else {
|
|
58
|
-
x.value = width.value;
|
|
90
|
+
slideTo(0, PUSH);
|
|
59
91
|
}
|
|
60
92
|
}, [hasRoom]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
61
93
|
|
|
62
94
|
const onBackRef = useRef(onBack);
|
|
63
95
|
onBackRef.current = onBack;
|
|
64
|
-
const finish = useCallback(() =>
|
|
65
|
-
|
|
66
|
-
|
|
96
|
+
const finish = useCallback(() => {
|
|
97
|
+
onBackRef.current();
|
|
98
|
+
setPopCount(count => count + 1);
|
|
99
|
+
}, []);
|
|
100
|
+
|
|
101
|
+
// `onBack` normally clears the room, and the effect above takes over.
|
|
102
|
+
// If the room is still (or again) there after a pop — something
|
|
103
|
+
// re-selected it — bring it back on screen: a room parked off-screen
|
|
104
|
+
// would leave the list visible but untouchable.
|
|
105
|
+
const hasRoomRef = useRef(hasRoom);
|
|
106
|
+
hasRoomRef.current = hasRoom;
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
if (popCount === 0 || !hasRoomRef.current) {
|
|
67
109
|
return;
|
|
68
110
|
}
|
|
69
|
-
closing.
|
|
70
|
-
|
|
71
|
-
|
|
111
|
+
closing.current = false;
|
|
112
|
+
setPeeking(false);
|
|
113
|
+
slideTo(0, POP);
|
|
114
|
+
}, [popCount]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
115
|
+
|
|
116
|
+
const slideOut = useCallback(() => {
|
|
117
|
+
closing.current = true;
|
|
118
|
+
setPeeking(true);
|
|
119
|
+
slideTo(widthRef.current, POP, finished => {
|
|
72
120
|
if (finished) {
|
|
73
|
-
|
|
121
|
+
finish();
|
|
122
|
+
} else {
|
|
123
|
+
closing.current = false;
|
|
74
124
|
}
|
|
75
125
|
});
|
|
76
|
-
}, [finish]);
|
|
77
|
-
|
|
126
|
+
}, [finish, slideTo]);
|
|
127
|
+
const pop = useCallback(() => {
|
|
128
|
+
if (closing.current) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
Keyboard.dismiss();
|
|
132
|
+
slideOut();
|
|
133
|
+
}, [slideOut]);
|
|
78
134
|
useImperativeHandle(ref, () => ({
|
|
79
135
|
pop
|
|
80
136
|
}), [pop]);
|
|
@@ -88,80 +144,92 @@ export const RoomStack = /*#__PURE__*/forwardRef(({
|
|
|
88
144
|
});
|
|
89
145
|
return () => sub.remove();
|
|
90
146
|
}, [hasRoom, hardwareBack, pop]);
|
|
91
|
-
const
|
|
92
|
-
const swipeBack = Gesture.Pan().hitSlop({
|
|
147
|
+
const swipeBack = useMemo(() => Gesture.Pan().runOnJS(true).hitSlop({
|
|
93
148
|
left: 0,
|
|
94
149
|
width: EDGE_WIDTH
|
|
95
150
|
}).activeOffsetX(12).failOffsetY([-16, 16]).onStart(() => {
|
|
96
|
-
|
|
151
|
+
if (closing.current) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
Keyboard.dismiss();
|
|
155
|
+
setPeeking(true);
|
|
156
|
+
x.stopAnimation();
|
|
97
157
|
}).onUpdate(e => {
|
|
98
|
-
if (closing.
|
|
158
|
+
if (closing.current) {
|
|
99
159
|
return;
|
|
100
160
|
}
|
|
101
|
-
x.
|
|
161
|
+
x.setValue(Math.min(Math.max(e.translationX, 0), widthRef.current));
|
|
102
162
|
}).onEnd(e => {
|
|
103
|
-
if (closing.
|
|
163
|
+
if (closing.current) {
|
|
104
164
|
return;
|
|
105
165
|
}
|
|
106
|
-
const complete =
|
|
166
|
+
const complete = e.translationX > widthRef.current * COMPLETE_DISTANCE || e.velocityX > COMPLETE_VELOCITY;
|
|
107
167
|
if (complete) {
|
|
108
|
-
|
|
109
|
-
x.value = withTiming(width.value, POP, finished => {
|
|
110
|
-
if (finished) {
|
|
111
|
-
runOnJS(finish)();
|
|
112
|
-
}
|
|
113
|
-
});
|
|
168
|
+
slideOut();
|
|
114
169
|
} else {
|
|
115
|
-
|
|
170
|
+
slideTo(0, POP, () => setPeeking(false));
|
|
116
171
|
}
|
|
117
|
-
});
|
|
172
|
+
}), [slideOut, slideTo, x]);
|
|
118
173
|
const onLayout = useCallback(e => {
|
|
119
174
|
const next = e.nativeEvent.layout.width;
|
|
120
|
-
if (next > 0 && next !==
|
|
175
|
+
if (next > 0 && next !== widthRef.current) {
|
|
121
176
|
// Keep an off-screen room off-screen when the container resizes.
|
|
122
|
-
if (
|
|
123
|
-
x.
|
|
177
|
+
if (!hasRoomRef.current) {
|
|
178
|
+
x.setValue(next);
|
|
124
179
|
}
|
|
125
|
-
|
|
180
|
+
setWidth(next);
|
|
126
181
|
}
|
|
127
|
-
}, []);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
const dimStyle = useAnimatedStyle(() => ({
|
|
144
|
-
opacity: interpolate(x.value, [0, width.value], [LIST_DIM, 0])
|
|
145
|
-
}));
|
|
182
|
+
}, [x]);
|
|
183
|
+
const {
|
|
184
|
+
listShift,
|
|
185
|
+
dimOpacity
|
|
186
|
+
} = useMemo(() => ({
|
|
187
|
+
listShift: x.interpolate({
|
|
188
|
+
inputRange: [0, width],
|
|
189
|
+
outputRange: [-width * LIST_PARALLAX, 0],
|
|
190
|
+
extrapolate: 'clamp'
|
|
191
|
+
}),
|
|
192
|
+
dimOpacity: x.interpolate({
|
|
193
|
+
inputRange: [0, width],
|
|
194
|
+
outputRange: [LIST_DIM, 0],
|
|
195
|
+
extrapolate: 'clamp'
|
|
196
|
+
})
|
|
197
|
+
}), [x, width]);
|
|
146
198
|
return /*#__PURE__*/_jsxs(View, {
|
|
147
199
|
style: styles.container,
|
|
148
200
|
onLayout: onLayout,
|
|
149
201
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
150
|
-
style: [styles.layer,
|
|
202
|
+
style: [styles.layer,
|
|
203
|
+
// Without a room the list always rests in place, whatever the
|
|
204
|
+
// animated value is doing.
|
|
205
|
+
hasRoom ? {
|
|
206
|
+
transform: [{
|
|
207
|
+
translateX: listShift
|
|
208
|
+
}]
|
|
209
|
+
} : null],
|
|
151
210
|
pointerEvents: hasRoom ? 'none' : 'auto',
|
|
152
211
|
accessibilityElementsHidden: hasRoom,
|
|
153
212
|
importantForAccessibility: hasRoom ? 'no-hide-descendants' : 'auto',
|
|
154
|
-
children:
|
|
213
|
+
children: /*#__PURE__*/_jsx(Freezable, {
|
|
214
|
+
frozen: hasRoom && !peeking,
|
|
215
|
+
children: list
|
|
216
|
+
})
|
|
155
217
|
}), hasRoom && /*#__PURE__*/_jsxs(_Fragment, {
|
|
156
218
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
157
219
|
pointerEvents: "none",
|
|
158
|
-
style: [styles.layer, styles.dim,
|
|
220
|
+
style: [styles.layer, styles.dim, {
|
|
221
|
+
opacity: dimOpacity
|
|
222
|
+
}]
|
|
159
223
|
}), /*#__PURE__*/_jsx(GestureDetector, {
|
|
160
224
|
gesture: swipeBack,
|
|
161
225
|
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
162
226
|
style: [styles.layer, styles.room, {
|
|
163
227
|
backgroundColor: roomBackground
|
|
164
|
-
},
|
|
228
|
+
}, {
|
|
229
|
+
transform: [{
|
|
230
|
+
translateX: x
|
|
231
|
+
}]
|
|
232
|
+
}],
|
|
165
233
|
children: room
|
|
166
234
|
})
|
|
167
235
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","memo","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","Animated","BackHandler","Easing","Keyboard","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","Fragment","_Fragment","jsx","_jsx","jsxs","_jsxs","EDGE_WIDTH","COMPLETE_DISTANCE","COMPLETE_VELOCITY","LIST_PARALLAX","LIST_DIM","PUSH","duration","easing","bezier","POP","out","cubic","Freezable","children","_prev","next","frozen","RoomStack","list","room","onBack","roomBackground","hardwareBack","ref","width","windowWidth","setWidth","widthRef","current","hasRoom","x","Value","closing","peeking","setPeeking","popCount","setPopCount","slideTo","toValue","config","done","timing","useNativeDriver","start","finished","isFirstRender","stopAnimation","setValue","onBackRef","finish","count","hasRoomRef","slideOut","pop","dismiss","undefined","sub","addEventListener","remove","swipeBack","Pan","runOnJS","hitSlop","left","activeOffsetX","failOffsetY","onStart","onUpdate","e","Math","min","max","translationX","onEnd","complete","velocityX","onLayout","nativeEvent","layout","listShift","dimOpacity","interpolate","inputRange","outputRange","extrapolate","style","styles","container","layer","transform","translateX","pointerEvents","accessibilityElementsHidden","importantForAccessibility","dim","opacity","gesture","backgroundColor","displayName","create","flex","overflow","position","top","right","bottom","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius"],"sourceRoot":"../../../../src","sources":["components/MainComponents/RoomStack.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,20 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { View, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { useTheme } from '../../hooks/useTheme';
|
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
7
|
const SystemMessage = ({
|
|
7
8
|
messageText,
|
|
8
9
|
colors
|
|
9
10
|
}) => {
|
|
11
|
+
// Same pill as the day separator; `colors.secondary` is not a pill
|
|
12
|
+
// colour (see DateLabel).
|
|
13
|
+
const theme = useTheme();
|
|
10
14
|
return /*#__PURE__*/_jsx(View, {
|
|
11
15
|
style: styles.container,
|
|
12
16
|
children: /*#__PURE__*/_jsx(View, {
|
|
13
17
|
style: [styles.bubble, {
|
|
14
|
-
backgroundColor:
|
|
18
|
+
backgroundColor: theme.dateLabelBackground
|
|
15
19
|
}],
|
|
16
20
|
children: /*#__PURE__*/_jsx(Text, {
|
|
17
21
|
style: [styles.text, {
|
|
18
|
-
color: colors?.primary ||
|
|
22
|
+
color: colors?.primary || theme.dateLabel
|
|
19
23
|
}],
|
|
20
24
|
children: messageText
|
|
21
25
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","StyleSheet","jsx","_jsx","SystemMessage","messageText","colors","style","styles","container","children","bubble","backgroundColor","
|
|
1
|
+
{"version":3,"names":["React","View","Text","StyleSheet","useTheme","jsx","_jsx","SystemMessage","messageText","colors","theme","style","styles","container","children","bubble","backgroundColor","dateLabelBackground","text","color","primary","dateLabel","create","width","alignItems","paddingVertical","paddingHorizontal","maxWidth","borderRadius","fontSize","lineHeight","fontWeight","textAlign"],"sourceRoot":"../../../../src","sources":["components/MainComponents/SystemMessage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,QAAQ,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOhD,MAAMC,aAA2C,GAAGA,CAAC;EACnDC,WAAW;EACXC;AACF,CAAC,KAAK;EACJ;EACA;EACA,MAAMC,KAAK,GAAGN,QAAQ,CAAC,CAAC;EACxB,oBACEE,IAAA,CAACL,IAAI;IAACU,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAK5BR,IAAA,CAACL,IAAI;MACHU,KAAK,EAAE,CACLC,MAAM,CAACG,MAAM,EACb;QAAEC,eAAe,EAAEN,KAAK,CAACO;MAAoB,CAAC,CAC9C;MAAAH,QAAA,eAEFR,IAAA,CAACJ,IAAI;QAACS,KAAK,EAAE,CAACC,MAAM,CAACM,IAAI,EAAE;UAAEC,KAAK,EAAEV,MAAM,EAAEW,OAAO,IAAIV,KAAK,CAACW;QAAU,CAAC,CAAE;QAAAP,QAAA,EACvEN;MAAW,CACR;IAAC,CACH;EAAC,CACH,CAAC;AAEX,CAAC;AAED,eAAeD,aAAa;AAE5B,MAAMK,MAAM,GAAGT,UAAU,CAACmB,MAAM,CAAC;EAC/BT,SAAS,EAAE;IACTU,KAAK,EAAE,MAAM;IACbC,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE;EACrB,CAAC;EACDX,MAAM,EAAE;IACNY,QAAQ,EAAE,KAAK;IACfC,YAAY,EAAE,EAAE;IAChBH,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE;EACrB,CAAC;EACDR,IAAI,EAAE;IACJW,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,EAAE;IACdC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -34,7 +34,8 @@ export const Avatar = ({
|
|
|
34
34
|
username,
|
|
35
35
|
firstName,
|
|
36
36
|
lastName,
|
|
37
|
-
style
|
|
37
|
+
style,
|
|
38
|
+
textSize
|
|
38
39
|
}) => {
|
|
39
40
|
const {
|
|
40
41
|
config
|
|
@@ -73,6 +74,9 @@ export const Avatar = ({
|
|
|
73
74
|
bgColor: backgroundColor?.backgroundColor,
|
|
74
75
|
children: /*#__PURE__*/_jsx(AvatarText, {
|
|
75
76
|
color: getAvatarTextColor(backgroundColor?.backgroundColor),
|
|
77
|
+
style: textSize ? {
|
|
78
|
+
fontSize: textSize
|
|
79
|
+
} : undefined,
|
|
76
80
|
children: getInitials()
|
|
77
81
|
})
|
|
78
82
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","styled","useChatSettingState","getAvatarColor","getAvatarTextColor","jsx","_jsx","AvatarCircle","View","bgColor","AvatarText","Text","color","Avatar","username","firstName","lastName","style","config","backgroundColor","getInitials","isAlphabetic","char","test","firstInitial","toUpperCase","lastInitial","names","split","length","secondInitial","singleInitial","children"],"sourceRoot":"../../../../src","sources":["components/MessageBubble/Avatar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,MAAM,MAAM,0BAA0B;AAC7C,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SACEC,cAAc,EACdC,kBAAkB,QACb,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA;
|
|
1
|
+
{"version":3,"names":["React","useMemo","styled","useChatSettingState","getAvatarColor","getAvatarTextColor","jsx","_jsx","AvatarCircle","View","bgColor","AvatarText","Text","color","Avatar","username","firstName","lastName","style","textSize","config","backgroundColor","getInitials","isAlphabetic","char","test","firstInitial","toUpperCase","lastInitial","names","split","length","secondInitial","singleInitial","children","fontSize","undefined"],"sourceRoot":"../../../../src","sources":["components/MessageBubble/Avatar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,37 +3,23 @@
|
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
4
|
import { Avatar } from './Avatar';
|
|
5
5
|
import { styled } from 'styled-components/native';
|
|
6
|
-
import {
|
|
6
|
+
import { View } from 'react-native';
|
|
7
7
|
import { useTheme } from '../../hooks/useTheme';
|
|
8
|
+
import { useSelector } from 'react-redux';
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
10
|
const ReplyContainer = styled.TouchableOpacity`
|
|
10
11
|
background-color: ${({
|
|
11
12
|
theme
|
|
12
13
|
}) => theme.surface};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
border: 0.5px solid ${({
|
|
15
|
+
theme
|
|
16
|
+
}) => theme.border};
|
|
17
|
+
padding: 3px 10px 3px 14px;
|
|
18
|
+
border-radius: 14px;
|
|
17
19
|
flex-direction: row;
|
|
18
20
|
align-items: center;
|
|
19
21
|
gap: 6px;
|
|
20
|
-
margin: 8px 8px 0;
|
|
21
22
|
|
|
22
|
-
${({
|
|
23
|
-
theme
|
|
24
|
-
}) => Platform.select({
|
|
25
|
-
// The light shadow is a soft bluish-grey tuned for a white card; on
|
|
26
|
-
// the dark palette that would read as a glow, so use the theme shadow.
|
|
27
|
-
ios: `
|
|
28
|
-
shadow-color: ${theme.dark ? theme.shadow : 'rgba(185, 198, 199, 1)'};
|
|
29
|
-
shadow-offset: 0px 0px;
|
|
30
|
-
shadow-opacity: 1;
|
|
31
|
-
shadow-radius: 8px;
|
|
32
|
-
`,
|
|
33
|
-
android: `
|
|
34
|
-
elevation: 8;
|
|
35
|
-
`
|
|
36
|
-
})}
|
|
37
23
|
`;
|
|
38
24
|
const AvatarCircle = styled.View`
|
|
39
25
|
height: 24px;
|
|
@@ -76,6 +62,15 @@ export const BottomReplyContainer = ({
|
|
|
76
62
|
onClick
|
|
77
63
|
}) => {
|
|
78
64
|
const theme = useTheme();
|
|
65
|
+
// The repliers' real names: a reply restored from cache carries only the
|
|
66
|
+
// sender's id, so resolve through the same directory the bubbles use.
|
|
67
|
+
const usersSet = useSelector(state => state.rooms.usersSet);
|
|
68
|
+
const nameOf = u => {
|
|
69
|
+
const raw = String(u?.id || '');
|
|
70
|
+
const entry = usersSet?.[raw.split('@')[0]] || usersSet?.[raw];
|
|
71
|
+
const full = entry ? `${entry.firstName || ''} ${entry.lastName || ''}`.trim() || entry.name : '';
|
|
72
|
+
return full || u?.name || '';
|
|
73
|
+
};
|
|
79
74
|
const uniqueUsers = useMemo(() => {
|
|
80
75
|
return Object.values(reply.reduce((acc, item) => {
|
|
81
76
|
if (!acc[item.user.id]) {
|
|
@@ -95,7 +90,8 @@ export const BottomReplyContainer = ({
|
|
|
95
90
|
},
|
|
96
91
|
children: [uniqueUsers.slice(0, 3).map(item => /*#__PURE__*/_jsx(AvatarCircle, {
|
|
97
92
|
children: /*#__PURE__*/_jsx(Avatar, {
|
|
98
|
-
username: item
|
|
93
|
+
username: nameOf(item),
|
|
94
|
+
textSize: 10,
|
|
99
95
|
style: {
|
|
100
96
|
height: '100%',
|
|
101
97
|
width: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","Avatar","styled","
|
|
1
|
+
{"version":3,"names":["useMemo","Avatar","styled","View","useTheme","useSelector","jsx","_jsx","jsxs","_jsxs","ReplyContainer","TouchableOpacity","theme","surface","border","AvatarCircle","CircleCurrent","CircleCurrentText","Text","textSecondary","CounterRepliesText","primary","BottomReplyContainer","isUser","reply","onClick","usersSet","state","rooms","nameOf","u","raw","String","id","entry","split","full","firstName","lastName","trim","name","uniqueUsers","Object","values","reduce","acc","item","user","onPress","children","style","flexDirection","slice","map","username","textSize","height","width","borderWidth","borderColor","borderStyle","fontSize","length"],"sourceRoot":"../../../../src","sources":["components/MessageBubble/BottomReplyContainer.tsx"],"mappings":"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","ignoreList":[]}
|