stream-chat-react 9.4.0 → 10.0.0-theming-v2.2
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/dist/browser.full-bundle.js +16760 -13355
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +20 -5
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/Attachment.d.ts +1 -0
- package/dist/components/Attachment/Attachment.d.ts.map +1 -1
- package/dist/components/Attachment/Attachment.js +80 -35
- package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentActions.js +2 -6
- package/dist/components/Attachment/AttachmentContainer.d.ts +12 -0
- package/dist/components/Attachment/AttachmentContainer.d.ts.map +1 -0
- package/dist/components/Attachment/AttachmentContainer.js +107 -0
- package/dist/components/Attachment/Audio.d.ts +11 -0
- package/dist/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/components/Attachment/Audio.js +59 -32
- package/dist/components/Attachment/Card.d.ts +5 -20
- package/dist/components/Attachment/Card.d.ts.map +1 -1
- package/dist/components/Attachment/Card.js +93 -15
- package/dist/components/Attachment/DownloadButton.d.ts +6 -0
- package/dist/components/Attachment/DownloadButton.d.ts.map +1 -0
- package/dist/components/Attachment/DownloadButton.js +8 -0
- package/dist/components/Attachment/FileAttachment.d.ts +1 -1
- package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/components/Attachment/FileAttachment.js +23 -6
- package/dist/components/Attachment/FileSizeIndicator.d.ts +6 -0
- package/dist/components/Attachment/FileSizeIndicator.d.ts.map +1 -0
- package/dist/components/Attachment/FileSizeIndicator.js +8 -0
- package/dist/components/Attachment/hooks/useAudioController.d.ts +9 -0
- package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -0
- package/dist/components/Attachment/hooks/useAudioController.js +45 -0
- package/dist/components/Attachment/icons.d.ts +5 -0
- package/dist/components/Attachment/icons.d.ts.map +1 -0
- package/dist/components/Attachment/icons.js +10 -0
- package/dist/components/Attachment/index.d.ts +1 -0
- package/dist/components/Attachment/index.d.ts.map +1 -1
- package/dist/components/Attachment/index.js +1 -0
- package/dist/components/Attachment/utils.d.ts +41 -4
- package/dist/components/Attachment/utils.d.ts.map +1 -1
- package/dist/components/Attachment/utils.js +63 -18
- package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Item.js +11 -4
- package/dist/components/AutoCompleteTextarea/List.d.ts +17 -1
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.js +19 -17
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +16 -2
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.js +19 -16
- package/dist/components/AutoCompleteTextarea/utils.js +1 -1
- package/dist/components/Avatar/Avatar.js +10 -10
- package/dist/components/Channel/Channel.d.ts +7 -2
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +78 -69
- package/dist/components/Channel/LoadingChannel.d.ts +2 -0
- package/dist/components/Channel/LoadingChannel.d.ts.map +1 -0
- package/dist/components/Channel/LoadingChannel.js +20 -0
- package/dist/components/Channel/channelState.d.ts +1 -0
- package/dist/components/Channel/channelState.d.ts.map +1 -1
- package/dist/components/Channel/channelState.js +14 -9
- package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +9 -0
- package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts.map +1 -0
- package/dist/components/Channel/hooks/useChannelContainerClasses.js +14 -0
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +6 -6
- package/dist/components/Channel/utils.d.ts +3 -0
- package/dist/components/Channel/utils.d.ts.map +1 -1
- package/dist/components/Channel/utils.js +9 -5
- package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.js +14 -9
- package/dist/components/ChannelList/ChannelList.d.ts +10 -4
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +32 -14
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +10 -6
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +10 -6
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -1
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +9 -5
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -1
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +9 -5
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +9 -5
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +1 -1
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useMessageNewListener.js +9 -5
- package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts +1 -1
- package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +9 -5
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +9 -5
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +9 -5
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +9 -5
- package/dist/components/ChannelList/utils.js +9 -5
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +6 -0
- package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +5 -21
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +13 -9
- package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +14 -0
- package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts.map +1 -0
- package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js +29 -0
- package/dist/components/ChannelPreview/utils.js +2 -2
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +6 -42
- package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.js +4 -160
- package/dist/components/ChannelSearch/SearchBar.d.ts +29 -0
- package/dist/components/ChannelSearch/SearchBar.d.ts.map +1 -0
- package/dist/components/ChannelSearch/SearchBar.js +93 -0
- package/dist/components/ChannelSearch/SearchInput.d.ts +9 -17
- package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchInput.js +2 -4
- package/dist/components/ChannelSearch/SearchResults.d.ts +14 -8
- package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchResults.js +44 -27
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +50 -0
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -0
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +232 -0
- package/dist/components/ChannelSearch/icons.d.ts +6 -0
- package/dist/components/ChannelSearch/icons.d.ts.map +1 -0
- package/dist/components/ChannelSearch/icons.js +12 -0
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/Chat/Chat.js +4 -0
- package/dist/components/Chat/hooks/useChat.d.ts +1 -1
- package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/components/Chat/hooks/useCreateChatContext.js +3 -2
- package/dist/components/Chat/hooks/useCustomStyles.d.ts +1 -1
- package/dist/components/Chat/hooks/useCustomStyles.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +1 -1
- package/dist/components/DateSeparator/DateSeparator.js +1 -1
- package/dist/components/EmoticonItem/EmoticonItem.js +1 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +1 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +16 -3
- package/dist/components/EmptyStateIndicator/icons.d.ts +2 -0
- package/dist/components/EmptyStateIndicator/icons.d.ts.map +1 -0
- package/dist/components/EmptyStateIndicator/icons.js +3 -0
- package/dist/components/EventComponent/EventComponent.js +1 -1
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.js +16 -14
- package/dist/components/Gallery/Image.d.ts +7 -3
- package/dist/components/Gallery/Image.d.ts.map +1 -1
- package/dist/components/Gallery/Image.js +21 -9
- package/dist/components/Gallery/ModalGallery.d.ts +10 -0
- package/dist/components/Gallery/ModalGallery.d.ts.map +1 -0
- package/dist/components/Gallery/ModalGallery.js +16 -0
- package/dist/components/Gallery/index.d.ts +1 -1
- package/dist/components/Gallery/index.js +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -0
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +4 -1
- package/dist/components/LoadMore/LoadMoreButton.js +2 -2
- package/dist/components/Loading/LoadingChannels.js +2 -2
- package/dist/components/Loading/LoadingIndicator.js +1 -1
- package/dist/components/MML/MML.js +1 -1
- package/dist/components/Message/FixedHeightMessage.js +3 -3
- package/dist/components/Message/MessageDeleted.js +2 -2
- package/dist/components/Message/MessageOptions.d.ts +1 -0
- package/dist/components/Message/MessageOptions.d.ts.map +1 -1
- package/dist/components/Message/MessageOptions.js +9 -16
- package/dist/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
- package/dist/components/Message/MessageRepliesCountButton.js +8 -5
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.js +41 -21
- package/dist/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/components/Message/MessageStatus.js +17 -8
- package/dist/components/Message/MessageText.d.ts +1 -1
- package/dist/components/Message/MessageText.d.ts.map +1 -1
- package/dist/components/Message/MessageText.js +10 -14
- package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/components/Message/QuotedMessage.js +8 -3
- package/dist/components/Message/hooks/index.d.ts +0 -2
- package/dist/components/Message/hooks/index.d.ts.map +1 -1
- package/dist/components/Message/hooks/index.js +0 -2
- package/dist/components/Message/hooks/useEditHandler.d.ts +1 -1
- package/dist/components/Message/hooks/useEditHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -3
- package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/components/Message/hooks/useReactionHandler.js +11 -7
- package/dist/components/Message/hooks/useUserRole.d.ts +1 -1
- package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/components/Message/icons.d.ts +6 -4
- package/dist/components/Message/icons.d.ts.map +1 -1
- package/dist/components/Message/icons.js +25 -10
- package/dist/components/Message/index.d.ts +0 -3
- package/dist/components/Message/index.d.ts.map +1 -1
- package/dist/components/Message/index.js +0 -3
- package/dist/components/Message/utils.js +10 -6
- package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActions.js +3 -3
- package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActionsBox.js +14 -7
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts +2 -0
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -0
- package/dist/components/MessageInput/AttachmentPreviewList.js +60 -0
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.js +11 -6
- package/dist/components/MessageInput/EmojiPicker.d.ts +1 -1
- package/dist/components/MessageInput/EmojiPicker.d.ts.map +1 -1
- package/dist/components/MessageInput/EmojiPicker.js +14 -17
- package/dist/components/MessageInput/MessageInput.d.ts +1 -1
- package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +84 -10
- package/dist/components/MessageInput/MessageInputSmall.d.ts +9 -0
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +10 -1
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +2 -1
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview.js +29 -22
- package/dist/components/MessageInput/UploadsPreview.d.ts +7 -0
- package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
- package/dist/components/MessageInput/UploadsPreview.js +17 -6
- package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useAttachments.js +8 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +6 -4
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +4 -4
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useEmojiTrigger.js +23 -19
- package/dist/components/MessageInput/hooks/useFileState.d.ts +7 -0
- package/dist/components/MessageInput/hooks/useFileState.d.ts.map +1 -0
- package/dist/components/MessageInput/hooks/useFileState.js +8 -0
- package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useImageUploads.js +17 -36
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +2 -6
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +10 -6
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +1 -1
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useUserTrigger.js +13 -9
- package/dist/components/MessageInput/hooks/utils.d.ts +1 -1
- package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.d.ts +12 -2
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +67 -7
- package/dist/components/MessageList/CustomNotification.js +1 -1
- package/dist/components/MessageList/MessageList.d.ts +3 -0
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +17 -14
- package/dist/components/MessageList/MessageListMainPanel.d.ts +3 -0
- package/dist/components/MessageList/MessageListMainPanel.d.ts.map +1 -0
- package/dist/components/MessageList/MessageListMainPanel.js +9 -0
- package/dist/components/MessageList/MessageListNotifications.d.ts +2 -0
- package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -1
- package/dist/components/MessageList/MessageListNotifications.js +2 -2
- package/dist/components/MessageList/MessageNotification.d.ts +9 -6
- package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
- package/dist/components/MessageList/MessageNotification.js +1 -1
- package/dist/components/MessageList/ScrollToBottomButton.d.ts +3 -0
- package/dist/components/MessageList/ScrollToBottomButton.d.ts.map +1 -0
- package/dist/components/MessageList/ScrollToBottomButton.js +53 -0
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +5 -0
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +41 -14
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListElements.js +4 -3
- package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMessageListScrollManager.js +3 -1
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts +2 -0
- package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useNewMessageNotification.js +8 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +1 -2
- package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useScrollLocationLogic.js +12 -30
- package/dist/components/MessageList/icons.d.ts +8 -0
- package/dist/components/MessageList/icons.d.ts.map +1 -0
- package/dist/components/MessageList/icons.js +11 -0
- package/dist/components/MessageList/index.d.ts +1 -0
- package/dist/components/MessageList/index.d.ts.map +1 -1
- package/dist/components/MessageList/index.js +1 -0
- package/dist/components/MessageList/utils.d.ts +4 -2
- package/dist/components/MessageList/utils.d.ts.map +1 -1
- package/dist/components/MessageList/utils.js +16 -3
- package/dist/components/Modal/Modal.d.ts +2 -2
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +18 -15
- package/dist/components/Modal/icons.d.ts +2 -0
- package/dist/components/Modal/icons.d.ts.map +1 -0
- package/dist/components/Modal/icons.js +5 -0
- package/dist/components/Reactions/ReactionSelector.d.ts +2 -0
- package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionSelector.js +18 -9
- package/dist/components/Reactions/ReactionsList.d.ts +3 -1
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.js +33 -47
- package/dist/components/Reactions/SimpleReactionsList.d.ts +3 -1
- package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/SimpleReactionsList.js +41 -58
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +21 -0
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -0
- package/dist/components/Reactions/hooks/useProcessReactions.js +51 -0
- package/dist/components/Thread/Thread.d.ts +2 -6
- package/dist/components/Thread/Thread.d.ts.map +1 -1
- package/dist/components/Thread/Thread.js +21 -89
- package/dist/components/Thread/ThreadHead.d.ts +4 -0
- package/dist/components/Thread/ThreadHead.d.ts.map +1 -0
- package/dist/components/Thread/ThreadHead.js +21 -0
- package/dist/components/Thread/ThreadHeader.d.ts +12 -0
- package/dist/components/Thread/ThreadHeader.d.ts.map +1 -0
- package/dist/components/Thread/ThreadHeader.js +21 -0
- package/dist/components/Thread/ThreadStart.d.ts +2 -0
- package/dist/components/Thread/ThreadStart.d.ts.map +1 -0
- package/dist/components/Thread/ThreadStart.js +10 -0
- package/dist/components/Thread/icons.d.ts +4 -0
- package/dist/components/Thread/icons.d.ts.map +1 -0
- package/dist/components/Thread/icons.js +9 -0
- package/dist/components/Thread/index.d.ts +2 -0
- package/dist/components/Thread/index.d.ts.map +1 -1
- package/dist/components/Thread/index.js +2 -0
- package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.js +52 -9
- package/dist/components/UserItem/UserItem.d.ts +1 -1
- package/dist/components/UserItem/UserItem.d.ts.map +1 -1
- package/dist/components/UserItem/UserItem.js +15 -8
- package/dist/components/Window/Window.js +1 -1
- package/dist/constants/limits.d.ts +4 -0
- package/dist/constants/limits.d.ts.map +1 -0
- package/dist/constants/limits.js +3 -0
- package/dist/context/ChannelActionContext.d.ts +1 -1
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelActionContext.js +1 -1
- package/dist/context/ChannelStateContext.d.ts +3 -2
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.js +1 -1
- package/dist/context/ChatContext.d.ts +5 -4
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ChatContext.js +2 -2
- package/dist/context/ComponentContext.d.ts +6 -2
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.js +1 -1
- package/dist/context/EmojiContext.d.ts +1 -1
- package/dist/context/EmojiContext.d.ts.map +1 -1
- package/dist/context/EmojiContext.js +1 -1
- package/dist/context/MessageContext.d.ts +1 -1
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageContext.js +1 -1
- package/dist/context/MessageInputContext.d.ts +1 -1
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.js +1 -1
- package/dist/context/TranslationContext.d.ts +2 -2
- package/dist/context/TranslationContext.d.ts.map +1 -1
- package/dist/context/TranslationContext.js +8 -4
- package/dist/context/TypingContext.d.ts +1 -1
- package/dist/context/TypingContext.d.ts.map +1 -1
- package/dist/context/TypingContext.js +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/index.css.map +1 -0
- package/dist/css/v2/index.css +1 -0
- package/dist/css/v2/index.css.map +1 -0
- package/dist/css/v2/index.layout.css +1 -0
- package/dist/css/v2/index.layout.css.map +1 -0
- package/dist/i18n/Streami18n.d.ts +8 -2
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/Streami18n.js +12 -12
- package/dist/i18n/de.json +8 -2
- package/dist/i18n/en.json +8 -2
- package/dist/i18n/es.json +9 -2
- package/dist/i18n/fr.json +9 -2
- package/dist/i18n/hi.json +8 -2
- package/dist/i18n/it.json +9 -2
- package/dist/i18n/ja.json +8 -2
- package/dist/i18n/ko.json +8 -2
- package/dist/i18n/nl.json +8 -2
- package/dist/i18n/pt.json +9 -2
- package/dist/i18n/ru.json +10 -2
- package/dist/i18n/tr.json +8 -2
- package/dist/index.cjs.js +9535 -4005
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Attachment.scss +52 -22
- package/dist/scss/Audio.scss +1 -1
- package/dist/scss/Avatar.scss +1 -1
- package/dist/scss/ChannelList.scss +5 -1
- package/dist/scss/ChannelPreview.scss +25 -0
- package/dist/scss/ChannelSearch.scss +5 -3
- package/dist/scss/Gallery.scss +0 -20
- package/dist/scss/ImageCarousel.scss +39 -0
- package/dist/scss/LoadingChannels.scss +1 -1
- package/dist/scss/Message.scss +84 -86
- package/dist/scss/MessageActions.scss +15 -0
- package/dist/scss/MessageCommerce.scss +57 -13
- package/dist/scss/MessageInputFlat.scss +21 -9
- package/dist/scss/MessageList.scss +35 -3
- package/dist/scss/MessageLivestream.scss +23 -10
- package/dist/scss/MessageNotification.scss +7 -1
- package/dist/scss/MessageTeam.scss +37 -10
- package/dist/scss/Modal.scss +2 -0
- package/dist/scss/ReactionList.scss +14 -0
- package/dist/scss/ReactionSelector.scss +6 -0
- package/dist/scss/SendButton.scss +6 -0
- package/dist/scss/SmallMessageInput.scss +0 -1
- package/dist/scss/Thread.scss +21 -2
- package/dist/scss/Tooltip.scss +6 -3
- package/dist/scss/TypingIndicator.scss +5 -0
- package/dist/scss/_base.scss +26 -0
- package/dist/scss/_variables.scss +2 -1
- package/dist/scss/index.scss +5 -4
- package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +392 -0
- package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +400 -0
- package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +118 -0
- package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +150 -0
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +62 -0
- package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +207 -0
- package/dist/scss/v2/Avatar/Avatar-layout.scss +13 -0
- package/dist/scss/v2/Avatar/Avatar-theme.scss +42 -0
- package/dist/scss/v2/Channel/Channel-layout.scss +139 -0
- package/dist/scss/v2/Channel/Channel-theme.scss +99 -0
- package/dist/scss/v2/ChannelHeader/ChannelHeader-layout.scss +23 -0
- package/dist/scss/v2/ChannelHeader/ChannelHeader-theme.scss +43 -0
- package/dist/scss/v2/ChannelList/ChannelList-layout.scss +41 -0
- package/dist/scss/v2/ChannelList/ChannelList-theme.scss +87 -0
- package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +82 -0
- package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +108 -0
- package/dist/scss/v2/ChannelSearch/ChannelSearch-layout.scss +71 -0
- package/dist/scss/v2/ChannelSearch/ChannelSearch-theme.scss +190 -0
- package/dist/scss/v2/EditMessageForm/EditMessageForm-layout.scss +53 -0
- package/dist/scss/v2/EditMessageForm/EditMessageForm-theme.scss +50 -0
- package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +41 -0
- package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +15 -0
- package/dist/scss/v2/LoadingIndicator/LoadingIndicator-layout.scss +39 -0
- package/dist/scss/v2/LoadingIndicator/LoadingIndicator-theme.scss +12 -0
- package/dist/scss/v2/Message/Message-layout.scss +373 -0
- package/dist/scss/v2/Message/Message-theme.scss +353 -0
- package/dist/scss/v2/MessageActionsBox/MessageActionsBox-layout.scss +48 -0
- package/dist/scss/v2/MessageActionsBox/MessageActionsBox-theme.scss +69 -0
- package/dist/scss/v2/MessageInput/MessageInput-layout.scss +186 -0
- package/dist/scss/v2/MessageInput/MessageInput-theme.scss +221 -0
- package/dist/scss/v2/MessageList/MessageList-layout.scss +61 -0
- package/dist/scss/v2/MessageList/MessageList-theme.scss +105 -0
- package/dist/scss/v2/MessageList/VirtualizedMessageList-layout.scss +44 -0
- package/dist/scss/v2/MessageList/VirtualizedMessageList-theme.scss +32 -0
- package/dist/scss/v2/MessageReactions/MessageReactions-layout.scss +64 -0
- package/dist/scss/v2/MessageReactions/MessageReactions-theme.scss +75 -0
- package/dist/scss/v2/MessageReactions/MessageReactionsSelector-layout.scss +52 -0
- package/dist/scss/v2/MessageReactions/MessageReactionsSelector-theme.scss +83 -0
- package/dist/scss/v2/Modal/Modal-layout.scss +40 -0
- package/dist/scss/v2/Modal/Modal-theme.scss +82 -0
- package/dist/scss/v2/Notification/MessageNotification-layout.scss +12 -0
- package/dist/scss/v2/Notification/MessageNotification-theme.scss +34 -0
- package/dist/scss/v2/Notification/Notification-layout.scss +3 -0
- package/dist/scss/v2/Notification/Notification-theme.scss +32 -0
- package/dist/scss/v2/Notification/NotificationList-layout.scss +11 -0
- package/dist/scss/v2/Notification/NotificationList-theme.scss +31 -0
- package/dist/scss/v2/Thread/Thread-layout.scss +47 -0
- package/dist/scss/v2/Thread/Thread-theme.scss +82 -0
- package/dist/scss/v2/Tooltip/Tooltip-layout.scss +30 -0
- package/dist/scss/v2/Tooltip/Tooltip-theme.scss +36 -0
- package/dist/scss/v2/TypingIndicator/TypingIndicator-layout.scss +27 -0
- package/dist/scss/v2/TypingIndicator/TypingIndicator-theme.scss +68 -0
- package/dist/scss/v2/_base.scss +29 -0
- package/dist/scss/v2/_global-layout-variables.scss +65 -0
- package/dist/scss/v2/_global-theme-variables.scss +166 -0
- package/dist/scss/v2/_palette-variables.scss +55 -0
- package/dist/scss/v2/_utils.scss +188 -0
- package/dist/scss/v2/common/CTAButton/CTAButton-layout.scss +4 -0
- package/dist/scss/v2/common/CTAButton/CTAButton-theme.scss +42 -0
- package/dist/scss/v2/common/CircleFAButton/CircleFAButton-layout.scss +14 -0
- package/dist/scss/v2/common/CircleFAButton/CircleFAButton-theme.scss +35 -0
- package/dist/scss/v2/index.layout.scss +31 -0
- package/dist/scss/v2/index.scss +36 -0
- package/dist/scss/{vendor → v2/vendor}/emoji-mart.scss +27 -8
- package/dist/stories/add-message.stories.d.ts +0 -1
- package/dist/stories/add-message.stories.d.ts.map +1 -1
- package/dist/stories/add-message.stories.js +0 -1
- package/dist/stories/edit-message.stories.d.ts +0 -1
- package/dist/stories/edit-message.stories.d.ts.map +1 -1
- package/dist/stories/edit-message.stories.js +0 -1
- package/dist/stories/hello.stories.d.ts +0 -1
- package/dist/stories/hello.stories.d.ts.map +1 -1
- package/dist/stories/hello.stories.js +0 -1
- package/dist/stories/jump-to-message.stories.d.ts +0 -1
- package/dist/stories/jump-to-message.stories.d.ts.map +1 -1
- package/dist/stories/jump-to-message.stories.js +0 -1
- package/dist/stories/mark-read.stories.d.ts +0 -1
- package/dist/stories/mark-read.stories.d.ts.map +1 -1
- package/dist/stories/mark-read.stories.js +0 -1
- package/dist/stories/message-status-readby-tooltip.stories.d.ts +0 -1
- package/dist/stories/message-status-readby-tooltip.stories.d.ts.map +1 -1
- package/dist/stories/message-status-readby-tooltip.stories.js +0 -1
- package/dist/stories/navigate-long-message-lists.stories.d.ts +0 -2
- package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -1
- package/dist/stories/navigate-long-message-lists.stories.js +1 -11
- package/dist/stories/toggle-message-actions.stories.d.ts +0 -1
- package/dist/stories/toggle-message-actions.stories.d.ts.map +1 -1
- package/dist/stories/toggle-message-actions.stories.js +0 -1
- package/dist/stories/utils.d.ts.map +1 -1
- package/dist/stories/utils.js +2 -1
- package/dist/types/types.d.ts +7 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -4
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +12 -7
- package/dist/components/Gallery/ModalWrapper.d.ts +0 -14
- package/dist/components/Gallery/ModalWrapper.d.ts.map +0 -1
- package/dist/components/Gallery/ModalWrapper.js +0 -8
- package/dist/components/Message/MessageCommerce.d.ts +0 -10
- package/dist/components/Message/MessageCommerce.d.ts.map +0 -1
- package/dist/components/Message/MessageCommerce.js +0 -64
- package/dist/components/Message/MessageLivestream.d.ts +0 -16
- package/dist/components/Message/MessageLivestream.d.ts.map +0 -1
- package/dist/components/Message/MessageLivestream.js +0 -164
- package/dist/components/Message/MessageTeam.d.ts +0 -11
- package/dist/components/Message/MessageTeam.d.ts.map +0 -1
- package/dist/components/Message/MessageTeam.js +0 -110
- package/dist/components/Message/hooks/useBreakpoint.d.ts +0 -6
- package/dist/components/Message/hooks/useBreakpoint.d.ts.map +0 -1
- package/dist/components/Message/hooks/useBreakpoint.js +0 -18
- package/dist/components/Message/hooks/useMobilePress.d.ts +0 -5
- package/dist/components/Message/hooks/useMobilePress.d.ts.map +0 -1
- package/dist/components/Message/hooks/useMobilePress.js +0 -33
- package/dist/scss/vendor/mml-react.scss +0 -1749
- package/dist/scss/vendor/react-file-utils.scss +0 -378
- package/dist/scss/vendor/react-image-gallery.scss +0 -224
|
@@ -8,6 +8,7 @@ import type { FileAttachmentProps } from './FileAttachment';
|
|
|
8
8
|
import type { GalleryProps, ImageProps } from '../Gallery';
|
|
9
9
|
import type { ActionHandlerReturnType } from '../Message/hooks/useActionHandler';
|
|
10
10
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
11
|
+
export declare const ATTACHMENT_GROUPS_ORDER: readonly ["card", "gallery", "image", "media", "audio", "file"];
|
|
11
12
|
export declare type AttachmentProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
12
13
|
/** The message attachments to render, see [attachment structure](https://getstream.io/chat/docs/javascript/message_format/?language=javascript) **/
|
|
13
14
|
attachments: StreamAttachment<StreamChatGenerics>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Attachment.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Attachment.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Attachment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoBlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AASnE,eAAO,MAAM,uBAAuB,iEAO1B,CAAC;AAEX,oBAAY,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,oJAAoJ;IACpJ,WAAW,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACpD,wJAAwJ;IACxJ,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,oOAAoO;IACpO,iBAAiB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpF,kNAAkN;IAClN,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5D,8MAA8M;IAC9M,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,wNAAwN;IACxN,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpE,8NAA8N;IAC9N,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChE,+MAA+M;IAC/M,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,gHAAgH;IAChH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,+IAiBtB,CAAC"}
|
|
@@ -20,46 +20,91 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
}
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
24
|
-
for (var i = 0,
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
24
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
25
|
+
if (ar || !(i in from)) {
|
|
26
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
27
|
+
ar[i] = from[i];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
31
|
+
};
|
|
32
|
+
import React, { useMemo } from 'react';
|
|
33
|
+
import { sanitizeUrl } from '@braintree/sanitize-url';
|
|
34
|
+
import { isAudioAttachment, isFileAttachment, isMediaAttachment, isScrapedContent, isUploadedImage, } from './utils';
|
|
35
|
+
import { AudioContainer, CardContainer, FileContainer, GalleryContainer, ImageContainer, MediaContainer, } from './AttachmentContainer';
|
|
36
|
+
var CONTAINER_MAP = {
|
|
37
|
+
audio: AudioContainer,
|
|
38
|
+
card: CardContainer,
|
|
39
|
+
file: FileContainer,
|
|
40
|
+
media: MediaContainer,
|
|
27
41
|
};
|
|
28
|
-
|
|
29
|
-
|
|
42
|
+
export var ATTACHMENT_GROUPS_ORDER = [
|
|
43
|
+
'card',
|
|
44
|
+
'gallery',
|
|
45
|
+
'image',
|
|
46
|
+
'media',
|
|
47
|
+
'audio',
|
|
48
|
+
'file',
|
|
49
|
+
];
|
|
30
50
|
/**
|
|
31
51
|
* A component used for rendering message attachments. By default, the component supports: AttachmentActions, Audio, Card, File, Gallery, Image, and Video
|
|
32
52
|
*/
|
|
33
53
|
export var Attachment = function (props) {
|
|
34
|
-
var attachments = props.attachments
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})), [
|
|
45
|
-
gallery,
|
|
46
|
-
]) : attachments;
|
|
47
|
-
return (React.createElement(React.Fragment, null, newAttachments.map(function (attachment) {
|
|
48
|
-
if (isGalleryAttachmentType(attachment)) {
|
|
49
|
-
return renderGallery(__assign(__assign({}, rest), { attachment: attachment }));
|
|
50
|
-
}
|
|
51
|
-
if (isImageAttachment(attachment)) {
|
|
52
|
-
return renderImage(__assign(__assign({}, rest), { attachment: attachment }));
|
|
53
|
-
}
|
|
54
|
-
if (isAudioAttachment(attachment)) {
|
|
55
|
-
return renderAudio(__assign(__assign({}, rest), { attachment: attachment }));
|
|
56
|
-
}
|
|
57
|
-
if (isFileAttachment(attachment)) {
|
|
58
|
-
return renderFile(__assign(__assign({}, rest), { attachment: attachment }));
|
|
54
|
+
var attachments = props.attachments;
|
|
55
|
+
var groupedAttachments = useMemo(function () { return renderGroupedAttachments(props); }, [attachments]);
|
|
56
|
+
return (React.createElement("div", { className: 'str-chat__attachment-list' }, ATTACHMENT_GROUPS_ORDER.reduce(function (acc, groupName) { return __spreadArray(__spreadArray([], acc, true), groupedAttachments[groupName], true); }, [])));
|
|
57
|
+
};
|
|
58
|
+
var renderGroupedAttachments = function (_a) {
|
|
59
|
+
var attachments = _a.attachments, rest = __rest(_a, ["attachments"]);
|
|
60
|
+
var uploadedImages = [];
|
|
61
|
+
var containers = attachments.reduce(function (acc, attachment) {
|
|
62
|
+
if (isUploadedImage(attachment)) {
|
|
63
|
+
uploadedImages.push(__assign(__assign({}, attachment), { image_url: sanitizeUrl(attachment.image_url), thumb_url: sanitizeUrl(attachment.thumb_url) }));
|
|
59
64
|
}
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
else {
|
|
66
|
+
var attachmentType = getAttachmentType(attachment);
|
|
67
|
+
if (attachmentType) {
|
|
68
|
+
var Container = CONTAINER_MAP[attachmentType];
|
|
69
|
+
acc[attachmentType].push(React.createElement(Container, __assign({ key: "".concat(attachmentType, "-").concat(acc[attachmentType].length) }, rest, { attachment: attachment })));
|
|
70
|
+
}
|
|
62
71
|
}
|
|
63
|
-
return
|
|
64
|
-
}
|
|
72
|
+
return acc;
|
|
73
|
+
}, {
|
|
74
|
+
audio: [],
|
|
75
|
+
card: [],
|
|
76
|
+
file: [],
|
|
77
|
+
gallery: [],
|
|
78
|
+
image: [],
|
|
79
|
+
media: [],
|
|
80
|
+
});
|
|
81
|
+
if (uploadedImages.length > 1) {
|
|
82
|
+
containers['gallery'] = [
|
|
83
|
+
React.createElement(GalleryContainer, __assign({ key: 'gallery-container' }, rest, { attachment: {
|
|
84
|
+
images: uploadedImages,
|
|
85
|
+
type: 'gallery',
|
|
86
|
+
} })),
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
else if (uploadedImages.length === 1) {
|
|
90
|
+
containers['image'] = [
|
|
91
|
+
React.createElement(ImageContainer, __assign({ key: 'image-container' }, rest, { attachment: uploadedImages[0] })),
|
|
92
|
+
];
|
|
93
|
+
}
|
|
94
|
+
return containers;
|
|
95
|
+
};
|
|
96
|
+
var getAttachmentType = function (attachment) {
|
|
97
|
+
if (isScrapedContent(attachment)) {
|
|
98
|
+
return 'card';
|
|
99
|
+
}
|
|
100
|
+
else if (isMediaAttachment(attachment)) {
|
|
101
|
+
return 'media';
|
|
102
|
+
}
|
|
103
|
+
else if (isAudioAttachment(attachment)) {
|
|
104
|
+
return 'audio';
|
|
105
|
+
}
|
|
106
|
+
else if (isFileAttachment(attachment)) {
|
|
107
|
+
return 'file';
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
65
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentActions.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/AttachmentActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,sBAAsB,CAChC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+HAA+H;IAC/H,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"AttachmentActions.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/AttachmentActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,sBAAsB,CAChC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+HAA+H;IAC/H,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAmCF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sJAES,CAAC"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
var UnMemoizedAttachmentActions = function (props) {
|
|
3
3
|
var actionHandler = props.actionHandler, actions = props.actions, id = props.id, text = props.text;
|
|
4
|
-
var handleActionClick = function (event, name, value) {
|
|
5
|
-
if (actionHandler) {
|
|
6
|
-
actionHandler(name, value, event);
|
|
7
|
-
}
|
|
8
|
-
};
|
|
4
|
+
var handleActionClick = function (event, name, value) { return actionHandler === null || actionHandler === void 0 ? void 0 : actionHandler(name, value, event); };
|
|
9
5
|
return (React.createElement("div", { className: 'str-chat__message-attachment-actions' },
|
|
10
6
|
React.createElement("div", { className: 'str-chat__message-attachment-actions-form' },
|
|
11
7
|
React.createElement("span", { key: 0 }, text),
|
|
12
|
-
actions.map(function (action) { return (React.createElement("button", { className: "str-chat__message-attachment-actions-button str-chat__message-attachment-actions-button--"
|
|
8
|
+
actions.map(function (action) { return (React.createElement("button", { className: "str-chat__message-attachment-actions-button str-chat__message-attachment-actions-button--".concat(action.style), "data-testid": "".concat(action.name), "data-value": action.value, key: "".concat(id, "-").concat(action.value), onClick: function (event) { return handleActionClick(event, action.name, action.value); } }, action.text)); }))));
|
|
13
9
|
};
|
|
14
10
|
/**
|
|
15
11
|
* A component for rendering the actions you can take on an attachment.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React, { PropsWithChildren } from 'react';
|
|
2
|
+
import { AttachmentContainerProps, RenderAttachmentProps, RenderGalleryProps } from './utils';
|
|
3
|
+
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
4
|
+
export declare const AttachmentWithinContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, children, componentType, }: React.PropsWithChildren<AttachmentContainerProps<StreamChatGenerics>>) => JSX.Element;
|
|
5
|
+
export declare const AttachmentActionsContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ actionHandler, attachment, AttachmentActions, }: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element | null;
|
|
6
|
+
export declare const GalleryContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, Gallery, }: RenderGalleryProps<StreamChatGenerics>) => JSX.Element;
|
|
7
|
+
export declare const ImageContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element;
|
|
8
|
+
export declare const CardContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element;
|
|
9
|
+
export declare const FileContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, File, }: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element | null;
|
|
10
|
+
export declare const AudioContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ attachment, Audio, }: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element;
|
|
11
|
+
export declare const MediaContainer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: RenderAttachmentProps<StreamChatGenerics>) => JSX.Element;
|
|
12
|
+
//# sourceMappingURL=AttachmentContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentContainer.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/AttachmentContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AASjD,OAAO,EACL,wBAAwB,EAGxB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,yBAAyB,oNA4BrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,wMAkBtC,CAAC;AAEF,eAAO,MAAM,gBAAgB,qKAS5B,CAAC;AAEF,eAAO,MAAM,cAAc,qJAwB1B,CAAC;AAEF,eAAO,MAAM,aAAa,qJAwBzB,CAAC;AAEF,eAAO,MAAM,aAAa,4KAazB,CAAC;AACF,eAAO,MAAM,cAAc,sKAW1B,CAAC;AAEF,eAAO,MAAM,cAAc,qJAwC1B,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import ReactPlayer from 'react-player';
|
|
14
|
+
import clsx from 'clsx';
|
|
15
|
+
import { AttachmentActions as DefaultAttachmentActions } from './AttachmentActions';
|
|
16
|
+
import { Audio as DefaultAudio } from './Audio';
|
|
17
|
+
import { Gallery as DefaultGallery, ImageComponent as DefaultImage } from '../Gallery';
|
|
18
|
+
import { Card as DefaultCard } from './Card';
|
|
19
|
+
import { FileAttachment as DefaultFile } from './FileAttachment';
|
|
20
|
+
import { isGalleryAttachmentType, isSvgAttachment, } from './utils';
|
|
21
|
+
export var AttachmentWithinContainer = function (_a) {
|
|
22
|
+
var _b;
|
|
23
|
+
var _c;
|
|
24
|
+
var attachment = _a.attachment, children = _a.children, componentType = _a.componentType;
|
|
25
|
+
var isGAT = isGalleryAttachmentType(attachment);
|
|
26
|
+
var extra = '';
|
|
27
|
+
if (!isGAT) {
|
|
28
|
+
extra =
|
|
29
|
+
componentType === 'card' && !(attachment === null || attachment === void 0 ? void 0 : attachment.image_url) && !(attachment === null || attachment === void 0 ? void 0 : attachment.thumb_url)
|
|
30
|
+
? 'no-image'
|
|
31
|
+
: ((_c = attachment === null || attachment === void 0 ? void 0 : attachment.actions) === null || _c === void 0 ? void 0 : _c.length)
|
|
32
|
+
? 'actions'
|
|
33
|
+
: '';
|
|
34
|
+
}
|
|
35
|
+
var classNames = clsx('str-chat__message-attachment', (_b = {},
|
|
36
|
+
_b["str-chat__message-attachment--".concat(componentType)] = componentType,
|
|
37
|
+
_b["str-chat__message-attachment--".concat(attachment === null || attachment === void 0 ? void 0 : attachment.type)] = attachment === null || attachment === void 0 ? void 0 : attachment.type,
|
|
38
|
+
_b["str-chat__message-attachment--".concat(componentType, "--").concat(extra)] = componentType && extra,
|
|
39
|
+
_b['str-chat__message-attachment--svg-image'] = isSvgAttachment(attachment),
|
|
40
|
+
_b['str-chat__message-attachment-with-actions'] = extra === 'actions',
|
|
41
|
+
_b));
|
|
42
|
+
return React.createElement("div", { className: classNames }, children);
|
|
43
|
+
};
|
|
44
|
+
export var AttachmentActionsContainer = function (_a) {
|
|
45
|
+
var _b;
|
|
46
|
+
var actionHandler = _a.actionHandler, attachment = _a.attachment, _c = _a.AttachmentActions, AttachmentActions = _c === void 0 ? DefaultAttachmentActions : _c;
|
|
47
|
+
if (!((_b = attachment.actions) === null || _b === void 0 ? void 0 : _b.length))
|
|
48
|
+
return null;
|
|
49
|
+
return (React.createElement(AttachmentActions, __assign({}, attachment, { actionHandler: function (event, name, value) { return actionHandler === null || actionHandler === void 0 ? void 0 : actionHandler(event, name, value); }, actions: attachment.actions, id: attachment.id || '', text: attachment.text || '' })));
|
|
50
|
+
};
|
|
51
|
+
export var GalleryContainer = function (_a) {
|
|
52
|
+
var attachment = _a.attachment, _b = _a.Gallery, Gallery = _b === void 0 ? DefaultGallery : _b;
|
|
53
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: 'gallery' },
|
|
54
|
+
React.createElement(Gallery, { images: attachment.images || [], key: 'gallery' })));
|
|
55
|
+
};
|
|
56
|
+
export var ImageContainer = function (props) {
|
|
57
|
+
var attachment = props.attachment, _a = props.Image, Image = _a === void 0 ? DefaultImage : _a;
|
|
58
|
+
var componentType = 'image';
|
|
59
|
+
if (attachment.actions && attachment.actions.length) {
|
|
60
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
61
|
+
React.createElement("div", { className: 'str-chat__attachment' },
|
|
62
|
+
React.createElement(Image, __assign({}, attachment)),
|
|
63
|
+
React.createElement(AttachmentActionsContainer, __assign({}, props)))));
|
|
64
|
+
}
|
|
65
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
66
|
+
React.createElement(Image, __assign({}, attachment))));
|
|
67
|
+
};
|
|
68
|
+
export var CardContainer = function (props) {
|
|
69
|
+
var attachment = props.attachment, _a = props.Card, Card = _a === void 0 ? DefaultCard : _a;
|
|
70
|
+
var componentType = 'card';
|
|
71
|
+
if (attachment.actions && attachment.actions.length) {
|
|
72
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
73
|
+
React.createElement("div", { className: 'str-chat__attachment', key: "key-image-".concat(attachment.id) },
|
|
74
|
+
React.createElement(Card, __assign({}, attachment)),
|
|
75
|
+
React.createElement(AttachmentActionsContainer, __assign({}, props)))));
|
|
76
|
+
}
|
|
77
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
78
|
+
React.createElement(Card, __assign({}, attachment))));
|
|
79
|
+
};
|
|
80
|
+
export var FileContainer = function (_a) {
|
|
81
|
+
var attachment = _a.attachment, _b = _a.File, File = _b === void 0 ? DefaultFile : _b;
|
|
82
|
+
if (!attachment.asset_url)
|
|
83
|
+
return null;
|
|
84
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: 'file' },
|
|
85
|
+
React.createElement(File, { attachment: attachment })));
|
|
86
|
+
};
|
|
87
|
+
export var AudioContainer = function (_a) {
|
|
88
|
+
var attachment = _a.attachment, _b = _a.Audio, Audio = _b === void 0 ? DefaultAudio : _b;
|
|
89
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: 'audio' },
|
|
90
|
+
React.createElement("div", { className: 'str-chat__attachment' },
|
|
91
|
+
React.createElement(Audio, { og: attachment }))));
|
|
92
|
+
};
|
|
93
|
+
export var MediaContainer = function (props) {
|
|
94
|
+
var _a;
|
|
95
|
+
var attachment = props.attachment, _b = props.Media, Media = _b === void 0 ? ReactPlayer : _b;
|
|
96
|
+
var componentType = 'media';
|
|
97
|
+
if ((_a = attachment.actions) === null || _a === void 0 ? void 0 : _a.length) {
|
|
98
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
99
|
+
React.createElement("div", { className: 'str-chat__attachment str-chat__attachment-media' },
|
|
100
|
+
React.createElement("div", { className: 'str-chat__player-wrapper' },
|
|
101
|
+
React.createElement(Media, { className: 'react-player', controls: true, height: '100%', url: attachment.asset_url, width: '100%' })),
|
|
102
|
+
React.createElement(AttachmentActionsContainer, __assign({}, props)))));
|
|
103
|
+
}
|
|
104
|
+
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
105
|
+
React.createElement("div", { className: 'str-chat__player-wrapper' },
|
|
106
|
+
React.createElement(Media, { className: 'react-player', controls: true, height: '100%', url: attachment.asset_url, width: '100%' }))));
|
|
107
|
+
};
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import type { Attachment } from 'stream-chat';
|
|
2
3
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
3
4
|
export declare type AudioProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
4
5
|
og: Attachment<StreamChatGenerics>;
|
|
5
6
|
};
|
|
7
|
+
declare type PlayButtonProps = {
|
|
8
|
+
isPlaying: boolean;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const PlayButton: ({ isPlaying, onClick }: PlayButtonProps) => JSX.Element;
|
|
12
|
+
declare type ProgressBarProps = {
|
|
13
|
+
progress: number;
|
|
14
|
+
} & Pick<React.ComponentProps<'div'>, 'onClick'>;
|
|
15
|
+
export declare const ProgressBar: ({ onClick, progress }: ProgressBarProps) => JSX.Element;
|
|
6
16
|
/**
|
|
7
17
|
* Audio attachment with play/pause button and progress bar
|
|
8
18
|
*/
|
|
9
19
|
export declare const Audio: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: AudioProps<StreamChatGenerics>) => JSX.Element;
|
|
20
|
+
export {};
|
|
10
21
|
//# sourceMappingURL=Audio.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Audio.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Audio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,UAAU,CACpB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,EAAE,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;CACpC,CAAC;AA+DF,aAAK,eAAe,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,UAAU,2BAA4B,eAAe,gBAQjE,CAAC;AAEF,aAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjD,eAAO,MAAM,WAAW,0BAA2B,gBAAgB,gBAsBlE,CAAC;AA2CF;;GAEG;AACH,eAAO,MAAM,KAAK,0IAAwD,CAAC"}
|
|
@@ -1,50 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var audioRef = useRef(null);
|
|
8
|
-
var updateProgress = useCallback(function () {
|
|
9
|
-
if (audioRef.current !== null) {
|
|
10
|
-
var position = audioRef.current.currentTime;
|
|
11
|
-
var duration = audioRef.current.duration;
|
|
12
|
-
var currentProgress = (100 / duration) * position;
|
|
13
|
-
setProgress(currentProgress);
|
|
14
|
-
if (position === duration) {
|
|
15
|
-
setIsPlaying(false);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}, [audioRef]);
|
|
19
|
-
useEffect(function () {
|
|
20
|
-
if (audioRef.current !== null) {
|
|
21
|
-
if (isPlaying) {
|
|
22
|
-
audioRef.current.play();
|
|
23
|
-
var interval_1 = setInterval(updateProgress, progressUpdateInterval);
|
|
24
|
-
return function () { return clearInterval(interval_1); };
|
|
25
|
-
}
|
|
26
|
-
audioRef.current.pause();
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
27
7
|
}
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import React from 'react';
|
|
13
|
+
import { PauseIcon, PlayTriangleIcon } from './icons';
|
|
14
|
+
import { FileSizeIndicator } from './FileSizeIndicator';
|
|
15
|
+
import { DownloadButton } from './DownloadButton';
|
|
16
|
+
import { useAudioController } from './hooks/useAudioController';
|
|
17
|
+
import { useChatContext } from '../../context/ChatContext';
|
|
18
|
+
var AudioV1 = function (_a) {
|
|
19
|
+
var og = _a.og;
|
|
30
20
|
var asset_url = og.asset_url, description = og.description, image_url = og.image_url, text = og.text, title = og.title;
|
|
21
|
+
var _b = useAudioController(), audioRef = _b.audioRef, isPlaying = _b.isPlaying, progress = _b.progress, togglePlay = _b.togglePlay;
|
|
31
22
|
return (React.createElement("div", { className: 'str-chat__audio' },
|
|
32
23
|
React.createElement("div", { className: 'str-chat__audio__wrapper' },
|
|
33
24
|
React.createElement("audio", { ref: audioRef },
|
|
34
25
|
React.createElement("source", { "data-testid": 'audio-source', src: asset_url, type: 'audio/mp3' })),
|
|
35
26
|
React.createElement("div", { className: 'str-chat__audio__image' },
|
|
36
|
-
React.createElement("div", { className: 'str-chat__audio__image--overlay' }, !isPlaying ? (React.createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'play-audio', onClick:
|
|
27
|
+
React.createElement("div", { className: 'str-chat__audio__image--overlay' }, !isPlaying ? (React.createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'play-audio', onClick: togglePlay },
|
|
37
28
|
React.createElement("svg", { height: '40', viewBox: '0 0 64 64', width: '40', xmlns: 'http://www.w3.org/2000/svg' },
|
|
38
|
-
React.createElement("path", { d: 'M32 58c14.36 0 26-11.64 26-26S46.36 6 32 6 6 17.64 6 32s11.64 26 26 26zm0 6C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm13.237-28.412L26.135 45.625a3.27 3.27 0 0 1-4.426-1.4 3.319 3.319 0 0 1-.372-1.47L21 23.36c-.032-1.823 1.41-3.327 3.222-3.358a3.263 3.263 0 0 1 1.473.322l19.438 9.36a3.311 3.311 0 0 1 .103 5.905z', fillRule: 'nonzero' })))) : (React.createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'pause-audio', onClick:
|
|
29
|
+
React.createElement("path", { d: 'M32 58c14.36 0 26-11.64 26-26S46.36 6 32 6 6 17.64 6 32s11.64 26 26 26zm0 6C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm13.237-28.412L26.135 45.625a3.27 3.27 0 0 1-4.426-1.4 3.319 3.319 0 0 1-.372-1.47L21 23.36c-.032-1.823 1.41-3.327 3.222-3.358a3.263 3.263 0 0 1 1.473.322l19.438 9.36a3.311 3.311 0 0 1 .103 5.905z', fillRule: 'nonzero' })))) : (React.createElement("button", { className: 'str-chat__audio__image--button', "data-testid": 'pause-audio', onClick: togglePlay },
|
|
39
30
|
React.createElement("svg", { height: '40', viewBox: '0 0 64 64', width: '40', xmlns: 'http://www.w3.org/2000/svg' },
|
|
40
31
|
React.createElement("path", { d: 'M32 58.215c14.478 0 26.215-11.737 26.215-26.215S46.478 5.785 32 5.785 5.785 17.522 5.785 32 17.522 58.215 32 58.215zM32 64C14.327 64 0 49.673 0 32 0 14.327 14.327 0 32 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32zm-7.412-45.56h2.892a2.17 2.17 0 0 1 2.17 2.17v23.865a2.17 2.17 0 0 1-2.17 2.17h-2.892a2.17 2.17 0 0 1-2.17-2.17V20.61a2.17 2.17 0 0 1 2.17-2.17zm12.293 0h2.893a2.17 2.17 0 0 1 2.17 2.17v23.865a2.17 2.17 0 0 1-2.17 2.17h-2.893a2.17 2.17 0 0 1-2.17-2.17V20.61a2.17 2.17 0 0 1 2.17-2.17z', fillRule: 'nonzero' }))))),
|
|
41
|
-
image_url && React.createElement("img", { alt: ""
|
|
32
|
+
image_url && React.createElement("img", { alt: "".concat(description), src: image_url })),
|
|
42
33
|
React.createElement("div", { className: 'str-chat__audio__content' },
|
|
43
34
|
React.createElement("span", { className: 'str-chat__audio__content--title' },
|
|
44
35
|
React.createElement("strong", null, title)),
|
|
45
36
|
React.createElement("span", { className: 'str-chat__audio__content--subtitle' }, text),
|
|
46
37
|
React.createElement("div", { className: 'str-chat__audio__content--progress' },
|
|
47
|
-
React.createElement("div", { "data-testid": 'audio-progress', style: { width: progress
|
|
38
|
+
React.createElement("div", { "data-progress": progress, "data-testid": 'audio-progress', role: 'progressbar', style: { width: "".concat(progress, "%") } }))))));
|
|
39
|
+
};
|
|
40
|
+
export var PlayButton = function (_a) {
|
|
41
|
+
var isPlaying = _a.isPlaying, onClick = _a.onClick;
|
|
42
|
+
return (React.createElement("button", { className: 'str-chat__message-attachment-audio-widget--play-button', "data-testid": isPlaying ? 'pause-audio' : 'play-audio', onClick: onClick }, isPlaying ? React.createElement(PauseIcon, null) : React.createElement(PlayTriangleIcon, null)));
|
|
43
|
+
};
|
|
44
|
+
export var ProgressBar = function (_a) {
|
|
45
|
+
var onClick = _a.onClick, progress = _a.progress;
|
|
46
|
+
return (React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--progress-track', "data-progress": progress, "data-testid": 'audio-progress', onClick: onClick, role: 'progressbar', style: {
|
|
47
|
+
background: "linear-gradient(\n\t\t to right, \n\t\t var(--str-chat__primary-color),\n\t\t var(--str-chat__primary-color) ".concat(progress, "%,\n\t\t var(--str-chat__disabled-color) ").concat(progress, "%,\n\t\t var(--str-chat__disabled-color)\n\t )"),
|
|
48
|
+
} },
|
|
49
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--progress-slider', style: { left: "".concat(progress, "px") } })));
|
|
50
|
+
};
|
|
51
|
+
var AudioV2 = function (_a) {
|
|
52
|
+
var og = _a.og;
|
|
53
|
+
var asset_url = og.asset_url, file_size = og.file_size, title = og.title;
|
|
54
|
+
var _b = useAudioController(), audioRef = _b.audioRef, isPlaying = _b.isPlaying, progress = _b.progress, seek = _b.seek, togglePlay = _b.togglePlay;
|
|
55
|
+
if (!asset_url)
|
|
56
|
+
return null;
|
|
57
|
+
var dataTestId = 'audio-widget';
|
|
58
|
+
var rootClassName = 'str-chat__message-attachment-audio-widget';
|
|
59
|
+
return (React.createElement("div", { className: rootClassName, "data-testid": dataTestId },
|
|
60
|
+
React.createElement("audio", { ref: audioRef },
|
|
61
|
+
React.createElement("source", { "data-testid": 'audio-source', src: asset_url, type: 'audio/mp3' })),
|
|
62
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--play-controls' },
|
|
63
|
+
React.createElement(PlayButton, { isPlaying: isPlaying, onClick: togglePlay })),
|
|
64
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--text' },
|
|
65
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--text-first-row' },
|
|
66
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--title' }, title),
|
|
67
|
+
React.createElement(DownloadButton, { assetUrl: asset_url })),
|
|
68
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--text-second-row' },
|
|
69
|
+
React.createElement(FileSizeIndicator, { fileSize: file_size }),
|
|
70
|
+
React.createElement(ProgressBar, { onClick: seek, progress: progress })))));
|
|
71
|
+
};
|
|
72
|
+
var UnMemoizedAudio = function (props) {
|
|
73
|
+
var themeVersion = useChatContext('Audio').themeVersion;
|
|
74
|
+
return themeVersion === '1' ? React.createElement(AudioV1, __assign({}, props)) : React.createElement(AudioV2, __assign({}, props));
|
|
48
75
|
};
|
|
49
76
|
/**
|
|
50
77
|
* Audio attachment with play/pause button and progress bar
|
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
export declare
|
|
4
|
-
|
|
5
|
-
/** The url of the full sized image */
|
|
6
|
-
image_url?: string;
|
|
7
|
-
/** The scraped url, used as a fallback if the OG-data doesn't include a link */
|
|
8
|
-
og_scrape_url?: string;
|
|
9
|
-
/** Description returned by the OG scraper */
|
|
10
|
-
text?: string;
|
|
11
|
-
/** The url for thumbnail sized image */
|
|
12
|
-
thumb_url?: string;
|
|
13
|
-
/** Title returned by the OG scraper */
|
|
14
|
-
title?: string;
|
|
15
|
-
/** Link returned by the OG scraper */
|
|
16
|
-
title_link?: string;
|
|
17
|
-
/** The card type used in the className attribute */
|
|
18
|
-
type?: string;
|
|
19
|
-
};
|
|
1
|
+
import { AudioProps } from './Audio';
|
|
2
|
+
import type { RenderAttachmentProps } from './utils';
|
|
3
|
+
export declare const CardAudio: ({ og: { asset_url, author_name, og_scrape_url, text, title, title_link }, }: AudioProps) => JSX.Element;
|
|
4
|
+
export declare type CardProps = RenderAttachmentProps['attachment'];
|
|
20
5
|
/**
|
|
21
6
|
* Simple Card Layout for displaying links
|
|
22
7
|
*/
|
|
23
|
-
export declare const Card: (props:
|
|
8
|
+
export declare const Card: (props: CardProps) => JSX.Element;
|
|
24
9
|
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Card.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/Card.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAA2B,MAAM,SAAS,CAAC;AAU9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAkMrD,eAAO,MAAM,SAAS,gFAEnB,UAAU,gBA8BZ,CAAC;AAEF,oBAAY,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;AAQ5D;;GAEG;AACH,eAAO,MAAM,IAAI,UATc,SAAS,gBAS+B,CAAC"}
|
|
@@ -10,12 +10,34 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
|
+
import clsx from 'clsx';
|
|
14
|
+
import ReactPlayer from 'react-player';
|
|
15
|
+
import { PlayButton, ProgressBar } from './Audio';
|
|
16
|
+
import { ImageComponent } from '../Gallery';
|
|
13
17
|
import { SafeAnchor } from '../SafeAnchor';
|
|
14
|
-
import {
|
|
18
|
+
import { useAudioController } from './hooks/useAudioController';
|
|
19
|
+
import { useChatContext } from '../../context/ChatContext';
|
|
15
20
|
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
import { useTranslationContext } from '../../context/TranslationContext';
|
|
22
|
+
var getHostFromURL = function (url) {
|
|
23
|
+
if (url !== undefined && url !== null) {
|
|
24
|
+
var trimmedUrl = url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, '').split('/')[0];
|
|
25
|
+
return trimmedUrl;
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
};
|
|
29
|
+
var UnableToRenderCard = function (_a) {
|
|
30
|
+
var _b;
|
|
31
|
+
var type = _a.type;
|
|
18
32
|
var t = useTranslationContext('Card').t;
|
|
33
|
+
return (React.createElement("div", { className: clsx('str-chat__message-attachment-card', (_b = {},
|
|
34
|
+
_b["str-chat__message-attachment-card--".concat(type)] = type,
|
|
35
|
+
_b)) },
|
|
36
|
+
React.createElement("div", { className: 'str-chat__message-attachment-card--content' },
|
|
37
|
+
React.createElement("div", { className: 'str-chat__message-attachment-card--text' }, t('this content could not be displayed')))));
|
|
38
|
+
};
|
|
39
|
+
var CardV1 = function (props) {
|
|
40
|
+
var giphy = props.giphy, image_url = props.image_url, og_scrape_url = props.og_scrape_url, text = props.text, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
|
|
19
41
|
var giphyVersionName = useChannelStateContext('Card').giphyVersion;
|
|
20
42
|
var image = thumb_url || image_url;
|
|
21
43
|
var dimensions = {};
|
|
@@ -25,29 +47,85 @@ var UnMemoizedCard = function (props) {
|
|
|
25
47
|
dimensions.height = giphyVersion.height;
|
|
26
48
|
dimensions.width = giphyVersion.width;
|
|
27
49
|
}
|
|
28
|
-
var trimUrl = function (url) {
|
|
29
|
-
if (url !== undefined && url !== null) {
|
|
30
|
-
var trimmedUrl = url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, '').split('/')[0];
|
|
31
|
-
return trimmedUrl;
|
|
32
|
-
}
|
|
33
|
-
return null;
|
|
34
|
-
};
|
|
35
50
|
if (!title && !title_link && !image) {
|
|
36
|
-
return
|
|
37
|
-
React.createElement("div", { className: 'str-chat__message-attachment-card--content' },
|
|
38
|
-
React.createElement("div", { className: 'str-chat__message-attachment-card--text' }, t('this content could not be displayed')))));
|
|
51
|
+
return React.createElement(UnableToRenderCard, { type: type });
|
|
39
52
|
}
|
|
40
53
|
if (!title_link && !og_scrape_url) {
|
|
41
54
|
return null;
|
|
42
55
|
}
|
|
43
|
-
return (React.createElement("div", { className: "str-chat__message-attachment-card str-chat__message-attachment-card--"
|
|
56
|
+
return (React.createElement("div", { className: "str-chat__message-attachment-card str-chat__message-attachment-card--".concat(type) },
|
|
44
57
|
image && (React.createElement("div", { className: 'str-chat__message-attachment-card--header' },
|
|
45
58
|
React.createElement("img", __assign({ alt: image, src: image }, dimensions)))),
|
|
46
59
|
React.createElement("div", { className: 'str-chat__message-attachment-card--content' },
|
|
47
60
|
React.createElement("div", { className: 'str-chat__message-attachment-card--flex' },
|
|
48
61
|
title && React.createElement("div", { className: 'str-chat__message-attachment-card--title' }, title),
|
|
49
62
|
text && React.createElement("div", { className: 'str-chat__message-attachment-card--text' }, text),
|
|
50
|
-
(title_link || og_scrape_url) && (React.createElement(SafeAnchor, { className: 'str-chat__message-attachment-card--url', href: title_link || og_scrape_url, rel: 'noopener noreferrer', target: '_blank' },
|
|
63
|
+
(title_link || og_scrape_url) && (React.createElement(SafeAnchor, { className: 'str-chat__message-attachment-card--url', href: title_link || og_scrape_url, rel: 'noopener noreferrer', target: '_blank' }, getHostFromURL(title_link || og_scrape_url)))))));
|
|
64
|
+
};
|
|
65
|
+
var SourceLink = function (_a) {
|
|
66
|
+
var author_name = _a.author_name, url = _a.url;
|
|
67
|
+
return (React.createElement("div", { className: 'str-chat__message-attachment-card--source-link', "data-testid": 'card-source-link' },
|
|
68
|
+
React.createElement(SafeAnchor, { className: 'str-chat__message-attachment-card--url', href: url, rel: 'noopener noreferrer', target: '_blank' }, author_name || getHostFromURL(url))));
|
|
69
|
+
};
|
|
70
|
+
var CardHeader = function (props) {
|
|
71
|
+
var asset_url = props.asset_url, dimensions = props.dimensions, image = props.image, image_url = props.image_url, thumb_url = props.thumb_url, title = props.title, type = props.type;
|
|
72
|
+
var visual = null;
|
|
73
|
+
if (asset_url && type === 'video') {
|
|
74
|
+
visual = (React.createElement(ReactPlayer, { className: 'react-player', controls: true, height: '100%', url: asset_url, width: '100%' }));
|
|
75
|
+
}
|
|
76
|
+
else if (image) {
|
|
77
|
+
visual = (React.createElement(ImageComponent, { dimensions: dimensions, fallback: title || image, image_url: image_url, thumb_url: thumb_url }));
|
|
78
|
+
}
|
|
79
|
+
return visual ? (React.createElement("div", { className: 'str-chat__message-attachment-card--header str-chat__message-attachment-card-react--header', "data-testid": 'card-header' }, visual)) : null;
|
|
80
|
+
};
|
|
81
|
+
var CardContent = function (props) {
|
|
82
|
+
var author_name = props.author_name, og_scrape_url = props.og_scrape_url, text = props.text, title = props.title, title_link = props.title_link, type = props.type;
|
|
83
|
+
var url = title_link || og_scrape_url;
|
|
84
|
+
return (React.createElement("div", { className: 'str-chat__message-attachment-card--content' }, type === 'audio' ? (React.createElement(CardAudio, { og: props })) : (React.createElement("div", { className: 'str-chat__message-attachment-card--flex' },
|
|
85
|
+
url && React.createElement(SourceLink, { author_name: author_name, url: url }),
|
|
86
|
+
title && React.createElement("div", { className: 'str-chat__message-attachment-card--title' }, title),
|
|
87
|
+
text && React.createElement("div", { className: 'str-chat__message-attachment-card--text' }, text)))));
|
|
88
|
+
};
|
|
89
|
+
var CardV2 = function (props) {
|
|
90
|
+
var asset_url = props.asset_url, giphy = props.giphy, image_url = props.image_url, thumb_url = props.thumb_url, title = props.title, title_link = props.title_link, type = props.type;
|
|
91
|
+
var giphyVersionName = useChannelStateContext('CardHeader').giphyVersion;
|
|
92
|
+
var image = thumb_url || image_url;
|
|
93
|
+
var dimensions = {};
|
|
94
|
+
if (type === 'giphy' && typeof giphy !== 'undefined') {
|
|
95
|
+
var giphyVersion = giphy[giphyVersionName];
|
|
96
|
+
image = giphyVersion.url;
|
|
97
|
+
dimensions.height = giphyVersion.height;
|
|
98
|
+
dimensions.width = giphyVersion.width;
|
|
99
|
+
}
|
|
100
|
+
if (!title && !title_link && !asset_url && !image) {
|
|
101
|
+
return React.createElement(UnableToRenderCard, null);
|
|
102
|
+
}
|
|
103
|
+
return (React.createElement("div", { className: "str-chat__message-attachment-card str-chat__message-attachment-card--".concat(type) },
|
|
104
|
+
React.createElement(CardHeader, __assign({}, props, { dimensions: dimensions, image: image })),
|
|
105
|
+
React.createElement(CardContent, __assign({}, props))));
|
|
106
|
+
};
|
|
107
|
+
export var CardAudio = function (_a) {
|
|
108
|
+
var _b = _a.og, asset_url = _b.asset_url, author_name = _b.author_name, og_scrape_url = _b.og_scrape_url, text = _b.text, title = _b.title, title_link = _b.title_link;
|
|
109
|
+
var _c = useAudioController(), audioRef = _c.audioRef, isPlaying = _c.isPlaying, progress = _c.progress, seek = _c.seek, togglePlay = _c.togglePlay;
|
|
110
|
+
var url = title_link || og_scrape_url;
|
|
111
|
+
var dataTestId = 'card-audio-widget';
|
|
112
|
+
var rootClassName = 'str-chat__message-attachment-card-audio-widget';
|
|
113
|
+
return (React.createElement("div", { className: rootClassName, "data-testid": dataTestId },
|
|
114
|
+
asset_url && (React.createElement(React.Fragment, null,
|
|
115
|
+
React.createElement("audio", { ref: audioRef },
|
|
116
|
+
React.createElement("source", { "data-testid": 'audio-source', src: asset_url, type: 'audio/mp3' })),
|
|
117
|
+
React.createElement("div", { className: 'str-chat__message-attachment-card-audio-widget--first-row' },
|
|
118
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--play-controls' },
|
|
119
|
+
React.createElement(PlayButton, { isPlaying: isPlaying, onClick: togglePlay })),
|
|
120
|
+
React.createElement(ProgressBar, { onClick: seek, progress: progress })))),
|
|
121
|
+
React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--second-row' },
|
|
122
|
+
url && React.createElement(SourceLink, { author_name: author_name, url: url }),
|
|
123
|
+
title && React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--title' }, title),
|
|
124
|
+
text && (React.createElement("div", { className: 'str-chat__message-attachment-audio-widget--description' }, text)))));
|
|
125
|
+
};
|
|
126
|
+
var UnMemoizedCard = function (props) {
|
|
127
|
+
var themeVersion = useChatContext('Card').themeVersion;
|
|
128
|
+
return themeVersion === '2' ? React.createElement(CardV2, __assign({}, props)) : React.createElement(CardV1, __assign({}, props));
|
|
51
129
|
};
|
|
52
130
|
/**
|
|
53
131
|
* Simple Card Layout for displaying links
|