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
|
@@ -9,64 +9,50 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import React, { Suspense } from 'react';
|
|
24
|
+
import clsx from 'clsx';
|
|
14
25
|
import { useEmojiContext } from '../../context/EmojiContext';
|
|
15
26
|
import { useMessageContext } from '../../context/MessageContext';
|
|
27
|
+
import { useProcessReactions } from './hooks/useProcessReactions';
|
|
16
28
|
var UnMemoizedReactionsList = function (props) {
|
|
17
|
-
var
|
|
29
|
+
var onClick = props.onClick, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["onClick", "reverse"]);
|
|
18
30
|
var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var reactionCounts = propReactionCounts || message.reaction_counts || {};
|
|
23
|
-
var reactionOptions = propReactionOptions || defaultMinimalEmojis;
|
|
24
|
-
var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
|
|
25
|
-
var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
|
|
26
|
-
if (!reactions.length)
|
|
31
|
+
var onReactionListClick = useMessageContext('ReactionsList').onReactionListClick;
|
|
32
|
+
var _c = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _c.additionalEmojiProps, emojiData = _c.emojiData, getEmojiByReactionType = _c.getEmojiByReactionType, iHaveReactedWithReaction = _c.iHaveReactedWithReaction, latestReactions = _c.latestReactions, latestReactionTypes = _c.latestReactionTypes, reactionCounts = _c.reactionCounts, supportedReactionsArePresent = _c.supportedReactionsArePresent, totalReactionCount = _c.totalReactionCount;
|
|
33
|
+
if (!latestReactions.length)
|
|
27
34
|
return null;
|
|
28
|
-
var getTotalReactionCount = function () {
|
|
29
|
-
return Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0);
|
|
30
|
-
};
|
|
31
|
-
var getCurrentMessageReactionTypes = function () {
|
|
32
|
-
var reactionTypes = [];
|
|
33
|
-
reactions.forEach(function (_a) {
|
|
34
|
-
var type = _a.type;
|
|
35
|
-
if (reactionTypes.indexOf(type) === -1) {
|
|
36
|
-
reactionTypes.push(type);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
return reactionTypes;
|
|
40
|
-
};
|
|
41
|
-
var getEmojiByReactionType = function (type) {
|
|
42
|
-
var reactionEmoji = reactionOptions.find(function (option) { return option.id === type; });
|
|
43
|
-
return reactionEmoji;
|
|
44
|
-
};
|
|
45
|
-
var getSupportedReactionMap = function () {
|
|
46
|
-
var reactionMap = {};
|
|
47
|
-
reactionOptions.forEach(function (_a) {
|
|
48
|
-
var id = _a.id;
|
|
49
|
-
return (reactionMap[id] = true);
|
|
50
|
-
});
|
|
51
|
-
return reactionMap;
|
|
52
|
-
};
|
|
53
|
-
var messageReactionTypes = getCurrentMessageReactionTypes();
|
|
54
|
-
var supportedReactionMap = getSupportedReactionMap();
|
|
55
|
-
var supportedReactionsArePresent = messageReactionTypes.some(function (type) { return supportedReactionMap[type]; });
|
|
56
35
|
if (!supportedReactionsArePresent)
|
|
57
36
|
return null;
|
|
58
|
-
return (React.createElement("div", { "aria-label": 'Reaction list', className:
|
|
59
|
-
|
|
60
|
-
|
|
37
|
+
return (React.createElement("div", { "aria-label": 'Reaction list', className: clsx('str-chat__reaction-list str-chat__message-reactions-container', {
|
|
38
|
+
'str-chat__reaction-list--reverse': reverse,
|
|
39
|
+
}), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyUp: onClick || onReactionListClick, role: 'figure' },
|
|
40
|
+
React.createElement("ul", { className: 'str-chat__message-reactions' },
|
|
41
|
+
latestReactionTypes.map(function (reactionType) {
|
|
61
42
|
var emojiObject = getEmojiByReactionType(reactionType);
|
|
62
|
-
|
|
63
|
-
|
|
43
|
+
var isOwnReaction = iHaveReactedWithReaction(reactionType);
|
|
44
|
+
return emojiObject ? (React.createElement("li", { className: clsx('str-chat__message-reaction', {
|
|
45
|
+
'str-chat__message-reaction-own': isOwnReaction,
|
|
46
|
+
}), key: emojiObject.id },
|
|
47
|
+
React.createElement("button", { "aria-label": "Reactions: ".concat(reactionType) },
|
|
64
48
|
React.createElement(Suspense, { fallback: null },
|
|
65
|
-
React.createElement(
|
|
66
|
-
|
|
49
|
+
React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
|
|
50
|
+
React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, additionalEmojiProps)))),
|
|
51
|
+
"\u00A0",
|
|
52
|
+
React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))) : null;
|
|
67
53
|
}),
|
|
68
54
|
React.createElement("li", null,
|
|
69
|
-
React.createElement("span", { className: 'str-chat__reaction-list--counter' },
|
|
55
|
+
React.createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))));
|
|
70
56
|
};
|
|
71
57
|
/**
|
|
72
58
|
* Component that displays a list of reactions on a message.
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ReactionEmoji } from '../Channel/emojiData';
|
|
3
2
|
import type { NimbleEmojiProps } from 'emoji-mart';
|
|
4
3
|
import type { ReactionResponse } from 'stream-chat';
|
|
5
4
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
+
import type { ReactionEmoji } from '../Channel/emojiData';
|
|
6
6
|
export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
7
7
|
/** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
|
|
8
8
|
additionalEmojiProps?: Partial<NimbleEmojiProps>;
|
|
9
9
|
/** Function that adds/removes a reaction on a message (overrides the function stored in `MessageContext`) */
|
|
10
10
|
handleReaction?: (reactionType: string, event: React.BaseSyntheticEvent) => Promise<void>;
|
|
11
|
+
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
12
|
+
own_reactions?: ReactionResponse<StreamChatGenerics>[];
|
|
11
13
|
/** An object that keeps track of the count of each type of reaction on a message */
|
|
12
14
|
reaction_counts?: {
|
|
13
15
|
[key: string]: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAOlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AA+FF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
|
|
@@ -9,26 +9,35 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import React, { Suspense, useState } from 'react';
|
|
24
|
+
import clsx from 'clsx';
|
|
14
25
|
import { useEmojiContext } from '../../context/EmojiContext';
|
|
15
26
|
import { useMessageContext } from '../../context/MessageContext';
|
|
27
|
+
import { useProcessReactions } from './hooks/useProcessReactions';
|
|
16
28
|
var UnMemoizedSimpleReactionsList = function (props) {
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
29
|
+
var propHandleReaction = props.handleReaction, rest = __rest(props, ["handleReaction"]);
|
|
30
|
+
var _a = useEmojiContext('SimpleReactionsList'), Emoji = _a.Emoji, emojiConfig = _a.emojiConfig;
|
|
31
|
+
var contextHandleReaction = useMessageContext('SimpleReactionsList').handleReaction;
|
|
32
|
+
var _b = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _b.additionalEmojiProps, emojiData = _b.emojiData, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
|
|
33
|
+
var _c = useState(undefined), tooltipReactionType = _c[0], setTooltipReactionType = _c[1];
|
|
22
34
|
var handleReaction = propHandleReaction || contextHandleReaction;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
|
|
27
|
-
var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
|
|
28
|
-
if (!reactions.length)
|
|
35
|
+
if (!latestReactions.length)
|
|
36
|
+
return null;
|
|
37
|
+
if (!supportedReactionsArePresent)
|
|
29
38
|
return null;
|
|
30
39
|
var getUsersPerReactionType = function (type) {
|
|
31
|
-
return
|
|
40
|
+
return latestReactions
|
|
32
41
|
.map(function (reaction) {
|
|
33
42
|
var _a, _b;
|
|
34
43
|
if (reaction.type === type) {
|
|
@@ -38,49 +47,23 @@ var UnMemoizedSimpleReactionsList = function (props) {
|
|
|
38
47
|
})
|
|
39
48
|
.filter(Boolean);
|
|
40
49
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var reactionMap = {};
|
|
60
|
-
reactionOptions.forEach(function (_a) {
|
|
61
|
-
var id = _a.id;
|
|
62
|
-
return (reactionMap[id] = true);
|
|
63
|
-
});
|
|
64
|
-
return reactionMap;
|
|
65
|
-
};
|
|
66
|
-
var messageReactionTypes = getCurrentMessageReactionTypes();
|
|
67
|
-
var supportedReactionMap = getSupportedReactionMap();
|
|
68
|
-
var supportedReactionsArePresent = messageReactionTypes.some(function (type) { return supportedReactionMap[type]; });
|
|
69
|
-
if (!supportedReactionsArePresent)
|
|
70
|
-
return null;
|
|
71
|
-
return (React.createElement("ul", { className: 'str-chat__simple-reactions-list', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
|
|
72
|
-
messageReactionTypes.map(function (reactionType, i) {
|
|
73
|
-
var _a;
|
|
74
|
-
var emojiObject = getEmojiByReactionType(reactionType);
|
|
75
|
-
return emojiObject ? (React.createElement("li", { className: 'str-chat__simple-reactions-list-item', key: emojiObject.id + "-" + i, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyPress: function (event) { return handleReaction(reactionType, event); } },
|
|
76
|
-
React.createElement("span", { onMouseEnter: function () { return setTooltipReactionType(reactionType); } },
|
|
77
|
-
React.createElement(Suspense, { fallback: null },
|
|
78
|
-
React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
|
|
79
|
-
"\u00A0"),
|
|
80
|
-
tooltipReactionType === emojiObject.id && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip' },
|
|
81
|
-
React.createElement("div", { className: 'arrow' }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
|
|
82
|
-
_a.join(', '))))) : null;
|
|
83
|
-
}),
|
|
84
|
-
React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, getTotalReactionCount())));
|
|
50
|
+
return (React.createElement("div", { className: 'str-chat__message-reactions-container' },
|
|
51
|
+
React.createElement("ul", { className: 'str-chat__simple-reactions-list str-chat__message-reactions', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
|
|
52
|
+
latestReactionTypes.map(function (reactionType, i) {
|
|
53
|
+
var _a;
|
|
54
|
+
var emojiObject = getEmojiByReactionType(reactionType);
|
|
55
|
+
var isOwnReaction = iHaveReactedWithReaction(reactionType);
|
|
56
|
+
return emojiObject ? (React.createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
|
|
57
|
+
'str-chat__message-reaction-own': isOwnReaction,
|
|
58
|
+
}), key: "".concat(emojiObject.id, "-").concat(i), onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
|
|
59
|
+
React.createElement("span", { onMouseEnter: function () { return setTooltipReactionType(reactionType); } },
|
|
60
|
+
React.createElement(Suspense, { fallback: null },
|
|
61
|
+
React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, additionalEmojiProps))),
|
|
62
|
+
"\u00A0"),
|
|
63
|
+
tooltipReactionType === emojiObject.id && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip str-chat__tooltip' },
|
|
64
|
+
React.createElement("div", { className: 'arrow' }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
|
|
65
|
+
_a.join(', '))))) : null;
|
|
66
|
+
}),
|
|
67
|
+
React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, totalReactionCount))));
|
|
85
68
|
};
|
|
86
69
|
export var SimpleReactionsList = React.memo(UnMemoizedSimpleReactionsList);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ReactionEmoji } from '../../Channel/emojiData';
|
|
2
|
+
import type { EmojiContextValue } from '../../../context/EmojiContext';
|
|
3
|
+
import type { ReactionsListProps } from '../ReactionsList';
|
|
4
|
+
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
5
|
+
declare type SharedReactionListProps = 'additionalEmojiProps' | 'own_reactions' | 'reaction_counts' | 'reactionOptions' | 'reactions';
|
|
6
|
+
declare type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps> & Pick<EmojiContextValue, 'emojiConfig'>;
|
|
7
|
+
export declare const useProcessReactions: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseProcessReactionsParams) => {
|
|
8
|
+
additionalEmojiProps: import("../../../context").EmojiSetDef | Partial<import("emoji-mart").NimbleEmojiProps>;
|
|
9
|
+
emojiData: import("emoji-mart").Data;
|
|
10
|
+
getEmojiByReactionType: (type: string) => ReactionEmoji | undefined;
|
|
11
|
+
iHaveReactedWithReaction: (reactionType: string) => import("stream-chat").ReactionResponse<DefaultStreamChatGenerics> | undefined;
|
|
12
|
+
latestReactions: import("stream-chat").ReactionResponse<DefaultStreamChatGenerics>[];
|
|
13
|
+
latestReactionTypes: string[];
|
|
14
|
+
reactionCounts: {
|
|
15
|
+
[key: string]: number;
|
|
16
|
+
};
|
|
17
|
+
supportedReactionsArePresent: boolean;
|
|
18
|
+
totalReactionCount: number;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=useProcessReactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useProcessReactions.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/hooks/useProcessReactions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,aAAK,uBAAuB,GACxB,sBAAsB,GACtB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,aAAK,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAChF,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAEzC,eAAO,MAAM,mBAAmB,6FAGtB,yBAAyB;;;mCAyBxB,MAAM,KAAG,aAAa,GAAG,SAAS;6CAL1B,MAAM;;;;;;;;CA2DxB,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { useCallback, useMemo } from 'react';
|
|
2
|
+
import { getStrippedEmojiData } from '../../Channel/emojiData';
|
|
3
|
+
import { useMessageContext } from '../../../context';
|
|
4
|
+
export var useProcessReactions = function (params) {
|
|
5
|
+
var _a = params.additionalEmojiProps, additionalEmojiProps = _a === void 0 ? {} : _a, emojiConfig = params.emojiConfig, propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions;
|
|
6
|
+
var message = useMessageContext('ReactionsList').message;
|
|
7
|
+
var _b = emojiConfig || {}, defaultMinimalEmojis = _b.defaultMinimalEmojis, fullEmojiData = _b.emojiData, emojiSetDef = _b.emojiSetDef;
|
|
8
|
+
var latestReactions = propReactions || message.latest_reactions || [];
|
|
9
|
+
var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
|
|
10
|
+
var reactionCounts = propReactionCounts || message.reaction_counts || {};
|
|
11
|
+
var reactionOptions = propReactionOptions || defaultMinimalEmojis;
|
|
12
|
+
var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
|
|
13
|
+
var iHaveReactedWithReaction = useCallback(function (reactionType) { return ownReactions.find(function (reaction) { return reaction.type === reactionType; }); }, [ownReactions]);
|
|
14
|
+
var getEmojiByReactionType = useCallback(function (type) {
|
|
15
|
+
return reactionOptions.find(function (option) { return option.id === type; });
|
|
16
|
+
}, [reactionOptions]);
|
|
17
|
+
var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
|
|
18
|
+
var latestReactionTypes = useMemo(function () {
|
|
19
|
+
return latestReactions.reduce(function (reactionTypes, _a) {
|
|
20
|
+
var type = _a.type;
|
|
21
|
+
if (reactionTypes.indexOf(type) === -1) {
|
|
22
|
+
reactionTypes.push(type);
|
|
23
|
+
}
|
|
24
|
+
return reactionTypes;
|
|
25
|
+
}, []);
|
|
26
|
+
}, [latestReactions]);
|
|
27
|
+
var supportedReactionMap = useMemo(function () {
|
|
28
|
+
return reactionOptions.reduce(function (acc, _a) {
|
|
29
|
+
var id = _a.id;
|
|
30
|
+
acc[id] = true;
|
|
31
|
+
return acc;
|
|
32
|
+
}, {});
|
|
33
|
+
}, [reactionOptions]);
|
|
34
|
+
var supportedReactionsArePresent = useMemo(function () { return latestReactionTypes.some(function (type) { return supportedReactionMap[type]; }); }, [latestReactionTypes, supportedReactionMap]);
|
|
35
|
+
var totalReactionCount = useMemo(function () {
|
|
36
|
+
return supportedReactionsArePresent
|
|
37
|
+
? Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0)
|
|
38
|
+
: 0;
|
|
39
|
+
}, [reactionCounts, supportedReactionsArePresent]);
|
|
40
|
+
return {
|
|
41
|
+
additionalEmojiProps: reactionsAreCustom ? additionalEmojiProps : emojiSetDef,
|
|
42
|
+
emojiData: emojiData,
|
|
43
|
+
getEmojiByReactionType: getEmojiByReactionType,
|
|
44
|
+
iHaveReactedWithReaction: iHaveReactedWithReaction,
|
|
45
|
+
latestReactions: latestReactions,
|
|
46
|
+
latestReactionTypes: latestReactionTypes,
|
|
47
|
+
reactionCounts: reactionCounts,
|
|
48
|
+
supportedReactionsArePresent: supportedReactionsArePresent,
|
|
49
|
+
totalReactionCount: totalReactionCount,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { MessageActionsArray, MessageProps, MessageUIComponentProps } from '../Message';
|
|
3
2
|
import { MessageInputProps } from '../MessageInput';
|
|
4
3
|
import { MessageListProps, VirtualizedMessageListProps } from '../MessageList';
|
|
5
|
-
import {
|
|
4
|
+
import type { MessageProps, MessageUIComponentProps } from '../Message/types';
|
|
5
|
+
import type { MessageActionsArray } from '../Message/utils';
|
|
6
6
|
import type { CustomTrigger, DefaultStreamChatGenerics } from '../../types/types';
|
|
7
7
|
export declare type ThreadProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
|
|
8
8
|
/** Additional props for `MessageInput` component: [available props](https://getstream.io/chat/docs/sdk/react/message-input-components/message_input/#props) */
|
|
@@ -32,8 +32,4 @@ export declare type ThreadProps<StreamChatGenerics extends DefaultStreamChatGene
|
|
|
32
32
|
* The Thread component renders a parent Message with a list of replies
|
|
33
33
|
*/
|
|
34
34
|
export declare const Thread: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: ThreadProps<StreamChatGenerics, V>) => JSX.Element | null;
|
|
35
|
-
export declare type ThreadHeaderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
36
|
-
closeThread: (event: React.BaseSyntheticEvent) => void;
|
|
37
|
-
thread: StreamMessage<StreamChatGenerics>;
|
|
38
|
-
};
|
|
39
35
|
//# sourceMappingURL=Thread.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/Thread.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/Thread.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAGL,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,gBAAgB,EAEhB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAWxB,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAElF,oBAAY,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,CAAC,SAAS,aAAa,GAAG,aAAa,IACrC;IACF,+JAA+J;IAC/J,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACvE,oJAAoJ;IACpJ,0BAA0B,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAClE,oKAAoK;IACpK,4BAA4B,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAChE,mKAAmK;IACnK,qCAAqC,CAAC,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;IACxF,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gKAAgK;IAChK,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gQAAgQ;IAChQ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,mHAAmH;IACnH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3E,mKAAmK;IACnK,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,8LAYlB,CAAC"}
|
|
@@ -9,47 +9,13 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
16
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
17
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
18
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
|
-
function step(op) {
|
|
26
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
27
|
-
while (_) try {
|
|
28
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
29
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
30
|
-
switch (op[0]) {
|
|
31
|
-
case 0: case 1: t = op; break;
|
|
32
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
33
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
34
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
35
|
-
default:
|
|
36
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
37
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
38
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
39
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
40
|
-
if (t[2]) _.ops.pop();
|
|
41
|
-
_.trys.pop(); continue;
|
|
42
|
-
}
|
|
43
|
-
op = body.call(thisArg, _);
|
|
44
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
45
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
import React, { useEffect, useRef } from 'react';
|
|
49
|
-
import { FixedHeightMessage, Message, MESSAGE_ACTIONS } from '../Message';
|
|
50
|
-
import { MessageInput, MessageInputSmall } from '../MessageInput';
|
|
12
|
+
import React, { useEffect } from 'react';
|
|
13
|
+
import { MESSAGE_ACTIONS } from '../Message';
|
|
14
|
+
import { MessageInput, MessageInputFlat, MessageInputSmall, } from '../MessageInput';
|
|
51
15
|
import { MessageList, VirtualizedMessageList, } from '../MessageList';
|
|
52
|
-
import {
|
|
16
|
+
import { ThreadHeader as DefaultThreadHeader } from './ThreadHeader';
|
|
17
|
+
import { ThreadHead as DefaultThreadHead } from '../Thread/ThreadHead';
|
|
18
|
+
import { useChannelActionContext, useChannelStateContext, useChatContext, useComponentContext, } from '../../context';
|
|
53
19
|
/**
|
|
54
20
|
* The Thread component renders a parent Message with a list of replies
|
|
55
21
|
*/
|
|
@@ -58,65 +24,31 @@ export var Thread = function (props) {
|
|
|
58
24
|
if (!thread || (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies) === false)
|
|
59
25
|
return null;
|
|
60
26
|
// The wrapper ensures a key variable is set and the component recreates on thread switch
|
|
61
|
-
return React.createElement(ThreadInner, __assign({}, props, { key: "thread-"
|
|
62
|
-
};
|
|
63
|
-
var DefaultThreadHeader = function (props) {
|
|
64
|
-
var closeThread = props.closeThread, thread = props.thread;
|
|
65
|
-
var t = useTranslationContext('Thread').t;
|
|
66
|
-
var getReplyCount = function () {
|
|
67
|
-
if (!thread.reply_count)
|
|
68
|
-
return '';
|
|
69
|
-
return t('replyCount', { count: thread.reply_count });
|
|
70
|
-
};
|
|
71
|
-
return (React.createElement("div", { className: 'str-chat__thread-header' },
|
|
72
|
-
React.createElement("div", { className: 'str-chat__thread-header-details' },
|
|
73
|
-
React.createElement("strong", null, t('Thread')),
|
|
74
|
-
React.createElement("small", null, getReplyCount())),
|
|
75
|
-
React.createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
|
|
76
|
-
React.createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
77
|
-
React.createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' })))));
|
|
78
|
-
};
|
|
79
|
-
var DefaultThreadStart = function () {
|
|
80
|
-
var t = useTranslationContext('Thread').t;
|
|
81
|
-
return React.createElement("div", { className: 'str-chat__thread-start' }, t('Start of a new thread'));
|
|
27
|
+
return React.createElement(ThreadInner, __assign({}, props, { key: "thread-".concat(thread.id, "-").concat(channel === null || channel === void 0 ? void 0 : channel.cid) }));
|
|
82
28
|
};
|
|
83
29
|
var ThreadInner = function (props) {
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
var
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
-
var
|
|
90
|
-
var ThreadInput = PropInput
|
|
30
|
+
var _a, _b;
|
|
31
|
+
var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _c = props.autoFocus, autoFocus = _c === void 0 ? true : _c, _d = props.enableDateSeparator, enableDateSeparator = _d === void 0 ? false : _d, _e = props.fullWidth, fullWidth = _e === void 0 ? false : _e, PropInput = props.Input, PropMessage = props.Message, _f = props.messageActions, messageActions = _f === void 0 ? Object.keys(MESSAGE_ACTIONS) : _f, virtualized = props.virtualized;
|
|
32
|
+
var _g = useChannelStateContext('Thread'), thread = _g.thread, threadHasMore = _g.threadHasMore, threadLoadingMore = _g.threadLoadingMore, threadMessages = _g.threadMessages, threadSuppressAutoscroll = _g.threadSuppressAutoscroll;
|
|
33
|
+
var _h = useChannelActionContext('Thread'), closeThread = _h.closeThread, loadMoreThread = _h.loadMoreThread;
|
|
34
|
+
var _j = useChatContext('Thread'), customClasses = _j.customClasses, themeVersion = _j.themeVersion;
|
|
35
|
+
var _k = useComponentContext('Thread'), ContextInput = _k.ThreadInput, ContextMessage = _k.Message, _l = _k.ThreadHead, ThreadHead = _l === void 0 ? DefaultThreadHead : _l, _m = _k.ThreadHeader, ThreadHeader = _m === void 0 ? DefaultThreadHeader : _m, VirtualMessage = _k.VirtualMessage;
|
|
36
|
+
var ThreadInput = (_b = (_a = PropInput !== null && PropInput !== void 0 ? PropInput : additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) !== null && _a !== void 0 ? _a : ContextInput) !== null && _b !== void 0 ? _b : (themeVersion === '2' ? MessageInputFlat : MessageInputSmall);
|
|
91
37
|
var ThreadMessage = PropMessage || (additionalMessageListProps === null || additionalMessageListProps === void 0 ? void 0 : additionalMessageListProps.Message);
|
|
92
|
-
var FallbackMessage = virtualized ? VirtualMessage : ContextMessage;
|
|
38
|
+
var FallbackMessage = virtualized && VirtualMessage ? VirtualMessage : ContextMessage;
|
|
39
|
+
var MessageUIComponent = ThreadMessage || FallbackMessage;
|
|
93
40
|
var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
|
|
94
41
|
useEffect(function () {
|
|
95
42
|
if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
|
|
96
43
|
loadMoreThread();
|
|
97
44
|
}
|
|
98
45
|
}, []);
|
|
99
|
-
var threadSubmitHandler = function (message, _, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
-
return __generator(this, function (_a) {
|
|
101
|
-
switch (_a.label) {
|
|
102
|
-
case 0: return [4 /*yield*/, sendMessage(message, customMessageData)];
|
|
103
|
-
case 1:
|
|
104
|
-
_a.sent();
|
|
105
|
-
if (messageList.current) {
|
|
106
|
-
messageList.current.scrollTop = messageList.current.scrollHeight;
|
|
107
|
-
}
|
|
108
|
-
return [2 /*return*/];
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
}); };
|
|
112
46
|
if (!thread)
|
|
113
47
|
return null;
|
|
114
|
-
var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread';
|
|
115
|
-
|
|
48
|
+
var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread-container str-chat__thread';
|
|
49
|
+
var head = (React.createElement(ThreadHead, __assign({ key: thread.id, message: thread, Message: MessageUIComponent }, additionalParentMessageProps)));
|
|
50
|
+
return (React.createElement("div", { className: "".concat(threadClass, " ").concat(fullWidth ? 'str-chat__thread--full' : '') },
|
|
116
51
|
React.createElement(ThreadHeader, { closeThread: closeThread, thread: thread }),
|
|
117
|
-
React.createElement(
|
|
118
|
-
|
|
119
|
-
React.createElement(ThreadStart, null),
|
|
120
|
-
React.createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messageActions: messageActions, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
|
|
121
|
-
React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
|
|
52
|
+
React.createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, head: head, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: MessageUIComponent, messageActions: messageActions, messages: threadMessages || [], suppressAutoscroll: threadSuppressAutoscroll, threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps))),
|
|
53
|
+
React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
|
|
122
54
|
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { MessageProps } from '../Message';
|
|
2
|
+
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
3
|
+
export declare const ThreadHead: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: MessageProps<StreamChatGenerics, import("../../types/types").CustomTrigger>) => JSX.Element;
|
|
4
|
+
//# sourceMappingURL=ThreadHead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadHead.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadHead.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,YAAY,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,UAAU,uLActB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { Message } from '../Message';
|
|
14
|
+
import { ThreadStart as DefaultThreadStart } from './ThreadStart';
|
|
15
|
+
import { useComponentContext } from '../../context';
|
|
16
|
+
export var ThreadHead = function (props) {
|
|
17
|
+
var _a = useComponentContext('ThreadHead').ThreadStart, ThreadStart = _a === void 0 ? DefaultThreadStart : _a;
|
|
18
|
+
return (React.createElement("div", { className: 'str-chat__parent-message-li' },
|
|
19
|
+
React.createElement(Message, __assign({ initialMessage: true, threadList: true }, props)),
|
|
20
|
+
React.createElement(ThreadStart, null)));
|
|
21
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ChannelPreviewInfoParams } from '../ChannelPreview/hooks/useChannelPreviewInfo';
|
|
3
|
+
import { StreamMessage } from '../../context/ChannelStateContext';
|
|
4
|
+
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
+
export declare type ThreadHeaderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
6
|
+
/** Callback for closing the thread */
|
|
7
|
+
closeThread: (event: React.BaseSyntheticEvent) => void;
|
|
8
|
+
/** The thread parent message */
|
|
9
|
+
thread: StreamMessage<StreamChatGenerics>;
|
|
10
|
+
};
|
|
11
|
+
export declare const ThreadHeader: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: ThreadHeaderProps<StreamChatGenerics> & Pick<ChannelPreviewInfoParams<StreamChatGenerics>, "overrideImage" | "overrideTitle">) => JSX.Element;
|
|
12
|
+
//# sourceMappingURL=ThreadHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadHeader.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,wBAAwB,EAEzB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,aAAa,EAA0B,MAAM,mCAAmC,CAAC;AAG1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,sCAAsC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACvD,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,YAAY,yOAgCxB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useChannelPreviewInfo, } from '../ChannelPreview/hooks/useChannelPreviewInfo';
|
|
3
|
+
import { CloseIcon } from './icons';
|
|
4
|
+
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
5
|
+
import { useTranslationContext } from '../../context/TranslationContext';
|
|
6
|
+
export var ThreadHeader = function (props) {
|
|
7
|
+
var closeThread = props.closeThread, overrideImage = props.overrideImage, overrideTitle = props.overrideTitle;
|
|
8
|
+
var t = useTranslationContext('ThreadHeader').t;
|
|
9
|
+
var channel = useChannelStateContext('').channel;
|
|
10
|
+
var displayTitle = useChannelPreviewInfo({
|
|
11
|
+
channel: channel,
|
|
12
|
+
overrideImage: overrideImage,
|
|
13
|
+
overrideTitle: overrideTitle,
|
|
14
|
+
}).displayTitle;
|
|
15
|
+
return (React.createElement("div", { className: 'str-chat__thread-header' },
|
|
16
|
+
React.createElement("div", { className: 'str-chat__thread-header-details' },
|
|
17
|
+
React.createElement("div", { className: 'str-chat__thread-header-title' }, t('Thread')),
|
|
18
|
+
React.createElement("div", { className: 'str-chat__thread-header-subtitle' }, displayTitle)),
|
|
19
|
+
React.createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button str-chat__close-thread-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
|
|
20
|
+
React.createElement(CloseIcon, null))));
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThreadStart.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadStart.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,0BAWvB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
3
|
+
import { useTranslationContext } from '../../context/TranslationContext';
|
|
4
|
+
export var ThreadStart = function () {
|
|
5
|
+
var thread = useChannelStateContext('ThreadStart').thread;
|
|
6
|
+
var t = useTranslationContext('ThreadStart').t;
|
|
7
|
+
if (!(thread === null || thread === void 0 ? void 0 : thread.reply_count))
|
|
8
|
+
return null;
|
|
9
|
+
return (React.createElement("div", { className: 'str-chat__thread-start' }, t('replyCount', { count: thread.reply_count })));
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/icons.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;iBAiBrB,CAAC"}
|