stream-chat-react-native-core 3.10.2 → 4.0.0-beta.1
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/lib/commonjs/components/Attachment/Card.js +18 -15
- package/lib/commonjs/components/Attachment/Card.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +8 -15
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +3 -3
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
- package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -9
- package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +293 -208
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
- package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
- package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
- package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
- package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
- package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -2
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +144 -857
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
- package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +4 -2
- package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +24 -16
- package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
- package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
- package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +19 -20
- package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
- package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
- package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +30 -11
- package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
- package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +294 -0
- package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +559 -0
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
- package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
- package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
- package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +2 -2
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +2 -2
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/InputButtons.js +16 -21
- package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +90 -62
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
- package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
- package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
- package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
- package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
- package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
- package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
- package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +75 -42
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +16 -3
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
- package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
- package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
- package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
- package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +83 -70
- package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
- package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -0
- package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
- package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
- package/lib/commonjs/components/Thread/Thread.js +13 -4
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +9 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/docs/ListProps.md +1 -1
- package/lib/commonjs/components/index.js +107 -55
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
- package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
- package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
- package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
- package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
- package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
- package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +112 -78
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +31 -24
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
- package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +19 -32
- package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +25 -9
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/commonjs/emoji-data/compiled.js +0 -315
- package/lib/commonjs/emoji-data/compiled.js.map +1 -1
- package/lib/commonjs/emoji-data/emojiNames.js +0 -105
- package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
- package/lib/commonjs/emoji-data/emojis.js +0 -175
- package/lib/commonjs/emoji-data/emojis.js.map +1 -1
- package/lib/commonjs/i18n/en.json +9 -3
- package/lib/commonjs/i18n/fr.json +9 -3
- package/lib/commonjs/i18n/hi.json +9 -3
- package/lib/commonjs/i18n/it.json +9 -3
- package/lib/commonjs/i18n/ja.json +9 -0
- package/lib/commonjs/i18n/ko.json +9 -0
- package/lib/commonjs/i18n/nl.json +9 -3
- package/lib/commonjs/i18n/ru.json +9 -3
- package/lib/commonjs/i18n/tr.json +10 -4
- package/lib/commonjs/icons/Pin.js +42 -0
- package/lib/commonjs/icons/Pin.js.map +1 -0
- package/lib/commonjs/icons/PinHeader.js +38 -0
- package/lib/commonjs/icons/PinHeader.js.map +1 -0
- package/lib/commonjs/icons/Unpin.js +38 -0
- package/lib/commonjs/icons/Unpin.js.map +1 -0
- package/lib/commonjs/icons/index.js +39 -0
- package/lib/commonjs/icons/index.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/channel.js +1 -0
- package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js +2 -2
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/native.js +1 -7
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/utils/date.js +13 -0
- package/lib/commonjs/utils/date.js.map +1 -0
- package/lib/commonjs/utils/utils.js +9 -7
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Card.js +18 -15
- package/lib/module/components/Attachment/Card.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +8 -15
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +3 -3
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
- package/lib/module/components/Avatar/GroupAvatar.js +3 -9
- package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +293 -208
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
- package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
- package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
- package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
- package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
- package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
- package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -2
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/module/components/Message/Message.js +144 -857
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
- package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js +4 -2
- package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageFooter.js +24 -16
- package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
- package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
- package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
- package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
- package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageStatus.js +19 -20
- package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
- package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
- package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
- package/lib/module/components/Message/MessageSimple/utils/renderText.js +30 -11
- package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
- package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
- package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js +294 -0
- package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
- package/lib/module/components/Message/hooks/useMessageActions.js +559 -0
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
- package/lib/module/components/Message/utils/messageActions.js +17 -15
- package/lib/module/components/Message/utils/messageActions.js.map +1 -1
- package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
- package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
- package/lib/module/components/MessageInput/FileUploadPreview.js +2 -2
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +2 -2
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/InputButtons.js +16 -21
- package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +90 -62
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
- package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
- package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
- package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
- package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
- package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
- package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
- package/lib/module/components/MessageList/DateHeader.js +2 -2
- package/lib/module/components/MessageList/DateHeader.js.map +1 -1
- package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
- package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +75 -42
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +16 -3
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
- package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
- package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
- package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
- package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
- package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
- package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
- package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
- package/lib/module/components/MessageOverlay/MessageOverlay.js +83 -70
- package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
- package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
- package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -0
- package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
- package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
- package/lib/module/components/Thread/Thread.js +13 -4
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +9 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/docs/ListProps.md +1 -1
- package/lib/module/components/index.js +107 -55
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
- package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
- package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
- package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
- package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
- package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
- package/lib/module/contexts/messageContext/MessageContext.js +2 -2
- package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +112 -78
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +31 -24
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
- package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +19 -32
- package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +25 -9
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
- package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
- package/lib/module/emoji-data/compiled.js +0 -315
- package/lib/module/emoji-data/compiled.js.map +1 -1
- package/lib/module/emoji-data/emojiNames.js +0 -105
- package/lib/module/emoji-data/emojiNames.js.map +1 -1
- package/lib/module/emoji-data/emojis.js +0 -175
- package/lib/module/emoji-data/emojis.js.map +1 -1
- package/lib/module/i18n/en.json +9 -3
- package/lib/module/i18n/fr.json +9 -3
- package/lib/module/i18n/hi.json +9 -3
- package/lib/module/i18n/it.json +9 -3
- package/lib/module/i18n/ja.json +9 -0
- package/lib/module/i18n/ko.json +9 -0
- package/lib/module/i18n/nl.json +9 -3
- package/lib/module/i18n/ru.json +9 -3
- package/lib/module/i18n/tr.json +10 -4
- package/lib/module/icons/Pin.js +42 -0
- package/lib/module/icons/Pin.js.map +1 -0
- package/lib/module/icons/PinHeader.js +38 -0
- package/lib/module/icons/PinHeader.js.map +1 -0
- package/lib/module/icons/Unpin.js +38 -0
- package/lib/module/icons/Unpin.js.map +1 -0
- package/lib/module/icons/index.js +39 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/mock-builders/api/sendMessage.js +4 -1
- package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/module/mock-builders/generator/channel.js +1 -0
- package/lib/module/mock-builders/generator/channel.js.map +1 -1
- package/lib/module/mock-builders/mock.js +2 -2
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/native.js +1 -7
- package/lib/module/native.js.map +1 -1
- package/lib/module/utils/date.js +13 -0
- package/lib/module/utils/date.js.map +1 -0
- package/lib/module/utils/utils.js +9 -7
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Card.d.ts +2 -0
- package/lib/typescript/components/Attachment/Gallery.d.ts +3 -2
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +22 -0
- package/lib/typescript/components/Channel/Channel.d.ts +11 -10
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
- package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
- package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -0
- package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts +3 -2
- package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
- package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
- package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
- package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
- package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +1 -0
- package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
- package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
- package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
- package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
- package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
- package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
- package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
- package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
- package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
- package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
- package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
- package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
- package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
- package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
- package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
- package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
- package/lib/typescript/components/index.d.ts +11 -7
- package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
- package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
- package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
- package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +15 -6
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +8 -11
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +15 -106
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +10 -3
- package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
- package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +15 -14
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +24 -8
- package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
- package/lib/typescript/i18n/en.json +9 -3
- package/lib/typescript/i18n/fr.json +9 -3
- package/lib/typescript/i18n/hi.json +9 -3
- package/lib/typescript/i18n/it.json +9 -3
- package/lib/typescript/i18n/ja.json +9 -0
- package/lib/typescript/i18n/ko.json +9 -0
- package/lib/typescript/i18n/nl.json +9 -3
- package/lib/typescript/i18n/ru.json +9 -3
- package/lib/typescript/i18n/tr.json +10 -4
- package/lib/typescript/icons/Pin.d.ts +3 -0
- package/lib/typescript/icons/PinHeader.d.ts +3 -0
- package/lib/typescript/icons/Unpin.d.ts +3 -0
- package/lib/typescript/icons/index.d.ts +3 -0
- package/lib/typescript/native.d.ts +1 -9
- package/lib/typescript/utils/Streami18n.d.ts +9 -6
- package/lib/typescript/utils/date.d.ts +2 -0
- package/lib/typescript/utils/utils.d.ts +8 -10
- package/package.json +5 -3
- package/src/components/Attachment/Card.tsx +5 -1
- package/src/components/Attachment/Gallery.tsx +5 -10
- package/src/components/Attachment/Giphy.tsx +3 -3
- package/src/components/Attachment/__tests__/Attachment.test.js +13 -6
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +41 -27
- package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +2 -56
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +154 -0
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +213 -0
- package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +0 -4
- package/src/components/Avatar/GroupAvatar.tsx +0 -19
- package/src/components/Avatar/__tests__/Avatar.test.js +0 -28
- package/src/components/Channel/Channel.tsx +225 -176
- package/src/components/Channel/__tests__/Channel.test.js +25 -20
- package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
- package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
- package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +53 -0
- package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +1 -1
- package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +4 -1
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +16 -4
- package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -1
- package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +6 -0
- package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -1
- package/src/components/Chat/__tests__/Chat.test.js +6 -2
- package/src/components/Chat/hooks/useIsOnline.ts +8 -5
- package/src/components/ImageGallery/ImageGallery.tsx +3 -2
- package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +4 -5
- package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
- package/src/components/Message/Message.tsx +140 -579
- package/src/components/Message/MessageSimple/MessageContent.tsx +21 -22
- package/src/components/Message/MessageSimple/MessageDeleted.tsx +5 -2
- package/src/components/Message/MessageSimple/MessageFooter.tsx +36 -17
- package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
- package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
- package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
- package/src/components/Message/MessageSimple/MessageStatus.tsx +10 -29
- package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
- package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
- package/src/components/Message/MessageSimple/__tests__/Message.test.js +0 -1
- package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +32 -22
- package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
- package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
- package/src/components/Message/MessageSimple/utils/renderText.tsx +11 -0
- package/src/components/Message/hooks/useCreateMessageContext.ts +0 -5
- package/src/components/Message/hooks/useMessageActionHandlers.ts +163 -0
- package/src/components/Message/hooks/useMessageActions.tsx +381 -0
- package/src/components/Message/utils/messageActions.ts +64 -38
- package/src/components/MessageInput/CooldownTimer.tsx +66 -0
- package/src/components/MessageInput/FileUploadPreview.tsx +2 -2
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
- package/src/components/MessageInput/InputButtons.tsx +4 -10
- package/src/components/MessageInput/MessageInput.tsx +59 -31
- package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
- package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +1 -1
- package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +29 -29
- package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +12 -12
- package/src/components/MessageInput/__tests__/MessageInput.test.js +8 -16
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +6061 -2789
- package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1167 -282
- package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
- package/src/components/MessageInput/hooks/useCooldown.ts +60 -0
- package/src/components/MessageInput/hooks/useCountdown.ts +47 -0
- package/src/components/MessageList/DateHeader.tsx +2 -2
- package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
- package/src/components/MessageList/MessageList.tsx +60 -36
- package/src/components/MessageList/__tests__/MessageList.test.js +231 -106
- package/src/components/MessageList/hooks/useMessageList.ts +14 -2
- package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
- package/src/components/MessageList/utils/getGroupStyles.ts +13 -7
- package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +57 -89
- package/src/components/MessageOverlay/MessageActionListItem.tsx +111 -0
- package/src/components/MessageOverlay/MessageOverlay.tsx +242 -205
- package/src/components/MessageOverlay/OverlayBackdrop.tsx +17 -0
- package/src/components/MessageOverlay/OverlayReactionList.tsx +1 -1
- package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +43 -0
- package/src/components/Thread/Thread.tsx +8 -0
- package/src/components/Thread/__tests__/Thread.test.js +28 -101
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
- package/src/components/Thread/components/ThreadFooterComponent.tsx +13 -1
- package/src/components/docs/ListProps.md +1 -1
- package/src/components/index.ts +11 -7
- package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +33 -0
- package/src/contexts/channelContext/ChannelContext.tsx +27 -30
- package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
- package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +287 -0
- package/src/contexts/channelsStateContext/useChannelState.ts +206 -0
- package/src/contexts/messageContext/MessageContext.tsx +1 -8
- package/src/contexts/messageInputContext/MessageInputContext.tsx +56 -18
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
- package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +12 -12
- package/src/contexts/messagesContext/MessagesContext.tsx +28 -129
- package/src/contexts/overlayContext/OverlayContext.tsx +10 -4
- package/src/contexts/overlayContext/OverlayProvider.tsx +21 -20
- package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
- package/src/contexts/suggestionsContext/SuggestionsContext.tsx +27 -48
- package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +0 -1
- package/src/contexts/themeContext/utils/theme.ts +48 -16
- package/src/contexts/translationContext/TranslationContext.tsx +1 -1
- package/src/contexts/utils/getDisplayName.ts +2 -1
- package/src/emoji-data/compiled.ts +1830 -9609
- package/src/emoji-data/emojiNames.ts +0 -140
- package/src/emoji-data/emojis.ts +0 -210
- package/src/i18n/en.json +9 -3
- package/src/i18n/fr.json +9 -3
- package/src/i18n/hi.json +9 -3
- package/src/i18n/it.json +9 -3
- package/src/i18n/ja.json +9 -0
- package/src/i18n/ko.json +9 -0
- package/src/i18n/nl.json +9 -3
- package/src/i18n/ru.json +9 -3
- package/src/i18n/tr.json +10 -4
- package/src/icons/Pin.tsx +17 -0
- package/src/icons/PinHeader.tsx +12 -0
- package/src/icons/Unpin.tsx +12 -0
- package/src/icons/index.ts +3 -0
- package/src/mock-builders/api/sendMessage.js +3 -2
- package/src/mock-builders/generator/channel.js +18 -0
- package/src/mock-builders/mock.js +2 -2
- package/src/native.ts +1 -13
- package/src/utils/date.ts +4 -0
- package/src/utils/utils.ts +14 -12
- package/src/version.json +1 -1
- package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
- package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
- package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
- package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
- package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
- package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
- package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
- package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
- package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
- package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
- package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
- package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
- package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
- package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
- package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
- package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
- package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
- package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
- package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
- package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
- package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
- package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
- package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
- package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
- package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
- package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
- package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
- package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
- package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
- package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["MessagePinnedHeader.tsx"],"names":["styles","StyleSheet","create","container","display","flexDirection","marginBottom","marginLeft","marginTop","label","MessagePinnedHeaderWithContext","props","alignment","message","theme","grey","colors","pinnedHeader","messageSimple","t","client","justifyContent","color","pinned_by","id","user","name","areEqual","prevProps","nextProps","prevMessage","nextMessage","messageEqual","deleted_at","status","type","text","pinned","MemoizedMessagePinnedHeader","React","memo","MessagePinnedHeader","lastGroupMessage","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { PinHeader } from '../../../icons';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\n\nconst styles = StyleSheet.create({\n container: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: 8,\n marginLeft: 30,\n marginTop: 5,\n },\n label: {},\n});\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\nimport { useChatContext } from '../../../contexts/chatContext/ChatContext';\n\nexport type MessagePinnedHeaderPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'alignment' | 'message'>;\n\nconst MessagePinnedHeaderWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, message } = props;\n const {\n theme: {\n colors: { grey },\n messageSimple: { pinnedHeader },\n },\n } = useTheme();\n const { container, label } = pinnedHeader;\n const { t } = useTranslationContext();\n const { client } = useChatContext();\n return (\n <View\n style={[\n styles.container,\n {\n justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',\n },\n container,\n ]}\n testID='message-pinned'\n >\n <PinHeader pathFill={grey} />\n <Text style={[{ color: grey }, styles.label, label]}>\n Pinned by{' '}\n {message?.pinned_by?.id === client?.user?.id ? t('You') : message?.pinned_by?.name}\n </Text>\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message: prevMessage } = prevProps;\n const { message: nextMessage } = nextProps;\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\n if (!messageEqual) return false;\n return true;\n};\n\nconst MemoizedMessagePinnedHeader = React.memo(\n MessagePinnedHeaderWithContext,\n areEqual,\n) as typeof MessagePinnedHeaderWithContext;\n\nexport type MessagePinnedHeaderProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Partial<MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessagePinnedHeader = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessagePinnedHeaderProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, lastGroupMessage, message } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessagePinnedHeader\n {...{\n alignment,\n lastGroupMessage,\n message,\n }}\n {...props}\n />\n );\n};\n\nMessagePinnedHeader.displayName = 'MessagePinnedHeader{messageSimple{pinned}}';\n"]}
|
|
@@ -202,10 +202,12 @@ var MessageRepliesWithContext = function MessageRepliesWithContext(props) {
|
|
|
202
202
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
203
203
|
var prevMessage = prevProps.message,
|
|
204
204
|
prevNoBorder = prevProps.noBorder,
|
|
205
|
+
prevOnOpenThread = prevProps.onOpenThread,
|
|
205
206
|
prevT = prevProps.t,
|
|
206
207
|
prevThreadList = prevProps.threadList;
|
|
207
208
|
var nextMessage = nextProps.message,
|
|
208
209
|
nextNoBorder = nextProps.noBorder,
|
|
210
|
+
nextOnOpenThread = nextProps.onOpenThread,
|
|
209
211
|
nextT = nextProps.t,
|
|
210
212
|
nextThreadList = nextProps.threadList;
|
|
211
213
|
var threadListEqual = prevThreadList === nextThreadList;
|
|
@@ -216,6 +218,8 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
216
218
|
if (!noBorderEqual) return false;
|
|
217
219
|
var tEqual = prevT === nextT;
|
|
218
220
|
if (!tEqual) return false;
|
|
221
|
+
var onOpenThreadEqual = prevOnOpenThread === nextOnOpenThread;
|
|
222
|
+
if (!onOpenThreadEqual) return false;
|
|
219
223
|
return true;
|
|
220
224
|
};
|
|
221
225
|
|
|
@@ -253,7 +257,7 @@ var MessageReplies = function MessageReplies(props) {
|
|
|
253
257
|
__self: _this,
|
|
254
258
|
__source: {
|
|
255
259
|
fileName: _jsxFileName,
|
|
256
|
-
lineNumber:
|
|
260
|
+
lineNumber: 293,
|
|
257
261
|
columnNumber: 5
|
|
258
262
|
}
|
|
259
263
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageReplies.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","marginTop","curveContainer","leftMessageRepliesCurve","borderBottomLeftRadius","borderRightColor","Platform","select","android","borderRightWidth","messageRepliesCurve","borderTopColor","borderTopWidth","borderWidth","height","width","messageRepliesText","fontSize","fontWeight","paddingBottom","paddingLeft","rightMessageRepliesCurve","borderBottomRightRadius","borderLeftColor","borderLeftWidth","MessageRepliesWithContext","props","alignment","message","MessageRepliesAvatars","noBorder","onLongPress","onOpenThread","onPress","onPressIn","preventPress","repliesCurveColor","t","threadList","theme","accent_blue","colors","messageSimple","replies","leftCurve","rightCurve","reply_count","borderColor","event","emitter","defaultHandler","color","replyCount","areEqual","prevProps","nextProps","prevMessage","prevNoBorder","prevT","prevThreadList","nextMessage","nextNoBorder","nextT","nextThreadList","threadListEqual","messageReplyCountEqual","noBorderEqual","tEqual","MemoizedMessageReplies","React","memo","MessageReplies","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { ColorValue, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n marginTop: 8,\n },\n curveContainer: {\n flexDirection: 'row',\n },\n leftMessageRepliesCurve: {\n borderBottomLeftRadius: 16,\n borderRightColor: 'transparent',\n ...Platform.select({\n android: {\n borderRightWidth: 0,\n },\n }),\n },\n messageRepliesCurve: {\n borderTopColor: 'transparent',\n borderTopWidth: 0,\n borderWidth: 1,\n height: 16,\n width: 16,\n },\n messageRepliesText: {\n fontSize: 12,\n fontWeight: '700',\n paddingBottom: 5,\n paddingLeft: 8,\n },\n rightMessageRepliesCurve: {\n borderBottomRightRadius: 16,\n borderLeftColor: 'transparent',\n ...Platform.select({\n android: {\n borderLeftWidth: 0,\n },\n }),\n },\n});\n\nexport type MessageRepliesPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'onOpenThread'\n | 'preventPress'\n | 'threadList'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageRepliesAvatars'> &\n Pick<TranslationContextValue, 't'> & {\n noBorder?: boolean;\n repliesCurveColor?: ColorValue;\n };\n\nconst MessageRepliesWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n message,\n MessageRepliesAvatars,\n noBorder,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n repliesCurveColor,\n t,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue },\n messageSimple: {\n replies: { container, leftCurve, messageRepliesText, rightCurve },\n },\n },\n } = useTheme();\n\n if (threadList || !message.reply_count) return null;\n\n return (\n <View style={styles.curveContainer}>\n {alignment === 'left' && (\n <View testID='message-replies-left'>\n {!noBorder && (\n <View\n style={[\n { borderColor: repliesCurveColor },\n styles.messageRepliesCurve,\n styles.leftMessageRepliesCurve,\n leftCurve,\n ]}\n />\n )}\n <MessageRepliesAvatars alignment={alignment} message={message} />\n </View>\n )}\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: onOpenThread,\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: onOpenThread,\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n style={[styles.container, container]}\n testID='message-replies'\n >\n <Text style={[styles.messageRepliesText, { color: accent_blue }, messageRepliesText]}>\n {message.reply_count === 1\n ? t('1 Thread Reply')\n : t('{{ replyCount }} Thread Replies', {\n replyCount: message.reply_count,\n })}\n </Text>\n </TouchableOpacity>\n {alignment === 'right' && (\n <View testID='message-replies-right'>\n <MessageRepliesAvatars alignment={alignment} message={message} />\n {!noBorder && (\n <View\n style={[\n { borderColor: repliesCurveColor },\n styles.messageRepliesCurve,\n styles.rightMessageRepliesCurve,\n rightCurve,\n ]}\n />\n )}\n </View>\n )}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n message: prevMessage,\n noBorder: prevNoBorder,\n t: prevT,\n threadList: prevThreadList,\n } = prevProps;\n const {\n message: nextMessage,\n noBorder: nextNoBorder,\n t: nextT,\n threadList: nextThreadList,\n } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const messageReplyCountEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!messageReplyCountEqual) return false;\n\n const noBorderEqual = prevNoBorder === nextNoBorder;\n if (!noBorderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageReplies = React.memo(\n MessageRepliesWithContext,\n areEqual,\n) as typeof MessageRepliesWithContext;\n\nexport type MessageRepliesProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageReplies = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageRepliesProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n message,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n threadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { MessageRepliesAvatars } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessageReplies\n {...{\n alignment,\n message,\n MessageRepliesAvatars,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n t,\n threadList,\n }}\n {...props}\n />\n );\n};\n\nMessageReplies.displayName = 'MessageReplies{messageSimple{replies}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageReplies.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","marginTop","curveContainer","leftMessageRepliesCurve","borderBottomLeftRadius","borderRightColor","Platform","select","android","borderRightWidth","messageRepliesCurve","borderTopColor","borderTopWidth","borderWidth","height","width","messageRepliesText","fontSize","fontWeight","paddingBottom","paddingLeft","rightMessageRepliesCurve","borderBottomRightRadius","borderLeftColor","borderLeftWidth","MessageRepliesWithContext","props","alignment","message","MessageRepliesAvatars","noBorder","onLongPress","onOpenThread","onPress","onPressIn","preventPress","repliesCurveColor","t","threadList","theme","accent_blue","colors","messageSimple","replies","leftCurve","rightCurve","reply_count","borderColor","event","emitter","defaultHandler","color","replyCount","areEqual","prevProps","nextProps","prevMessage","prevNoBorder","prevOnOpenThread","prevT","prevThreadList","nextMessage","nextNoBorder","nextOnOpenThread","nextT","nextThreadList","threadListEqual","messageReplyCountEqual","noBorderEqual","tEqual","onOpenThreadEqual","MemoizedMessageReplies","React","memo","MessageReplies","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { ColorValue, Platform, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n marginTop: 8,\n },\n curveContainer: {\n flexDirection: 'row',\n },\n leftMessageRepliesCurve: {\n borderBottomLeftRadius: 16,\n borderRightColor: 'transparent',\n ...Platform.select({\n android: {\n borderRightWidth: 0,\n },\n }),\n },\n messageRepliesCurve: {\n borderTopColor: 'transparent',\n borderTopWidth: 0,\n borderWidth: 1,\n height: 16,\n width: 16,\n },\n messageRepliesText: {\n fontSize: 12,\n fontWeight: '700',\n paddingBottom: 5,\n paddingLeft: 8,\n },\n rightMessageRepliesCurve: {\n borderBottomRightRadius: 16,\n borderLeftColor: 'transparent',\n ...Platform.select({\n android: {\n borderLeftWidth: 0,\n },\n }),\n },\n});\n\nexport type MessageRepliesPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'onOpenThread'\n | 'preventPress'\n | 'threadList'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageRepliesAvatars'> &\n Pick<TranslationContextValue, 't'> & {\n noBorder?: boolean;\n repliesCurveColor?: ColorValue;\n };\n\nconst MessageRepliesWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n message,\n MessageRepliesAvatars,\n noBorder,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n repliesCurveColor,\n t,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue },\n messageSimple: {\n replies: { container, leftCurve, messageRepliesText, rightCurve },\n },\n },\n } = useTheme();\n\n if (threadList || !message.reply_count) return null;\n\n return (\n <View style={styles.curveContainer}>\n {alignment === 'left' && (\n <View testID='message-replies-left'>\n {!noBorder && (\n <View\n style={[\n { borderColor: repliesCurveColor },\n styles.messageRepliesCurve,\n styles.leftMessageRepliesCurve,\n leftCurve,\n ]}\n />\n )}\n <MessageRepliesAvatars alignment={alignment} message={message} />\n </View>\n )}\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: onOpenThread,\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: onOpenThread,\n emitter: 'messageReplies',\n event,\n });\n }\n }}\n style={[styles.container, container]}\n testID='message-replies'\n >\n <Text style={[styles.messageRepliesText, { color: accent_blue }, messageRepliesText]}>\n {message.reply_count === 1\n ? t('1 Thread Reply')\n : t('{{ replyCount }} Thread Replies', {\n replyCount: message.reply_count,\n })}\n </Text>\n </TouchableOpacity>\n {alignment === 'right' && (\n <View testID='message-replies-right'>\n <MessageRepliesAvatars alignment={alignment} message={message} />\n {!noBorder && (\n <View\n style={[\n { borderColor: repliesCurveColor },\n styles.messageRepliesCurve,\n styles.rightMessageRepliesCurve,\n rightCurve,\n ]}\n />\n )}\n </View>\n )}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n message: prevMessage,\n noBorder: prevNoBorder,\n onOpenThread: prevOnOpenThread,\n t: prevT,\n threadList: prevThreadList,\n } = prevProps;\n const {\n message: nextMessage,\n noBorder: nextNoBorder,\n onOpenThread: nextOnOpenThread,\n t: nextT,\n threadList: nextThreadList,\n } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const messageReplyCountEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!messageReplyCountEqual) return false;\n\n const noBorderEqual = prevNoBorder === nextNoBorder;\n if (!noBorderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const onOpenThreadEqual = prevOnOpenThread === nextOnOpenThread;\n if (!onOpenThreadEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageReplies = React.memo(\n MessageRepliesWithContext,\n areEqual,\n) as typeof MessageRepliesWithContext;\n\nexport type MessageRepliesProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageRepliesPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageReplies = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageRepliesProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n message,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n threadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { MessageRepliesAvatars } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessageReplies\n {...{\n alignment,\n message,\n MessageRepliesAvatars,\n onLongPress,\n onOpenThread,\n onPress,\n onPressIn,\n preventPress,\n t,\n threadList,\n }}\n {...props}\n />\n );\n};\n\nMessageReplies.displayName = 'MessageReplies{messageSimple{replies}}';\n"]}
|
|
@@ -46,6 +46,7 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
|
|
|
46
46
|
message = props.message,
|
|
47
47
|
MessageAvatar = props.MessageAvatar,
|
|
48
48
|
MessageContent = props.MessageContent,
|
|
49
|
+
MessagePinnedHeader = props.MessagePinnedHeader,
|
|
49
50
|
ReactionList = props.ReactionList;
|
|
50
51
|
|
|
51
52
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
@@ -59,7 +60,14 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
|
|
|
59
60
|
var isVeryLastMessage = (channel == null ? void 0 : (_channel$state$messag = channel.state.messages[(channel == null ? void 0 : channel.state.messages.length) - 1]) == null ? void 0 : _channel$state$messag.id) === message.id;
|
|
60
61
|
var hasMarginBottom = groupStyles.includes('single') || groupStyles.includes('bottom');
|
|
61
62
|
var showReactions = hasReactions && ReactionList;
|
|
62
|
-
return _react["default"].createElement(
|
|
63
|
+
return _react["default"].createElement(_react["default"].Fragment, null, message.pinned && _react["default"].createElement(MessagePinnedHeader, {
|
|
64
|
+
__self: _this,
|
|
65
|
+
__source: {
|
|
66
|
+
fileName: _jsxFileName,
|
|
67
|
+
lineNumber: 94,
|
|
68
|
+
columnNumber: 26
|
|
69
|
+
}
|
|
70
|
+
}), _react["default"].createElement(_reactNative.View, {
|
|
63
71
|
style: [styles.container, {
|
|
64
72
|
justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
|
|
65
73
|
marginBottom: hasMarginBottom ? isVeryLastMessage && enableMessageGroupingByUser ? 30 : 8 : 0,
|
|
@@ -69,33 +77,33 @@ var MessageSimpleWithContext = function MessageSimpleWithContext(props) {
|
|
|
69
77
|
__self: _this,
|
|
70
78
|
__source: {
|
|
71
79
|
fileName: _jsxFileName,
|
|
72
|
-
lineNumber:
|
|
73
|
-
columnNumber:
|
|
80
|
+
lineNumber: 95,
|
|
81
|
+
columnNumber: 7
|
|
74
82
|
}
|
|
75
83
|
}, alignment === 'left' && _react["default"].createElement(MessageAvatar, {
|
|
76
84
|
__self: _this,
|
|
77
85
|
__source: {
|
|
78
86
|
fileName: _jsxFileName,
|
|
79
|
-
lineNumber:
|
|
80
|
-
columnNumber:
|
|
87
|
+
lineNumber: 111,
|
|
88
|
+
columnNumber: 34
|
|
81
89
|
}
|
|
82
90
|
}), _react["default"].createElement(MessageContent, {
|
|
83
91
|
setMessageContentWidth: setMessageContentWidth,
|
|
84
92
|
__self: _this,
|
|
85
93
|
__source: {
|
|
86
94
|
fileName: _jsxFileName,
|
|
87
|
-
lineNumber:
|
|
88
|
-
columnNumber:
|
|
95
|
+
lineNumber: 112,
|
|
96
|
+
columnNumber: 9
|
|
89
97
|
}
|
|
90
98
|
}), showReactions && _react["default"].createElement(ReactionList, {
|
|
91
99
|
messageContentWidth: messageContentWidth,
|
|
92
100
|
__self: _this,
|
|
93
101
|
__source: {
|
|
94
102
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
96
|
-
columnNumber:
|
|
103
|
+
lineNumber: 113,
|
|
104
|
+
columnNumber: 27
|
|
97
105
|
}
|
|
98
|
-
}));
|
|
106
|
+
})));
|
|
99
107
|
};
|
|
100
108
|
|
|
101
109
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
@@ -115,9 +123,13 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
115
123
|
if (!repliesEqual) return false;
|
|
116
124
|
var groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);
|
|
117
125
|
if (!groupStylesEqual) return false;
|
|
118
|
-
var
|
|
126
|
+
var isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
|
|
127
|
+
var isNextMessageTypeDeleted = nextMessage.type === 'deleted';
|
|
128
|
+
var messageEqual = isPrevMessageTypeDeleted === isNextMessageTypeDeleted && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text && prevMessage.pinned === nextMessage.pinned;
|
|
119
129
|
if (!messageEqual) return false;
|
|
120
|
-
var
|
|
130
|
+
var isPrevQuotedMessageTypeDeleted = ((_prevMessage$quoted_m = prevMessage.quoted_message) == null ? void 0 : _prevMessage$quoted_m.type) === 'deleted';
|
|
131
|
+
var isNextQuotedMessageTypeDeleted = ((_nextMessage$quoted_m = nextMessage.quoted_message) == null ? void 0 : _nextMessage$quoted_m.type) === 'deleted';
|
|
132
|
+
var quotedMessageEqual = ((_prevMessage$quoted_m2 = prevMessage.quoted_message) == null ? void 0 : _prevMessage$quoted_m2.id) === ((_nextMessage$quoted_m2 = nextMessage.quoted_message) == null ? void 0 : _nextMessage$quoted_m2.id) && isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;
|
|
121
133
|
if (!quotedMessageEqual) return false;
|
|
122
134
|
var channelEqual = (prevChannel == null ? void 0 : prevChannel.state.messages.length) === (nextChannel == null ? void 0 : nextChannel.state.messages.length);
|
|
123
135
|
if (!channelEqual) return false;
|
|
@@ -151,6 +163,7 @@ var MessageSimple = function MessageSimple(props) {
|
|
|
151
163
|
enableMessageGroupingByUser = _useMessagesContext.enableMessageGroupingByUser,
|
|
152
164
|
MessageAvatar = _useMessagesContext.MessageAvatar,
|
|
153
165
|
MessageContent = _useMessagesContext.MessageContent,
|
|
166
|
+
MessagePinnedHeader = _useMessagesContext.MessagePinnedHeader,
|
|
154
167
|
ReactionList = _useMessagesContext.ReactionList;
|
|
155
168
|
|
|
156
169
|
return _react["default"].createElement(MemoizedMessageSimple, (0, _extends2["default"])({
|
|
@@ -162,12 +175,13 @@ var MessageSimple = function MessageSimple(props) {
|
|
|
162
175
|
message: message,
|
|
163
176
|
MessageAvatar: MessageAvatar,
|
|
164
177
|
MessageContent: MessageContent,
|
|
178
|
+
MessagePinnedHeader: MessagePinnedHeader,
|
|
165
179
|
ReactionList: ReactionList
|
|
166
180
|
}, props, {
|
|
167
181
|
__self: _this,
|
|
168
182
|
__source: {
|
|
169
183
|
fileName: _jsxFileName,
|
|
170
|
-
lineNumber:
|
|
184
|
+
lineNumber: 243,
|
|
171
185
|
columnNumber: 5
|
|
172
186
|
}
|
|
173
187
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageSimple.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","MessageSimpleWithContext","props","alignment","channel","enableMessageGroupingByUser","groupStyles","hasReactions","message","MessageAvatar","MessageContent","ReactionList","theme","messageSimple","messageContentWidth","setMessageContentWidth","isVeryLastMessage","state","messages","length","id","hasMarginBottom","includes","showReactions","justifyContent","marginBottom","marginTop","areEqual","prevProps","nextProps","prevChannel","prevGroupStyles","prevHasReactions","prevMessage","nextChannel","nextGroupStyles","nextHasReactions","nextMessage","hasReactionsEqual","repliesEqual","reply_count","groupStylesEqual","JSON","stringify","messageEqual","deleted_at","status","type","text","quotedMessageEqual","quoted_message","channelEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","attachment","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","MemoizedMessageSimple","React","memo","MessageSimple","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n});\n\nexport type MessageSimplePropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'alignment' | 'channel' | 'groupStyles' | 'hasReactions' | 'message'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'enableMessageGroupingByUser' | 'MessageAvatar' | 'MessageContent' | 'ReactionList'\n >;\n\nconst MessageSimpleWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n } = props;\n\n const {\n theme: {\n messageSimple: { container },\n },\n } = useTheme();\n\n const [messageContentWidth, setMessageContentWidth] = useState(0);\n\n const isVeryLastMessage =\n channel?.state.messages[channel?.state.messages.length - 1]?.id === message.id;\n\n const hasMarginBottom = groupStyles.includes('single') || groupStyles.includes('bottom');\n\n const showReactions = hasReactions && ReactionList;\n\n return (\n <View\n style={[\n styles.container,\n {\n justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',\n marginBottom: hasMarginBottom\n ? isVeryLastMessage && enableMessageGroupingByUser\n ? 30\n : 8\n : 0,\n marginTop: showReactions ? 2 : 0,\n },\n container,\n ]}\n testID='message-simple-wrapper'\n >\n {alignment === 'left' && <MessageAvatar />}\n <MessageContent setMessageContentWidth={setMessageContentWidth} />\n {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n channel: prevChannel,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n message: prevMessage,\n } = prevProps;\n const {\n channel: nextChannel,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n message: nextMessage,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);\n if (!groupStylesEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n if (!messageEqual) return false;\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;\n\n if (!quotedMessageEqual) return false;\n\n const channelEqual = prevChannel?.state.messages.length === nextChannel?.state.messages.length;\n if (!channelEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageSimple = React.memo(\n MessageSimpleWithContext,\n areEqual,\n) as typeof MessageSimpleWithContext;\n\nexport type MessageSimpleProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n *\n * Message UI component\n */\nexport const MessageSimple = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageSimpleProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, channel, groupStyles, hasReactions, message } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { enableMessageGroupingByUser, MessageAvatar, MessageContent, ReactionList } =\n useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageSimple<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n ReactionList,\n }}\n {...props}\n />\n );\n};\n\nMessageSimple.displayName = 'MessageSimple{messageSimple{container}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageSimple.tsx"],"names":["styles","StyleSheet","create","container","alignItems","flexDirection","MessageSimpleWithContext","props","alignment","channel","enableMessageGroupingByUser","groupStyles","hasReactions","message","MessageAvatar","MessageContent","MessagePinnedHeader","ReactionList","theme","messageSimple","messageContentWidth","setMessageContentWidth","isVeryLastMessage","state","messages","length","id","hasMarginBottom","includes","showReactions","pinned","justifyContent","marginBottom","marginTop","areEqual","prevProps","nextProps","prevChannel","prevGroupStyles","prevHasReactions","prevMessage","nextChannel","nextGroupStyles","nextHasReactions","nextMessage","hasReactionsEqual","repliesEqual","reply_count","groupStylesEqual","JSON","stringify","isPrevMessageTypeDeleted","type","isNextMessageTypeDeleted","messageEqual","status","text","isPrevQuotedMessageTypeDeleted","quoted_message","isNextQuotedMessageTypeDeleted","quotedMessageEqual","channelEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","attachment","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","MemoizedMessageSimple","React","memo","MessageSimple","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n },\n});\n\nexport type MessageSimplePropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'alignment' | 'channel' | 'groupStyles' | 'hasReactions' | 'message'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'enableMessageGroupingByUser'\n | 'MessageAvatar'\n | 'MessageContent'\n | 'MessagePinnedHeader'\n | 'ReactionList'\n >;\n\nconst MessageSimpleWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n MessagePinnedHeader,\n ReactionList,\n } = props;\n\n const {\n theme: {\n messageSimple: { container },\n },\n } = useTheme();\n\n const [messageContentWidth, setMessageContentWidth] = useState(0);\n\n const isVeryLastMessage =\n channel?.state.messages[channel?.state.messages.length - 1]?.id === message.id;\n\n const hasMarginBottom = groupStyles.includes('single') || groupStyles.includes('bottom');\n\n const showReactions = hasReactions && ReactionList;\n\n return (\n <>\n {message.pinned && <MessagePinnedHeader />}\n <View\n style={[\n styles.container,\n {\n justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',\n marginBottom: hasMarginBottom\n ? isVeryLastMessage && enableMessageGroupingByUser\n ? 30\n : 8\n : 0,\n marginTop: showReactions ? 2 : 0,\n },\n container,\n ]}\n testID='message-simple-wrapper'\n >\n {alignment === 'left' && <MessageAvatar />}\n <MessageContent setMessageContentWidth={setMessageContentWidth} />\n {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}\n </View>\n </>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n channel: prevChannel,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n message: prevMessage,\n } = prevProps;\n const {\n channel: nextChannel,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n message: nextMessage,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const repliesEqual = prevMessage.reply_count === nextMessage.reply_count;\n if (!repliesEqual) return false;\n\n const groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const channelEqual = prevChannel?.state.messages.length === nextChannel?.state.messages.length;\n if (!channelEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageSimple = React.memo(\n MessageSimpleWithContext,\n areEqual,\n) as typeof MessageSimpleWithContext;\n\nexport type MessageSimpleProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageSimplePropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n *\n * Message UI component\n */\nexport const MessageSimple = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageSimpleProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, channel, groupStyles, hasReactions, message } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n enableMessageGroupingByUser,\n MessageAvatar,\n MessageContent,\n MessagePinnedHeader,\n ReactionList,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageSimple<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n alignment,\n channel,\n enableMessageGroupingByUser,\n groupStyles,\n hasReactions,\n message,\n MessageAvatar,\n MessageContent,\n MessagePinnedHeader,\n ReactionList,\n }}\n {...props}\n />\n );\n};\n\nMessageSimple.displayName = 'MessageSimple{messageSimple{container}}';\n"]}
|
|
@@ -42,12 +42,13 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
42
42
|
|
|
43
43
|
var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
44
44
|
var message = props.message,
|
|
45
|
-
readEventsEnabled = props.readEventsEnabled,
|
|
46
45
|
threadList = props.threadList;
|
|
47
46
|
|
|
48
47
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
49
48
|
_useTheme$theme = _useTheme.theme,
|
|
50
|
-
|
|
49
|
+
_useTheme$theme$color = _useTheme$theme.colors,
|
|
50
|
+
accent_blue = _useTheme$theme$color.accent_blue,
|
|
51
|
+
grey_dark = _useTheme$theme$color.grey_dark,
|
|
51
52
|
_useTheme$theme$messa = _useTheme$theme.messageSimple.status,
|
|
52
53
|
checkAllIcon = _useTheme$theme$messa.checkAllIcon,
|
|
53
54
|
checkIcon = _useTheme$theme$messa.checkIcon,
|
|
@@ -62,26 +63,26 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
62
63
|
__self: _this,
|
|
63
64
|
__source: {
|
|
64
65
|
fileName: _jsxFileName,
|
|
65
|
-
lineNumber:
|
|
66
|
+
lineNumber: 74,
|
|
66
67
|
columnNumber: 7
|
|
67
68
|
}
|
|
68
69
|
}, _react["default"].createElement(_Time.Time, (0, _extends2["default"])({}, timeIcon, {
|
|
69
70
|
__self: _this,
|
|
70
71
|
__source: {
|
|
71
72
|
fileName: _jsxFileName,
|
|
72
|
-
lineNumber:
|
|
73
|
+
lineNumber: 75,
|
|
73
74
|
columnNumber: 9
|
|
74
75
|
}
|
|
75
76
|
})));
|
|
76
77
|
}
|
|
77
78
|
|
|
78
|
-
if ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) && !threadList
|
|
79
|
+
if ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message) && !threadList) {
|
|
79
80
|
return _react["default"].createElement(_reactNative.View, {
|
|
80
81
|
style: [styles.statusContainer, statusContainer],
|
|
81
82
|
__self: _this,
|
|
82
83
|
__source: {
|
|
83
84
|
fileName: _jsxFileName,
|
|
84
|
-
lineNumber:
|
|
85
|
+
lineNumber: 82,
|
|
85
86
|
columnNumber: 7
|
|
86
87
|
}
|
|
87
88
|
}, typeof message.readBy === 'number' ? _react["default"].createElement(_reactNative.Text, {
|
|
@@ -92,7 +93,7 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
92
93
|
__self: _this,
|
|
93
94
|
__source: {
|
|
94
95
|
fileName: _jsxFileName,
|
|
95
|
-
lineNumber:
|
|
96
|
+
lineNumber: 84,
|
|
96
97
|
columnNumber: 11
|
|
97
98
|
}
|
|
98
99
|
}, message.readBy) : null, typeof message.readBy === 'number' || message.readBy === true ? _react["default"].createElement(_CheckAll.CheckAll, (0, _extends2["default"])({
|
|
@@ -101,14 +102,16 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
101
102
|
__self: _this,
|
|
102
103
|
__source: {
|
|
103
104
|
fileName: _jsxFileName,
|
|
104
|
-
lineNumber:
|
|
105
|
+
lineNumber: 92,
|
|
105
106
|
columnNumber: 11
|
|
106
107
|
}
|
|
107
|
-
})) : _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
108
|
+
})) : _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
109
|
+
pathFill: grey_dark
|
|
110
|
+
}, checkIcon, {
|
|
108
111
|
__self: _this,
|
|
109
112
|
__source: {
|
|
110
113
|
fileName: _jsxFileName,
|
|
111
|
-
lineNumber:
|
|
114
|
+
lineNumber: 94,
|
|
112
115
|
columnNumber: 11
|
|
113
116
|
}
|
|
114
117
|
})));
|
|
@@ -121,14 +124,16 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
121
124
|
__self: _this,
|
|
122
125
|
__source: {
|
|
123
126
|
fileName: _jsxFileName,
|
|
124
|
-
lineNumber:
|
|
127
|
+
lineNumber: 102,
|
|
125
128
|
columnNumber: 7
|
|
126
129
|
}
|
|
127
|
-
}, _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
130
|
+
}, _react["default"].createElement(_Check.Check, (0, _extends2["default"])({
|
|
131
|
+
pathFill: grey_dark
|
|
132
|
+
}, checkIcon, {
|
|
128
133
|
__self: _this,
|
|
129
134
|
__source: {
|
|
130
135
|
fileName: _jsxFileName,
|
|
131
|
-
lineNumber:
|
|
136
|
+
lineNumber: 103,
|
|
132
137
|
columnNumber: 9
|
|
133
138
|
}
|
|
134
139
|
})));
|
|
@@ -139,15 +144,11 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
|
|
|
139
144
|
|
|
140
145
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
141
146
|
var prevMessage = prevProps.message,
|
|
142
|
-
prevReadEventsEnabled = prevProps.readEventsEnabled,
|
|
143
147
|
prevThreadList = prevProps.threadList;
|
|
144
148
|
var nextMessage = nextProps.message,
|
|
145
|
-
nextReadEventsEnabled = nextProps.readEventsEnabled,
|
|
146
149
|
nextThreadList = nextProps.threadList;
|
|
147
150
|
var threadListEqual = prevThreadList === nextThreadList;
|
|
148
151
|
if (!threadListEqual) return false;
|
|
149
|
-
var readEventsEnabledEqual = prevReadEventsEnabled === nextReadEventsEnabled;
|
|
150
|
-
if (!readEventsEnabledEqual) return false;
|
|
151
152
|
var messageEqual = prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(prevMessage) && prevMessage.readBy) === ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(nextMessage) && nextMessage.readBy);
|
|
152
153
|
if (!messageEqual) return false;
|
|
153
154
|
return true;
|
|
@@ -158,18 +159,16 @@ var MemoizedMessageStatus = _react["default"].memo(MessageStatusWithContext, are
|
|
|
158
159
|
var MessageStatus = function MessageStatus(props) {
|
|
159
160
|
var _useMessageContext = (0, _MessageContext.useMessageContext)(),
|
|
160
161
|
message = _useMessageContext.message,
|
|
161
|
-
readEventsEnabled = _useMessageContext.readEventsEnabled,
|
|
162
162
|
threadList = _useMessageContext.threadList;
|
|
163
163
|
|
|
164
164
|
return _react["default"].createElement(MemoizedMessageStatus, (0, _extends2["default"])({
|
|
165
165
|
message: message,
|
|
166
|
-
readEventsEnabled: readEventsEnabled,
|
|
167
166
|
threadList: threadList
|
|
168
167
|
}, props, {
|
|
169
168
|
__self: _this,
|
|
170
169
|
__source: {
|
|
171
170
|
fileName: _jsxFileName,
|
|
172
|
-
lineNumber:
|
|
171
|
+
lineNumber: 167,
|
|
173
172
|
columnNumber: 10
|
|
174
173
|
}
|
|
175
174
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageStatus.tsx"],"names":["styles","StyleSheet","create","readByCount","fontSize","fontWeight","paddingRight","statusContainer","alignItems","flexDirection","justifyContent","MessageStatusWithContext","props","message","readEventsEnabled","threadList","theme","accent_blue","colors","messageSimple","status","checkAllIcon","checkIcon","timeIcon","readBy","color","type","areEqual","prevProps","nextProps","prevMessage","prevReadEventsEnabled","prevThreadList","nextMessage","nextReadEventsEnabled","nextThreadList","threadListEqual","readEventsEnabledEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { isMessageWithStylesReadByAndDateSeparator } from '../../MessageList/hooks/useMessageList';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { Check } from '../../../icons/Check';\nimport { CheckAll } from '../../../icons/CheckAll';\nimport { Time } from '../../../icons/Time';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n readByCount: {\n fontSize: 11,\n fontWeight: '700',\n paddingRight: 3,\n },\n statusContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n justifyContent: 'center',\n paddingRight: 3,\n },\n});\n\nexport type MessageStatusPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'message' | 'readEventsEnabled' | 'threadList'\n>;\n\nconst MessageStatusWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, readEventsEnabled, threadList } = props;\n\n const {\n theme: {\n colors: { accent_blue },\n messageSimple: {\n status: { checkAllIcon, checkIcon, readByCount, statusContainer, timeIcon },\n },\n },\n } = useTheme();\n\n if (message.status === 'sending') {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='sending-container'>\n <Time {...timeIcon} />\n </View>\n );\n }\n\n if (\n isMessageWithStylesReadByAndDateSeparator(message) &&\n !threadList &&\n readEventsEnabled !== false\n ) {\n return (\n <View style={[styles.statusContainer, statusContainer]}>\n {typeof message.readBy === 'number' ? (\n <Text\n style={[styles.readByCount, { color: accent_blue }, readByCount]}\n testID='read-by-container'\n >\n {message.readBy}\n </Text>\n ) : null}\n {typeof message.readBy === 'number' || message.readBy === true ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : (\n <Check {...checkIcon} />\n )}\n </View>\n );\n }\n\n if (message.status === 'received' && message.type !== 'ephemeral' && !threadList) {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='delivered-container'>\n <Check {...checkIcon} />\n </View>\n );\n }\n\n return null;\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n message: prevMessage,\n readEventsEnabled: prevReadEventsEnabled,\n threadList: prevThreadList,\n } = prevProps;\n const {\n message: nextMessage,\n readEventsEnabled: nextReadEventsEnabled,\n threadList: nextThreadList,\n } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const readEventsEnabledEqual = prevReadEventsEnabled === nextReadEventsEnabled;\n if (!readEventsEnabledEqual) return false;\n\n const messageEqual =\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy);\n if (!messageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageStatus = React.memo(\n MessageStatusWithContext,\n areEqual,\n) as typeof MessageStatusWithContext;\n\nexport type MessageStatusProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Partial<MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageStatus = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, readEventsEnabled, threadList } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return <MemoizedMessageStatus {...{ message, readEventsEnabled, threadList }} {...props} />;\n};\n\nMessageStatus.displayName = 'MessageStatus{messageSimple{status}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageStatus.tsx"],"names":["styles","StyleSheet","create","readByCount","fontSize","fontWeight","paddingRight","statusContainer","alignItems","flexDirection","justifyContent","MessageStatusWithContext","props","message","threadList","theme","colors","accent_blue","grey_dark","messageSimple","status","checkAllIcon","checkIcon","timeIcon","readBy","color","type","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { isMessageWithStylesReadByAndDateSeparator } from '../../MessageList/hooks/useMessageList';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { Check } from '../../../icons/Check';\nimport { CheckAll } from '../../../icons/CheckAll';\nimport { Time } from '../../../icons/Time';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n readByCount: {\n fontSize: 11,\n fontWeight: '700',\n paddingRight: 3,\n },\n statusContainer: {\n alignItems: 'flex-end',\n flexDirection: 'row',\n justifyContent: 'center',\n paddingRight: 3,\n },\n});\n\nexport type MessageStatusPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'message' | 'threadList'>;\n\nconst MessageStatusWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, threadList } = props;\n\n const {\n theme: {\n colors: { accent_blue, grey_dark },\n messageSimple: {\n status: { checkAllIcon, checkIcon, readByCount, statusContainer, timeIcon },\n },\n },\n } = useTheme();\n\n if (message.status === 'sending') {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='sending-container'>\n <Time {...timeIcon} />\n </View>\n );\n }\n\n if (isMessageWithStylesReadByAndDateSeparator(message) && !threadList) {\n return (\n <View style={[styles.statusContainer, statusContainer]}>\n {typeof message.readBy === 'number' ? (\n <Text\n style={[styles.readByCount, { color: accent_blue }, readByCount]}\n testID='read-by-container'\n >\n {message.readBy}\n </Text>\n ) : null}\n {typeof message.readBy === 'number' || message.readBy === true ? (\n <CheckAll pathFill={accent_blue} {...checkAllIcon} />\n ) : (\n <Check pathFill={grey_dark} {...checkIcon} />\n )}\n </View>\n );\n }\n\n if (message.status === 'received' && message.type !== 'ephemeral' && !threadList) {\n return (\n <View style={[styles.statusContainer, statusContainer]} testID='delivered-container'>\n <Check pathFill={grey_dark} {...checkIcon} />\n </View>\n );\n }\n\n return null;\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message: prevMessage, threadList: prevThreadList } = prevProps;\n const { message: nextMessage, threadList: nextThreadList } = nextProps;\n\n const threadListEqual = prevThreadList === nextThreadList;\n if (!threadListEqual) return false;\n\n const messageEqual =\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n (isMessageWithStylesReadByAndDateSeparator(prevMessage) && prevMessage.readBy) ===\n (isMessageWithStylesReadByAndDateSeparator(nextMessage) && nextMessage.readBy);\n if (!messageEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageStatus = React.memo(\n MessageStatusWithContext,\n areEqual,\n) as typeof MessageStatusWithContext;\n\nexport type MessageStatusProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Partial<MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageStatus = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, threadList } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return <MemoizedMessageStatus {...{ message, threadList }} {...props} />;\n};\n\nMessageStatus.displayName = 'MessageStatus{messageSimple{status}}';\n"]}
|
|
@@ -41,6 +41,7 @@ var MessageTextContainerWithContext = function MessageTextContainerWithContext(p
|
|
|
41
41
|
message = props.message,
|
|
42
42
|
messageOverlay = props.messageOverlay,
|
|
43
43
|
MessageText = props.MessageText,
|
|
44
|
+
messageTextNumberOfLines = props.messageTextNumberOfLines,
|
|
44
45
|
onLongPress = props.onLongPress,
|
|
45
46
|
onlyEmojis = props.onlyEmojis,
|
|
46
47
|
onPress = props.onPress,
|
|
@@ -62,7 +63,7 @@ var MessageTextContainerWithContext = function MessageTextContainerWithContext(p
|
|
|
62
63
|
__self: _this,
|
|
63
64
|
__source: {
|
|
64
65
|
fileName: _jsxFileName,
|
|
65
|
-
lineNumber:
|
|
66
|
+
lineNumber: 110,
|
|
66
67
|
columnNumber: 5
|
|
67
68
|
}
|
|
68
69
|
}, MessageText ? _react["default"].createElement(MessageText, (0, _extends2["default"])({}, props, {
|
|
@@ -71,7 +72,7 @@ var MessageTextContainerWithContext = function MessageTextContainerWithContext(p
|
|
|
71
72
|
__self: _this,
|
|
72
73
|
__source: {
|
|
73
74
|
fileName: _jsxFileName,
|
|
74
|
-
lineNumber:
|
|
75
|
+
lineNumber: 115,
|
|
75
76
|
columnNumber: 9
|
|
76
77
|
}
|
|
77
78
|
})) : (0, _renderText.renderText)({
|
|
@@ -80,6 +81,7 @@ var MessageTextContainerWithContext = function MessageTextContainerWithContext(p
|
|
|
80
81
|
markdownStyles: (0, _extends2["default"])({}, markdownStyles, onlyEmojis ? onlyEmojiMarkdown : {}),
|
|
81
82
|
message: message,
|
|
82
83
|
messageOverlay: messageOverlay,
|
|
84
|
+
messageTextNumberOfLines: messageTextNumberOfLines,
|
|
83
85
|
onLongPress: onLongPress,
|
|
84
86
|
onlyEmojis: onlyEmojis,
|
|
85
87
|
onPress: onPress,
|
|
@@ -117,10 +119,12 @@ var MessageTextContainer = function MessageTextContainer(props) {
|
|
|
117
119
|
markdownRules = _useMessagesContext.markdownRules,
|
|
118
120
|
MessageText = _useMessagesContext.MessageText;
|
|
119
121
|
|
|
122
|
+
var messageTextNumberOfLines = props.messageTextNumberOfLines;
|
|
120
123
|
return _react["default"].createElement(MemoizedMessageTextContainer, (0, _extends2["default"])({
|
|
121
124
|
markdownRules: markdownRules,
|
|
122
125
|
message: message,
|
|
123
126
|
MessageText: MessageText,
|
|
127
|
+
messageTextNumberOfLines: messageTextNumberOfLines,
|
|
124
128
|
onLongPress: onLongPress,
|
|
125
129
|
onlyEmojis: onlyEmojis,
|
|
126
130
|
onPress: onPress,
|
|
@@ -129,7 +133,7 @@ var MessageTextContainer = function MessageTextContainer(props) {
|
|
|
129
133
|
__self: _this,
|
|
130
134
|
__source: {
|
|
131
135
|
fileName: _jsxFileName,
|
|
132
|
-
lineNumber:
|
|
136
|
+
lineNumber: 201,
|
|
133
137
|
columnNumber: 5
|
|
134
138
|
}
|
|
135
139
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MessageTextContainer.tsx"],"names":["styles","StyleSheet","create","textContainer","maxWidth","paddingHorizontal","MessageTextContainerWithContext","props","theme","markdownRules","markdownStyles","markdownStylesProp","message","messageOverlay","MessageText","onLongPress","onlyEmojis","onPress","preventPress","stylesProp","colors","messageSimple","content","markdown","onlyEmojiMarkdown","text","renderText","areEqual","prevProps","nextProps","prevMessage","prevOnlyEmojis","nextMessage","nextOnlyEmojis","messageTextEqual","onlyEmojisEqual","mentionedUsersEqual","mentioned_users","length","name","MemoizedMessageTextContainer","React","memo","MessageTextContainer","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { renderText, RenderTextParams } from './utils/renderText';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport type { MarkdownStyle, Theme } from '../../../contexts/themeContext/utils/theme';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n textContainer: { maxWidth: 250, paddingHorizontal: 16 },\n});\n\nexport type MessageTextProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = MessageTextContainerProps<At, Ch, Co, Ev, Me, Re, Us> & {\n renderText: (params: RenderTextParams<At, Ch, Co, Ev, Me, Re, Us>) => JSX.Element | null;\n theme: { theme: Theme };\n};\n\nexport type MessageTextContainerPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'message' | 'onLongPress' | 'onlyEmojis' | 'onPress' | 'preventPress'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'markdownRules' | 'MessageText'> & {\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n styles?: Partial<{\n textContainer: StyleProp<ViewStyle>;\n }>;\n };\n\nconst MessageTextContainerWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const theme = useTheme();\n\n const {\n markdownRules,\n markdownStyles: markdownStylesProp = {},\n message,\n messageOverlay,\n MessageText,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors,\n messageSimple: {\n content: {\n markdown,\n textContainer: { onlyEmojiMarkdown, ...textContainer },\n },\n },\n },\n } = theme;\n\n if (!message.text) return null;\n\n const markdownStyles = { ...markdown, ...markdownStylesProp };\n\n return (\n <View\n style={[styles.textContainer, textContainer, stylesProp.textContainer]}\n testID='message-text-container'\n >\n {MessageText ? (\n <MessageText {...props} renderText={renderText} theme={theme} />\n ) : (\n renderText<At, Ch, Co, Ev, Me, Re, Us>({\n colors,\n markdownRules,\n markdownStyles: {\n ...markdownStyles,\n ...(onlyEmojis ? onlyEmojiMarkdown : {}),\n },\n message,\n messageOverlay,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n })\n )}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message: prevMessage, onlyEmojis: prevOnlyEmojis } = prevProps;\n const { message: nextMessage, onlyEmojis: nextOnlyEmojis } = nextProps;\n\n const messageTextEqual = prevMessage.text === nextMessage.text;\n if (!messageTextEqual) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const mentionedUsersEqual =\n prevMessage.mentioned_users?.length === nextMessage.mentioned_users?.length &&\n (nextMessage.mentioned_users?.length === 0 ||\n (prevMessage.mentioned_users?.length &&\n nextMessage.mentioned_users?.length &&\n prevMessage.mentioned_users[0].name === nextMessage.mentioned_users[0].name));\n if (!mentionedUsersEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageTextContainer = React.memo(\n MessageTextContainerWithContext,\n areEqual,\n) as typeof MessageTextContainerWithContext;\n\nexport type MessageTextContainerProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageTextContainer = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageTextContainerProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, onLongPress, onlyEmojis, onPress, preventPress } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { markdownRules, MessageText } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageTextContainer\n {...{\n markdownRules,\n message,\n MessageText,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nMessageTextContainer.displayName = 'MessageTextContainer{messageSimple{content}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["MessageTextContainer.tsx"],"names":["styles","StyleSheet","create","textContainer","maxWidth","paddingHorizontal","MessageTextContainerWithContext","props","theme","markdownRules","markdownStyles","markdownStylesProp","message","messageOverlay","MessageText","messageTextNumberOfLines","onLongPress","onlyEmojis","onPress","preventPress","stylesProp","colors","messageSimple","content","markdown","onlyEmojiMarkdown","text","renderText","areEqual","prevProps","nextProps","prevMessage","prevOnlyEmojis","nextMessage","nextOnlyEmojis","messageTextEqual","onlyEmojisEqual","mentionedUsersEqual","mentioned_users","length","name","MemoizedMessageTextContainer","React","memo","MessageTextContainer","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { renderText, RenderTextParams } from './utils/renderText';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport type { MarkdownStyle, Theme } from '../../../contexts/themeContext/utils/theme';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n textContainer: { maxWidth: 250, paddingHorizontal: 16 },\n});\n\nexport type MessageTextProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = MessageTextContainerProps<At, Ch, Co, Ev, Me, Re, Us> & {\n renderText: (params: RenderTextParams<At, Ch, Co, Ev, Me, Re, Us>) => JSX.Element | null;\n theme: { theme: Theme };\n};\n\nexport type MessageTextContainerPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'message' | 'onLongPress' | 'onlyEmojis' | 'onPress' | 'preventPress'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'markdownRules' | 'MessageText'> & {\n markdownStyles?: MarkdownStyle;\n messageOverlay?: boolean;\n messageTextNumberOfLines?: number;\n styles?: Partial<{\n textContainer: StyleProp<ViewStyle>;\n }>;\n };\n\nconst MessageTextContainerWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const theme = useTheme();\n\n const {\n markdownRules,\n markdownStyles: markdownStylesProp = {},\n message,\n messageOverlay,\n MessageText,\n messageTextNumberOfLines,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors,\n messageSimple: {\n content: {\n markdown,\n textContainer: { onlyEmojiMarkdown, ...textContainer },\n },\n },\n },\n } = theme;\n\n if (!message.text) return null;\n\n const markdownStyles = { ...markdown, ...markdownStylesProp };\n\n return (\n <View\n style={[styles.textContainer, textContainer, stylesProp.textContainer]}\n testID='message-text-container'\n >\n {MessageText ? (\n <MessageText {...props} renderText={renderText} theme={theme} />\n ) : (\n renderText<At, Ch, Co, Ev, Me, Re, Us>({\n colors,\n markdownRules,\n markdownStyles: {\n ...markdownStyles,\n ...(onlyEmojis ? onlyEmojiMarkdown : {}),\n },\n message,\n messageOverlay,\n messageTextNumberOfLines,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n })\n )}\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message: prevMessage, onlyEmojis: prevOnlyEmojis } = prevProps;\n const { message: nextMessage, onlyEmojis: nextOnlyEmojis } = nextProps;\n\n const messageTextEqual = prevMessage.text === nextMessage.text;\n if (!messageTextEqual) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const mentionedUsersEqual =\n prevMessage.mentioned_users?.length === nextMessage.mentioned_users?.length &&\n (nextMessage.mentioned_users?.length === 0 ||\n (prevMessage.mentioned_users?.length &&\n nextMessage.mentioned_users?.length &&\n prevMessage.mentioned_users[0].name === nextMessage.mentioned_users[0].name));\n if (!mentionedUsersEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageTextContainer = React.memo(\n MessageTextContainerWithContext,\n areEqual,\n) as typeof MessageTextContainerWithContext;\n\nexport type MessageTextContainerProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<MessageTextContainerPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport const MessageTextContainer = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageTextContainerProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { message, onLongPress, onlyEmojis, onPress, preventPress } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { markdownRules, MessageText } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { messageTextNumberOfLines } = props;\n\n return (\n <MemoizedMessageTextContainer\n {...{\n markdownRules,\n message,\n MessageText,\n messageTextNumberOfLines,\n onLongPress,\n onlyEmojis,\n onPress,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nMessageTextContainer.displayName = 'MessageTextContainer{messageSimple{content}}';\n"]}
|