stream-chat-react 11.8.0 → 11.9.0
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/{Window-7c2f264c.js → Window-5e0717c0.js} +1275 -132
- package/dist/browser.full-bundle.js +1402 -164
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +4 -4
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/Attachment.d.ts +1 -1
- package/dist/components/Attachment/Attachment.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentActions.d.ts +2 -1
- package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentContainer.d.ts +9 -9
- package/dist/components/Attachment/AttachmentContainer.d.ts.map +1 -1
- package/dist/components/Attachment/Audio.d.ts +3 -3
- package/dist/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/components/Attachment/Card.d.ts +3 -2
- package/dist/components/Attachment/Card.d.ts.map +1 -1
- package/dist/components/Attachment/DownloadButton.d.ts +2 -1
- package/dist/components/Attachment/DownloadButton.d.ts.map +1 -1
- package/dist/components/Attachment/FileAttachment.d.ts +2 -1
- package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/components/Attachment/FileSizeIndicator.d.ts +2 -1
- package/dist/components/Attachment/FileSizeIndicator.d.ts.map +1 -1
- package/dist/components/Attachment/UnsupportedAttachment.d.ts +2 -1
- package/dist/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
- package/dist/components/Attachment/icons.d.ts +4 -3
- package/dist/components/Attachment/icons.d.ts.map +1 -1
- package/dist/components/Attachment/utils.d.ts +8 -8
- package/dist/components/Attachment/utils.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Header.d.ts +2 -1
- package/dist/components/AutoCompleteTextarea/Header.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/List.d.ts +2 -1
- package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +2 -2
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +1 -1
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Channel/Channel.d.ts +2 -2
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +58 -52
- package/dist/components/Channel/LoadingChannel.d.ts +2 -1
- package/dist/components/Channel/LoadingChannel.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.d.ts +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/components/ChannelHeader/ChannelHeader.js +1 -1
- package/dist/components/ChannelHeader/icons.d.ts +2 -1
- package/dist/components/ChannelHeader/icons.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.d.ts +1 -1
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelListMessenger.js +3 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +1 -1
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +1 -3
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/dist/components/ChannelPreview/ChannelPreview.js +11 -8
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -1
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
- package/dist/components/ChannelPreview/utils.d.ts +2 -1
- package/dist/components/ChannelPreview/utils.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchBar.d.ts +1 -1
- package/dist/components/ChannelSearch/SearchBar.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts +1 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchResults.d.ts +1 -1
- package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchResults.js +2 -1
- package/dist/components/ChannelSearch/icons.d.ts +5 -4
- package/dist/components/ChannelSearch/icons.d.ts.map +1 -1
- package/dist/components/Chat/Chat.d.ts +1 -1
- package/dist/components/Chat/Chat.d.ts.map +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +1 -1
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +1 -1
- package/dist/components/ChatDown/ChatDown.d.ts +1 -1
- package/dist/components/ChatDown/ChatDown.d.ts.map +1 -1
- package/dist/components/ChatDown/icons.d.ts +2 -1
- package/dist/components/ChatDown/icons.d.ts.map +1 -1
- package/dist/components/CommandItem/CommandItem.d.ts +2 -2
- package/dist/components/CommandItem/CommandItem.d.ts.map +1 -1
- package/dist/components/DateSeparator/DateSeparator.d.ts +2 -1
- package/dist/components/DateSeparator/DateSeparator.d.ts.map +1 -1
- package/dist/components/Emojis/EmojiPicker.d.ts +1 -1
- package/dist/components/Emojis/EmojiPicker.d.ts.map +1 -1
- package/dist/components/Emojis/EmojiPicker.js +1 -1
- package/dist/components/Emojis/index.cjs.js +4 -4
- package/dist/components/EmoticonItem/EmoticonItem.d.ts +2 -1
- package/dist/components/EmoticonItem/EmoticonItem.d.ts.map +1 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +2 -1
- package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
- package/dist/components/EmptyStateIndicator/icons.d.ts +2 -1
- package/dist/components/EmptyStateIndicator/icons.d.ts.map +1 -1
- package/dist/components/EventComponent/EventComponent.d.ts +1 -1
- package/dist/components/EventComponent/EventComponent.d.ts.map +1 -1
- package/dist/components/Gallery/BaseImage.d.ts +2 -2
- package/dist/components/Gallery/BaseImage.d.ts.map +1 -1
- package/dist/components/Gallery/Gallery.d.ts +2 -2
- package/dist/components/Gallery/Gallery.d.ts.map +1 -1
- package/dist/components/Gallery/Image.d.ts +2 -2
- package/dist/components/Gallery/Image.d.ts.map +1 -1
- package/dist/components/Gallery/ModalGallery.d.ts +2 -1
- package/dist/components/Gallery/ModalGallery.d.ts.map +1 -1
- package/dist/components/LoadMore/LoadMoreButton.d.ts +1 -1
- package/dist/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
- package/dist/components/LoadMore/LoadMoreButton.js +1 -1
- package/dist/components/LoadMore/LoadMorePaginator.d.ts +2 -2
- package/dist/components/LoadMore/LoadMorePaginator.d.ts.map +1 -1
- package/dist/components/Loading/LoadingChannels.d.ts +1 -1
- package/dist/components/Loading/LoadingChannels.d.ts.map +1 -1
- package/dist/components/Loading/LoadingErrorIndicator.d.ts +2 -1
- package/dist/components/Loading/LoadingErrorIndicator.d.ts.map +1 -1
- package/dist/components/Loading/LoadingIndicator.d.ts +2 -1
- package/dist/components/Loading/LoadingIndicator.d.ts.map +1 -1
- package/dist/components/MML/MML.d.ts +2 -1
- package/dist/components/MML/MML.d.ts.map +1 -1
- package/dist/components/Message/FixedHeightMessage.d.ts +2 -1
- package/dist/components/Message/FixedHeightMessage.d.ts.map +1 -1
- package/dist/components/Message/Message.d.ts +2 -1
- package/dist/components/Message/Message.d.ts.map +1 -1
- package/dist/components/Message/MessageDeleted.d.ts +2 -1
- package/dist/components/Message/MessageDeleted.d.ts.map +1 -1
- package/dist/components/Message/MessageErrorText.d.ts +2 -2
- package/dist/components/Message/MessageErrorText.d.ts.map +1 -1
- package/dist/components/Message/MessageOptions.d.ts +1 -1
- package/dist/components/Message/MessageOptions.d.ts.map +1 -1
- package/dist/components/Message/MessageOptions.js +5 -3
- package/dist/components/Message/MessageRepliesCountButton.d.ts +2 -2
- package/dist/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
- package/dist/components/Message/MessageSimple.d.ts +2 -1
- package/dist/components/Message/MessageSimple.d.ts.map +1 -1
- package/dist/components/Message/MessageStatus.d.ts +1 -1
- package/dist/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/components/Message/MessageText.d.ts +2 -1
- package/dist/components/Message/MessageText.d.ts.map +1 -1
- package/dist/components/Message/MessageTimestamp.d.ts +2 -1
- package/dist/components/Message/MessageTimestamp.d.ts.map +1 -1
- package/dist/components/Message/QuotedMessage.d.ts +2 -1
- package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
- package/dist/components/Message/icons.d.ts +11 -10
- package/dist/components/Message/icons.d.ts.map +1 -1
- package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +2 -2
- package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts.map +1 -1
- package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +2 -1
- package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts.map +1 -1
- package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +2 -2
- package/dist/components/Message/renderText/componentRenderers/Mention.d.ts.map +1 -1
- package/dist/components/Message/renderText/renderText.d.ts +2 -2
- package/dist/components/Message/renderText/renderText.d.ts.map +1 -1
- package/dist/components/MessageActions/CustomMessageActionsList.d.ts +2 -1
- package/dist/components/MessageActions/CustomMessageActionsList.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActions.d.ts +1 -1
- package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActions.js +3 -1
- package/dist/components/MessageActions/MessageActionsBox.d.ts +1 -1
- package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
- package/dist/components/MessageActions/MessageActionsBox.js +1 -1
- package/dist/components/MessageBounce/MessageBounceModal.d.ts +2 -2
- package/dist/components/MessageBounce/MessageBounceModal.d.ts.map +1 -1
- package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +2 -1
- package/dist/components/MessageBounce/MessageBouncePrompt.d.ts.map +1 -1
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts +3 -2
- package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -1
- package/dist/components/MessageInput/CooldownTimer.d.ts +1 -1
- package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +1 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/DropzoneProvider.d.ts +1 -1
- package/dist/components/MessageInput/DropzoneProvider.d.ts.map +1 -1
- package/dist/components/MessageInput/EditMessageForm.d.ts +2 -1
- package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
- package/dist/components/MessageInput/LinkPreviewList.d.ts +2 -1
- package/dist/components/MessageInput/LinkPreviewList.d.ts.map +1 -1
- 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 +2 -1
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +1 -1
- package/dist/components/MessageInput/MessageInputSmall.d.ts +2 -1
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +3 -2
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/components/MessageInput/QuotedMessagePreview.js +1 -1
- package/dist/components/MessageInput/UploadsPreview.d.ts +2 -1
- package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.d.ts +14 -14
- package/dist/components/MessageInput/icons.d.ts.map +1 -1
- package/dist/components/MessageInput/icons.js +2 -1
- package/dist/components/MessageList/ConnectionStatus.d.ts +1 -1
- package/dist/components/MessageList/ConnectionStatus.d.ts.map +1 -1
- package/dist/components/MessageList/CustomNotification.d.ts +2 -2
- package/dist/components/MessageList/CustomNotification.d.ts.map +1 -1
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts +2 -1
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.d.ts +7 -3
- package/dist/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList/MessageList.js +3 -2
- package/dist/components/MessageList/MessageListMainPanel.d.ts +2 -1
- package/dist/components/MessageList/MessageListMainPanel.d.ts.map +1 -1
- package/dist/components/MessageList/MessageListNotifications.d.ts +1 -1
- package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -1
- package/dist/components/MessageList/MessageNotification.d.ts +1 -1
- package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
- package/dist/components/MessageList/ScrollToBottomButton.d.ts +2 -1
- package/dist/components/MessageList/ScrollToBottomButton.d.ts.map +1 -1
- package/dist/components/MessageList/ScrollToBottomButton.js +44 -3
- package/dist/components/MessageList/UnreadMessagesNotification.d.ts +12 -1
- package/dist/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
- package/dist/components/MessageList/UnreadMessagesNotification.js +4 -2
- package/dist/components/MessageList/UnreadMessagesSeparator.d.ts +9 -1
- package/dist/components/MessageList/UnreadMessagesSeparator.d.ts.map +1 -1
- package/dist/components/MessageList/UnreadMessagesSeparator.js +2 -2
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +7 -3
- package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/components/MessageList/VirtualizedMessageList.js +4 -3
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +6 -6
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +2 -1
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js +27 -13
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +3 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +13 -7
- package/dist/components/MessageList/hooks/useMarkRead.d.ts +3 -2
- package/dist/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
- package/dist/components/MessageList/hooks/useMarkRead.js +65 -11
- package/dist/components/MessageList/icons.d.ts +4 -3
- package/dist/components/MessageList/icons.d.ts.map +1 -1
- package/dist/components/MessageList/renderMessages.d.ts +2 -2
- package/dist/components/MessageList/renderMessages.d.ts.map +1 -1
- package/dist/components/Modal/Modal.d.ts +1 -1
- package/dist/components/Modal/Modal.d.ts.map +1 -1
- package/dist/components/Modal/Modal.js +9 -7
- package/dist/components/Modal/icons.d.ts +2 -1
- package/dist/components/Modal/icons.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts +12 -12
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts +18 -18
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FilePreviewer.d.ts +2 -1
- package/dist/components/ReactFileUtilities/FilePreviewer.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FileUploadButton.d.ts +2 -2
- package/dist/components/ReactFileUtilities/FileUploadButton.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/FileUploadButton.js +3 -1
- package/dist/components/ReactFileUtilities/IconButton.d.ts +2 -2
- package/dist/components/ReactFileUtilities/IconButton.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/IconButton.js +3 -1
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +2 -2
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts +2 -2
- package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/ImagePreviewer.js +3 -1
- package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts +2 -2
- package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/ImageUploadButton.js +3 -1
- package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts +2 -1
- package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/Thumbnail.d.ts +2 -2
- package/dist/components/ReactFileUtilities/Thumbnail.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts +2 -1
- package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/UploadButton.d.ts +2 -2
- package/dist/components/ReactFileUtilities/UploadButton.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts +2 -1
- package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts +2 -1
- package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts +2 -2
- package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts +2 -1
- package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts.map +1 -1
- package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts +2 -1
- package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.d.ts +2 -1
- package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsList.js +3 -1
- package/dist/components/Reactions/ReactionsListModal.d.ts +2 -2
- package/dist/components/Reactions/ReactionsListModal.d.ts.map +1 -1
- package/dist/components/Reactions/ReactionsListModal.js +2 -2
- package/dist/components/Reactions/SimpleReactionsList.d.ts +2 -1
- package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
- package/dist/components/Reactions/SpriteImage.d.ts +2 -1
- package/dist/components/Reactions/SpriteImage.d.ts.map +1 -1
- package/dist/components/Reactions/SpriteImage.js +3 -17
- package/dist/components/Reactions/StreamEmoji.d.ts +1 -1
- package/dist/components/Reactions/StreamEmoji.d.ts.map +1 -1
- package/dist/components/Reactions/StreamEmoji.js +3 -1
- package/dist/components/Reactions/hooks/useFetchReactions.js +2 -2
- package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -2
- package/dist/components/SafeAnchor/SafeAnchor.d.ts.map +1 -1
- package/dist/components/SafeAnchor/SafeAnchor.js +3 -1
- package/dist/components/Thread/Thread.d.ts +1 -1
- package/dist/components/Thread/Thread.d.ts.map +1 -1
- package/dist/components/Thread/ThreadHead.d.ts +2 -1
- package/dist/components/Thread/ThreadHead.d.ts.map +1 -1
- package/dist/components/Thread/ThreadHeader.d.ts +1 -1
- package/dist/components/Thread/ThreadHeader.d.ts.map +1 -1
- package/dist/components/Thread/ThreadHeader.js +1 -1
- package/dist/components/Thread/ThreadStart.d.ts +2 -1
- package/dist/components/Thread/ThreadStart.d.ts.map +1 -1
- package/dist/components/Thread/icons.d.ts +2 -1
- package/dist/components/Thread/icons.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +2 -2
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.d.ts +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/components/UserItem/UserItem.d.ts +1 -1
- package/dist/components/UserItem/UserItem.d.ts.map +1 -1
- package/dist/components/Window/Window.d.ts +1 -1
- package/dist/components/Window/Window.d.ts.map +1 -1
- package/dist/context/ChannelActionContext.d.ts +4 -3
- package/dist/context/ChannelActionContext.d.ts.map +1 -1
- package/dist/context/ChannelListContext.d.ts +1 -1
- package/dist/context/ChannelListContext.d.ts.map +1 -1
- package/dist/context/ChannelStateContext.d.ts +2 -2
- package/dist/context/ChannelStateContext.d.ts.map +1 -1
- package/dist/context/ChatContext.d.ts +2 -2
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ComponentContext.d.ts +2 -2
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/context/MessageBounceContext.d.ts +2 -2
- package/dist/context/MessageBounceContext.d.ts.map +1 -1
- package/dist/context/MessageContext.d.ts +2 -2
- package/dist/context/MessageContext.d.ts.map +1 -1
- package/dist/context/MessageInputContext.d.ts +1 -1
- package/dist/context/MessageInputContext.d.ts.map +1 -1
- package/dist/context/MessageListContext.d.ts +1 -1
- package/dist/context/MessageListContext.d.ts.map +1 -1
- package/dist/context/TranslationContext.d.ts +2 -2
- package/dist/context/TranslationContext.d.ts.map +1 -1
- package/dist/context/TypingContext.d.ts +2 -2
- package/dist/context/TypingContext.d.ts.map +1 -1
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/i18n/Streami18n.d.ts +19 -0
- package/dist/i18n/Streami18n.d.ts.map +1 -1
- package/dist/i18n/de.json +19 -0
- package/dist/i18n/en.json +19 -0
- package/dist/i18n/es.json +19 -0
- package/dist/i18n/fr.json +19 -0
- package/dist/i18n/hi.json +19 -0
- package/dist/i18n/it.json +19 -0
- package/dist/i18n/ja.json +19 -0
- package/dist/i18n/ko.json +19 -0
- package/dist/i18n/nl.json +19 -0
- package/dist/i18n/pt.json +19 -0
- package/dist/i18n/ru.json +19 -0
- package/dist/i18n/tr.json +19 -0
- package/dist/index.cjs.js +117 -40
- package/dist/scss/v2/MessageReactions/MessageReactions-layout.scss +15 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -6
|
@@ -2,11 +2,13 @@ import React from 'react';
|
|
|
2
2
|
import { CloseIcon } from './icons';
|
|
3
3
|
import { useChannelActionContext, useTranslationContext } from '../../context';
|
|
4
4
|
export var UnreadMessagesNotification = function (_a) {
|
|
5
|
-
var queryMessageLimit = _a.queryMessageLimit, unreadCount = _a.unreadCount;
|
|
5
|
+
var queryMessageLimit = _a.queryMessageLimit, showCount = _a.showCount, unreadCount = _a.unreadCount;
|
|
6
6
|
var _b = useChannelActionContext('UnreadMessagesNotification'), jumpToFirstUnreadMessage = _b.jumpToFirstUnreadMessage, markRead = _b.markRead;
|
|
7
7
|
var t = useTranslationContext('UnreadMessagesNotification').t;
|
|
8
8
|
return (React.createElement("div", { className: 'str-chat__unread-messages-notification', "data-testid": 'unread-messages-notification' },
|
|
9
|
-
React.createElement("button", { onClick: function () { return jumpToFirstUnreadMessage(queryMessageLimit); } },
|
|
9
|
+
React.createElement("button", { onClick: function () { return jumpToFirstUnreadMessage(queryMessageLimit); } }, unreadCount && showCount
|
|
10
|
+
? t('{{count}} unread', { count: unreadCount !== null && unreadCount !== void 0 ? unreadCount : 0 })
|
|
11
|
+
: t('Unread messages')),
|
|
10
12
|
React.createElement("button", { onClick: function () { return markRead(); } },
|
|
11
13
|
React.createElement(CloseIcon, null))));
|
|
12
14
|
};
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
export declare const UNREAD_MESSAGE_SEPARATOR_CLASS = "str-chat__unread-messages-separator";
|
|
2
3
|
export type UnreadMessagesSeparatorProps = {
|
|
4
|
+
/**
|
|
5
|
+
* Configuration parameter to determine, whether the unread count is to be shown on the component. Disabled by default.
|
|
6
|
+
*/
|
|
7
|
+
showCount?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The count of unread messages to be displayed if enabled.
|
|
10
|
+
*/
|
|
3
11
|
unreadCount?: number;
|
|
4
12
|
};
|
|
5
|
-
export declare const UnreadMessagesSeparator: ({ unreadCount }: UnreadMessagesSeparatorProps) => JSX.Element;
|
|
13
|
+
export declare const UnreadMessagesSeparator: ({ showCount, unreadCount, }: UnreadMessagesSeparatorProps) => React.JSX.Element;
|
|
6
14
|
//# sourceMappingURL=UnreadMessagesSeparator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnreadMessagesSeparator.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/UnreadMessagesSeparator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UnreadMessagesSeparator.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/UnreadMessagesSeparator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,MAAM,MAAM,4BAA4B,GAAG;IACzC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,uBAAuB,gCAGjC,4BAA4B,sBAS9B,CAAC"}
|
|
@@ -2,9 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { useTranslationContext } from '../../context';
|
|
3
3
|
export var UNREAD_MESSAGE_SEPARATOR_CLASS = 'str-chat__unread-messages-separator';
|
|
4
4
|
export var UnreadMessagesSeparator = function (_a) {
|
|
5
|
-
var unreadCount = _a.unreadCount;
|
|
5
|
+
var showCount = _a.showCount, unreadCount = _a.unreadCount;
|
|
6
6
|
var t = useTranslationContext('UnreadMessagesSeparator').t;
|
|
7
|
-
return (React.createElement("div", { className: UNREAD_MESSAGE_SEPARATOR_CLASS, "data-testid": 'unread-messages-separator' }, unreadCount
|
|
7
|
+
return (React.createElement("div", { className: UNREAD_MESSAGE_SEPARATOR_CLASS, "data-testid": 'unread-messages-separator' }, unreadCount && showCount
|
|
8
8
|
? t('unreadMessagesSeparatorText', { count: unreadCount })
|
|
9
9
|
: t('Unread messages')));
|
|
10
10
|
};
|
|
@@ -74,8 +74,6 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
74
74
|
loadMore?: ChannelActionContextValue['loadMore'] | (() => Promise<void>);
|
|
75
75
|
/** Function called when new messages are to be loaded, defaults to function stored in [ChannelActionContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_action_context/) */
|
|
76
76
|
loadMoreNewer?: ChannelActionContextValue['loadMore'] | (() => Promise<void>);
|
|
77
|
-
/** When enabled, the channel will be marked read when a user scrolls to the bottom. Ignored when scrolled to the bottom of a thread message list. */
|
|
78
|
-
markReadOnScrolledToBottom?: boolean;
|
|
79
77
|
/** Custom UI component to display a message, defaults to and accepts same props as [MessageSimple](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Message/MessageSimple.tsx) */
|
|
80
78
|
Message?: React.ComponentType<MessageUIComponentProps<StreamChatGenerics>>;
|
|
81
79
|
/** The limit to use when paginating messages */
|
|
@@ -111,6 +109,12 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
111
109
|
separateGiphyPreview?: boolean;
|
|
112
110
|
/** If true, group messages belonging to the same user, otherwise show each message individually */
|
|
113
111
|
shouldGroupByUser?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* The floating notification informing about unread messages will be shown when the
|
|
114
|
+
* UnreadMessagesSeparator is not visible. The default is false, that means the notification
|
|
115
|
+
* is shown only when viewing unread messages.
|
|
116
|
+
*/
|
|
117
|
+
showUnreadNotificationAlways?: boolean;
|
|
114
118
|
/** The scrollTo behavior when new messages appear. Use `"smooth"` for regular chat channels, and `"auto"` (which results in instant scroll to bottom) if you expect high throughput. */
|
|
115
119
|
stickToBottomScrollBehavior?: 'smooth' | 'auto';
|
|
116
120
|
/** stops the list from autoscrolling when new messages are loaded */
|
|
@@ -122,6 +126,6 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
122
126
|
* The VirtualizedMessageList component renders a list of messages in a virtualized list.
|
|
123
127
|
* It is a consumer of the React contexts set in [Channel](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Channel/Channel.tsx).
|
|
124
128
|
*/
|
|
125
|
-
export declare function VirtualizedMessageList<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: VirtualizedMessageListProps<StreamChatGenerics>): JSX.Element;
|
|
129
|
+
export declare function VirtualizedMessageList<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: VirtualizedMessageListProps<StreamChatGenerics>): React.JSX.Element;
|
|
126
130
|
export {};
|
|
127
131
|
//# sourceMappingURL=VirtualizedMessageList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAC;AAClF,OAAO,EAEL,uBAAuB,EACvB,0BAA0B,EAE1B,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AAkBxB,OAAO,EAAmC,UAAU,EAAmB,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,YAAY,EAAiB,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAalF,OAAO,EACL,yBAAyB,EAE1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAGL,aAAa,EAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAkB,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAuB,MAAM,gCAAgC,CAAC;AAE5F,OAAO,KAAK,EAA+C,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhF,KAAK,qCAAqC,GACtC,6BAA6B,GAC7B,8BAA8B,GAC9B,sBAAsB,GACtB,uBAAuB,GACvB,MAAM,GACN,aAAa,GACb,SAAS,GACT,gBAAgB,GAChB,mBAAmB,GACnB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,QAAQ,CACV,IAAI,CACF,qBAAqB,CAAC,kBAAkB,CAAC,EACzC,eAAe,GAAG,eAAe,GAAG,yBAAyB,CAC9D,CACF,GACC,IAAI,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,EAAE,qCAAqC,CAAC,GAC5F,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,GAAG;IAC5D,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,mJAAmJ;IACnJ,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,4IAA4I;IAC5I,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8FAA8F;IAC9F,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC5E,2GAA2G;IAC3G,iBAAiB,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,yHAAyH;IACzH,WAAW,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACvC,4GAA4G;IAC5G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"VirtualizedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -47,11 +47,11 @@ function calculateInitialTopMostItemIndex(messages, highlightedMessageId) {
|
|
|
47
47
|
}
|
|
48
48
|
var VirtualizedMessageListWithContext = function (props) {
|
|
49
49
|
var _a, _b;
|
|
50
|
-
var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer,
|
|
50
|
+
var additionalMessageInputProps = props.additionalMessageInputProps, _c = props.additionalVirtuosoProps, additionalVirtuosoProps = _c === void 0 ? {} : _c, channel = props.channel, channelUnreadUiState = props.channelUnreadUiState, closeReactionSelectorOnClick = props.closeReactionSelectorOnClick, customMessageActions = props.customMessageActions, customMessageRenderer = props.customMessageRenderer, defaultItemHeight = props.defaultItemHeight, _d = props.disableDateSeparator, disableDateSeparator = _d === void 0 ? true : _d, groupStyles = props.groupStyles, hasMoreNewer = props.hasMoreNewer, head = props.head, _e = props.hideDeletedMessages, hideDeletedMessages = _e === void 0 ? false : _e, _f = props.hideNewMessageSeparator, hideNewMessageSeparator = _f === void 0 ? false : _f, highlightedMessageId = props.highlightedMessageId, jumpToLatestMessage = props.jumpToLatestMessage, loadingMore = props.loadingMore, loadMore = props.loadMore, loadMoreNewer = props.loadMoreNewer, MessageUIComponentFromProps = props.Message, messageActions = props.messageActions, _g = props.messageLimit, messageLimit = _g === void 0 ? 100 : _g, messages = props.messages, notifications = props.notifications,
|
|
51
51
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
52
52
|
_h = props.overscan,
|
|
53
53
|
// TODO: refactor to scrollSeekPlaceHolderConfiguration and components.ScrollSeekPlaceholder, like the Virtuoso Component
|
|
54
|
-
overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
|
|
54
|
+
overscan = _h === void 0 ? 0 : _h, read = props.read, _j = props.returnAllReadData, returnAllReadData = _j === void 0 ? false : _j, scrollSeekPlaceHolder = props.scrollSeekPlaceHolder, _k = props.scrollToLatestMessageOnFocus, scrollToLatestMessageOnFocus = _k === void 0 ? false : _k, _l = props.separateGiphyPreview, separateGiphyPreview = _l === void 0 ? false : _l, _m = props.shouldGroupByUser, shouldGroupByUser = _m === void 0 ? false : _m, showUnreadNotificationAlways = props.showUnreadNotificationAlways, _o = props.stickToBottomScrollBehavior, stickToBottomScrollBehavior = _o === void 0 ? 'smooth' : _o, suppressAutoscroll = props.suppressAutoscroll, threadList = props.threadList;
|
|
55
55
|
var virtuosoComponentsFromProps = additionalVirtuosoProps.components, overridingVirtuosoProps = __rest(additionalVirtuosoProps, ["components"]);
|
|
56
56
|
// Stops errors generated from react-virtuoso to bubble up
|
|
57
57
|
// to Sentry or other tracking tools.
|
|
@@ -63,6 +63,7 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
63
63
|
var lastRead = useMemo(function () { var _a; return (_a = channel.lastRead) === null || _a === void 0 ? void 0 : _a.call(channel); }, [channel]);
|
|
64
64
|
var _w = useUnreadMessagesNotificationVirtualized({
|
|
65
65
|
lastRead: channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read,
|
|
66
|
+
showAlways: !!showUnreadNotificationAlways,
|
|
66
67
|
unreadCount: (_a = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _a !== void 0 ? _a : 0,
|
|
67
68
|
}), showUnreadMessagesNotification = _w.show, toggleShowUnreadMessagesNotification = _w.toggleShowUnreadMessagesNotification;
|
|
68
69
|
var _x = useGiphyPreview(separateGiphyPreview), giphyPreviewMessage = _x.giphyPreviewMessage, setGiphyPreviewMessage = _x.setGiphyPreviewMessage;
|
|
@@ -120,9 +121,9 @@ var VirtualizedMessageListWithContext = function (props) {
|
|
|
120
121
|
var _y = useNewMessageNotification(processedMessages, client.userID, hasMoreNewer), atBottom = _y.atBottom, isMessageListScrolledToBottom = _y.isMessageListScrolledToBottom, newMessagesNotification = _y.newMessagesNotification, setIsMessageListScrolledToBottom = _y.setIsMessageListScrolledToBottom, setNewMessagesNotification = _y.setNewMessagesNotification;
|
|
121
122
|
useMarkRead({
|
|
122
123
|
isMessageListScrolledToBottom: isMessageListScrolledToBottom,
|
|
123
|
-
markReadOnScrolledToBottom: markReadOnScrolledToBottom,
|
|
124
124
|
messageListIsThread: !!threadList,
|
|
125
125
|
unreadCount: (_b = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages) !== null && _b !== void 0 ? _b : 0,
|
|
126
|
+
wasMarkedUnread: !!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id),
|
|
126
127
|
});
|
|
127
128
|
var scrollToBottom = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
128
129
|
return __generator(this, function (_a) {
|
|
@@ -9,17 +9,17 @@ export declare const makeItemsRenderedHandler: <StreamChatGenerics extends Defau
|
|
|
9
9
|
type CommonVirtuosoComponentProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
10
10
|
context?: VirtuosoContext<StreamChatGenerics>;
|
|
11
11
|
};
|
|
12
|
-
export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: Pick<
|
|
12
|
+
export declare const Item: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, ...props }: Pick<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
13
13
|
ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
14
14
|
}, "style" | "children"> & {
|
|
15
15
|
'data-index': number;
|
|
16
16
|
'data-item-index': number;
|
|
17
17
|
'data-item-group-index'?: number | undefined;
|
|
18
18
|
'data-known-size': number;
|
|
19
|
-
} & CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
|
|
20
|
-
export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element | null;
|
|
21
|
-
export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => JSX.Element;
|
|
22
|
-
export declare const Footer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => JSX.Element | null;
|
|
23
|
-
export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => JSX.Element | null;
|
|
19
|
+
} & CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element;
|
|
20
|
+
export declare const Header: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element | null;
|
|
21
|
+
export declare const EmptyPlaceholder: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ context, }: CommonVirtuosoComponentProps<StreamChatGenerics>) => React.JSX.Element;
|
|
22
|
+
export declare const Footer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => React.JSX.Element | null;
|
|
23
|
+
export declare const messageRenderer: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext<StreamChatGenerics>) => React.JSX.Element | null;
|
|
24
24
|
export {};
|
|
25
25
|
//# sourceMappingURL=VirtualizedMessageListComponents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedMessageListComponents.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageListComponents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMrD,OAAO,EAAU,aAAa,EAAuB,MAAM,eAAe,CAAC;AAI3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhF,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAElF;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,UAEhE;AAED,eAAO,MAAM,wBAAwB,0JAGuC,IAAI,uGAG7D,SAAS,WAAW,CAAC,EAAE,UAUjC,CAAC;AAEV,KAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAGF,eAAO,MAAM,IAAI;;;;;;;
|
|
1
|
+
{"version":3,"file":"VirtualizedMessageListComponents.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/VirtualizedMessageListComponents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMrD,OAAO,EAAU,aAAa,EAAuB,MAAM,eAAe,CAAC;AAI3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhF,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAElF;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,UAEhE;AAED,eAAO,MAAM,wBAAwB,0JAGuC,IAAI,uGAG7D,SAAS,WAAW,CAAC,EAAE,UAUjC,CAAC;AAEV,KAAK,4BAA4B,CAC/B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAGF,eAAO,MAAM,IAAI;;;;;;;0EAyBhB,CAAC;AACF,eAAO,MAAM,MAAM,gLAgBlB,CAAC;AACF,eAAO,MAAM,gBAAgB,yKAe5B,CAAC;AACF,eAAO,MAAM,MAAM,kHAKlB,CAAC;AACF,eAAO,MAAM,eAAe,oGAGX,MAAM,SACd,WAAW,mFA+EnB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export type UseUnreadMessagesNotificationParams = {
|
|
2
2
|
isMessageListScrolledToBottom: boolean;
|
|
3
|
+
showAlways: boolean;
|
|
3
4
|
unreadCount?: number;
|
|
4
5
|
};
|
|
5
|
-
export declare const useUnreadMessagesNotification: ({ isMessageListScrolledToBottom, unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
6
|
+
export declare const useUnreadMessagesNotification: ({ isMessageListScrolledToBottom, showAlways, unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
6
7
|
show: boolean;
|
|
7
8
|
};
|
|
8
9
|
//# sourceMappingURL=useUnreadMessagesNotification.d.ts.map
|
package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUnreadMessagesNotification.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUnreadMessagesNotification.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,mCAAmC,GAAG;IAChD,6BAA6B,EAAE,OAAO,CAAC;IACvC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,6BAA6B,gEAIvC,mCAAmC;;CAsErC,CAAC"}
|
|
@@ -2,13 +2,17 @@ import { useChannelStateContext } from '../../../../context';
|
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { MESSAGE_LIST_MAIN_PANEL_CLASS } from '../../MessageListMainPanel';
|
|
4
4
|
import { UNREAD_MESSAGE_SEPARATOR_CLASS } from '../../UnreadMessagesSeparator';
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
var targetScrolledAboveVisibleContainerArea = function (element) {
|
|
6
|
+
var targetBottom = element.getBoundingClientRect().bottom;
|
|
7
|
+
return targetBottom < 0;
|
|
8
|
+
};
|
|
9
|
+
var targetScrolledBelowVisibleContainerArea = function (element, container) {
|
|
10
|
+
var targetTop = element.getBoundingClientRect().top;
|
|
11
|
+
var containerBottom = container.getBoundingClientRect().top;
|
|
12
|
+
return targetTop > containerBottom;
|
|
9
13
|
};
|
|
10
14
|
export var useUnreadMessagesNotification = function (_a) {
|
|
11
|
-
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, unreadCount = _a.unreadCount;
|
|
15
|
+
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, showAlways = _a.showAlways, unreadCount = _a.unreadCount;
|
|
12
16
|
var messages = useChannelStateContext('UnreadMessagesNotification').messages;
|
|
13
17
|
var _b = useState(false), show = _b[0], setShow = _b[1];
|
|
14
18
|
var isScrolledAboveTargetTop = useRef(false);
|
|
@@ -26,22 +30,32 @@ export var useUnreadMessagesNotification = function (_a) {
|
|
|
26
30
|
setShow(true);
|
|
27
31
|
return;
|
|
28
32
|
}
|
|
29
|
-
|
|
33
|
+
var scrolledBelowSeparator = targetScrolledAboveVisibleContainerArea(observedTarget);
|
|
34
|
+
var scrolledAboveSeparator = targetScrolledBelowVisibleContainerArea(observedTarget, msgListPanel);
|
|
35
|
+
setShow(showAlways ? scrolledBelowSeparator || scrolledAboveSeparator : scrolledBelowSeparator);
|
|
30
36
|
var observer = new IntersectionObserver(function (elements) {
|
|
31
37
|
if (!elements.length)
|
|
32
38
|
return;
|
|
33
|
-
var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
var _a = elements[0], boundingClientRect = _a.boundingClientRect, isIntersecting = _a.isIntersecting;
|
|
40
|
+
if (isIntersecting) {
|
|
41
|
+
setShow(false);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
var separatorIsAboveContainerTop = boundingClientRect.bottom < 0;
|
|
45
|
+
setShow(showAlways || separatorIsAboveContainerTop);
|
|
46
|
+
isScrolledAboveTargetTop.current = separatorIsAboveContainerTop;
|
|
39
47
|
}, { root: msgListPanel });
|
|
40
48
|
observer.observe(observedTarget);
|
|
41
49
|
return function () {
|
|
42
50
|
observer.disconnect();
|
|
43
51
|
};
|
|
44
|
-
}, [
|
|
52
|
+
}, [
|
|
53
|
+
intersectionObserverIsSupported,
|
|
54
|
+
isMessageListScrolledToBottom,
|
|
55
|
+
messages,
|
|
56
|
+
showAlways,
|
|
57
|
+
unreadCount,
|
|
58
|
+
]);
|
|
45
59
|
useEffect(function () {
|
|
46
60
|
/**
|
|
47
61
|
* Handle situation when scrollToBottom is called from another component when the msg list is scrolled above the observed target (unread separator).
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { StreamMessage } from '../../../../context';
|
|
2
2
|
import type { DefaultStreamChatGenerics } from '../../../../types/types';
|
|
3
3
|
export type UseUnreadMessagesNotificationParams = {
|
|
4
|
+
showAlways: boolean;
|
|
4
5
|
unreadCount: number;
|
|
5
6
|
lastRead?: Date | null;
|
|
6
7
|
};
|
|
@@ -13,9 +14,10 @@ export type UseUnreadMessagesNotificationParams = {
|
|
|
13
14
|
* `UnreadMessagesNotification` component is rendered. This is an approximate equivalent to being
|
|
14
15
|
* scrolled below the `UnreadMessagesNotification` component.
|
|
15
16
|
* @param lastRead
|
|
17
|
+
* @param showAlways
|
|
16
18
|
* @param unreadCount
|
|
17
19
|
*/
|
|
18
|
-
export declare const useUnreadMessagesNotificationVirtualized: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ lastRead, unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
20
|
+
export declare const useUnreadMessagesNotificationVirtualized: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ lastRead, showAlways, unreadCount, }: UseUnreadMessagesNotificationParams) => {
|
|
19
21
|
show: boolean;
|
|
20
22
|
toggleShowUnreadMessagesNotification: (renderedMessages: StreamMessage<StreamChatGenerics>[]) => void;
|
|
21
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUnreadMessagesNotificationVirtualized.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,MAAM,mCAAmC,GAAG;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"useUnreadMessagesNotificationVirtualized.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,MAAM,mCAAmC,GAAG;IAChD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wCAAwC,6HAMlD,mCAAmC;;;CA4BrC,CAAC"}
|
|
@@ -8,19 +8,25 @@ import { useCallback, useEffect, useState } from 'react';
|
|
|
8
8
|
* `UnreadMessagesNotification` component is rendered. This is an approximate equivalent to being
|
|
9
9
|
* scrolled below the `UnreadMessagesNotification` component.
|
|
10
10
|
* @param lastRead
|
|
11
|
+
* @param showAlways
|
|
11
12
|
* @param unreadCount
|
|
12
13
|
*/
|
|
13
14
|
export var useUnreadMessagesNotificationVirtualized = function (_a) {
|
|
14
|
-
var lastRead = _a.lastRead, unreadCount = _a.unreadCount;
|
|
15
|
+
var lastRead = _a.lastRead, showAlways = _a.showAlways, unreadCount = _a.unreadCount;
|
|
15
16
|
var _b = useState(false), show = _b[0], setShow = _b[1];
|
|
16
17
|
var toggleShowUnreadMessagesNotification = useCallback(function (renderedMessages) {
|
|
17
|
-
if (!
|
|
18
|
+
if (!unreadCount)
|
|
19
|
+
return;
|
|
20
|
+
var firstRenderedMessage = renderedMessages[0];
|
|
21
|
+
var lastRenderedMessage = renderedMessages.slice(-1)[0];
|
|
22
|
+
if (!(firstRenderedMessage && lastRenderedMessage))
|
|
18
23
|
return;
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
var scrolledBelowSeparator = !!lastRead &&
|
|
25
|
+
new Date(firstRenderedMessage.created_at).getTime() > lastRead.getTime();
|
|
26
|
+
var scrolledAboveSeparator = !!lastRead &&
|
|
27
|
+
new Date(lastRenderedMessage.created_at).getTime() < lastRead.getTime();
|
|
28
|
+
setShow(showAlways ? scrolledBelowSeparator || scrolledAboveSeparator : scrolledBelowSeparator);
|
|
29
|
+
}, [lastRead, showAlways, unreadCount]);
|
|
24
30
|
useEffect(function () {
|
|
25
31
|
if (!unreadCount)
|
|
26
32
|
setShow(false);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { DefaultStreamChatGenerics } from '../../../types';
|
|
1
2
|
type UseMarkReadParams = {
|
|
2
3
|
isMessageListScrolledToBottom: boolean;
|
|
3
4
|
messageListIsThread: boolean;
|
|
4
5
|
unreadCount: number;
|
|
5
|
-
|
|
6
|
+
wasMarkedUnread?: boolean;
|
|
6
7
|
};
|
|
7
8
|
/**
|
|
8
9
|
* Takes care of marking a channel read. The channel is read only if all the following applies:
|
|
@@ -14,6 +15,6 @@ type UseMarkReadParams = {
|
|
|
14
15
|
* @param unreadCount
|
|
15
16
|
* @param wasChannelMarkedUnread
|
|
16
17
|
*/
|
|
17
|
-
export declare const useMarkRead: ({ isMessageListScrolledToBottom,
|
|
18
|
+
export declare const useMarkRead: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ isMessageListScrolledToBottom, messageListIsThread, unreadCount, wasMarkedUnread, }: UseMarkReadParams) => void;
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=useMarkRead.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMarkRead.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMarkRead.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMarkRead.d.ts","sourceRoot":"","sources":["../../../../src/components/MessageList/hooks/useMarkRead.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,KAAK,iBAAiB,GAAG;IACvB,6BAA6B,EAAE,OAAO,CAAC;IACvC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,4KAOrB,iBAAiB,SAyEnB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { useChannelActionContext, useChannelStateContext, useChatContext, } from '../../../context';
|
|
3
4
|
/**
|
|
4
5
|
* Takes care of marking a channel read. The channel is read only if all the following applies:
|
|
5
6
|
* 1. the message list is not rendered in a thread
|
|
@@ -11,28 +12,81 @@ import { useChannelActionContext } from '../../../context';
|
|
|
11
12
|
* @param wasChannelMarkedUnread
|
|
12
13
|
*/
|
|
13
14
|
export var useMarkRead = function (_a) {
|
|
14
|
-
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom,
|
|
15
|
-
var
|
|
15
|
+
var isMessageListScrolledToBottom = _a.isMessageListScrolledToBottom, messageListIsThread = _a.messageListIsThread, unreadCount = _a.unreadCount, wasMarkedUnread = _a.wasMarkedUnread;
|
|
16
|
+
var client = useChatContext('useMarkRead').client;
|
|
17
|
+
var _b = useChannelActionContext('useMarkRead'), markRead = _b.markRead, setChannelUnreadUiState = _b.setChannelUnreadUiState;
|
|
18
|
+
var channel = useChannelStateContext('useMarkRead').channel;
|
|
19
|
+
var previousRenderMessageListScrolledToBottom = useRef(isMessageListScrolledToBottom);
|
|
16
20
|
useEffect(function () {
|
|
17
|
-
var shouldMarkRead =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
var shouldMarkRead = function (unreadMessages) {
|
|
22
|
+
return !document.hidden &&
|
|
23
|
+
!wasMarkedUnread &&
|
|
24
|
+
!messageListIsThread &&
|
|
25
|
+
isMessageListScrolledToBottom &&
|
|
26
|
+
unreadMessages > 0;
|
|
27
|
+
};
|
|
21
28
|
var onVisibilityChange = function () {
|
|
22
|
-
if (
|
|
29
|
+
if (shouldMarkRead(unreadCount))
|
|
30
|
+
markRead();
|
|
31
|
+
};
|
|
32
|
+
var handleMessageNew = function (event) {
|
|
33
|
+
var _a, _b, _c, _d;
|
|
34
|
+
var newMessageToCurrentChannel = event.cid === channel.cid;
|
|
35
|
+
var isOwnMessage = ((_a = event.user) === null || _a === void 0 ? void 0 : _a.id) && event.user.id === ((_b = client.user) === null || _b === void 0 ? void 0 : _b.id);
|
|
36
|
+
var mainChannelUpdated = !((_c = event.message) === null || _c === void 0 ? void 0 : _c.parent_id) || ((_d = event.message) === null || _d === void 0 ? void 0 : _d.show_in_channel);
|
|
37
|
+
if (isOwnMessage)
|
|
38
|
+
return;
|
|
39
|
+
if (!isMessageListScrolledToBottom || wasMarkedUnread || document.hidden) {
|
|
40
|
+
setChannelUnreadUiState(function (prev) {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
var previousUnreadCount = (_a = prev === null || prev === void 0 ? void 0 : prev.unread_messages) !== null && _a !== void 0 ? _a : 0;
|
|
43
|
+
var previousLastMessage = getPreviousLastMessage(channel.state.messages, event.message);
|
|
44
|
+
return __assign(__assign({}, (prev || {})), { last_read: (_b = prev === null || prev === void 0 ? void 0 : prev.last_read) !== null && _b !== void 0 ? _b : (previousUnreadCount === 0 && (previousLastMessage === null || previousLastMessage === void 0 ? void 0 : previousLastMessage.created_at)
|
|
45
|
+
? new Date(previousLastMessage.created_at)
|
|
46
|
+
: new Date(0)), unread_messages: previousUnreadCount + 1 });
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else if (newMessageToCurrentChannel &&
|
|
50
|
+
mainChannelUpdated &&
|
|
51
|
+
!isOwnMessage &&
|
|
52
|
+
shouldMarkRead(channel.countUnread())) {
|
|
23
53
|
markRead();
|
|
54
|
+
}
|
|
24
55
|
};
|
|
56
|
+
client.on('message.new', handleMessageNew);
|
|
25
57
|
document.addEventListener('visibilitychange', onVisibilityChange);
|
|
26
|
-
|
|
58
|
+
var hasScrolledToBottom = previousRenderMessageListScrolledToBottom.current !== isMessageListScrolledToBottom &&
|
|
59
|
+
isMessageListScrolledToBottom;
|
|
60
|
+
if (shouldMarkRead(hasScrolledToBottom ? channel.countUnread() : unreadCount))
|
|
27
61
|
markRead();
|
|
62
|
+
previousRenderMessageListScrolledToBottom.current = isMessageListScrolledToBottom;
|
|
28
63
|
return function () {
|
|
64
|
+
client.off('message.new', handleMessageNew);
|
|
29
65
|
document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
30
66
|
};
|
|
31
67
|
}, [
|
|
68
|
+
channel,
|
|
69
|
+
client,
|
|
32
70
|
isMessageListScrolledToBottom,
|
|
33
71
|
markRead,
|
|
34
72
|
messageListIsThread,
|
|
73
|
+
setChannelUnreadUiState,
|
|
35
74
|
unreadCount,
|
|
36
|
-
|
|
75
|
+
wasMarkedUnread,
|
|
37
76
|
]);
|
|
38
77
|
};
|
|
78
|
+
function getPreviousLastMessage(messages, newMessage) {
|
|
79
|
+
if (!newMessage)
|
|
80
|
+
return;
|
|
81
|
+
var previousLastMessage;
|
|
82
|
+
for (var i = messages.length - 1; i >= 0; i--) {
|
|
83
|
+
var msg = messages[i];
|
|
84
|
+
if (!(msg === null || msg === void 0 ? void 0 : msg.id))
|
|
85
|
+
break;
|
|
86
|
+
if (msg.id !== newMessage.id) {
|
|
87
|
+
previousLastMessage = msg;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return previousLastMessage;
|
|
92
|
+
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
interface ArrowProps {
|
|
2
3
|
className?: string;
|
|
3
4
|
color?: string;
|
|
4
5
|
}
|
|
5
|
-
export declare const ArrowUp: ({ className, color }: ArrowProps) => JSX.Element;
|
|
6
|
-
export declare const ArrowDown: ({ className, color }: ArrowProps) => JSX.Element;
|
|
7
|
-
export declare const CloseIcon: () => JSX.Element;
|
|
6
|
+
export declare const ArrowUp: ({ className, color }: ArrowProps) => React.JSX.Element;
|
|
7
|
+
export declare const ArrowDown: ({ className, color }: ArrowProps) => React.JSX.Element;
|
|
8
|
+
export declare const CloseIcon: () => React.JSX.Element;
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/icons.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,yBAA0B,UAAU,sBAevD,CAAC;AAEF,eAAO,MAAM,SAAS,yBAA0B,UAAU,sBAezD,CAAC;AAEF,eAAO,MAAM,SAAS,yBAIrB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { MessageProps } from '../Message/types';
|
|
3
3
|
import { StreamMessage } from '../../context/ChannelStateContext';
|
|
4
4
|
import { ChannelUnreadUiState, DefaultStreamChatGenerics } from '../../types/types';
|
|
@@ -29,6 +29,6 @@ export interface RenderMessagesOptions<StreamChatGenerics extends DefaultStreamC
|
|
|
29
29
|
export type SharedMessageProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Omit<MessageProps<StreamChatGenerics>, MessagePropsToOmit>;
|
|
30
30
|
export type MessageRenderer<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = (options: RenderMessagesOptions<StreamChatGenerics>) => Array<ReactNode>;
|
|
31
31
|
type MessagePropsToOmit = 'channel' | 'groupStyles' | 'initialMessage' | 'lastReceivedId' | 'message' | 'readBy';
|
|
32
|
-
export declare function defaultRenderMessages<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ channelUnreadUiState, components, customClasses, lastReceivedMessageId: lastReceivedId, messageGroupStyles, messages, readData, sharedMessageProps: messageProps, }: RenderMessagesOptions<StreamChatGenerics>): JSX.Element[];
|
|
32
|
+
export declare function defaultRenderMessages<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ channelUnreadUiState, components, customClasses, lastReceivedMessageId: lastReceivedId, messageGroupStyles, messages, readData, sharedMessageProps: messageProps, }: RenderMessagesOptions<StreamChatGenerics>): React.JSX.Element[];
|
|
33
33
|
export {};
|
|
34
34
|
//# sourceMappingURL=renderMessages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderMessages.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/renderMessages.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"renderMessages.d.ts","sourceRoot":"","sources":["../../../src/components/MessageList/renderMessages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAU,MAAM,eAAe,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,qBAAqB,CACpC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB;IAEhF,UAAU,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IACtD,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/C,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAClE;;OAEG;IACH,kBAAkB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAC3D;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAChE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE/D,MAAM,MAAM,eAAe,CACzB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,CAAC,OAAO,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;AAE7E,KAAK,kBAAkB,GACnB,SAAS,GACT,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,QAAQ,CAAC;AAEb,wBAAgB,qBAAqB,CACnC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,EACA,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,qBAAqB,EAAE,cAAc,EACrC,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,kBAAkB,EAAE,YAAY,GACjC,EAAE,qBAAqB,CAAC,kBAAkB,CAAC,uBA6D3C"}
|
|
@@ -5,5 +5,5 @@ export type ModalProps = {
|
|
|
5
5
|
/** Callback handler for closing of modal. */
|
|
6
6
|
onClose?: (event: React.KeyboardEvent | React.MouseEvent<HTMLButtonElement | HTMLDivElement>) => void;
|
|
7
7
|
};
|
|
8
|
-
export declare const Modal: ({ children, onClose, open }: PropsWithChildren<ModalProps>) => JSX.Element | null;
|
|
8
|
+
export declare const Modal: ({ children, onClose, open }: PropsWithChildren<ModalProps>) => React.JSX.Element | null;
|
|
9
9
|
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAqB,MAAM,OAAO,CAAC;AAOpE,MAAM,MAAM,UAAU,GAAG;IACvB,2CAA2C;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,6CAA6C;IAC7C,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC,KAC9E,IAAI,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,KAAK,gCAAiC,kBAAkB,UAAU,CAAC,6BAmD/E,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { FocusScope } from '@react-aria/focus';
|
|
2
3
|
import { CloseIconRound } from './icons';
|
|
3
4
|
import { useChatContext, useTranslationContext } from '../../context';
|
|
4
5
|
export var Modal = function (_a) {
|
|
@@ -27,11 +28,12 @@ export var Modal = function (_a) {
|
|
|
27
28
|
if (!open)
|
|
28
29
|
return null;
|
|
29
30
|
return (React.createElement("div", { className: 'str-chat__modal str-chat__modal--open', onClick: handleClick },
|
|
30
|
-
React.createElement(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
React.createElement("
|
|
36
|
-
|
|
31
|
+
React.createElement(FocusScope, { autoFocus: true, contain: true },
|
|
32
|
+
React.createElement("button", { className: 'str-chat__modal__close-button', ref: closeRef, title: t('Close') },
|
|
33
|
+
themeVersion === '2' && React.createElement(CloseIconRound, null),
|
|
34
|
+
themeVersion === '1' && (React.createElement(React.Fragment, null,
|
|
35
|
+
t('Close'),
|
|
36
|
+
React.createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
|
|
37
|
+
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' }))))),
|
|
38
|
+
React.createElement("div", { className: 'str-chat__modal__inner str-chat-react__modal__inner', ref: innerRef }, children))));
|
|
37
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/icons.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,cAAc,yBAkB1B,CAAC"}
|
|
@@ -11,5 +11,5 @@ export type FileIconProps = {
|
|
|
11
11
|
version?: IconVersion;
|
|
12
12
|
};
|
|
13
13
|
export declare function mimeTypeToIcon(type?: IconType, version?: IconVersion, mimeType?: string): React.ComponentType<import("./FileIconSet/v1").IconPropsV1> | React.ComponentType<import("./FileIconSet/v2").IconPropsV2>;
|
|
14
|
-
export declare const FileIcon: (props: FileIconProps) => JSX.Element;
|
|
14
|
+
export declare const FileIcon: (props: FileIconProps) => React.JSX.Element;
|
|
15
15
|
//# sourceMappingURL=FileIcon.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/ReactFileUtilities/FileIcon/FileIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAW,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAC5B,IAAI,GAAE,QAAqB,EAC3B,OAAO,GAAE,WAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,6HAelB;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,
|
|
1
|
+
{"version":3,"file":"FileIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/ReactFileUtilities/FileIcon/FileIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAW,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAC5B,IAAI,GAAE,QAAqB,EAC3B,OAAO,GAAE,WAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,6HAelB;AAED,eAAO,MAAM,QAAQ,UAAW,aAAa,sBAc5C,CAAC"}
|