stream-chat-react-native-core 9.0.0-beta.31 → 9.0.0-beta.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Attachment.js +15 -52
- package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachment.js +4 -6
- package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +4 -10
- package/lib/commonjs/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/commonjs/components/Attachment/FilePreview.js +3 -6
- package/lib/commonjs/components/Attachment/FilePreview.js.map +1 -1
- package/lib/commonjs/components/Attachment/Gallery.js +9 -28
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +3 -3
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy/GiphyImage.js +7 -13
- package/lib/commonjs/components/Attachment/Giphy/GiphyImage.js.map +1 -1
- package/lib/commonjs/components/Attachment/UnsupportedAttachment.js +4 -6
- package/lib/commonjs/components/Attachment/UnsupportedAttachment.js.map +1 -1
- package/lib/commonjs/components/Attachment/UrlPreview/URLPreview.js +3 -3
- package/lib/commonjs/components/Attachment/UrlPreview/URLPreview.js.map +1 -1
- package/lib/commonjs/components/Attachment/UrlPreview/URLPreviewCompact.js +3 -3
- package/lib/commonjs/components/Attachment/UrlPreview/URLPreviewCompact.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +4 -2
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +7 -4
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +9 -13
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +9 -421
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +0 -8
- package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -77
- package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +2 -134
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelList.js +1 -57
- package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +4 -2
- package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/ChannelList/ChannelListView.js +14 -23
- package/lib/commonjs/components/ChannelList/ChannelListView.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +1 -39
- package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -2
- package/lib/commonjs/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +6 -8
- package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +12 -24
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js +15 -35
- package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +3 -3
- package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
- package/lib/commonjs/components/Chat/Chat.js +4 -6
- package/lib/commonjs/components/Chat/Chat.js.map +1 -1
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +0 -2
- package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +7 -9
- package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +4 -2
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +9 -13
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageBubble.js +4 -2
- package/lib/commonjs/components/Message/MessageItemView/MessageBubble.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageContent.js +18 -39
- package/lib/commonjs/components/Message/MessageItemView/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageDeleted.js +5 -7
- package/lib/commonjs/components/Message/MessageItemView/MessageDeleted.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageFooter.js +4 -8
- package/lib/commonjs/components/Message/MessageItemView/MessageFooter.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageHeader.js +8 -16
- package/lib/commonjs/components/Message/MessageItemView/MessageHeader.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js +13 -35
- package/lib/commonjs/components/Message/MessageItemView/MessageItemView.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageReplies.js +3 -5
- package/lib/commonjs/components/Message/MessageItemView/MessageReplies.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js +3 -3
- package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageWrapper.js +6 -4
- package/lib/commonjs/components/Message/MessageItemView/MessageWrapper.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListBottom.js +6 -8
- package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListBottom.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListTop.js +7 -11
- package/lib/commonjs/components/Message/MessageItemView/ReactionList/ReactionListTop.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageComposer.js +15 -55
- package/lib/commonjs/components/MessageInput/MessageComposer.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInputHeaderView.js +5 -5
- package/lib/commonjs/components/MessageInput/MessageInputHeaderView.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js +9 -17
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +5 -5
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +5 -5
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +5 -5
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputButtons/index.js +4 -4
- package/lib/commonjs/components/MessageInput/components/InputButtons/index.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/LinkPreviewList.js +3 -2
- package/lib/commonjs/components/MessageInput/components/LinkPreviewList.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/OutputButtons/index.js +7 -13
- package/lib/commonjs/components/MessageInput/components/OutputButtons/index.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageFlashList.js +14 -40
- package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +12 -38
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/StickyHeader.js +3 -1
- package/lib/commonjs/components/MessageList/StickyHeader.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js +2 -35
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageActionList.js +4 -2
- package/lib/commonjs/components/MessageMenu/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageMenu.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageUserReactions.js +4 -8
- package/lib/commonjs/components/MessageMenu/MessageUserReactions.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageUserReactionsItem.js +4 -2
- package/lib/commonjs/components/MessageMenu/MessageUserReactionsItem.js.map +1 -1
- package/lib/commonjs/components/Poll/CreatePollContent.js +3 -1
- package/lib/commonjs/components/Poll/CreatePollContent.js.map +1 -1
- package/lib/commonjs/components/Poll/Poll.js +12 -9
- package/lib/commonjs/components/Poll/Poll.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollAnswersList.js +5 -3
- package/lib/commonjs/components/Poll/components/PollAnswersList.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollOption.js +5 -3
- package/lib/commonjs/components/Poll/components/PollOption.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollResults/PollOptionFullResults.js +5 -5
- package/lib/commonjs/components/Poll/components/PollResults/PollOptionFullResults.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollResults/PollResults.js +5 -3
- package/lib/commonjs/components/Poll/components/PollResults/PollResults.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +4 -2
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/Thread/Thread.js +4 -8
- package/lib/commonjs/components/Thread/Thread.js.map +1 -1
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +4 -6
- package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/commonjs/components/ThreadList/ThreadList.js +12 -15
- package/lib/commonjs/components/ThreadList/ThreadList.js.map +1 -1
- package/lib/commonjs/components/ThreadList/ThreadListItem.js +8 -11
- package/lib/commonjs/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/commonjs/components/ui/Avatar/Avatar.js +3 -3
- package/lib/commonjs/components/ui/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/commonjs/contexts/componentsContext/ComponentsContext.js +37 -0
- package/lib/commonjs/contexts/componentsContext/ComponentsContext.js.map +1 -0
- package/lib/commonjs/contexts/componentsContext/PLAN.md +148 -0
- package/lib/commonjs/contexts/componentsContext/defaultComponents.js +287 -0
- package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -0
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -9
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContextBase.js.map +1 -1
- package/lib/commonjs/contexts/index.js +11 -0
- package/lib/commonjs/contexts/index.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -76
- package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/MessageOverlayHostLayer.js +37 -27
- package/lib/commonjs/contexts/overlayContext/MessageOverlayHostLayer.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -4
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/contexts/threadsContext/ThreadsContext.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Attachment.js +15 -52
- package/lib/module/components/Attachment/Attachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachment.js +4 -6
- package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
- package/lib/module/components/Attachment/FileAttachmentGroup.js +4 -10
- package/lib/module/components/Attachment/FileAttachmentGroup.js.map +1 -1
- package/lib/module/components/Attachment/FilePreview.js +3 -6
- package/lib/module/components/Attachment/FilePreview.js.map +1 -1
- package/lib/module/components/Attachment/Gallery.js +9 -28
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +3 -3
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Attachment/Giphy/GiphyImage.js +7 -13
- package/lib/module/components/Attachment/Giphy/GiphyImage.js.map +1 -1
- package/lib/module/components/Attachment/UnsupportedAttachment.js +4 -6
- package/lib/module/components/Attachment/UnsupportedAttachment.js.map +1 -1
- package/lib/module/components/Attachment/UrlPreview/URLPreview.js +3 -3
- package/lib/module/components/Attachment/UrlPreview/URLPreview.js.map +1 -1
- package/lib/module/components/Attachment/UrlPreview/URLPreviewCompact.js +3 -3
- package/lib/module/components/Attachment/UrlPreview/URLPreviewCompact.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +4 -2
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +7 -4
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +9 -13
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +9 -421
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js +0 -8
- package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +3 -77
- package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +2 -134
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelList.js +1 -57
- package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +4 -2
- package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js.map +1 -1
- package/lib/module/components/ChannelList/ChannelListView.js +14 -23
- package/lib/module/components/ChannelList/ChannelListView.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +1 -39
- package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js +3 -2
- package/lib/module/components/ChannelPreview/ChannelDetailsBottomSheet.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreview.js +6 -8
- package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +12 -24
- package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelPreviewView.js +15 -35
- package/lib/module/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +3 -3
- package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
- package/lib/module/components/Chat/Chat.js +4 -6
- package/lib/module/components/Chat/Chat.js.map +1 -1
- package/lib/module/components/Chat/hooks/useCreateChatContext.js +0 -2
- package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
- package/lib/module/components/ImageGallery/ImageGallery.js +7 -9
- package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +4 -2
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/Message/Message.js +9 -13
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageBubble.js +4 -2
- package/lib/module/components/Message/MessageItemView/MessageBubble.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageContent.js +18 -39
- package/lib/module/components/Message/MessageItemView/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageDeleted.js +5 -7
- package/lib/module/components/Message/MessageItemView/MessageDeleted.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageFooter.js +4 -8
- package/lib/module/components/Message/MessageItemView/MessageFooter.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageHeader.js +8 -16
- package/lib/module/components/Message/MessageItemView/MessageHeader.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageItemView.js +13 -35
- package/lib/module/components/Message/MessageItemView/MessageItemView.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageReplies.js +3 -5
- package/lib/module/components/Message/MessageItemView/MessageReplies.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageTextContainer.js +3 -3
- package/lib/module/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageWrapper.js +6 -4
- package/lib/module/components/Message/MessageItemView/MessageWrapper.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListBottom.js +6 -8
- package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListBottom.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListTop.js +7 -11
- package/lib/module/components/Message/MessageItemView/ReactionList/ReactionListTop.js.map +1 -1
- package/lib/module/components/MessageInput/MessageComposer.js +15 -55
- package/lib/module/components/MessageInput/MessageComposer.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInputHeaderView.js +5 -5
- package/lib/module/components/MessageInput/MessageInputHeaderView.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js +9 -17
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js +5 -5
- package/lib/module/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js +5 -5
- package/lib/module/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js +5 -5
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputButtons/index.js +4 -4
- package/lib/module/components/MessageInput/components/InputButtons/index.js.map +1 -1
- package/lib/module/components/MessageInput/components/LinkPreviewList.js +3 -2
- package/lib/module/components/MessageInput/components/LinkPreviewList.js.map +1 -1
- package/lib/module/components/MessageInput/components/OutputButtons/index.js +7 -13
- package/lib/module/components/MessageInput/components/OutputButtons/index.js.map +1 -1
- package/lib/module/components/MessageList/MessageFlashList.js +14 -40
- package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +12 -38
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/StickyHeader.js +3 -1
- package/lib/module/components/MessageList/StickyHeader.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js +2 -35
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageActionList.js +4 -2
- package/lib/module/components/MessageMenu/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageMenu.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageUserReactions.js +4 -8
- package/lib/module/components/MessageMenu/MessageUserReactions.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageUserReactionsItem.js +4 -2
- package/lib/module/components/MessageMenu/MessageUserReactionsItem.js.map +1 -1
- package/lib/module/components/Poll/CreatePollContent.js +3 -1
- package/lib/module/components/Poll/CreatePollContent.js.map +1 -1
- package/lib/module/components/Poll/Poll.js +12 -9
- package/lib/module/components/Poll/Poll.js.map +1 -1
- package/lib/module/components/Poll/components/PollAnswersList.js +5 -3
- package/lib/module/components/Poll/components/PollAnswersList.js.map +1 -1
- package/lib/module/components/Poll/components/PollOption.js +5 -3
- package/lib/module/components/Poll/components/PollOption.js.map +1 -1
- package/lib/module/components/Poll/components/PollResults/PollOptionFullResults.js +5 -5
- package/lib/module/components/Poll/components/PollResults/PollOptionFullResults.js.map +1 -1
- package/lib/module/components/Poll/components/PollResults/PollResults.js +5 -3
- package/lib/module/components/Poll/components/PollResults/PollResults.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +4 -2
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/Thread/Thread.js +4 -8
- package/lib/module/components/Thread/Thread.js.map +1 -1
- package/lib/module/components/Thread/components/ThreadFooterComponent.js +4 -6
- package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
- package/lib/module/components/ThreadList/ThreadList.js +12 -15
- package/lib/module/components/ThreadList/ThreadList.js.map +1 -1
- package/lib/module/components/ThreadList/ThreadListItem.js +8 -11
- package/lib/module/components/ThreadList/ThreadListItem.js.map +1 -1
- package/lib/module/components/ui/Avatar/Avatar.js +3 -3
- package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
- package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
- package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
- package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
- package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
- package/lib/module/contexts/componentsContext/ComponentsContext.js +37 -0
- package/lib/module/contexts/componentsContext/ComponentsContext.js.map +1 -0
- package/lib/module/contexts/componentsContext/PLAN.md +148 -0
- package/lib/module/contexts/componentsContext/defaultComponents.js +287 -0
- package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -0
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -9
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
- package/lib/module/contexts/imageGalleryContext/ImageGalleryContextBase.js.map +1 -1
- package/lib/module/contexts/index.js +11 -0
- package/lib/module/contexts/index.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -76
- package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/MessageOverlayHostLayer.js +37 -27
- package/lib/module/contexts/overlayContext/MessageOverlayHostLayer.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -4
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/contexts/threadsContext/ThreadsContext.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts +1 -1
- package/lib/typescript/components/Attachment/Attachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -1
- package/lib/typescript/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts +1 -2
- package/lib/typescript/components/Attachment/FileAttachmentGroup.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/FilePreview.d.ts +2 -3
- package/lib/typescript/components/Attachment/FilePreview.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
- package/lib/typescript/components/Attachment/Gallery.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/GalleryImage.d.ts +3 -2
- package/lib/typescript/components/Attachment/GalleryImage.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/Giphy/GiphyImage.d.ts +4 -2
- package/lib/typescript/components/Attachment/Giphy/GiphyImage.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/UnsupportedAttachment.d.ts +2 -3
- package/lib/typescript/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/UrlPreview/URLPreview.d.ts +4 -3
- package/lib/typescript/components/Attachment/UrlPreview/URLPreview.d.ts.map +1 -1
- package/lib/typescript/components/Attachment/UrlPreview/URLPreviewCompact.d.ts +4 -3
- package/lib/typescript/components/Attachment/UrlPreview/URLPreviewCompact.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +2 -3
- package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts +3 -28
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts.map +1 -1
- package/lib/typescript/components/Channel/hooks/useMessageListPagination.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/ChannelList.d.ts +2 -10
- package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/ChannelListLoadingIndicator.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/ChannelListView.d.ts +1 -1
- package/lib/typescript/components/ChannelList/ChannelListView.d.ts.map +1 -1
- package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +1 -1
- package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts +1 -2
- package/lib/typescript/components/ChannelPreview/ChannelDetailsBottomSheet.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts +1 -2
- package/lib/typescript/components/ChannelPreview/ChannelPreviewMessage.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts +1 -3
- package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
- package/lib/typescript/components/Chat/Chat.d.ts +1 -7
- package/lib/typescript/components/Chat/Chat.d.ts.map +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
- package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +6 -1
- package/lib/typescript/components/ImageGallery/ImageGallery.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts.map +1 -1
- package/lib/typescript/components/ImageGallery/components/types.d.ts +0 -2
- package/lib/typescript/components/ImageGallery/components/types.d.ts.map +1 -1
- package/lib/typescript/components/Message/Message.d.ts +1 -1
- package/lib/typescript/components/Message/Message.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageBubble.d.ts +1 -2
- package/lib/typescript/components/Message/MessageItemView/MessageBubble.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageContent.d.ts +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageContent.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageDeleted.d.ts +1 -2
- package/lib/typescript/components/Message/MessageItemView/MessageDeleted.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageFooter.d.ts +0 -2
- package/lib/typescript/components/Message/MessageItemView/MessageFooter.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageHeader.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageItemView.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageReplies.d.ts +1 -2
- package/lib/typescript/components/Message/MessageItemView/MessageReplies.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageTextContainer.d.ts +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageTextContainer.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageWrapper.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListBottom.d.ts +1 -1
- package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListBottom.d.ts.map +1 -1
- package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListTop.d.ts +1 -1
- package/lib/typescript/components/Message/MessageItemView/ReactionList/ReactionListTop.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/MessageComposer.d.ts +1 -2
- package/lib/typescript/components/MessageInput/MessageComposer.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.d.ts +3 -4
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts +1 -1
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/InputButtons/index.d.ts +1 -1
- package/lib/typescript/components/MessageInput/components/InputButtons/index.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/LinkPreviewList.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/OutputButtons/index.d.ts +1 -1
- package/lib/typescript/components/MessageInput/components/OutputButtons/index.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageFlashList.d.ts +1 -1
- package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/StickyHeader.d.ts +2 -3
- package/lib/typescript/components/MessageList/StickyHeader.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +0 -5
- package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageActionList.d.ts +1 -2
- package/lib/typescript/components/MessageMenu/MessageActionList.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageMenu.d.ts +1 -2
- package/lib/typescript/components/MessageMenu/MessageMenu.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageUserReactions.d.ts +1 -1
- package/lib/typescript/components/MessageMenu/MessageUserReactions.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageUserReactionsItem.d.ts +2 -3
- package/lib/typescript/components/MessageMenu/MessageUserReactionsItem.d.ts.map +1 -1
- package/lib/typescript/components/Poll/CreatePollContent.d.ts +2 -2
- package/lib/typescript/components/Poll/CreatePollContent.d.ts.map +1 -1
- package/lib/typescript/components/Poll/Poll.d.ts +5 -8
- package/lib/typescript/components/Poll/Poll.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollAnswersList.d.ts +1 -2
- package/lib/typescript/components/Poll/components/PollAnswersList.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollOption.d.ts +1 -2
- package/lib/typescript/components/Poll/components/PollOption.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollResults/PollOptionFullResults.d.ts +1 -4
- package/lib/typescript/components/Poll/components/PollResults/PollOptionFullResults.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollResults/PollResults.d.ts +1 -2
- package/lib/typescript/components/Poll/components/PollResults/PollResults.d.ts.map +1 -1
- package/lib/typescript/components/Reply/Reply.d.ts +4 -3
- package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
- package/lib/typescript/components/Thread/Thread.d.ts +2 -8
- package/lib/typescript/components/Thread/Thread.d.ts.map +1 -1
- package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts +1 -2
- package/lib/typescript/components/Thread/components/ThreadFooterComponent.d.ts.map +1 -1
- package/lib/typescript/components/ThreadList/ThreadList.d.ts +2 -3
- package/lib/typescript/components/ThreadList/ThreadList.d.ts.map +1 -1
- package/lib/typescript/components/ThreadList/ThreadListItem.d.ts.map +1 -1
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts +0 -17
- package/lib/typescript/contexts/attachmentPickerContext/AttachmentPickerContext.d.ts.map +1 -1
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +0 -23
- package/lib/typescript/contexts/channelContext/ChannelContext.d.ts.map +1 -1
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +2 -113
- package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts.map +1 -1
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts +0 -5
- package/lib/typescript/contexts/chatContext/ChatContext.d.ts.map +1 -1
- package/lib/typescript/contexts/componentsContext/ComponentsContext.d.ts +322 -0
- package/lib/typescript/contexts/componentsContext/ComponentsContext.d.ts.map +1 -0
- package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +298 -0
- package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -0
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContext.d.ts.map +1 -1
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContextBase.d.ts +0 -5
- package/lib/typescript/contexts/imageGalleryContext/ImageGalleryContextBase.d.ts.map +1 -1
- package/lib/typescript/contexts/index.d.ts +1 -0
- package/lib/typescript/contexts/index.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -169
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
- package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts.map +1 -1
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +3 -340
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/MessageOverlayHostLayer.d.ts +8 -4
- package/lib/typescript/contexts/overlayContext/MessageOverlayHostLayer.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +0 -4
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts.map +1 -1
- package/lib/typescript/contexts/threadsContext/ThreadsContext.d.ts +0 -9
- package/lib/typescript/contexts/threadsContext/ThreadsContext.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/offline-support/offline-feature.js +64 -67
- package/src/components/Attachment/Attachment.tsx +7 -69
- package/src/components/Attachment/FileAttachment.tsx +4 -7
- package/src/components/Attachment/FileAttachmentGroup.tsx +9 -19
- package/src/components/Attachment/FilePreview.tsx +4 -9
- package/src/components/Attachment/Gallery.tsx +6 -83
- package/src/components/Attachment/GalleryImage.tsx +5 -4
- package/src/components/Attachment/Giphy/GiphyImage.tsx +15 -37
- package/src/components/Attachment/UnsupportedAttachment.tsx +5 -10
- package/src/components/Attachment/UrlPreview/URLPreview.tsx +6 -4
- package/src/components/Attachment/UrlPreview/URLPreviewCompact.tsx +6 -4
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +2 -2
- package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +5 -4
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +4 -20
- package/src/components/Channel/Channel.tsx +31 -441
- package/src/components/Channel/__tests__/isAttachmentEqualHandler.test.js +12 -9
- package/src/components/Channel/hooks/useCreateChannelContext.ts +0 -8
- package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +1 -81
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +0 -132
- package/src/components/ChannelList/ChannelList.tsx +3 -76
- package/src/components/ChannelList/ChannelListLoadingIndicator.tsx +3 -1
- package/src/components/ChannelList/ChannelListView.tsx +16 -36
- package/src/components/ChannelList/__tests__/ChannelList.test.js +173 -116
- package/src/components/ChannelList/__tests__/ChannelListView.test.js +64 -41
- package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +0 -39
- package/src/components/ChannelPreview/ChannelDetailsBottomSheet.tsx +2 -2
- package/src/components/ChannelPreview/ChannelPreview.tsx +8 -16
- package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +15 -38
- package/src/components/ChannelPreview/ChannelPreviewView.tsx +22 -47
- package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +2 -4
- package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +16 -12
- package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +25 -24
- package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +11 -6
- package/src/components/Chat/Chat.tsx +5 -12
- package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
- package/src/components/ImageGallery/ImageGallery.tsx +14 -16
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +0 -8
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +25 -21
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +3 -1
- package/src/components/ImageGallery/components/types.ts +0 -3
- package/src/components/Message/Message.tsx +11 -32
- package/src/components/Message/MessageItemView/MessageBubble.tsx +11 -7
- package/src/components/Message/MessageItemView/MessageContent.tsx +14 -47
- package/src/components/Message/MessageItemView/MessageDeleted.tsx +3 -9
- package/src/components/Message/MessageItemView/MessageFooter.tsx +2 -14
- package/src/components/Message/MessageItemView/MessageHeader.tsx +11 -29
- package/src/components/Message/MessageItemView/MessageItemView.tsx +10 -42
- package/src/components/Message/MessageItemView/MessageReplies.tsx +2 -8
- package/src/components/Message/MessageItemView/MessageTextContainer.tsx +4 -8
- package/src/components/Message/MessageItemView/MessageWrapper.tsx +4 -9
- package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx +4 -12
- package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx +4 -20
- package/src/components/Message/MessageItemView/__tests__/MessageContent.test.js +47 -30
- package/src/components/Message/MessageItemView/__tests__/MessageItemView.test.js +16 -7
- package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -4
- package/src/components/MessageInput/MessageComposer.tsx +16 -76
- package/src/components/MessageInput/MessageInputHeaderView.tsx +3 -3
- package/src/components/MessageInput/components/AttachmentPreview/AttachmentUploadPreviewList.tsx +7 -35
- package/src/components/MessageInput/components/AttachmentPreview/FileAttachmentUploadPreview.tsx +2 -2
- package/src/components/MessageInput/components/AttachmentPreview/ImageAttachmentUploadPreview.tsx +2 -2
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingInProgress.tsx +6 -4
- package/src/components/MessageInput/components/InputButtons/index.tsx +4 -5
- package/src/components/MessageInput/components/LinkPreviewList.tsx +3 -2
- package/src/components/MessageInput/components/OutputButtons/index.tsx +4 -23
- package/src/components/MessageList/MessageFlashList.tsx +13 -57
- package/src/components/MessageList/MessageList.tsx +15 -57
- package/src/components/MessageList/StickyHeader.tsx +4 -3
- package/src/components/MessageList/__tests__/MessageList.test.js +1 -130
- package/src/components/MessageList/hooks/useMessageList.ts +1 -41
- package/src/components/MessageMenu/MessageActionList.tsx +4 -3
- package/src/components/MessageMenu/MessageMenu.tsx +35 -47
- package/src/components/MessageMenu/MessageUserReactions.tsx +7 -27
- package/src/components/MessageMenu/MessageUserReactionsItem.tsx +3 -6
- package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +12 -11
- package/src/components/Poll/CreatePollContent.tsx +3 -4
- package/src/components/Poll/Poll.tsx +22 -24
- package/src/components/Poll/components/PollAnswersList.tsx +9 -11
- package/src/components/Poll/components/PollOption.tsx +9 -11
- package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx +10 -11
- package/src/components/Poll/components/PollResults/PollResults.tsx +9 -15
- package/src/components/Reply/Reply.tsx +18 -5
- package/src/components/Thread/Thread.tsx +3 -18
- package/src/components/Thread/components/ThreadFooterComponent.tsx +10 -11
- package/src/components/ThreadList/ThreadList.tsx +14 -22
- package/src/components/ThreadList/ThreadListItem.tsx +6 -11
- package/src/components/ui/Avatar/Avatar.tsx +2 -2
- package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +0 -15
- package/src/contexts/channelContext/ChannelContext.tsx +0 -24
- package/src/contexts/channelsContext/ChannelsContext.tsx +2 -114
- package/src/contexts/chatContext/ChatContext.tsx +0 -5
- package/src/contexts/componentsContext/ComponentsContext.tsx +62 -0
- package/src/contexts/componentsContext/PLAN.md +148 -0
- package/src/contexts/componentsContext/__tests__/defaultComponents.test.ts +45 -0
- package/src/contexts/componentsContext/defaultComponents.ts +334 -0
- package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +0 -8
- package/src/contexts/imageGalleryContext/ImageGalleryContextBase.tsx +0 -10
- package/src/contexts/index.ts +1 -0
- package/src/contexts/messageInputContext/MessageInputContext.tsx +0 -185
- package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +1 -75
- package/src/contexts/messagesContext/MessagesContext.tsx +3 -367
- package/src/contexts/overlayContext/MessageOverlayHostLayer.tsx +38 -20
- package/src/contexts/overlayContext/OverlayContext.tsx +0 -4
- package/src/contexts/overlayContext/OverlayProvider.tsx +1 -2
- package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +80 -7
- package/src/contexts/threadsContext/ThreadsContext.tsx +0 -9
- package/src/version.json +1 -1
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
I18nManager,
|
|
4
|
+
Image,
|
|
5
|
+
ImageProps,
|
|
6
|
+
StyleSheet,
|
|
7
|
+
Text,
|
|
8
|
+
TextStyle,
|
|
9
|
+
View,
|
|
10
|
+
ViewStyle,
|
|
11
|
+
} from 'react-native';
|
|
3
12
|
|
|
4
13
|
import {
|
|
5
14
|
isFileAttachment,
|
|
@@ -10,7 +19,8 @@ import {
|
|
|
10
19
|
|
|
11
20
|
import { ReplyMessageView } from './ReplyMessageView';
|
|
12
21
|
|
|
13
|
-
import {
|
|
22
|
+
import { useChatContext } from '../../contexts/chatContext/ChatContext';
|
|
23
|
+
import { useComponentsContext } from '../../contexts/componentsContext/ComponentsContext';
|
|
14
24
|
import {
|
|
15
25
|
MessageContextValue,
|
|
16
26
|
useMessageContext,
|
|
@@ -79,8 +89,10 @@ const RightContent = React.memo(
|
|
|
79
89
|
},
|
|
80
90
|
);
|
|
81
91
|
|
|
82
|
-
export type ReplyPropsWithContext =
|
|
83
|
-
|
|
92
|
+
export type ReplyPropsWithContext = { ImageComponent: React.ComponentType<ImageProps> } & Pick<
|
|
93
|
+
MessageContextValue,
|
|
94
|
+
'message'
|
|
95
|
+
> &
|
|
84
96
|
Pick<MessagesContextValue, 'quotedMessage'> & {
|
|
85
97
|
isMyMessage: boolean;
|
|
86
98
|
onDismiss?: () => void;
|
|
@@ -216,7 +228,8 @@ export type ReplyProps = Partial<ReplyPropsWithContext> &
|
|
|
216
228
|
|
|
217
229
|
export const Reply = (props: ReplyProps) => {
|
|
218
230
|
const { message: messageFromContext } = useMessageContext();
|
|
219
|
-
const { client
|
|
231
|
+
const { client } = useChatContext();
|
|
232
|
+
const { ImageComponent } = useComponentsContext();
|
|
220
233
|
|
|
221
234
|
const messageComposer = useMessageComposer();
|
|
222
235
|
const { quotedMessage: quotedMessageFromComposer } = useStateStore(
|
|
@@ -4,16 +4,10 @@ import { ThreadFooterComponent } from './components/ThreadFooterComponent';
|
|
|
4
4
|
|
|
5
5
|
import { useChannelContext } from '../../contexts/channelContext/ChannelContext';
|
|
6
6
|
import { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';
|
|
7
|
-
import {
|
|
8
|
-
MessagesContextValue,
|
|
9
|
-
useMessagesContext,
|
|
10
|
-
} from '../../contexts/messagesContext/MessagesContext';
|
|
7
|
+
import { useComponentsContext } from '../../contexts/componentsContext/ComponentsContext';
|
|
11
8
|
import { ThreadContextValue, useThreadContext } from '../../contexts/threadContext/ThreadContext';
|
|
12
9
|
|
|
13
|
-
import {
|
|
14
|
-
MessageComposer as DefaultMessageComposer,
|
|
15
|
-
MessageComposerProps,
|
|
16
|
-
} from '../MessageInput/MessageComposer';
|
|
10
|
+
import type { MessageComposerProps } from '../MessageInput/MessageComposer';
|
|
17
11
|
import { MessageFlashList, MessageFlashListProps } from '../MessageList/MessageFlashList';
|
|
18
12
|
import { MessageListProps } from '../MessageList/MessageList';
|
|
19
13
|
|
|
@@ -26,7 +20,6 @@ try {
|
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
type ThreadPropsWithContext = Pick<ChatContextValue, 'client'> &
|
|
29
|
-
Pick<MessagesContextValue, 'MessageList'> &
|
|
30
23
|
Pick<
|
|
31
24
|
ThreadContextValue,
|
|
32
25
|
| 'closeThread'
|
|
@@ -59,11 +52,6 @@ type ThreadPropsWithContext = Pick<ChatContextValue, 'client'> &
|
|
|
59
52
|
closeThreadOnDismount?: boolean;
|
|
60
53
|
/** Disables the thread UI. So MessageComposer and MessageList will be disabled. */
|
|
61
54
|
disabled?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* **Customized MessageComposer component to used within Thread instead of default MessageComposer
|
|
64
|
-
* **Available from [MessageComposer](https://getstream.io/chat/docs/sdk/reactnative/ui-components/message-input)**
|
|
65
|
-
*/
|
|
66
|
-
MessageComposer?: React.ComponentType<MessageComposerProps>;
|
|
67
55
|
/**
|
|
68
56
|
* Call custom function on closing thread if handling thread state elsewhere
|
|
69
57
|
*/
|
|
@@ -81,14 +69,13 @@ const ThreadWithContext = (props: ThreadPropsWithContext) => {
|
|
|
81
69
|
closeThreadOnDismount = true,
|
|
82
70
|
disabled,
|
|
83
71
|
loadMoreThread,
|
|
84
|
-
MessageComposer = DefaultMessageComposer,
|
|
85
|
-
MessageList,
|
|
86
72
|
onThreadDismount,
|
|
87
73
|
parentMessagePreventPress = true,
|
|
88
74
|
thread,
|
|
89
75
|
threadInstance,
|
|
90
76
|
shouldUseFlashList = false,
|
|
91
77
|
} = props;
|
|
78
|
+
const { MessageList, ThreadMessageComposer: MessageComposer } = useComponentsContext();
|
|
92
79
|
|
|
93
80
|
useEffect(() => {
|
|
94
81
|
if (threadInstance?.activate) {
|
|
@@ -171,7 +158,6 @@ export type ThreadProps = Partial<ThreadPropsWithContext>;
|
|
|
171
158
|
export const Thread = (props: ThreadProps) => {
|
|
172
159
|
const { client } = useChatContext();
|
|
173
160
|
const { threadList } = useChannelContext();
|
|
174
|
-
const { MessageList } = useMessagesContext();
|
|
175
161
|
const { closeThread, loadMoreThread, reloadThread, thread, threadInstance } = useThreadContext();
|
|
176
162
|
|
|
177
163
|
if (thread?.id && !threadList) {
|
|
@@ -186,7 +172,6 @@ export const Thread = (props: ThreadProps) => {
|
|
|
186
172
|
client,
|
|
187
173
|
closeThread,
|
|
188
174
|
loadMoreThread,
|
|
189
|
-
MessageList,
|
|
190
175
|
reloadThread,
|
|
191
176
|
thread,
|
|
192
177
|
threadInstance,
|
|
@@ -3,10 +3,7 @@ import { ActivityIndicator, StyleSheet, Text, View } from 'react-native';
|
|
|
3
3
|
|
|
4
4
|
import type { ThreadState } from 'stream-chat';
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
MessagesContextValue,
|
|
8
|
-
useMessagesContext,
|
|
9
|
-
} from '../../../contexts/messagesContext/MessagesContext';
|
|
6
|
+
import { useComponentsContext } from '../../../contexts/componentsContext/ComponentsContext';
|
|
10
7
|
import { useTheme } from '../../../contexts/themeContext/ThemeContext';
|
|
11
8
|
import {
|
|
12
9
|
ThreadContextValue,
|
|
@@ -16,8 +13,10 @@ import { useTranslationContext } from '../../../contexts/translationContext/Tran
|
|
|
16
13
|
import { useStateStore } from '../../../hooks';
|
|
17
14
|
import { primitives } from '../../../theme';
|
|
18
15
|
|
|
19
|
-
type ThreadFooterComponentPropsWithContext = Pick<
|
|
20
|
-
|
|
16
|
+
type ThreadFooterComponentPropsWithContext = Pick<
|
|
17
|
+
ThreadContextValue,
|
|
18
|
+
'parentMessagePreventPress' | 'thread' | 'threadInstance'
|
|
19
|
+
>;
|
|
21
20
|
|
|
22
21
|
export const InlineLoadingMoreThreadIndicator = () => {
|
|
23
22
|
const { threadLoadingMore } = useThreadContext();
|
|
@@ -43,7 +42,8 @@ const selector = (nextValue: ThreadState) =>
|
|
|
43
42
|
}) as const;
|
|
44
43
|
|
|
45
44
|
const ThreadFooterComponentWithContext = (props: ThreadFooterComponentPropsWithContext) => {
|
|
46
|
-
const {
|
|
45
|
+
const { parentMessagePreventPress, thread, threadInstance } = props;
|
|
46
|
+
const { Message } = useComponentsContext();
|
|
47
47
|
const { t } = useTranslationContext();
|
|
48
48
|
|
|
49
49
|
const styles = useStyles();
|
|
@@ -131,18 +131,17 @@ const MemoizedThreadFooter = React.memo(
|
|
|
131
131
|
areEqual,
|
|
132
132
|
) as typeof ThreadFooterComponentWithContext;
|
|
133
133
|
|
|
134
|
-
export type ThreadFooterComponentProps = Partial<
|
|
135
|
-
|
|
134
|
+
export type ThreadFooterComponentProps = Partial<
|
|
135
|
+
Pick<ThreadContextValue, 'parentMessagePreventPress' | 'thread'>
|
|
136
|
+
>;
|
|
136
137
|
|
|
137
138
|
export const ThreadFooterComponent = (props: ThreadFooterComponentProps) => {
|
|
138
|
-
const { Message } = useMessagesContext();
|
|
139
139
|
const { parentMessagePreventPress, thread, threadInstance, threadLoadingMore } =
|
|
140
140
|
useThreadContext();
|
|
141
141
|
|
|
142
142
|
return (
|
|
143
143
|
<MemoizedThreadFooter
|
|
144
144
|
{...{
|
|
145
|
-
Message,
|
|
146
145
|
parentMessagePreventPress,
|
|
147
146
|
thread,
|
|
148
147
|
threadInstance,
|
|
@@ -5,9 +5,9 @@ import { Thread, ThreadManagerState } from 'stream-chat';
|
|
|
5
5
|
|
|
6
6
|
import { ThreadListItem } from './ThreadListItem';
|
|
7
7
|
import { ThreadListItemSkeleton } from './ThreadListItemSkeleton';
|
|
8
|
-
import { ThreadListUnreadBanner as DefaultThreadListBanner } from './ThreadListUnreadBanner';
|
|
9
8
|
|
|
10
9
|
import { useChatContext } from '../../contexts';
|
|
10
|
+
import { useComponentsContext } from '../../contexts/componentsContext/ComponentsContext';
|
|
11
11
|
import {
|
|
12
12
|
ThreadsContextValue,
|
|
13
13
|
ThreadsProvider,
|
|
@@ -27,14 +27,8 @@ const selector = (nextValue: ThreadManagerState) =>
|
|
|
27
27
|
|
|
28
28
|
export type ThreadListProps = Pick<
|
|
29
29
|
ThreadsContextValue,
|
|
30
|
-
| '
|
|
31
|
-
|
|
32
|
-
| 'onThreadSelect'
|
|
33
|
-
| 'ThreadListItem'
|
|
34
|
-
| 'ThreadListEmptyPlaceholder'
|
|
35
|
-
| 'ThreadListLoadingIndicator'
|
|
36
|
-
| 'ThreadListUnreadBanner'
|
|
37
|
-
> & { ThreadList?: React.ComponentType };
|
|
30
|
+
'additionalFlatListProps' | 'isFocused' | 'onThreadSelect'
|
|
31
|
+
>;
|
|
38
32
|
|
|
39
33
|
export const DefaultThreadListEmptyPlaceholder = () => <EmptyStateIndicator listType='threads' />;
|
|
40
34
|
|
|
@@ -49,18 +43,15 @@ export const DefaultThreadListLoadingNextIndicator = () => <LoadingIndicator lis
|
|
|
49
43
|
|
|
50
44
|
const renderItem = (props: { item: Thread }) => <ThreadListItem thread={props.item} />;
|
|
51
45
|
|
|
52
|
-
const
|
|
46
|
+
export const DefaultThreadListComponent = () => {
|
|
47
|
+
const { additionalFlatListProps, isLoading, isLoadingNext, loadMore, threads } =
|
|
48
|
+
useThreadsContext();
|
|
53
49
|
const {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
ThreadListLoadingIndicator = DefaultThreadListLoadingIndicator,
|
|
60
|
-
ThreadListLoadingMoreIndicator = DefaultThreadListLoadingNextIndicator,
|
|
61
|
-
ThreadListUnreadBanner = DefaultThreadListBanner,
|
|
62
|
-
threads,
|
|
63
|
-
} = useThreadsContext();
|
|
50
|
+
ThreadListEmptyPlaceholder,
|
|
51
|
+
ThreadListLoadingIndicator,
|
|
52
|
+
ThreadListLoadingMoreIndicator,
|
|
53
|
+
ThreadListUnreadBanner,
|
|
54
|
+
} = useComponentsContext();
|
|
64
55
|
|
|
65
56
|
if (isLoading) {
|
|
66
57
|
return <ThreadListLoadingIndicator />;
|
|
@@ -85,7 +76,8 @@ const ThreadListComponent = () => {
|
|
|
85
76
|
};
|
|
86
77
|
|
|
87
78
|
export const ThreadList = (props: ThreadListProps) => {
|
|
88
|
-
const { isFocused = true
|
|
79
|
+
const { isFocused = true } = props;
|
|
80
|
+
const { ThreadListComponent: ThreadListContent } = useComponentsContext();
|
|
89
81
|
const { client } = useChatContext();
|
|
90
82
|
|
|
91
83
|
useEffect(() => {
|
|
@@ -120,7 +112,7 @@ export const ThreadList = (props: ThreadListProps) => {
|
|
|
120
112
|
<ThreadsProvider
|
|
121
113
|
value={{ isLoading, isLoadingNext, loadMore: client.threads.loadNextPage, threads, ...props }}
|
|
122
114
|
>
|
|
123
|
-
<
|
|
115
|
+
<ThreadListContent />
|
|
124
116
|
</ThreadsProvider>
|
|
125
117
|
);
|
|
126
118
|
};
|
|
@@ -10,11 +10,8 @@ import {
|
|
|
10
10
|
ThreadState,
|
|
11
11
|
} from 'stream-chat';
|
|
12
12
|
|
|
13
|
-
import { ThreadListItemMessagePreview as ThreadListItemMessagePreviewDefault } from './ThreadListItemMessagePreview';
|
|
14
|
-
|
|
15
|
-
import { ThreadMessagePreviewDeliveryStatus as ThreadMessagePreviewDeliveryStatusDefault } from './ThreadMessagePreviewDeliveryStatus';
|
|
16
|
-
|
|
17
13
|
import { useChatContext, useTheme, useTranslationContext } from '../../contexts';
|
|
14
|
+
import { useComponentsContext } from '../../contexts/componentsContext/ComponentsContext';
|
|
18
15
|
import {
|
|
19
16
|
ThreadListItemProvider,
|
|
20
17
|
useThreadListItemContext,
|
|
@@ -62,11 +59,9 @@ export const ThreadListItemComponent = () => {
|
|
|
62
59
|
} = useThreadListItemContext();
|
|
63
60
|
const online = useChannelPreviewDisplayPresence(channel);
|
|
64
61
|
const displayName = useChannelPreviewDisplayName(channel);
|
|
65
|
-
const {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
ThreadMessagePreviewDeliveryStatus = ThreadMessagePreviewDeliveryStatusDefault,
|
|
69
|
-
} = useThreadsContext();
|
|
62
|
+
const { onThreadSelect } = useThreadsContext();
|
|
63
|
+
const { ThreadListItemMessagePreview, ThreadMessagePreviewDeliveryStatus } =
|
|
64
|
+
useComponentsContext();
|
|
70
65
|
const {
|
|
71
66
|
theme: { semantics },
|
|
72
67
|
} = useTheme();
|
|
@@ -143,7 +138,7 @@ export const ThreadListItem = (props: ThreadListItemProps) => {
|
|
|
143
138
|
const { client } = useChatContext();
|
|
144
139
|
const { t, tDateTimeParser } = useTranslationContext();
|
|
145
140
|
const { thread, timestampTranslationKey = 'timestamp/ThreadListItem' } = props;
|
|
146
|
-
const { ThreadListItem
|
|
141
|
+
const { ThreadListItem: ThreadListItemOverride } = useComponentsContext();
|
|
147
142
|
const { text: draftText } = useStateStore(
|
|
148
143
|
thread.messageComposer.textComposer.state,
|
|
149
144
|
textComposerStateSelector,
|
|
@@ -229,7 +224,7 @@ export const ThreadListItem = (props: ThreadListItemProps) => {
|
|
|
229
224
|
thread,
|
|
230
225
|
}}
|
|
231
226
|
>
|
|
232
|
-
<
|
|
227
|
+
<ThreadListItemOverride />
|
|
233
228
|
</ThreadListItemProvider>
|
|
234
229
|
);
|
|
235
230
|
};
|
|
@@ -3,7 +3,7 @@ import { ColorValue, StyleProp, StyleSheet, View, ViewStyle } from 'react-native
|
|
|
3
3
|
|
|
4
4
|
import { avatarSizes } from './constants';
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { useComponentsContext } from '../../../contexts/componentsContext/ComponentsContext';
|
|
7
7
|
import { useTheme } from '../../../contexts/themeContext/ThemeContext';
|
|
8
8
|
import { primitives } from '../../../theme';
|
|
9
9
|
|
|
@@ -21,7 +21,7 @@ export const Avatar = (props: AvatarProps) => {
|
|
|
21
21
|
const {
|
|
22
22
|
theme: { semantics },
|
|
23
23
|
} = useTheme();
|
|
24
|
-
const { ImageComponent } =
|
|
24
|
+
const { ImageComponent } = useComponentsContext();
|
|
25
25
|
const defaultAvatarBg = semantics.avatarPaletteBg1;
|
|
26
26
|
const {
|
|
27
27
|
backgroundColor = defaultAvatarBg,
|
|
@@ -2,7 +2,6 @@ import React, { PropsWithChildren, useContext, useMemo, useState } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import BottomSheet from '@gorhom/bottom-sheet';
|
|
4
4
|
|
|
5
|
-
import { AttachmentPickerContentProps } from '../../components';
|
|
6
5
|
import {
|
|
7
6
|
AttachmentPickerStore,
|
|
8
7
|
SelectedPickerType,
|
|
@@ -21,10 +20,6 @@ export type AttachmentPickerContextValue = Pick<
|
|
|
21
20
|
MessageInputContextValue,
|
|
22
21
|
'attachmentSelectionBarHeight' | 'attachmentPickerBottomSheetHeight'
|
|
23
22
|
> & {
|
|
24
|
-
/**
|
|
25
|
-
* Custom UI Component to render select more photos for selected gallery access in iOS.
|
|
26
|
-
*/
|
|
27
|
-
AttachmentPickerIOSSelectMorePhotos: React.ComponentType;
|
|
28
23
|
/**
|
|
29
24
|
* `bottomInset` determine the height of the `AttachmentPicker` and the underlying shift to the `MessageList` when it is opened.
|
|
30
25
|
* This can also be set via the `setBottomInset` function provided by the `useAttachmentPickerContext` hook.
|
|
@@ -39,16 +34,6 @@ export type AttachmentPickerContextValue = Pick<
|
|
|
39
34
|
topInset: number;
|
|
40
35
|
|
|
41
36
|
disableAttachmentPicker?: boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Custom UI component to render overlay component, that shows up on top of [selected
|
|
44
|
-
* image](https://github.com/GetStream/stream-chat-react-native/blob/main/screenshots/docs/1.png) (with tick mark)
|
|
45
|
-
*
|
|
46
|
-
* **Default**
|
|
47
|
-
* [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)
|
|
48
|
-
*/
|
|
49
|
-
ImageOverlaySelectedComponent: React.ComponentType<{ index: number }>;
|
|
50
|
-
AttachmentPickerSelectionBar: React.ComponentType;
|
|
51
|
-
AttachmentPickerContent: React.ComponentType<AttachmentPickerContentProps>;
|
|
52
37
|
attachmentPickerStore: AttachmentPickerStore;
|
|
53
38
|
numberOfAttachmentPickerImageColumns?: number;
|
|
54
39
|
numberOfAttachmentImagesToLoadPerCall?: number;
|
|
@@ -3,9 +3,6 @@ import React, { PropsWithChildren, useContext } from 'react';
|
|
|
3
3
|
import type { Channel, ChannelState } from 'stream-chat';
|
|
4
4
|
|
|
5
5
|
import { MarkReadFunctionOptions } from '../../components/Channel/Channel';
|
|
6
|
-
import type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';
|
|
7
|
-
import type { LoadingProps } from '../../components/Indicators/LoadingIndicator';
|
|
8
|
-
import { StickyHeaderProps } from '../../components/MessageList/StickyHeader';
|
|
9
6
|
import {
|
|
10
7
|
ChannelUnreadStateStore,
|
|
11
8
|
ChannelUnreadStateStoreType,
|
|
@@ -38,12 +35,6 @@ export type ChannelContextValue = {
|
|
|
38
35
|
* @overrideType Channel
|
|
39
36
|
*/
|
|
40
37
|
channel: Channel;
|
|
41
|
-
/**
|
|
42
|
-
* Custom UI component to display empty state when channel has no messages.
|
|
43
|
-
*
|
|
44
|
-
* **Default** [EmptyStateIndicator](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/Indicators/EmptyStateIndicator.tsx)
|
|
45
|
-
*/
|
|
46
|
-
EmptyStateIndicator: React.ComponentType<EmptyStateProps>;
|
|
47
38
|
/**
|
|
48
39
|
* When set to true, reactions will be limited to 1 per user. If user selects another reaction
|
|
49
40
|
* then his previous reaction will be removed and replaced with new one.
|
|
@@ -90,10 +81,6 @@ export type ChannelContextValue = {
|
|
|
90
81
|
setTargetedMessage?: (messageId: string) => void;
|
|
91
82
|
}) => Promise<void>;
|
|
92
83
|
|
|
93
|
-
/**
|
|
94
|
-
* Custom loading indicator to override the Stream default
|
|
95
|
-
*/
|
|
96
|
-
LoadingIndicator: React.ComponentType<LoadingProps>;
|
|
97
84
|
markRead: (options?: MarkReadFunctionOptions) => void;
|
|
98
85
|
/**
|
|
99
86
|
*
|
|
@@ -119,10 +106,6 @@ export type ChannelContextValue = {
|
|
|
119
106
|
* ```
|
|
120
107
|
*/
|
|
121
108
|
members: ChannelState['members'];
|
|
122
|
-
/**
|
|
123
|
-
* Custom network down indicator to override the Stream default
|
|
124
|
-
*/
|
|
125
|
-
NetworkDownIndicator: React.ComponentType;
|
|
126
109
|
read: ChannelState['read'];
|
|
127
110
|
reloadChannel: () => Promise<void>;
|
|
128
111
|
scrollToFirstUnreadThreshold: number;
|
|
@@ -156,13 +139,6 @@ export type ChannelContextValue = {
|
|
|
156
139
|
* currently near them within the viewport.
|
|
157
140
|
*/
|
|
158
141
|
maximumMessageLimit?: number;
|
|
159
|
-
/**
|
|
160
|
-
* Custom UI component for sticky header of channel.
|
|
161
|
-
*
|
|
162
|
-
* **Default** [DateHeader](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/MessageList/DateHeader.tsx)
|
|
163
|
-
*/
|
|
164
|
-
StickyHeader?: React.ComponentType<StickyHeaderProps>;
|
|
165
|
-
|
|
166
142
|
/**
|
|
167
143
|
* Id of message, around which Channel/MessageList gets loaded when opened.
|
|
168
144
|
* You will see a highlighted background for targetted message, when opened.
|
|
@@ -5,23 +5,8 @@ import type { FlatList } from 'react-native-gesture-handler';
|
|
|
5
5
|
|
|
6
6
|
import type { Channel } from 'stream-chat';
|
|
7
7
|
|
|
8
|
-
import type { HeaderErrorProps } from '../../components/ChannelList/ChannelListHeaderErrorIndicator';
|
|
9
8
|
import type { GetChannelActionItems } from '../../components/ChannelList/hooks/useChannelActionItems';
|
|
10
9
|
import type { QueryChannels } from '../../components/ChannelList/hooks/usePaginatedChannels';
|
|
11
|
-
import type { ChannelDetailsBottomSheetProps } from '../../components/ChannelPreview/ChannelDetailsBottomSheet';
|
|
12
|
-
import { ChannelLastMessagePreviewProps } from '../../components/ChannelPreview/ChannelLastMessagePreview';
|
|
13
|
-
import { ChannelMessagePreviewDeliveryStatusProps } from '../../components/ChannelPreview/ChannelMessagePreviewDeliveryStatus';
|
|
14
|
-
import { ChannelPreviewMessageProps } from '../../components/ChannelPreview/ChannelPreviewMessage';
|
|
15
|
-
import type { ChannelPreviewStatusProps } from '../../components/ChannelPreview/ChannelPreviewStatus';
|
|
16
|
-
import type { ChannelPreviewTitleProps } from '../../components/ChannelPreview/ChannelPreviewTitle';
|
|
17
|
-
import { ChannelPreviewTypingIndicatorProps } from '../../components/ChannelPreview/ChannelPreviewTypingIndicator';
|
|
18
|
-
import type { ChannelPreviewUnreadCountProps } from '../../components/ChannelPreview/ChannelPreviewUnreadCount';
|
|
19
|
-
import type { ChannelPreviewViewProps } from '../../components/ChannelPreview/ChannelPreviewView';
|
|
20
|
-
import type { EmptyStateProps } from '../../components/Indicators/EmptyStateIndicator';
|
|
21
|
-
import type { LoadingErrorProps } from '../../components/Indicators/LoadingErrorIndicator';
|
|
22
|
-
import type { LoadingProps } from '../../components/Indicators/LoadingIndicator';
|
|
23
|
-
|
|
24
|
-
import { ChannelAvatarProps } from '../../components/ui/Avatar/ChannelAvatar';
|
|
25
10
|
import { DEFAULT_BASE_CONTEXT_VALUE } from '../utils/defaultBaseContextValue';
|
|
26
11
|
|
|
27
12
|
import { isTestEnvironment } from '../utils/isTestEnvironment';
|
|
@@ -53,18 +38,6 @@ export type ChannelsContextValue = {
|
|
|
53
38
|
* Channels can be either an array of channels or a promise which resolves to an array of channels
|
|
54
39
|
*/
|
|
55
40
|
channels: Channel[] | null;
|
|
56
|
-
/**
|
|
57
|
-
* Custom indicator to use when channel list is empty
|
|
58
|
-
*
|
|
59
|
-
* Default: [EmptyStateIndicator](https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#emptystateindicator)
|
|
60
|
-
* */
|
|
61
|
-
EmptyStateIndicator: React.ComponentType<EmptyStateProps>;
|
|
62
|
-
/**
|
|
63
|
-
* Custom loading indicator to display at bottom of the list, while loading further pages
|
|
64
|
-
*
|
|
65
|
-
* Default: [ChannelListFooterLoadingIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#footerloadingindicator)
|
|
66
|
-
*/
|
|
67
|
-
FooterLoadingIndicator: React.ComponentType;
|
|
68
41
|
/**
|
|
69
42
|
* Incremental number change to force update the FlatList
|
|
70
43
|
*/
|
|
@@ -73,35 +46,13 @@ export type ChannelsContextValue = {
|
|
|
73
46
|
* Whether or not the FlatList has another page to render
|
|
74
47
|
*/
|
|
75
48
|
hasNextPage: boolean;
|
|
76
|
-
/**
|
|
77
|
-
* Custom indicator to display error at top of list, if loading/pagination error occurs
|
|
78
|
-
*
|
|
79
|
-
* Default: [ChannelListHeaderErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headererrorindicator)
|
|
80
|
-
*/
|
|
81
|
-
HeaderErrorIndicator: React.ComponentType<HeaderErrorProps>;
|
|
82
|
-
/**
|
|
83
|
-
* Custom indicator to display network-down error at top of list, if there is connectivity issue
|
|
84
|
-
*
|
|
85
|
-
* Default: [ChannelListHeaderNetworkDownIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#headernetworkdownindicator)
|
|
86
|
-
*/
|
|
87
|
-
HeaderNetworkDownIndicator: React.ComponentType;
|
|
88
49
|
/**
|
|
89
50
|
* Initial channels query loading state, triggers the LoadingIndicator
|
|
90
51
|
*/
|
|
91
52
|
loadingChannels: boolean;
|
|
92
53
|
/**
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
* Default: [LoadingErrorIndicator](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#loadingerrorindicator)
|
|
96
|
-
* */
|
|
97
|
-
LoadingErrorIndicator: React.ComponentType<LoadingErrorProps>;
|
|
98
|
-
/**
|
|
99
|
-
* Custom loading indicator to use on Channel List
|
|
100
|
-
*
|
|
101
|
-
* */
|
|
102
|
-
LoadingIndicator: React.ComponentType<Pick<LoadingProps, 'listType'>>;
|
|
103
|
-
/**
|
|
104
|
-
* Whether or not additional channels are being loaded, triggers the FooterLoadingIndicator
|
|
54
|
+
* Whether or not additional channels are being loaded, triggers the
|
|
55
|
+
* ChannelListFooterLoadingIndicator
|
|
105
56
|
*/
|
|
106
57
|
loadingNextPage: boolean;
|
|
107
58
|
/**
|
|
@@ -121,12 +72,6 @@ export type ChannelsContextValue = {
|
|
|
121
72
|
* Number of skeletons that should show when loading. Default: 6
|
|
122
73
|
*/
|
|
123
74
|
numberOfSkeletons: number;
|
|
124
|
-
/**
|
|
125
|
-
* Custom UI component to display individual channel list items
|
|
126
|
-
*
|
|
127
|
-
* Default: [ChannelPreviewView](https://getstream.io/chat/docs/sdk/reactnative/ui-components/channel-preview-view/)
|
|
128
|
-
*/
|
|
129
|
-
Preview: React.ComponentType<ChannelPreviewViewProps>;
|
|
130
75
|
/**
|
|
131
76
|
* Triggered when the channel list is refreshing, displays a loading spinner at the top of the list
|
|
132
77
|
*/
|
|
@@ -159,73 +104,16 @@ export type ChannelsContextValue = {
|
|
|
159
104
|
* ```
|
|
160
105
|
*/
|
|
161
106
|
setFlatListRef: (ref: FlatList<Channel> | null) => void;
|
|
162
|
-
/**
|
|
163
|
-
* Custom UI component to display loading channel skeletons
|
|
164
|
-
*
|
|
165
|
-
* Default: [Skeleton](https://getstream.io/chat/docs/sdk/reactnative/contexts/channels-context/#skeleton)
|
|
166
|
-
*/
|
|
167
|
-
Skeleton: React.ComponentType;
|
|
168
107
|
/**
|
|
169
108
|
* Error in channels query, if any
|
|
170
109
|
*/
|
|
171
110
|
error?: Error;
|
|
172
|
-
ListHeaderComponent?: React.ComponentType;
|
|
173
111
|
/**
|
|
174
112
|
* Function to set the currently active channel, acts as a bridge between ChannelList and Channel components
|
|
175
113
|
*
|
|
176
114
|
* @param channel A channel object
|
|
177
115
|
*/
|
|
178
116
|
onSelect?: (channel: Channel) => void;
|
|
179
|
-
/**
|
|
180
|
-
* Custom UI component to render preview avatar.
|
|
181
|
-
*
|
|
182
|
-
* **Default** [ChannelAvatar](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelAvatar.tsx)
|
|
183
|
-
*/
|
|
184
|
-
PreviewAvatar?: React.ComponentType<ChannelAvatarProps>;
|
|
185
|
-
/**
|
|
186
|
-
* Custom UI component to render preview of latest message on channel.
|
|
187
|
-
*
|
|
188
|
-
* **Default** [ChannelPreviewMessage](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMessage.tsx)
|
|
189
|
-
*/
|
|
190
|
-
PreviewMessage?: React.ComponentType<ChannelPreviewMessageProps>;
|
|
191
|
-
/**
|
|
192
|
-
* Custom UI component to render delivery status of latest message on channel.
|
|
193
|
-
*
|
|
194
|
-
* **Default** [ChannelMessagePreviewDeliveryStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.tsx)
|
|
195
|
-
*/
|
|
196
|
-
PreviewMessageDeliveryStatus?: React.ComponentType<ChannelMessagePreviewDeliveryStatusProps>;
|
|
197
|
-
/**
|
|
198
|
-
* Custom UI component to render muted status.
|
|
199
|
-
*
|
|
200
|
-
* **Default** [ChannelMutedStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx)
|
|
201
|
-
*/
|
|
202
|
-
PreviewMutedStatus?: React.ComponentType;
|
|
203
|
-
/**
|
|
204
|
-
* Custom UI component to render preview avatar.
|
|
205
|
-
*
|
|
206
|
-
* **Default** [ChannelPreviewStatus](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewStatus.tsx)
|
|
207
|
-
*/
|
|
208
|
-
PreviewStatus?: React.ComponentType<ChannelPreviewStatusProps>;
|
|
209
|
-
/**
|
|
210
|
-
* Custom UI component to render preview avatar.
|
|
211
|
-
*
|
|
212
|
-
* **Default** [ChannelPreviewTitle](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewTitle.tsx)
|
|
213
|
-
*/
|
|
214
|
-
PreviewTitle?: React.ComponentType<ChannelPreviewTitleProps>;
|
|
215
|
-
/**
|
|
216
|
-
* Custom UI component to render preview avatar.
|
|
217
|
-
*
|
|
218
|
-
* **Default** [ChannelPreviewUnreadCount](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx)
|
|
219
|
-
*/
|
|
220
|
-
PreviewUnreadCount?: React.ComponentType<ChannelPreviewUnreadCountProps>;
|
|
221
|
-
PreviewTypingIndicator?: React.ComponentType<ChannelPreviewTypingIndicatorProps>;
|
|
222
|
-
ChannelDetailsBottomSheet?: React.ComponentType<ChannelDetailsBottomSheetProps>;
|
|
223
|
-
/**
|
|
224
|
-
* Custom UI component to render preview of last message on channel.
|
|
225
|
-
*
|
|
226
|
-
* **Default** [ChannelLastMessagePreview](https://github.com/GetStream/stream-chat-react-native/blob/main/package/src/components/ChannelPreview/ChannelLastMessagePreview.tsx)
|
|
227
|
-
*/
|
|
228
|
-
PreviewLastMessage?: React.ComponentType<ChannelLastMessagePreviewProps>;
|
|
229
117
|
getChannelActionItems?: GetChannelActionItems;
|
|
230
118
|
swipeActionsEnabled?: boolean;
|
|
231
119
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useContext } from 'react';
|
|
2
|
-
import type { ImageProps } from 'react-native';
|
|
3
2
|
|
|
4
3
|
import type { AppSettingsAPIResponse, Channel, Mute, StreamChat } from 'stream-chat';
|
|
5
4
|
|
|
@@ -32,10 +31,6 @@ export type ChatContextValue = {
|
|
|
32
31
|
client: StreamChat;
|
|
33
32
|
connectionRecovering: boolean;
|
|
34
33
|
enableOfflineSupport: boolean;
|
|
35
|
-
/**
|
|
36
|
-
* Drop in replacement of all the underlying Image components within SDK. This is useful for the purpose of offline caching of images. Please check the Offline Support Guide for usage.
|
|
37
|
-
*/
|
|
38
|
-
ImageComponent: React.ComponentType<ImageProps>;
|
|
39
34
|
isOnline: boolean | null;
|
|
40
35
|
mutedUsers: Mute[];
|
|
41
36
|
/**
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React, { PropsWithChildren, useContext, useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* All overridable UI components in the SDK.
|
|
5
|
+
* Derived from the DEFAULT_COMPONENTS map in defaultComponents.ts.
|
|
6
|
+
* Adding a new default automatically makes it available as an override.
|
|
7
|
+
*
|
|
8
|
+
* Every key is optional — only specify the components you want to override.
|
|
9
|
+
*/
|
|
10
|
+
export type ComponentOverrides = Partial<
|
|
11
|
+
(typeof import('./defaultComponents'))['DEFAULT_COMPONENTS']
|
|
12
|
+
>;
|
|
13
|
+
|
|
14
|
+
const ComponentsContext = React.createContext<ComponentOverrides>({});
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Provider to override UI components at any level of the tree.
|
|
18
|
+
* Supports nesting — inner overrides merge over outer ones (closest wins).
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <WithComponents overrides={{ Message: MyCustomMessage, SendButton: MyCustomSendButton }}>
|
|
23
|
+
* <Channel channel={channel}>
|
|
24
|
+
* <MessageList />
|
|
25
|
+
* <MessageInput />
|
|
26
|
+
* </Channel>
|
|
27
|
+
* </WithComponents>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export const WithComponents = ({
|
|
31
|
+
children,
|
|
32
|
+
overrides,
|
|
33
|
+
}: PropsWithChildren<{ overrides: ComponentOverrides }>) => {
|
|
34
|
+
const parent = useContext(ComponentsContext);
|
|
35
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally stable: overrides are set once at mount
|
|
36
|
+
const merged = useMemo(() => ({ ...parent, ...overrides }), []);
|
|
37
|
+
return <ComponentsContext.Provider value={merged}>{children}</ComponentsContext.Provider>;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Lazy-loaded to break circular dependency:
|
|
41
|
+
// defaultComponents.ts → imports components → components import useComponentsContext from this file
|
|
42
|
+
let cachedDefaults: ComponentOverrides | undefined;
|
|
43
|
+
const getDefaults = (): ComponentOverrides => {
|
|
44
|
+
if (!cachedDefaults) {
|
|
45
|
+
cachedDefaults = (require('./defaultComponents') as { DEFAULT_COMPONENTS: ComponentOverrides })
|
|
46
|
+
.DEFAULT_COMPONENTS;
|
|
47
|
+
}
|
|
48
|
+
return cachedDefaults;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Hook to access resolved component overrides.
|
|
53
|
+
* Returns all components with defaults filled in — user overrides merged over defaults.
|
|
54
|
+
*/
|
|
55
|
+
export const useComponentsContext = () => {
|
|
56
|
+
const overrides = useContext(ComponentsContext);
|
|
57
|
+
return useMemo(
|
|
58
|
+
() => ({ ...getDefaults(), ...overrides }) as Required<ComponentOverrides>,
|
|
59
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- intentionally stable: overrides are set once at mount
|
|
60
|
+
[],
|
|
61
|
+
);
|
|
62
|
+
};
|