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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["messageActions.ts"],"names":["messageActions","blockUser","
|
|
1
|
+
{"version":3,"sources":["messageActions.ts"],"names":["messageActions","blockUser","copyMessage","deleteMessage","editMessage","error","flagMessage","isMyMessage","isThreadMessage","message","messageReactions","ownCapabilities","pinMessage","quotedReply","retry","threadReply","unpinMessage","undefined","actions","push","quoteMessage","sendReply","updateOwnMessage","updateAnyMessage","text","pinned","banChannelMembers","deleteOwnMessage","deleteAnyMessage"],"mappings":";;;;;AAmDO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAyB0B;AAAA,MAhBtDC,SAgBsD,QAhBtDA,SAgBsD;AAAA,MAftDC,WAesD,QAftDA,WAesD;AAAA,MAdtDC,aAcsD,QAdtDA,aAcsD;AAAA,MAbtDC,WAasD,QAbtDA,WAasD;AAAA,MAZtDC,KAYsD,QAZtDA,KAYsD;AAAA,MAXtDC,WAWsD,QAXtDA,WAWsD;AAAA,MAVtDC,WAUsD,QAVtDA,WAUsD;AAAA,MATtDC,eASsD,QATtDA,eASsD;AAAA,MARtDC,OAQsD,QARtDA,OAQsD;AAAA,MAPtDC,gBAOsD,QAPtDA,gBAOsD;AAAA,MANtDC,eAMsD,QANtDA,eAMsD;AAAA,MALtDC,UAKsD,QALtDA,UAKsD;AAAA,MAJtDC,WAIsD,QAJtDA,WAIsD;AAAA,MAHtDC,KAGsD,QAHtDA,KAGsD;AAAA,MAFtDC,WAEsD,QAFtDA,WAEsD;AAAA,MADtDC,YACsD,QADtDA,YACsD;;AACtD,MAAIN,gBAAJ,EAAsB;AACpB,WAAOO,SAAP;AACD;;AAED,MAAMC,OAAwC,GAAG,EAAjD;;AAEA,MAAIb,KAAK,IAAIE,WAAb,EAA0B;AACxBW,IAAAA,OAAO,CAACC,IAAR,CAAaL,KAAb;AACD;;AAED,MAAIH,eAAe,CAACS,YAAhB,IAAgC,CAACZ,eAAjC,IAAoD,CAACH,KAAzD,EAAgE;AAC9Da,IAAAA,OAAO,CAACC,IAAR,CAAaN,WAAb;AACD;;AAED,MAAIF,eAAe,CAACU,SAAhB,IAA6B,CAACb,eAA9B,IAAiD,CAACH,KAAtD,EAA6D;AAC3Da,IAAAA,OAAO,CAACC,IAAR,CAAaJ,WAAb;AACD;;AAED,MACGR,WAAW,IAAII,eAAe,CAACW,gBAAhC,IACC,CAACf,WAAD,IAAgBI,eAAe,CAACY,gBAFnC,EAGE;AACAL,IAAAA,OAAO,CAACC,IAAR,CAAaf,WAAb;AACD;;AAED,MAAIK,OAAO,CAACe,IAAR,IAAgB,CAACnB,KAArB,EAA4B;AAC1Ba,IAAAA,OAAO,CAACC,IAAR,CAAajB,WAAb;AACD;;AAED,MAAI,CAACK,WAAD,IAAgBI,eAAe,CAACL,WAApC,EAAiD;AAC/CY,IAAAA,OAAO,CAACC,IAAR,CAAab,WAAb;AACD;;AAED,MAAIK,eAAe,CAACC,UAAhB,IAA8B,CAACH,OAAO,CAACgB,MAA3C,EAAmD;AACjDP,IAAAA,OAAO,CAACC,IAAR,CAAaP,UAAb;AACD;;AAED,MAAID,eAAe,CAACC,UAAhB,IAA8BH,OAAO,CAACgB,MAA1C,EAAkD;AAChDP,IAAAA,OAAO,CAACC,IAAR,CAAaH,YAAb;AACD;;AAED,MAAI,CAACT,WAAD,IAAgBI,eAAe,CAACe,iBAApC,EAAuD;AACrDR,IAAAA,OAAO,CAACC,IAAR,CAAalB,SAAb;AACD;;AAED,MACGM,WAAW,IAAII,eAAe,CAACgB,gBAAhC,IACC,CAACpB,WAAD,IAAgBI,eAAe,CAACiB,gBAFnC,EAGE;AACAV,IAAAA,OAAO,CAACC,IAAR,CAAahB,aAAb;AACD;;AAED,SAAOe,OAAP;AACD,CA/EM","sourcesContent":["import type { MessageActionType } from '../../MessageOverlay/MessageActionListItem';\nimport type { OwnCapabilitiesContextValue } from '../../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport type { MessageContextValue } from '../../../contexts/messageContext/MessageContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nexport type MessageActionsParams<\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 blockUser: MessageActionType;\n copyMessage: MessageActionType;\n deleteMessage: MessageActionType;\n dismissOverlay: () => void;\n editMessage: MessageActionType;\n error: boolean | Error;\n flagMessage: MessageActionType;\n isThreadMessage: boolean;\n messageReactions: boolean;\n muteUser: MessageActionType;\n ownCapabilities: OwnCapabilitiesContextValue;\n pinMessage: MessageActionType;\n quotedReply: MessageActionType;\n retry: MessageActionType;\n threadReply: MessageActionType;\n unpinMessage: MessageActionType;\n} & Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'message' | 'isMyMessage'>;\n\nexport type MessageActionsProp<\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> = (param: MessageActionsParams<At, Ch, Co, Ev, Me, Re, Us>) => MessageActionType[];\n\nexport const messageActions = <\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 blockUser,\n copyMessage,\n deleteMessage,\n editMessage,\n error,\n flagMessage,\n isMyMessage,\n isThreadMessage,\n message,\n messageReactions,\n ownCapabilities,\n pinMessage,\n quotedReply,\n retry,\n threadReply,\n unpinMessage,\n}: MessageActionsParams<At, Ch, Co, Ev, Me, Re, Us>) => {\n if (messageReactions) {\n return undefined;\n }\n\n const actions: Array<MessageActionType | null> = [];\n\n if (error && isMyMessage) {\n actions.push(retry);\n }\n\n if (ownCapabilities.quoteMessage && !isThreadMessage && !error) {\n actions.push(quotedReply);\n }\n\n if (ownCapabilities.sendReply && !isThreadMessage && !error) {\n actions.push(threadReply);\n }\n\n if (\n (isMyMessage && ownCapabilities.updateOwnMessage) ||\n (!isMyMessage && ownCapabilities.updateAnyMessage)\n ) {\n actions.push(editMessage);\n }\n\n if (message.text && !error) {\n actions.push(copyMessage);\n }\n\n if (!isMyMessage && ownCapabilities.flagMessage) {\n actions.push(flagMessage);\n }\n\n if (ownCapabilities.pinMessage && !message.pinned) {\n actions.push(pinMessage);\n }\n\n if (ownCapabilities.pinMessage && message.pinned) {\n actions.push(unpinMessage);\n }\n\n if (!isMyMessage && ownCapabilities.banChannelMembers) {\n actions.push(blockUser);\n }\n\n if (\n (isMyMessage && ownCapabilities.deleteOwnMessage) ||\n (!isMyMessage && ownCapabilities.deleteAnyMessage)\n ) {\n actions.push(deleteMessage);\n }\n\n return actions;\n};\n"]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CooldownTimer = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
13
|
+
|
|
14
|
+
var _this = this,
|
|
15
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/MessageInput/CooldownTimer.tsx";
|
|
16
|
+
|
|
17
|
+
var CONTAINER_SIZE = 24;
|
|
18
|
+
var CONTAINER_HORIZONTAL_PADDING = 6;
|
|
19
|
+
var EXTRA_CHARACTER_PADDING = CONTAINER_SIZE - CONTAINER_HORIZONTAL_PADDING * 2;
|
|
20
|
+
|
|
21
|
+
var normalizeWidth = function normalizeWidth(seconds) {
|
|
22
|
+
return CONTAINER_SIZE + EXTRA_CHARACTER_PADDING * (("" + seconds).length - 1);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var CooldownTimer = function CooldownTimer(props) {
|
|
26
|
+
var seconds = props.seconds;
|
|
27
|
+
|
|
28
|
+
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
29
|
+
_useTheme$theme = _useTheme.theme,
|
|
30
|
+
_useTheme$theme$color = _useTheme$theme.colors,
|
|
31
|
+
black = _useTheme$theme$color.black,
|
|
32
|
+
grey_gainsboro = _useTheme$theme$color.grey_gainsboro,
|
|
33
|
+
_useTheme$theme$messa = _useTheme$theme.messageInput.cooldownTimer,
|
|
34
|
+
container = _useTheme$theme$messa.container,
|
|
35
|
+
text = _useTheme$theme$messa.text;
|
|
36
|
+
|
|
37
|
+
return _react["default"].createElement(_reactNative.View, {
|
|
38
|
+
style: [styles.container, {
|
|
39
|
+
backgroundColor: grey_gainsboro,
|
|
40
|
+
width: normalizeWidth(seconds)
|
|
41
|
+
}, container],
|
|
42
|
+
__self: _this,
|
|
43
|
+
__source: {
|
|
44
|
+
fileName: _jsxFileName,
|
|
45
|
+
lineNumber: 39,
|
|
46
|
+
columnNumber: 5
|
|
47
|
+
}
|
|
48
|
+
}, _react["default"].createElement(_reactNative.Text, {
|
|
49
|
+
style: [styles.text, {
|
|
50
|
+
color: black
|
|
51
|
+
}, text],
|
|
52
|
+
testID: "cooldown-seconds",
|
|
53
|
+
__self: _this,
|
|
54
|
+
__source: {
|
|
55
|
+
fileName: _jsxFileName,
|
|
56
|
+
lineNumber: 49,
|
|
57
|
+
columnNumber: 7
|
|
58
|
+
}
|
|
59
|
+
}, seconds));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.CooldownTimer = CooldownTimer;
|
|
63
|
+
|
|
64
|
+
var styles = _reactNative.StyleSheet.create({
|
|
65
|
+
container: {
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
borderRadius: CONTAINER_SIZE / 2,
|
|
68
|
+
height: CONTAINER_SIZE,
|
|
69
|
+
justifyContent: 'center',
|
|
70
|
+
minWidth: CONTAINER_SIZE,
|
|
71
|
+
paddingHorizontal: CONTAINER_HORIZONTAL_PADDING
|
|
72
|
+
},
|
|
73
|
+
text: {
|
|
74
|
+
fontSize: 16,
|
|
75
|
+
fontWeight: '600'
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=CooldownTimer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CooldownTimer.tsx"],"names":["CONTAINER_SIZE","CONTAINER_HORIZONTAL_PADDING","EXTRA_CHARACTER_PADDING","normalizeWidth","seconds","length","CooldownTimer","props","theme","colors","black","grey_gainsboro","messageInput","cooldownTimer","container","text","styles","backgroundColor","width","color","StyleSheet","create","alignItems","borderRadius","height","justifyContent","minWidth","paddingHorizontal","fontSize","fontWeight"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;AAMA,IAAMA,cAAc,GAAG,EAAvB;AACA,IAAMC,4BAA4B,GAAG,CAArC;AACA,IAAMC,uBAAuB,GAAGF,cAAc,GAAGC,4BAA4B,GAAG,CAAhF;;AAOA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACC,OAAD;AAAA,SACrBJ,cAAc,GAAGE,uBAAuB,IAAI,MAAGE,OAAH,EAAaC,MAAb,GAAsB,CAA1B,CADnB;AAAA,CAAvB;;AASO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAA+B;AAC1D,MAAQH,OAAR,GAAoBG,KAApB,CAAQH,OAAR;;AACA,kBAOI,6BAPJ;AAAA,kCACEI,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,KAFd,yBAEcA,KAFd;AAAA,MAEqBC,cAFrB,yBAEqBA,cAFrB;AAAA,8CAGIC,YAHJ,CAIMC,aAJN;AAAA,MAIuBC,SAJvB,yBAIuBA,SAJvB;AAAA,MAIkCC,IAJlC,yBAIkCA,IAJlC;;AASA,SACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLC,MAAM,CAACF,SADF,EAEL;AACEG,MAAAA,eAAe,EAAEN,cADnB;AAEEO,MAAAA,KAAK,EAAEf,cAAc,CAACC,OAAD;AAFvB,KAFK,EAMLU,SANK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAUE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACE,MAAM,CAACD,IAAR,EAAc;AAAEI,MAAAA,KAAK,EAAET;AAAT,KAAd,EAAgCK,IAAhC,CAAb;AAAoD,IAAA,MAAM,EAAC,kBAA3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGX,OADH,CAVF,CADF;AAgBD,CA3BM;;;;AA6BP,IAAMY,MAAM,GAAGI,wBAAWC,MAAX,CAAkB;AAC/BP,EAAAA,SAAS,EAAE;AACTQ,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,YAAY,EAAEvB,cAAc,GAAG,CAFtB;AAGTwB,IAAAA,MAAM,EAAExB,cAHC;AAITyB,IAAAA,cAAc,EAAE,QAJP;AAKTC,IAAAA,QAAQ,EAAE1B,cALD;AAMT2B,IAAAA,iBAAiB,EAAE1B;AANV,GADoB;AAS/Bc,EAAAA,IAAI,EAAE;AAAEa,IAAAA,QAAQ,EAAE,EAAZ;AAAgBC,IAAAA,UAAU,EAAE;AAA5B;AATyB,CAAlB,CAAf","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nexport type CooldownTimerProps = {\n seconds: number;\n};\n\nconst CONTAINER_SIZE = 24;\nconst CONTAINER_HORIZONTAL_PADDING = 6;\nconst EXTRA_CHARACTER_PADDING = CONTAINER_SIZE - CONTAINER_HORIZONTAL_PADDING * 2;\n\n/**\n * To avoid the container jumping between sizes when there are more\n * than one character in the width of the container since we aren't\n * using a monospaced font.\n */\nconst normalizeWidth = (seconds: number) =>\n CONTAINER_SIZE + EXTRA_CHARACTER_PADDING * (`${seconds}`.length - 1);\n\n/**\n * Renders an amount of seconds left for a cooldown to finish.\n *\n * See `useCountdown` for an example of how to set a countdown\n * to use as the source of `seconds`.\n **/\nexport const CooldownTimer = (props: CooldownTimerProps) => {\n const { seconds } = props;\n const {\n theme: {\n colors: { black, grey_gainsboro },\n messageInput: {\n cooldownTimer: { container, text },\n },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n styles.container,\n {\n backgroundColor: grey_gainsboro,\n width: normalizeWidth(seconds),\n },\n container,\n ]}\n >\n <Text style={[styles.text, { color: black }, text]} testID='cooldown-seconds'>\n {seconds}\n </Text>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: CONTAINER_SIZE / 2,\n height: CONTAINER_SIZE,\n justifyContent: 'center',\n minWidth: CONTAINER_SIZE,\n paddingHorizontal: CONTAINER_HORIZONTAL_PADDING,\n },\n text: { fontSize: 16, fontWeight: '600' },\n});\n"]}
|
|
@@ -101,7 +101,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
101
101
|
black = _useTheme$theme$color.black,
|
|
102
102
|
grey = _useTheme$theme$color.grey,
|
|
103
103
|
grey_whisper = _useTheme$theme$color.grey_whisper,
|
|
104
|
-
|
|
104
|
+
overlay = _useTheme$theme$color.overlay,
|
|
105
105
|
_useTheme$theme$messa = _useTheme$theme.messageInput.fileUploadPreview,
|
|
106
106
|
dismiss = _useTheme$theme$messa.dismiss,
|
|
107
107
|
fileContainer = _useTheme$theme$messa.fileContainer,
|
|
@@ -194,7 +194,7 @@ var FileUploadPreviewWithContext = function FileUploadPreviewWithContext(props)
|
|
|
194
194
|
removeFile(item.id);
|
|
195
195
|
},
|
|
196
196
|
style: [styles.dismiss, {
|
|
197
|
-
backgroundColor:
|
|
197
|
+
backgroundColor: overlay
|
|
198
198
|
}, dismiss],
|
|
199
199
|
testID: "remove-file-upload-preview",
|
|
200
200
|
__self: _this,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","padding","fileContentContainer","filenameText","fontSize","fontWeight","paddingLeft","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","FileUploadPreviewWithContext","props","FileAttachmentIcon","fileUploads","removeFile","uploadFile","flatListRef","flatListWidth","setFlatListWidth","theme","colors","black","grey","grey_whisper","overlay_dark","messageInput","fileUploadPreview","renderItem","index","item","indicatorType","state","FileState","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","newFile","UPLOADED","FINISHED","length","borderColor","file","type","color","name","size","id","backgroundColor","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","prevFileUploads","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } from '../../utils/utils';\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 FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 14,\n top: 4,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n padding: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingLeft: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n});\n\ntype FileUploadPreviewPropsWithContext<\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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'fileUploads' | 'removeFile' | 'uploadFile'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'FileAttachmentIcon'>;\n\nconst FileUploadPreviewWithContext = <\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { FileAttachmentIcon, fileUploads, removeFile, uploadFile } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n const {\n theme: {\n colors: { black, grey, grey_whisper, overlay_dark },\n messageInput: {\n fileUploadPreview: {\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileSizeText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType =\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined;\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.overlay}\n type={indicatorType}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <FileAttachmentIcon mimeType={item.file.type} />\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n filenameText,\n ]}\n >\n {item.file.name || ''}\n </Text>\n <Text style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {getFileSizeDisplayText(item.file.size)}\n </Text>\n </View>\n </View>\n </View>\n </UploadProgressIndicator>\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay_dark }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close />\n </TouchableOpacity>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => item.id}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : 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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) => prevFileUpload.state === nextFileUploads[index].state,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\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<FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\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: FileUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads, removeFile, uploadFile } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { FileAttachmentIcon } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedFileUploadPreview\n {...{ FileAttachmentIcon, fileUploads, removeFile, uploadFile }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["FileUploadPreview.tsx"],"names":["FILE_PREVIEW_HEIGHT","styles","StyleSheet","create","dismiss","borderRadius","height","position","right","top","width","fileContainer","borderWidth","flexDirection","justifyContent","marginBottom","padding","fileContentContainer","filenameText","fontSize","fontWeight","paddingLeft","fileSizeText","fileTextContainer","flatList","maxHeight","overlay","marginLeft","marginRight","FileUploadPreviewWithContext","props","FileAttachmentIcon","fileUploads","removeFile","uploadFile","flatListRef","flatListWidth","setFlatListWidth","theme","colors","black","grey","grey_whisper","messageInput","fileUploadPreview","renderItem","index","item","indicatorType","state","FileState","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","newFile","UPLOADED","FINISHED","length","borderColor","file","type","color","name","size","id","backgroundColor","fileUploadsLength","current","setTimeout","scrollToEnd","_","offset","nativeEvent","layout","areEqual","prevProps","nextProps","prevFileUploads","nextFileUploads","every","prevFileUpload","MemoizedFileUploadPreview","React","memo","FileUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { FlatList, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport { getFileSizeDisplayText } from '../Attachment/FileAttachment';\nimport {\n FileUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } from '../../utils/utils';\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 FILE_PREVIEW_HEIGHT = 60;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n height: 24,\n position: 'absolute',\n right: 14,\n top: 4,\n width: 24,\n },\n fileContainer: {\n borderRadius: 12,\n borderWidth: 1,\n flexDirection: 'row',\n height: FILE_PREVIEW_HEIGHT,\n justifyContent: 'space-between',\n marginBottom: 8,\n padding: 8,\n },\n fileContentContainer: { flexDirection: 'row' },\n filenameText: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingLeft: 10,\n },\n fileSizeText: {\n fontSize: 12,\n paddingLeft: 10,\n },\n fileTextContainer: {\n height: '100%',\n justifyContent: 'space-around',\n },\n flatList: { marginBottom: 12, maxHeight: FILE_PREVIEW_HEIGHT * 2.5 + 16 },\n overlay: {\n borderRadius: 12,\n marginLeft: 8,\n marginRight: 8,\n },\n});\n\ntype FileUploadPreviewPropsWithContext<\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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'fileUploads' | 'removeFile' | 'uploadFile'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'FileAttachmentIcon'>;\n\nconst FileUploadPreviewWithContext = <\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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { FileAttachmentIcon, fileUploads, removeFile, uploadFile } = props;\n\n const flatListRef = useRef<FlatList<FileUpload> | null>(null);\n const [flatListWidth, setFlatListWidth] = useState(0);\n\n const {\n theme: {\n colors: { black, grey, grey_whisper, overlay },\n messageInput: {\n fileUploadPreview: {\n dismiss,\n fileContainer,\n fileContentContainer,\n filenameText,\n fileSizeText,\n fileTextContainer,\n flatList,\n },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: FileUpload }) => {\n const indicatorType =\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined;\n\n return (\n <>\n <UploadProgressIndicator\n action={() => {\n uploadFile({ newFile: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.overlay}\n type={indicatorType}\n >\n <View\n style={[\n styles.fileContainer,\n index === fileUploads.length - 1\n ? {\n marginBottom: 0,\n }\n : {},\n {\n borderColor: grey_whisper,\n width: flatListWidth - 16,\n },\n fileContainer,\n ]}\n >\n <View style={[styles.fileContentContainer, fileContentContainer]}>\n <FileAttachmentIcon mimeType={item.file.type} />\n <View style={[styles.fileTextContainer, fileTextContainer]}>\n <Text\n numberOfLines={1}\n style={[\n styles.filenameText,\n {\n color: black,\n width:\n flatListWidth -\n 16 - // 16 = horizontal padding\n 40 - // 40 = file icon size\n 24 - // 24 = close icon size\n 24, // 24 = internal padding\n },\n filenameText,\n ]}\n >\n {item.file.name || ''}\n </Text>\n <Text style={[styles.fileSizeText, { color: grey }, fileSizeText]}>\n {getFileSizeDisplayText(item.file.size)}\n </Text>\n </View>\n </View>\n </View>\n </UploadProgressIndicator>\n <TouchableOpacity\n onPress={() => {\n removeFile(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay }, dismiss]}\n testID='remove-file-upload-preview'\n >\n <Close />\n </TouchableOpacity>\n </>\n );\n };\n\n const fileUploadsLength = fileUploads.length;\n\n useEffect(() => {\n if (fileUploadsLength && flatListRef.current) {\n setTimeout(() => flatListRef.current?.scrollToEnd(), 1);\n }\n }, [fileUploadsLength]);\n\n return fileUploadsLength ? (\n <FlatList\n data={fileUploads}\n getItemLayout={(_, index) => ({\n index,\n length: FILE_PREVIEW_HEIGHT + 8,\n offset: (FILE_PREVIEW_HEIGHT + 8) * index,\n })}\n keyExtractor={(item) => item.id}\n onLayout={({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setFlatListWidth(width);\n }}\n ref={flatListRef}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : 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: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads: prevFileUploads } = prevProps;\n const { fileUploads: nextFileUploads } = nextProps;\n\n return (\n prevFileUploads.length === nextFileUploads.length &&\n prevFileUploads.every(\n (prevFileUpload, index) => prevFileUpload.state === nextFileUploads[index].state,\n )\n );\n};\n\nconst MemoizedFileUploadPreview = React.memo(\n FileUploadPreviewWithContext,\n areEqual,\n) as typeof FileUploadPreviewWithContext;\n\nexport type FileUploadPreviewProps<\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<FileUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * FileUploadPreview\n * UI Component to preview the files set for upload\n */\nexport const FileUploadPreview = <\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: FileUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { fileUploads, removeFile, uploadFile } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { FileAttachmentIcon } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedFileUploadPreview\n {...{ FileAttachmentIcon, fileUploads, removeFile, uploadFile }}\n {...props}\n />\n );\n};\n\nFileUploadPreview.displayName = 'FileUploadPreview{messageInput{fileUploadPreview}}';\n"]}
|
|
@@ -56,7 +56,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
56
56
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
57
57
|
_useTheme$theme = _useTheme.theme,
|
|
58
58
|
_useTheme$theme$color = _useTheme$theme.colors,
|
|
59
|
-
|
|
59
|
+
overlay = _useTheme$theme$color.overlay,
|
|
60
60
|
white = _useTheme$theme$color.white,
|
|
61
61
|
_useTheme$theme$messa = _useTheme$theme.messageInput.imageUploadPreview,
|
|
62
62
|
dismiss = _useTheme$theme$messa.dismiss,
|
|
@@ -109,7 +109,7 @@ var ImageUploadPreviewWithContext = function ImageUploadPreviewWithContext(props
|
|
|
109
109
|
removeImage(item.id);
|
|
110
110
|
},
|
|
111
111
|
style: [styles.dismiss, {
|
|
112
|
-
backgroundColor:
|
|
112
|
+
backgroundColor: overlay
|
|
113
113
|
}, dismiss],
|
|
114
114
|
testID: "remove-image-upload-preview",
|
|
115
115
|
__self: _this,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ImageUploadPreview.tsx"],"names":["IMAGE_PREVIEW_SIZE","styles","StyleSheet","create","dismiss","borderRadius","position","right","top","flatList","paddingBottom","itemContainer","flexDirection","height","marginLeft","upload","width","ImageUploadPreviewWithContext","props","imageUploads","removeImage","uploadImage","theme","colors","overlay_dark","white","messageInput","imageUploadPreview","renderItem","index","item","length","marginRight","newImage","state","FileState","UPLOADED","FINISHED","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","uri","file","url","id","backgroundColor","_","offset","areEqual","prevProps","nextProps","prevImageUploads","nextImageUploads","every","prevImageUpload","MemoizedImageUploadPreviewWithContext","React","memo","ImageUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FlatList, Image, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport {\n ImageUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } from '../../utils/utils';\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 IMAGE_PREVIEW_SIZE = 100;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n },\n flatList: { paddingBottom: 12 },\n itemContainer: {\n flexDirection: 'row',\n height: IMAGE_PREVIEW_SIZE,\n marginLeft: 8,\n },\n upload: {\n borderRadius: 10,\n height: IMAGE_PREVIEW_SIZE,\n width: IMAGE_PREVIEW_SIZE,\n },\n});\n\ntype ImageUploadPreviewPropsWithContext<\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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'imageUploads' | 'removeImage' | 'uploadImage'\n>;\n\nexport type ImageUploadPreviewProps<\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<ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst ImageUploadPreviewWithContext = <\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: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads, removeImage, uploadImage } = props;\n\n const {\n theme: {\n colors: { overlay_dark, white },\n messageInput: {\n imageUploadPreview: { dismiss, flatList, itemContainer, upload },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: ImageUpload }) => (\n <View\n style={[\n styles.itemContainer,\n index === imageUploads.length - 1 ? { marginRight: 8 } : {},\n itemContainer,\n ]}\n >\n <UploadProgressIndicator\n action={() => {\n uploadImage({ newImage: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.upload}\n type={\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined\n }\n >\n <Image\n resizeMode='cover'\n source={{ uri: item.file.uri || item.url }}\n style={[styles.upload, upload]}\n />\n </UploadProgressIndicator>\n <TouchableOpacity\n onPress={() => {\n removeImage(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay_dark }, dismiss]}\n testID='remove-image-upload-preview'\n >\n <Close pathFill={white} />\n </TouchableOpacity>\n </View>\n );\n\n return imageUploads.length > 0 ? (\n <FlatList\n data={imageUploads}\n getItemLayout={(_, index) => ({\n index,\n length: IMAGE_PREVIEW_SIZE + 8,\n offset: (IMAGE_PREVIEW_SIZE + 8) * index,\n })}\n horizontal\n keyExtractor={(item) => item.id}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : 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: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads: prevImageUploads } = prevProps;\n const { imageUploads: nextImageUploads } = nextProps;\n\n return (\n prevImageUploads.length === nextImageUploads.length &&\n prevImageUploads.every(\n (prevImageUpload, index) => prevImageUpload.state === nextImageUploads[index].state,\n )\n );\n};\n\nconst MemoizedImageUploadPreviewWithContext = React.memo(\n ImageUploadPreviewWithContext,\n areEqual,\n) as typeof ImageUploadPreviewWithContext;\n\n/**\n * UI Component to preview the images set for upload\n */\nexport const ImageUploadPreview = <\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: ImageUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads, removeImage, uploadImage } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedImageUploadPreviewWithContext\n {...{ imageUploads, removeImage, uploadImage }}\n {...props}\n />\n );\n};\n\nImageUploadPreview.displayName = 'ImageUploadPreview{messageInput{imageUploadPreview}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["ImageUploadPreview.tsx"],"names":["IMAGE_PREVIEW_SIZE","styles","StyleSheet","create","dismiss","borderRadius","position","right","top","flatList","paddingBottom","itemContainer","flexDirection","height","marginLeft","upload","width","ImageUploadPreviewWithContext","props","imageUploads","removeImage","uploadImage","theme","colors","overlay","white","messageInput","imageUploadPreview","renderItem","index","item","length","marginRight","newImage","state","FileState","UPLOADED","FINISHED","UPLOADING","ProgressIndicatorTypes","IN_PROGRESS","UPLOAD_FAILED","RETRY","undefined","uri","file","url","id","backgroundColor","_","offset","areEqual","prevProps","nextProps","prevImageUploads","nextImageUploads","every","prevImageUpload","MemoizedImageUploadPreviewWithContext","React","memo","ImageUploadPreview","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FlatList, Image, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { UploadProgressIndicator } from './UploadProgressIndicator';\n\nimport {\n ImageUpload,\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Close } from '../../icons/Close';\nimport { FileState, ProgressIndicatorTypes } from '../../utils/utils';\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 IMAGE_PREVIEW_SIZE = 100;\n\nconst styles = StyleSheet.create({\n dismiss: {\n borderRadius: 24,\n position: 'absolute',\n right: 8,\n top: 8,\n },\n flatList: { paddingBottom: 12 },\n itemContainer: {\n flexDirection: 'row',\n height: IMAGE_PREVIEW_SIZE,\n marginLeft: 8,\n },\n upload: {\n borderRadius: 10,\n height: IMAGE_PREVIEW_SIZE,\n width: IMAGE_PREVIEW_SIZE,\n },\n});\n\ntype ImageUploadPreviewPropsWithContext<\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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'imageUploads' | 'removeImage' | 'uploadImage'\n>;\n\nexport type ImageUploadPreviewProps<\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<ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\nconst ImageUploadPreviewWithContext = <\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: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads, removeImage, uploadImage } = props;\n\n const {\n theme: {\n colors: { overlay, white },\n messageInput: {\n imageUploadPreview: { dismiss, flatList, itemContainer, upload },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: ImageUpload }) => (\n <View\n style={[\n styles.itemContainer,\n index === imageUploads.length - 1 ? { marginRight: 8 } : {},\n itemContainer,\n ]}\n >\n <UploadProgressIndicator\n action={() => {\n uploadImage({ newImage: item });\n }}\n active={item.state !== FileState.UPLOADED && item.state !== FileState.FINISHED}\n style={styles.upload}\n type={\n item.state === FileState.UPLOADING\n ? ProgressIndicatorTypes.IN_PROGRESS\n : item.state === FileState.UPLOAD_FAILED\n ? ProgressIndicatorTypes.RETRY\n : undefined\n }\n >\n <Image\n resizeMode='cover'\n source={{ uri: item.file.uri || item.url }}\n style={[styles.upload, upload]}\n />\n </UploadProgressIndicator>\n <TouchableOpacity\n onPress={() => {\n removeImage(item.id);\n }}\n style={[styles.dismiss, { backgroundColor: overlay }, dismiss]}\n testID='remove-image-upload-preview'\n >\n <Close pathFill={white} />\n </TouchableOpacity>\n </View>\n );\n\n return imageUploads.length > 0 ? (\n <FlatList\n data={imageUploads}\n getItemLayout={(_, index) => ({\n index,\n length: IMAGE_PREVIEW_SIZE + 8,\n offset: (IMAGE_PREVIEW_SIZE + 8) * index,\n })}\n horizontal\n keyExtractor={(item) => item.id}\n renderItem={renderItem}\n style={[styles.flatList, flatList]}\n />\n ) : 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: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: ImageUploadPreviewPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads: prevImageUploads } = prevProps;\n const { imageUploads: nextImageUploads } = nextProps;\n\n return (\n prevImageUploads.length === nextImageUploads.length &&\n prevImageUploads.every(\n (prevImageUpload, index) => prevImageUpload.state === nextImageUploads[index].state,\n )\n );\n};\n\nconst MemoizedImageUploadPreviewWithContext = React.memo(\n ImageUploadPreviewWithContext,\n areEqual,\n) as typeof ImageUploadPreviewWithContext;\n\n/**\n * UI Component to preview the images set for upload\n */\nexport const ImageUploadPreview = <\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: ImageUploadPreviewProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { imageUploads, removeImage, uploadImage } =\n useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedImageUploadPreviewWithContext\n {...{ imageUploads, removeImage, uploadImage }}\n {...props}\n />\n );\n};\n\nImageUploadPreview.displayName = 'ImageUploadPreview{messageInput{imageUploadPreview}}';\n"]}
|
|
@@ -11,6 +11,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _reactNative = require("react-native");
|
|
13
13
|
|
|
14
|
+
var _OwnCapabilitiesContext = require("../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext");
|
|
15
|
+
|
|
14
16
|
var _MessageInputContext = require("../../contexts/messageInputContext/MessageInputContext");
|
|
15
17
|
|
|
16
18
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
@@ -36,14 +38,15 @@ var InputButtonsWithContext = function InputButtonsWithContext(props) {
|
|
|
36
38
|
setShowMoreOptions = props.setShowMoreOptions,
|
|
37
39
|
showMoreOptions = props.showMoreOptions,
|
|
38
40
|
text = props.text,
|
|
39
|
-
toggleAttachmentPicker = props.toggleAttachmentPicker
|
|
40
|
-
uploadsEnabled = props.uploadsEnabled;
|
|
41
|
+
toggleAttachmentPicker = props.toggleAttachmentPicker;
|
|
41
42
|
|
|
42
43
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
43
44
|
_useTheme$theme$messa = _useTheme.theme.messageInput,
|
|
44
45
|
attachButtonContainer = _useTheme$theme$messa.attachButtonContainer,
|
|
45
46
|
commandsButtonContainer = _useTheme$theme$messa.commandsButtonContainer;
|
|
46
47
|
|
|
48
|
+
var ownCapabilities = (0, _OwnCapabilitiesContext.useOwnCapabilitiesContext)();
|
|
49
|
+
|
|
47
50
|
if (giphyActive) {
|
|
48
51
|
return null;
|
|
49
52
|
}
|
|
@@ -55,15 +58,15 @@ var InputButtonsWithContext = function InputButtonsWithContext(props) {
|
|
|
55
58
|
__self: _this,
|
|
56
59
|
__source: {
|
|
57
60
|
fileName: _jsxFileName,
|
|
58
|
-
lineNumber:
|
|
61
|
+
lineNumber: 100,
|
|
59
62
|
columnNumber: 5
|
|
60
63
|
}
|
|
61
|
-
}) : _react["default"].createElement(_react["default"].Fragment, null, (hasImagePicker || hasFilePicker) &&
|
|
64
|
+
}) : _react["default"].createElement(_react["default"].Fragment, null, (hasImagePicker || hasFilePicker) && ownCapabilities.uploadFile && _react["default"].createElement(_reactNative.View, {
|
|
62
65
|
style: [hasCommands ? styles.attachButtonContainer : undefined, attachButtonContainer],
|
|
63
66
|
__self: _this,
|
|
64
67
|
__source: {
|
|
65
68
|
fileName: _jsxFileName,
|
|
66
|
-
lineNumber:
|
|
69
|
+
lineNumber: 104,
|
|
67
70
|
columnNumber: 9
|
|
68
71
|
}
|
|
69
72
|
}, _react["default"].createElement(AttachButton, {
|
|
@@ -71,7 +74,7 @@ var InputButtonsWithContext = function InputButtonsWithContext(props) {
|
|
|
71
74
|
__self: _this,
|
|
72
75
|
__source: {
|
|
73
76
|
fileName: _jsxFileName,
|
|
74
|
-
lineNumber:
|
|
77
|
+
lineNumber: 107,
|
|
75
78
|
columnNumber: 11
|
|
76
79
|
}
|
|
77
80
|
})), hasCommands && !text && _react["default"].createElement(_reactNative.View, {
|
|
@@ -79,7 +82,7 @@ var InputButtonsWithContext = function InputButtonsWithContext(props) {
|
|
|
79
82
|
__self: _this,
|
|
80
83
|
__source: {
|
|
81
84
|
fileName: _jsxFileName,
|
|
82
|
-
lineNumber:
|
|
85
|
+
lineNumber: 111,
|
|
83
86
|
columnNumber: 9
|
|
84
87
|
}
|
|
85
88
|
}, _react["default"].createElement(CommandsButton, {
|
|
@@ -87,7 +90,7 @@ var InputButtonsWithContext = function InputButtonsWithContext(props) {
|
|
|
87
90
|
__self: _this,
|
|
88
91
|
__source: {
|
|
89
92
|
fileName: _jsxFileName,
|
|
90
|
-
lineNumber:
|
|
93
|
+
lineNumber: 112,
|
|
91
94
|
columnNumber: 11
|
|
92
95
|
}
|
|
93
96
|
})));
|
|
@@ -102,16 +105,14 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
102
105
|
prevHasImagePicker = prevProps.hasImagePicker,
|
|
103
106
|
prevSelectedPicker = prevProps.selectedPicker,
|
|
104
107
|
prevShowMoreOptions = prevProps.showMoreOptions,
|
|
105
|
-
prevText = prevProps.text
|
|
106
|
-
prevUploadsEnabled = prevProps.uploadsEnabled;
|
|
108
|
+
prevText = prevProps.text;
|
|
107
109
|
var nextGiphyActive = nextProps.giphyActive,
|
|
108
110
|
nextHasCommands = nextProps.hasCommands,
|
|
109
111
|
nextHasFilePicker = nextProps.hasFilePicker,
|
|
110
112
|
nextHasImagePicker = nextProps.hasImagePicker,
|
|
111
113
|
nextSelectedPicker = nextProps.selectedPicker,
|
|
112
114
|
nextShowMoreOptions = nextProps.showMoreOptions,
|
|
113
|
-
nextText = nextProps.text
|
|
114
|
-
nextUploadsEnabled = nextProps.uploadsEnabled;
|
|
115
|
+
nextText = nextProps.text;
|
|
115
116
|
|
|
116
117
|
if (prevHasImagePicker !== nextHasImagePicker) {
|
|
117
118
|
return false;
|
|
@@ -125,10 +126,6 @@ var areEqual = function areEqual(prevProps, nextProps) {
|
|
|
125
126
|
return false;
|
|
126
127
|
}
|
|
127
128
|
|
|
128
|
-
if (prevUploadsEnabled !== nextUploadsEnabled) {
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
129
|
if (prevSelectedPicker !== nextSelectedPicker) {
|
|
133
130
|
return false;
|
|
134
131
|
}
|
|
@@ -164,8 +161,7 @@ var InputButtons = function InputButtons(props) {
|
|
|
164
161
|
setShowMoreOptions = _useMessageInputConte.setShowMoreOptions,
|
|
165
162
|
showMoreOptions = _useMessageInputConte.showMoreOptions,
|
|
166
163
|
text = _useMessageInputConte.text,
|
|
167
|
-
toggleAttachmentPicker = _useMessageInputConte.toggleAttachmentPicker
|
|
168
|
-
uploadsEnabled = _useMessageInputConte.uploadsEnabled;
|
|
164
|
+
toggleAttachmentPicker = _useMessageInputConte.toggleAttachmentPicker;
|
|
169
165
|
|
|
170
166
|
return _react["default"].createElement(MemoizedInputButtonsWithContext, (0, _extends2["default"])({
|
|
171
167
|
AttachButton: AttachButton,
|
|
@@ -180,13 +176,12 @@ var InputButtons = function InputButtons(props) {
|
|
|
180
176
|
setShowMoreOptions: setShowMoreOptions,
|
|
181
177
|
showMoreOptions: showMoreOptions,
|
|
182
178
|
text: text,
|
|
183
|
-
toggleAttachmentPicker: toggleAttachmentPicker
|
|
184
|
-
uploadsEnabled: uploadsEnabled
|
|
179
|
+
toggleAttachmentPicker: toggleAttachmentPicker
|
|
185
180
|
}, props, {
|
|
186
181
|
__self: _this,
|
|
187
182
|
__source: {
|
|
188
183
|
fileName: _jsxFileName,
|
|
189
|
-
lineNumber:
|
|
184
|
+
lineNumber: 214,
|
|
190
185
|
columnNumber: 5
|
|
191
186
|
}
|
|
192
187
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["InputButtons.tsx"],"names":["styles","StyleSheet","create","attachButtonContainer","paddingRight","InputButtonsWithContext","props","AttachButton","CommandsButton","giphyActive","hasCommands","hasFilePicker","hasImagePicker","MoreOptionsButton","openCommandsPicker","setShowMoreOptions","showMoreOptions","text","toggleAttachmentPicker","uploadsEnabled","theme","messageInput","commandsButtonContainer","undefined","areEqual","prevProps","nextProps","prevGiphyActive","prevHasCommands","prevHasFilePicker","prevHasImagePicker","prevSelectedPicker","selectedPicker","prevShowMoreOptions","prevText","prevUploadsEnabled","nextGiphyActive","nextHasCommands","nextHasFilePicker","nextHasImagePicker","nextSelectedPicker","nextShowMoreOptions","nextText","nextUploadsEnabled","MemoizedInputButtonsWithContext","React","memo","InputButtons"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\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 attachButtonContainer: { paddingRight: 10 },\n});\n\nexport type InputButtonsProps<\n At extends DefaultAttachmentType = 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<InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport type InputButtonsWithContextProps<\n At extends DefaultAttachmentType = 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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'AttachButton'\n | 'CommandsButton'\n | 'giphyActive'\n | 'hasCommands'\n | 'hasFilePicker'\n | 'hasImagePicker'\n | 'MoreOptionsButton'\n | 'openCommandsPicker'\n | 'selectedPicker'\n | 'setShowMoreOptions'\n | 'showMoreOptions'\n | 'text'\n | 'toggleAttachmentPicker'\n | 'uploadsEnabled'\n>;\n\nexport const InputButtonsWithContext = <\n At extends DefaultAttachmentType = 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: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n uploadsEnabled,\n } = props;\n\n const {\n theme: {\n messageInput: { attachButtonContainer, commandsButtonContainer },\n },\n } = useTheme();\n\n if (giphyActive) {\n return null;\n }\n\n return !showMoreOptions && (hasImagePicker || hasFilePicker) && hasCommands ? (\n <MoreOptionsButton handleOnPress={() => setShowMoreOptions(true)} />\n ) : (\n <>\n {(hasImagePicker || hasFilePicker) && uploadsEnabled !== false && (\n <View\n style={[hasCommands ? styles.attachButtonContainer : undefined, attachButtonContainer]}\n >\n <AttachButton handleOnPress={toggleAttachmentPicker} />\n </View>\n )}\n {hasCommands && !text && (\n <View style={commandsButtonContainer}>\n <CommandsButton handleOnPress={openCommandsPicker} />\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: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n giphyActive: prevGiphyActive,\n hasCommands: prevHasCommands,\n hasFilePicker: prevHasFilePicker,\n hasImagePicker: prevHasImagePicker,\n selectedPicker: prevSelectedPicker,\n showMoreOptions: prevShowMoreOptions,\n text: prevText,\n uploadsEnabled: prevUploadsEnabled,\n } = prevProps;\n\n const {\n giphyActive: nextGiphyActive,\n hasCommands: nextHasCommands,\n hasFilePicker: nextHasFilePicker,\n hasImagePicker: nextHasImagePicker,\n selectedPicker: nextSelectedPicker,\n showMoreOptions: nextShowMoreOptions,\n text: nextText,\n uploadsEnabled: nextUploadsEnabled,\n } = nextProps;\n\n if (prevHasImagePicker !== nextHasImagePicker) {\n return false;\n }\n\n if (prevHasFilePicker !== nextHasFilePicker) {\n return false;\n }\n\n if (prevHasCommands !== nextHasCommands) {\n return false;\n }\n\n if (prevUploadsEnabled !== nextUploadsEnabled) {\n return false;\n }\n if (prevSelectedPicker !== nextSelectedPicker) {\n return false;\n }\n\n if (prevShowMoreOptions !== nextShowMoreOptions) {\n return false;\n }\n\n if ((!prevProps.text && nextText) || (prevText && !nextText)) {\n return false;\n }\n\n if (prevGiphyActive !== nextGiphyActive) {\n return false;\n }\n\n return true;\n};\n\nconst MemoizedInputButtonsWithContext = React.memo(\n InputButtonsWithContext,\n areEqual,\n) as typeof InputButtonsWithContext;\n\nexport const InputButtons = <\n At extends DefaultAttachmentType = 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: InputButtonsProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n selectedPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n uploadsEnabled,\n } = useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedInputButtonsWithContext\n {...{\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n selectedPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n uploadsEnabled,\n }}\n {...props}\n />\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["InputButtons.tsx"],"names":["styles","StyleSheet","create","attachButtonContainer","paddingRight","InputButtonsWithContext","props","AttachButton","CommandsButton","giphyActive","hasCommands","hasFilePicker","hasImagePicker","MoreOptionsButton","openCommandsPicker","setShowMoreOptions","showMoreOptions","text","toggleAttachmentPicker","theme","messageInput","commandsButtonContainer","ownCapabilities","uploadFile","undefined","areEqual","prevProps","nextProps","prevGiphyActive","prevHasCommands","prevHasFilePicker","prevHasImagePicker","prevSelectedPicker","selectedPicker","prevShowMoreOptions","prevText","nextGiphyActive","nextHasCommands","nextHasFilePicker","nextHasImagePicker","nextSelectedPicker","nextShowMoreOptions","nextText","MemoizedInputButtonsWithContext","React","memo","InputButtons"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport { useOwnCapabilitiesContext } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\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 attachButtonContainer: { paddingRight: 10 },\n});\n\nexport type InputButtonsProps<\n At extends DefaultAttachmentType = 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<InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>>;\n\nexport type InputButtonsWithContextProps<\n At extends DefaultAttachmentType = 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 MessageInputContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'AttachButton'\n | 'CommandsButton'\n | 'giphyActive'\n | 'hasCommands'\n | 'hasFilePicker'\n | 'hasImagePicker'\n | 'MoreOptionsButton'\n | 'openCommandsPicker'\n | 'selectedPicker'\n | 'setShowMoreOptions'\n | 'showMoreOptions'\n | 'text'\n | 'toggleAttachmentPicker'\n>;\n\nexport const InputButtonsWithContext = <\n At extends DefaultAttachmentType = 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: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n } = props;\n\n const {\n theme: {\n messageInput: { attachButtonContainer, commandsButtonContainer },\n },\n } = useTheme();\n\n const ownCapabilities = useOwnCapabilitiesContext();\n\n if (giphyActive) {\n return null;\n }\n\n return !showMoreOptions && (hasImagePicker || hasFilePicker) && hasCommands ? (\n <MoreOptionsButton handleOnPress={() => setShowMoreOptions(true)} />\n ) : (\n <>\n {(hasImagePicker || hasFilePicker) && ownCapabilities.uploadFile && (\n <View\n style={[hasCommands ? styles.attachButtonContainer : undefined, attachButtonContainer]}\n >\n <AttachButton handleOnPress={toggleAttachmentPicker} />\n </View>\n )}\n {hasCommands && !text && (\n <View style={commandsButtonContainer}>\n <CommandsButton handleOnPress={openCommandsPicker} />\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: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: InputButtonsWithContextProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n giphyActive: prevGiphyActive,\n hasCommands: prevHasCommands,\n hasFilePicker: prevHasFilePicker,\n hasImagePicker: prevHasImagePicker,\n selectedPicker: prevSelectedPicker,\n showMoreOptions: prevShowMoreOptions,\n text: prevText,\n } = prevProps;\n\n const {\n giphyActive: nextGiphyActive,\n hasCommands: nextHasCommands,\n hasFilePicker: nextHasFilePicker,\n hasImagePicker: nextHasImagePicker,\n selectedPicker: nextSelectedPicker,\n showMoreOptions: nextShowMoreOptions,\n text: nextText,\n } = nextProps;\n\n if (prevHasImagePicker !== nextHasImagePicker) {\n return false;\n }\n\n if (prevHasFilePicker !== nextHasFilePicker) {\n return false;\n }\n\n if (prevHasCommands !== nextHasCommands) {\n return false;\n }\n\n if (prevSelectedPicker !== nextSelectedPicker) {\n return false;\n }\n\n if (prevShowMoreOptions !== nextShowMoreOptions) {\n return false;\n }\n\n if ((!prevProps.text && nextText) || (prevText && !nextText)) {\n return false;\n }\n\n if (prevGiphyActive !== nextGiphyActive) {\n return false;\n }\n\n return true;\n};\n\nconst MemoizedInputButtonsWithContext = React.memo(\n InputButtonsWithContext,\n areEqual,\n) as typeof InputButtonsWithContext;\n\nexport const InputButtons = <\n At extends DefaultAttachmentType = 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: InputButtonsProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n selectedPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n } = useMessageInputContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedInputButtonsWithContext\n {...{\n AttachButton,\n CommandsButton,\n giphyActive,\n hasCommands,\n hasFilePicker,\n hasImagePicker,\n MoreOptionsButton,\n openCommandsPicker,\n selectedPicker,\n setShowMoreOptions,\n showMoreOptions,\n text,\n toggleAttachmentPicker,\n }}\n {...props}\n />\n );\n};\n"]}
|