stream-chat-react 12.13.1 → 13.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -30
- package/dist/components/AIStateIndicator/AIStateIndicator.d.ts +4 -5
- package/dist/components/AIStateIndicator/hooks/useAIState.d.ts +2 -3
- package/dist/components/Attachment/Attachment.d.ts +8 -9
- package/dist/components/Attachment/Attachment.js +6 -5
- package/dist/components/Attachment/AttachmentActions.d.ts +2 -3
- package/dist/components/Attachment/AttachmentContainer.d.ts +15 -15
- package/dist/components/Attachment/AttachmentContainer.js +2 -2
- package/dist/components/Attachment/Audio.d.ts +3 -4
- package/dist/components/Attachment/Card.d.ts +1 -1
- package/dist/components/Attachment/FileAttachment.d.ts +3 -4
- package/dist/components/Attachment/FileAttachment.js +1 -1
- package/dist/components/Attachment/UnsupportedAttachment.d.ts +3 -4
- package/dist/components/Attachment/UnsupportedAttachment.js +1 -1
- package/dist/components/Attachment/VoiceRecording.d.ts +4 -5
- package/dist/components/Attachment/components/FileSizeIndicator.d.ts +1 -1
- package/dist/components/Attachment/components/FileSizeIndicator.js +4 -2
- package/dist/components/Attachment/utils.d.ts +8 -22
- package/dist/components/Attachment/utils.js +3 -18
- package/dist/components/Avatar/Avatar.d.ts +3 -4
- package/dist/components/Avatar/ChannelAvatar.d.ts +3 -4
- package/dist/components/Avatar/ChannelAvatar.js +1 -1
- package/dist/components/Avatar/GroupAvatar.d.ts +2 -2
- package/dist/components/Channel/Channel.d.ts +18 -37
- package/dist/components/Channel/Channel.js +31 -92
- package/dist/components/Channel/channelState.d.ts +17 -18
- package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +2 -3
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +2 -3
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +1 -15
- package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +1 -2
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +3 -4
- package/dist/components/Channel/hooks/useMentionsHandlers.d.ts +3 -4
- package/dist/components/Channel/utils.d.ts +8 -6
- package/dist/components/Channel/utils.js +1 -0
- package/dist/components/ChannelHeader/ChannelHeader.d.ts +2 -3
- package/dist/components/ChannelList/ChannelList.d.ts +31 -30
- package/dist/components/ChannelList/ChannelList.js +8 -10
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +6 -6
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelListShape.d.ts +44 -44
- package/dist/components/ChannelList/hooks/useChannelListShape.js +0 -2
- package/dist/components/ChannelList/hooks/useChannelMembershipState.d.ts +3 -3
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +7 -8
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +3 -3
- package/dist/components/ChannelList/hooks/useSelectedChannelState.d.ts +7 -7
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts +1 -2
- package/dist/components/ChannelList/utils.d.ts +20 -21
- package/dist/components/ChannelList/utils.js +2 -2
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +15 -16
- package/dist/components/ChannelPreview/ChannelPreview.js +1 -1
- package/dist/components/ChannelPreview/ChannelPreviewActionButtons.d.ts +4 -4
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +1 -2
- package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +3 -4
- package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts +1 -2
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +5 -7
- package/dist/components/ChannelPreview/icons.d.ts +1 -1
- package/dist/components/ChannelPreview/utils.d.ts +7 -7
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +5 -6
- package/dist/components/ChannelSearch/ChannelSearch.js +2 -2
- package/dist/components/ChannelSearch/SearchBar.d.ts +1 -1
- package/dist/components/ChannelSearch/SearchBar.js +1 -1
- package/dist/components/ChannelSearch/SearchResults.d.ts +13 -14
- package/dist/components/ChannelSearch/SearchResults.js +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +17 -18
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +2 -6
- package/dist/components/ChannelSearch/utils.d.ts +2 -3
- package/dist/components/Chat/Chat.d.ts +9 -9
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +1 -1
- package/dist/components/Chat/hooks/useChat.d.ts +10 -10
- package/dist/components/Chat/hooks/useChat.js +4 -3
- package/dist/components/Chat/hooks/useCreateChatClient.d.ts +4 -4
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts +1 -2
- package/dist/components/Dialog/DialogAnchor.d.ts +4 -3
- package/dist/components/Dialog/DialogAnchor.js +2 -2
- package/dist/components/Dialog/DialogMenu.d.ts +2 -1
- package/dist/components/Dialog/DialogPortal.d.ts +2 -1
- package/dist/components/Dialog/FormDialog.d.ts +2 -1
- package/dist/components/Dialog/FormDialog.js +1 -1
- package/dist/components/Dialog/PromptDialog.d.ts +2 -1
- package/dist/components/DragAndDrop/DragAndDropContainer.d.ts +2 -1
- package/dist/components/EventComponent/EventComponent.d.ts +7 -6
- package/dist/components/Form/FieldError.d.ts +2 -1
- package/dist/components/Form/SwitchField.d.ts +2 -1
- package/dist/components/Form/SwitchField.js +1 -1
- package/dist/components/Gallery/Gallery.d.ts +5 -5
- package/dist/components/Gallery/Image.d.ts +6 -5
- package/dist/components/Gallery/ModalGallery.d.ts +3 -4
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts +2 -1
- package/dist/components/LoadMore/LoadMoreButton.d.ts +2 -1
- package/dist/components/LoadMore/LoadMorePaginator.d.ts +3 -2
- package/dist/components/LoadMore/LoadMorePaginator.js +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +3 -2
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +1 -1
- package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +1 -1
- package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +11 -23
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +8 -8
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +6 -4
- package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +2 -2
- package/dist/components/MediaRecorder/observable/Observable.d.ts +1 -1
- package/dist/components/MediaRecorder/observable/Subject.d.ts +3 -2
- package/dist/components/Message/FixedHeightMessage.d.ts +4 -5
- package/dist/components/Message/Message.d.ts +1 -2
- package/dist/components/Message/MessageBlocked.d.ts +2 -0
- package/dist/components/Message/MessageBlocked.js +16 -0
- package/dist/components/Message/MessageDeleted.d.ts +4 -5
- package/dist/components/Message/MessageEditedTimestamp.d.ts +2 -3
- package/dist/components/Message/MessageErrorText.d.ts +4 -5
- package/dist/components/Message/MessageErrorText.js +2 -2
- package/dist/components/Message/MessageOptions.d.ts +3 -3
- package/dist/components/Message/MessageRepliesCountButton.d.ts +2 -1
- package/dist/components/Message/MessageSimple.d.ts +1 -2
- package/dist/components/Message/MessageSimple.js +14 -12
- package/dist/components/Message/MessageStatus.d.ts +3 -4
- package/dist/components/Message/MessageText.d.ts +6 -6
- package/dist/components/Message/MessageTimestamp.d.ts +4 -5
- package/dist/components/Message/QuotedMessage.d.ts +2 -3
- package/dist/components/Message/QuotedMessage.js +1 -1
- package/dist/components/Message/StreamedMessageText.d.ts +3 -4
- package/dist/components/Message/hooks/useActionHandler.d.ts +2 -3
- package/dist/components/Message/hooks/useActionHandler.js +1 -1
- package/dist/components/Message/hooks/useDeleteHandler.d.ts +4 -5
- package/dist/components/Message/hooks/useFlagHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useMarkUnreadHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useMentionsHandler.d.ts +6 -8
- package/dist/components/Message/hooks/useMessageTextStreaming.d.ts +2 -3
- package/dist/components/Message/hooks/useMuteHandler.d.ts +5 -7
- package/dist/components/Message/hooks/useMuteHandler.js +1 -1
- package/dist/components/Message/hooks/useOpenThreadHandler.d.ts +2 -3
- package/dist/components/Message/hooks/usePinHandler.d.ts +4 -5
- package/dist/components/Message/hooks/usePinHandler.js +1 -1
- package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -4
- package/dist/components/Message/hooks/useReactionHandler.js +2 -4
- package/dist/components/Message/hooks/useReactionsFetcher.d.ts +5 -7
- package/dist/components/Message/hooks/useRetryHandler.d.ts +2 -3
- package/dist/components/Message/hooks/useRetryHandler.js +1 -1
- package/dist/components/Message/hooks/useUserHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useUserRole.d.ts +2 -3
- package/dist/components/Message/hooks/useUserRole.js +1 -1
- package/dist/components/Message/icons.d.ts +2 -2
- package/dist/components/Message/icons.js +1 -1
- package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +2 -1
- package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +1 -1
- package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +5 -5
- package/dist/components/Message/renderText/componentRenderers/Mention.js +1 -1
- package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +1 -2
- package/dist/components/Message/renderText/renderText.d.ts +6 -6
- package/dist/components/Message/renderText/types.d.ts +1 -1
- package/dist/components/Message/types.d.ts +27 -28
- package/dist/components/Message/utils.d.ts +21 -21
- package/dist/components/Message/utils.js +8 -4
- package/dist/components/MessageActions/CustomMessageActionsList.d.ts +6 -7
- package/dist/components/MessageActions/MessageActions.d.ts +6 -5
- package/dist/components/MessageActions/MessageActions.js +1 -1
- package/dist/components/MessageActions/MessageActionsBox.d.ts +5 -5
- package/dist/components/MessageActions/MessageActionsBox.js +4 -3
- package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.d.ts +1 -1
- package/dist/components/MessageBounce/MessageBounceModal.d.ts +4 -3
- package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +1 -2
- package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +11 -11
- package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +17 -14
- package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +4 -12
- package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +8 -5
- package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +4 -5
- package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +2 -2
- package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +7 -5
- package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +5 -2
- package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +4 -5
- package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +5 -2
- package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +1 -1
- package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +3 -4
- package/dist/components/MessageInput/AttachmentSelector.d.ts +1 -2
- package/dist/components/MessageInput/AttachmentSelector.js +5 -3
- package/dist/components/MessageInput/EditMessageForm.d.ts +3 -2
- package/dist/components/MessageInput/EditMessageForm.js +30 -6
- package/dist/components/MessageInput/LinkPreviewList.d.ts +6 -4
- package/dist/components/MessageInput/LinkPreviewList.js +24 -10
- package/dist/components/MessageInput/MessageInput.d.ts +23 -45
- package/dist/components/MessageInput/MessageInput.js +25 -15
- package/dist/components/MessageInput/MessageInputFlat.d.ts +1 -2
- package/dist/components/MessageInput/MessageInputFlat.js +31 -76
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +4 -7
- package/dist/components/MessageInput/QuotedMessagePreview.js +22 -16
- package/dist/components/MessageInput/SendButton.d.ts +4 -5
- package/dist/components/MessageInput/SendButton.js +6 -2
- package/dist/components/MessageInput/WithDragAndDropUpload.d.ts +38 -0
- package/dist/components/MessageInput/WithDragAndDropUpload.js +96 -0
- package/dist/components/MessageInput/hooks/index.d.ts +5 -1
- package/dist/components/MessageInput/hooks/index.js +5 -1
- package/dist/components/MessageInput/hooks/useAttachmentManagerState.d.ts +10 -0
- package/dist/components/MessageInput/hooks/useAttachmentManagerState.js +19 -0
- package/dist/components/MessageInput/hooks/useCanCreatePoll.d.ts +1 -0
- package/dist/components/MessageInput/hooks/useCanCreatePoll.js +10 -0
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +2 -3
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +1 -2
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +1 -55
- package/dist/components/MessageInput/hooks/useMessageComposer.d.ts +2 -0
- package/dist/components/MessageInput/hooks/useMessageComposer.js +80 -0
- package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.d.ts +1 -0
- package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.js +8 -0
- package/dist/components/MessageInput/hooks/useMessageInputControls.d.ts +12 -0
- package/dist/components/MessageInput/hooks/useMessageInputControls.js +23 -0
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +1 -5
- package/dist/components/MessageInput/hooks/useMessageInputText.js +19 -53
- package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +1 -3
- package/dist/components/MessageInput/hooks/usePasteHandler.js +6 -8
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -6
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +30 -98
- package/dist/components/MessageInput/hooks/utils.d.ts +0 -27
- package/dist/components/MessageInput/hooks/utils.js +0 -124
- package/dist/components/MessageInput/index.d.ts +1 -2
- package/dist/components/MessageInput/index.js +1 -2
- package/dist/components/MessageList/ConnectionStatus.d.ts +1 -2
- package/dist/components/MessageList/ConnectionStatus.js +1 -1
- package/dist/components/MessageList/CustomNotification.d.ts +2 -1
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts +4 -5
- package/dist/components/MessageList/MessageList.d.ts +11 -12
- package/dist/components/MessageList/MessageList.js +4 -4
- package/dist/components/MessageList/MessageNotification.d.ts +2 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +22 -21
- package/dist/components/MessageList/VirtualizedMessageList.js +6 -6
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +10 -10
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +7 -7
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +8 -10
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +1 -1
- package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +11 -12
- package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts +4 -5
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +5 -6
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js +3 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +1 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +6 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +3 -4
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +5 -6
- package/dist/components/MessageList/hooks/useLastReadData.d.ts +5 -6
- package/dist/components/MessageList/hooks/useLastReadData.js +5 -1
- package/dist/components/MessageList/hooks/useMarkRead.d.ts +1 -2
- package/dist/components/MessageList/renderMessages.d.ts +14 -14
- package/dist/components/MessageList/renderMessages.js +8 -7
- package/dist/components/MessageList/utils.d.ts +34 -28
- package/dist/components/MessageList/utils.js +26 -21
- package/dist/components/Modal/Modal.d.ts +2 -1
- package/dist/components/Poll/Poll.d.ts +2 -3
- package/dist/components/Poll/Poll.js +1 -1
- package/dist/components/Poll/PollActions/AddCommentForm.d.ts +1 -2
- package/dist/components/Poll/PollActions/AddCommentForm.js +4 -2
- package/dist/components/Poll/PollActions/EndPollDialog.d.ts +1 -2
- package/dist/components/Poll/PollActions/EndPollDialog.js +1 -1
- package/dist/components/Poll/PollActions/PollAction.d.ts +2 -1
- package/dist/components/Poll/PollActions/PollActions.d.ts +7 -8
- package/dist/components/Poll/PollActions/PollActions.js +5 -5
- package/dist/components/Poll/PollActions/PollAnswerList.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollOptionsFullList.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollOptionsFullList.js +4 -2
- package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.d.ts +3 -4
- package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js +1 -1
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.d.ts +3 -4
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts +4 -5
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js +1 -1
- package/dist/components/Poll/PollActions/PollResults/PollResults.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollResults/PollResults.js +1 -1
- package/dist/components/Poll/PollActions/SuggestPollOptionForm.d.ts +1 -2
- package/dist/components/Poll/PollActions/SuggestPollOptionForm.js +3 -1
- package/dist/components/Poll/PollContent.d.ts +1 -2
- package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.d.ts +2 -0
- package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.js +35 -0
- package/dist/components/Poll/PollCreationDialog/NameField.d.ts +2 -0
- package/dist/components/Poll/PollCreationDialog/NameField.js +26 -0
- package/dist/components/Poll/PollCreationDialog/OptionFieldSet.d.ts +1 -8
- package/dist/components/Poll/PollCreationDialog/OptionFieldSet.js +33 -65
- package/dist/components/Poll/PollCreationDialog/PollCreationDialog.js +31 -85
- package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts +1 -4
- package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js +15 -41
- package/dist/components/Poll/PollCreationDialog/types.d.ts +0 -14
- package/dist/components/Poll/PollHeader.d.ts +1 -2
- package/dist/components/Poll/PollOptionList.d.ts +1 -2
- package/dist/components/Poll/PollOptionList.js +4 -2
- package/dist/components/Poll/PollOptionSelector.d.ts +3 -4
- package/dist/components/Poll/PollVote.d.ts +6 -7
- package/dist/components/Poll/PollVote.js +3 -3
- package/dist/components/Poll/QuotedPoll.d.ts +1 -2
- package/dist/components/Poll/constants.d.ts +0 -1
- package/dist/components/Poll/constants.js +0 -1
- package/dist/components/Poll/hooks/useManagePollVotesRealtime.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollAnswerPagination.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollAnswerPagination.js +2 -2
- package/dist/components/Poll/hooks/usePollOptionVotesPagination.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollOptionVotesPagination.js +1 -1
- package/dist/components/Portal/Portal.d.ts +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet.d.ts +2 -1
- package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts +1 -1
- package/dist/components/ReactFileUtilities/UploadButton.d.ts +3 -2
- package/dist/components/ReactFileUtilities/UploadButton.js +16 -6
- package/dist/components/ReactFileUtilities/index.d.ts +0 -1
- package/dist/components/ReactFileUtilities/index.js +0 -1
- package/dist/components/ReactFileUtilities/utils.d.ts +2 -2
- package/dist/components/Reactions/ReactionSelector.d.ts +4 -5
- package/dist/components/Reactions/ReactionSelectorWithButton.d.ts +1 -2
- package/dist/components/Reactions/ReactionsList.d.ts +6 -7
- package/dist/components/Reactions/ReactionsList.js +2 -2
- package/dist/components/Reactions/ReactionsListModal.d.ts +9 -10
- package/dist/components/Reactions/SimpleReactionsList.d.ts +5 -6
- package/dist/components/Reactions/StreamEmoji.d.ts +1 -1
- package/dist/components/Reactions/hooks/useFetchReactions.d.ts +9 -10
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +1 -2
- package/dist/components/Reactions/types.d.ts +3 -4
- package/dist/components/Reactions/utils/utils.d.ts +1 -1
- package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -1
- package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.d.ts +2 -1
- package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.js +1 -2
- package/dist/components/{EmoticonItem → TextareaComposer/SuggestionList}/EmoticonItem.d.ts +7 -7
- package/dist/components/TextareaComposer/SuggestionList/EmoticonItem.js +12 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionList.d.ts +16 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionList.js +49 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +18 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js +25 -0
- package/dist/components/{UserItem → TextareaComposer/SuggestionList}/UserItem.d.ts +7 -4
- package/dist/components/TextareaComposer/SuggestionList/UserItem.js +24 -0
- package/dist/components/TextareaComposer/SuggestionList/index.d.ts +5 -0
- package/dist/components/TextareaComposer/SuggestionList/index.js +5 -0
- package/dist/components/TextareaComposer/TextareaComposer.d.ts +13 -0
- package/dist/components/TextareaComposer/TextareaComposer.js +155 -0
- package/dist/components/TextareaComposer/index.d.ts +2 -0
- package/dist/components/TextareaComposer/index.js +2 -0
- package/dist/components/Thread/Thread.d.ts +13 -10
- package/dist/components/Thread/Thread.js +23 -12
- package/dist/components/Thread/ThreadHead.d.ts +2 -3
- package/dist/components/Thread/ThreadHeader.d.ts +5 -6
- package/dist/components/Thread/ThreadHeader.js +1 -1
- package/dist/components/Threads/ThreadContext.d.ts +2 -2
- package/dist/components/Threads/ThreadContext.js +1 -4
- package/dist/components/Threads/ThreadList/ThreadList.d.ts +1 -1
- package/dist/components/Threads/ThreadList/ThreadListItem.d.ts +1 -1
- package/dist/components/Threads/hooks/useThreadManagerState.d.ts +1 -1
- package/dist/components/Threads/hooks/useThreadState.d.ts +1 -1
- package/dist/components/Threads/icons.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -2
- package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.d.ts +1 -2
- package/dist/components/Window/Window.d.ts +6 -6
- package/dist/components/index.d.ts +1 -5
- package/dist/components/index.js +1 -5
- package/dist/context/AttachmentSelectorContext.d.ts +2 -1
- package/dist/context/ChannelActionContext.d.ts +26 -35
- package/dist/context/ChannelListContext.d.ts +9 -9
- package/dist/context/ChannelListContext.js +1 -1
- package/dist/context/ChannelStateContext.d.ts +24 -34
- package/dist/context/ChatContext.d.ts +18 -17
- package/dist/context/ComponentContext.d.ts +41 -37
- package/dist/context/DialogManagerContext.d.ts +2 -1
- package/dist/context/MessageBounceContext.d.ts +8 -7
- package/dist/context/MessageBounceContext.js +1 -1
- package/dist/context/MessageContext.d.ts +23 -23
- package/dist/context/MessageInputContext.d.ts +8 -26
- package/dist/context/MessageInputContext.js +3 -2
- package/dist/context/MessageListContext.d.ts +2 -1
- package/dist/context/PollContext.d.ts +8 -8
- package/dist/context/TranslationContext.d.ts +2 -1
- package/dist/context/TypingContext.d.ts +11 -10
- package/dist/context/VirtualizedMessageListContext.d.ts +2 -1
- package/dist/context/WithComponents.d.ts +3 -2
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/experimental/MessageActions/MessageActions.d.ts +1 -1
- package/dist/experimental/MessageActions/MessageActions.js +1 -1
- package/dist/experimental/MessageActions/defaults.js +4 -3
- package/dist/experimental/Search/Search.d.ts +1 -2
- package/dist/experimental/Search/SearchContext.d.ts +8 -8
- package/dist/experimental/Search/SearchResults/SearchResultItem.d.ts +11 -11
- package/dist/experimental/Search/SearchResults/SearchResultItem.js +3 -3
- package/dist/experimental/Search/SearchResults/SearchResults.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchResultsHeader.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchResultsHeader.js +1 -1
- package/dist/experimental/Search/SearchResults/SearchSourceResultList.d.ts +2 -3
- package/dist/experimental/Search/SearchResults/SearchSourceResultListFooter.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchSourceResults.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchSourceResults.js +1 -1
- package/dist/experimental/Search/SearchSourceResultsContext.d.ts +2 -1
- package/dist/experimental/Search/hooks/useSearchFocusedMessage.d.ts +1 -2
- package/dist/experimental/Search/hooks/useSearchFocusedMessage.js +3 -1
- package/dist/experimental/Search/hooks/useSearchQueriesInProgress.d.ts +3 -4
- package/dist/experimental/index.browser.cjs +1139 -1075
- package/dist/experimental/index.browser.cjs.map +4 -4
- package/dist/experimental/index.node.cjs +1139 -1075
- package/dist/experimental/index.node.cjs.map +4 -4
- package/dist/i18n/Streami18n.d.ts +2 -1
- package/dist/i18n/de.json +1 -0
- package/dist/i18n/en.json +1 -0
- package/dist/i18n/es.json +1 -0
- package/dist/i18n/fr.json +1 -0
- package/dist/i18n/hi.json +1 -0
- package/dist/i18n/it.json +1 -0
- package/dist/i18n/ja.json +1 -0
- package/dist/i18n/ko.json +1 -0
- package/dist/i18n/nl.json +1 -0
- package/dist/i18n/pt.json +1 -0
- package/dist/i18n/ru.json +1 -0
- package/dist/i18n/tr.json +1 -0
- package/dist/i18n/types.d.ts +2 -2
- package/dist/i18n/utils.d.ts +1 -1
- package/dist/i18n/utils.js +3 -1
- package/dist/index.browser.cjs +28774 -30813
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +30798 -32844
- package/dist/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/index.browser.cjs +133 -5
- package/dist/plugins/Emojis/index.browser.cjs.map +4 -4
- package/dist/plugins/Emojis/index.d.ts +1 -0
- package/dist/plugins/Emojis/index.js +1 -0
- package/dist/plugins/Emojis/index.node.cjs +135 -6
- package/dist/plugins/Emojis/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/middleware/index.d.ts +1 -0
- package/dist/plugins/Emojis/middleware/index.js +1 -0
- package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.d.ts +66 -0
- package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.js +143 -0
- package/dist/plugins/encoders/mp3.browser.cjs.map +2 -2
- package/dist/plugins/encoders/mp3.node.cjs.map +2 -2
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +14 -0
- package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +11 -0
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +18 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +15 -0
- package/dist/scss/v2/Message/Message-layout.scss +8 -0
- package/dist/scss/v2/Message/Message-theme.scss +29 -0
- package/dist/scss/v2/MessageInput/MessageInput-layout.scss +0 -13
- package/dist/scss/v2/MessageInput/MessageInput-theme.scss +8 -19
- package/dist/scss/v2/index.layout.scss +2 -1
- package/dist/scss/v2/index.scss +1 -0
- package/dist/types/defaultDataInterfaces.d.ts +25 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/types.d.ts +2 -62
- package/dist/utils/getChannel.d.ts +5 -6
- package/dist/utils/mergeDeep.d.ts +2 -3
- package/package.json +8 -11
- package/dist/components/AutoCompleteTextarea/Item.d.ts +0 -2
- package/dist/components/AutoCompleteTextarea/Item.js +0 -10
- package/dist/components/AutoCompleteTextarea/List.d.ts +0 -17
- package/dist/components/AutoCompleteTextarea/List.js +0 -89
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +0 -114
- package/dist/components/AutoCompleteTextarea/Textarea.js +0 -593
- package/dist/components/AutoCompleteTextarea/index.d.ts +0 -4
- package/dist/components/AutoCompleteTextarea/index.js +0 -4
- package/dist/components/AutoCompleteTextarea/types.d.ts +0 -15
- package/dist/components/AutoCompleteTextarea/utils.d.ts +0 -6
- package/dist/components/AutoCompleteTextarea/utils.js +0 -40
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +0 -78
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +0 -33
- package/dist/components/ChatAutoComplete/index.d.ts +0 -1
- package/dist/components/ChatAutoComplete/index.js +0 -1
- package/dist/components/CommandItem/index.d.ts +0 -1
- package/dist/components/CommandItem/index.js +0 -1
- package/dist/components/EmoticonItem/EmoticonItem.js +0 -16
- package/dist/components/EmoticonItem/index.d.ts +0 -1
- package/dist/components/EmoticonItem/index.js +0 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +0 -35
- package/dist/components/MessageInput/DefaultTriggerProvider.js +0 -24
- package/dist/components/MessageInput/DropzoneProvider.d.ts +0 -4
- package/dist/components/MessageInput/DropzoneProvider.js +0 -23
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +0 -14
- package/dist/components/MessageInput/hooks/useAttachments.js +0 -209
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +0 -62
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useEmojiTrigger.js +0 -29
- package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +0 -30
- package/dist/components/MessageInput/hooks/useLinkPreviews.js +0 -109
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +0 -71
- package/dist/components/MessageInput/hooks/useMessageInputState.js +0 -200
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +0 -12
- package/dist/components/MessageInput/hooks/useUserTrigger.js +0 -130
- package/dist/components/MessageInput/types.d.ts +0 -87
- package/dist/components/MessageInput/types.js +0 -19
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +0 -16
- package/dist/components/ReactFileUtilities/ImageDropzone.js +0 -42
- package/dist/components/UserItem/UserItem.js +0 -26
- package/dist/components/UserItem/index.d.ts +0 -1
- package/dist/components/UserItem/index.js +0 -1
- /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.d.ts +0 -0
- /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.js +0 -0
- /package/dist/scss/v2/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
- /package/dist/{components/AutoCompleteTextarea/types.js → types/defaultDataInterfaces.js} +0 -0
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ReactionDetailsComparator, ReactionSummary, ReactionType } from './types';
|
|
3
|
-
import { ModalProps } from '../Modal';
|
|
4
|
-
import { MessageContextValue } from '../../context';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
export type ReactionsListModalProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ModalProps & Partial<Pick<MessageContextValue<StreamChatGenerics>, 'handleFetchReactions' | 'reactionDetailsSort'>> & {
|
|
3
|
+
import type { ModalProps } from '../Modal';
|
|
4
|
+
import type { MessageContextValue } from '../../context';
|
|
5
|
+
import type { ReactionSort } from 'stream-chat';
|
|
6
|
+
export type ReactionsListModalProps = ModalProps & Partial<Pick<MessageContextValue, 'handleFetchReactions' | 'reactionDetailsSort'>> & {
|
|
8
7
|
reactions: ReactionSummary[];
|
|
9
|
-
selectedReactionType: ReactionType
|
|
10
|
-
onSelectedReactionTypeChange?: (reactionType: ReactionType
|
|
11
|
-
sort?: ReactionSort
|
|
8
|
+
selectedReactionType: ReactionType;
|
|
9
|
+
onSelectedReactionTypeChange?: (reactionType: ReactionType) => void;
|
|
10
|
+
sort?: ReactionSort;
|
|
12
11
|
/** @deprecated use `sort` instead */
|
|
13
|
-
sortReactionDetails?: ReactionDetailsComparator
|
|
12
|
+
sortReactionDetails?: ReactionDetailsComparator;
|
|
14
13
|
};
|
|
15
|
-
export declare function ReactionsListModal
|
|
14
|
+
export declare function ReactionsListModal({ handleFetchReactions, onSelectedReactionTypeChange, reactionDetailsSort: propReactionDetailsSort, reactions, selectedReactionType, sortReactionDetails: propSortReactionDetails, ...modalProps }: ReactionsListModalProps): React.JSX.Element;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ReactionGroupResponse, ReactionResponse } from 'stream-chat';
|
|
3
|
-
import { MessageContextValue } from '../../context/MessageContext';
|
|
4
|
-
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
3
|
+
import type { MessageContextValue } from '../../context/MessageContext';
|
|
5
4
|
import type { ReactionOptions } from './reactionOptions';
|
|
6
|
-
export type SimpleReactionsListProps
|
|
5
|
+
export type SimpleReactionsListProps = Partial<Pick<MessageContextValue, 'handleFetchReactions' | 'handleReaction'>> & {
|
|
7
6
|
/** An array of the own reaction objects to distinguish own reactions visually */
|
|
8
|
-
own_reactions?: ReactionResponse
|
|
7
|
+
own_reactions?: ReactionResponse[];
|
|
9
8
|
/**
|
|
10
9
|
* An object that keeps track of the count of each type of reaction on a message
|
|
11
10
|
* @deprecated This override value is no longer taken into account. Use `reaction_groups` to override reaction counts instead.
|
|
@@ -16,6 +15,6 @@ export type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamCha
|
|
|
16
15
|
/** A list of the currently supported reactions on a message */
|
|
17
16
|
reactionOptions?: ReactionOptions;
|
|
18
17
|
/** An array of the reaction objects to display in the list */
|
|
19
|
-
reactions?: ReactionResponse
|
|
18
|
+
reactions?: ReactionResponse[];
|
|
20
19
|
};
|
|
21
|
-
export declare const SimpleReactionsList:
|
|
20
|
+
export declare const SimpleReactionsList: (props: SimpleReactionsListProps) => React.JSX.Element | null;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { ReactionResponse, ReactionSort } from 'stream-chat';
|
|
2
|
-
import { MessageContextValue } from '../../../context';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
reactionType: ReactionType<StreamChatGenerics>;
|
|
1
|
+
import type { ReactionResponse, ReactionSort } from 'stream-chat';
|
|
2
|
+
import type { MessageContextValue } from '../../../context';
|
|
3
|
+
import type { ReactionType } from '../types';
|
|
4
|
+
export interface FetchReactionsOptions {
|
|
5
|
+
reactionType: ReactionType;
|
|
7
6
|
shouldFetch: boolean;
|
|
8
|
-
handleFetchReactions?: MessageContextValue
|
|
9
|
-
sort?: ReactionSort
|
|
7
|
+
handleFetchReactions?: MessageContextValue['handleFetchReactions'];
|
|
8
|
+
sort?: ReactionSort;
|
|
10
9
|
}
|
|
11
|
-
export declare function useFetchReactions
|
|
10
|
+
export declare function useFetchReactions(options: FetchReactionsOptions): {
|
|
12
11
|
isLoading: boolean;
|
|
13
|
-
reactions: ReactionResponse
|
|
12
|
+
reactions: ReactionResponse[];
|
|
14
13
|
};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { ReactionsListProps } from '../ReactionsList';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
3
2
|
import type { ReactionsComparator, ReactionSummary } from '../types';
|
|
4
3
|
type SharedReactionListProps = 'own_reactions' | 'reaction_counts' | 'reaction_groups' | 'reactionOptions' | 'reactions';
|
|
5
4
|
type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps> & {
|
|
6
5
|
sortReactions?: ReactionsComparator;
|
|
7
6
|
};
|
|
8
7
|
export declare const defaultReactionsSort: ReactionsComparator;
|
|
9
|
-
export declare const useProcessReactions:
|
|
8
|
+
export declare const useProcessReactions: (params: UseProcessReactionsParams) => {
|
|
10
9
|
existingReactions: ReactionSummary[];
|
|
11
10
|
hasReactions: boolean;
|
|
12
11
|
totalReactionCount: number;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { ComponentType } from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
import { DefaultStreamChatGenerics } from '../../types';
|
|
2
|
+
import type { ReactionResponse } from 'stream-chat';
|
|
4
3
|
export interface ReactionSummary {
|
|
5
4
|
EmojiComponent: ComponentType | null;
|
|
6
5
|
firstReactionAt: Date | null;
|
|
@@ -12,5 +11,5 @@ export interface ReactionSummary {
|
|
|
12
11
|
unlistedReactedUserCount: number;
|
|
13
12
|
}
|
|
14
13
|
export type ReactionsComparator = (a: ReactionSummary, b: ReactionSummary) => number;
|
|
15
|
-
export type ReactionDetailsComparator
|
|
16
|
-
export type ReactionType
|
|
14
|
+
export type ReactionDetailsComparator = (a: ReactionResponse, b: ReactionResponse) => number;
|
|
15
|
+
export type ReactionType = ReactionResponse['type'];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ForwardedRef, MutableRefObject } from 'react';
|
|
1
|
+
import type { ForwardedRef, MutableRefObject } from 'react';
|
|
2
2
|
export declare const isMutableRef: <T>(ref: ForwardedRef<T> | null) => ref is MutableRefObject<T>;
|
|
3
3
|
export declare const getImageDimensions: (source: string) => Promise<[number, number]>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
const
|
|
2
|
+
export const CommandItem = (props) => {
|
|
3
3
|
const { entity } = props;
|
|
4
4
|
return (React.createElement("div", { className: 'str-chat__slash-command' },
|
|
5
5
|
React.createElement("span", { className: 'str-chat__slash-command-header' },
|
|
@@ -9,4 +9,3 @@ const UnMemoizedCommandItem = (props) => {
|
|
|
9
9
|
React.createElement("br", null),
|
|
10
10
|
React.createElement("span", { className: 'str-chat__slash-command-description' }, entity.description)));
|
|
11
11
|
};
|
|
12
|
-
export const CommandItem = React.memo(UnMemoizedCommandItem);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export type EmoticonItemProps = {
|
|
3
3
|
entity: {
|
|
4
|
+
/** Name for emoticon */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Native value or actual emoticon */
|
|
7
|
+
native: string;
|
|
4
8
|
/** The parts of the Name property of the entity (or id if no name) that can be matched to the user input value.
|
|
5
9
|
* Default is bold for matches, but can be overwritten in css.
|
|
6
10
|
* */
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
tokenizedDisplayName: {
|
|
12
|
+
token: string;
|
|
9
13
|
parts: string[];
|
|
10
14
|
};
|
|
11
|
-
/** Name for emoticon */
|
|
12
|
-
name: string;
|
|
13
|
-
/** Native value or actual emoticon */
|
|
14
|
-
native: string;
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
|
-
export declare const EmoticonItem: (props: EmoticonItemProps) => React.JSX.Element;
|
|
17
|
+
export declare const EmoticonItem: (props: EmoticonItemProps) => React.JSX.Element | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export const EmoticonItem = (props) => {
|
|
3
|
+
const { entity } = props;
|
|
4
|
+
const hasEntity = Object.keys(entity).length;
|
|
5
|
+
if (!hasEntity)
|
|
6
|
+
return null;
|
|
7
|
+
const { parts, token } = entity.tokenizedDisplayName ?? {};
|
|
8
|
+
const renderName = () => parts?.map((part, i) => part.toLowerCase() === token ? (React.createElement("span", { className: 'str-chat__emoji-item--highlight', key: `part-${i}` }, part)) : (React.createElement("span", { className: 'str-chat__emoji-item--part', key: `part-${i}` }, part))) ?? null;
|
|
9
|
+
return (React.createElement("div", { className: 'str-chat__emoji-item' },
|
|
10
|
+
React.createElement("span", { className: 'str-chat__emoji-item--entity' }, entity.native),
|
|
11
|
+
React.createElement("span", { className: 'str-chat__emoji-item--name' }, renderName())));
|
|
12
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SuggestionItemProps } from './SuggestionListItem';
|
|
3
|
+
export type SuggestionListProps = Partial<{
|
|
4
|
+
SuggestionItem: React.ComponentType<SuggestionItemProps>;
|
|
5
|
+
className?: string;
|
|
6
|
+
closeOnClickOutside?: boolean;
|
|
7
|
+
containerClassName?: string;
|
|
8
|
+
focusedItemIndex: number;
|
|
9
|
+
setFocusedItemIndex: (index: number) => void;
|
|
10
|
+
}>;
|
|
11
|
+
export declare const defaultComponents: {
|
|
12
|
+
'/': (props: React.PropsWithChildren<import("./CommandItem").CommandItemProps>) => React.JSX.Element;
|
|
13
|
+
':': (props: import("./EmoticonItem").EmoticonItemProps) => React.JSX.Element | null;
|
|
14
|
+
'@': ({ Avatar, entity }: import("./UserItem").UserItemProps) => React.JSX.Element | null;
|
|
15
|
+
};
|
|
16
|
+
export declare const SuggestionList: ({ className, closeOnClickOutside, containerClassName, focusedItemIndex, setFocusedItemIndex, }: SuggestionListProps) => React.JSX.Element | null;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import { CommandItem } from './CommandItem';
|
|
4
|
+
import { EmoticonItem } from './EmoticonItem';
|
|
5
|
+
import { SuggestionListItem as DefaultSuggestionListItem } from './SuggestionListItem';
|
|
6
|
+
import { UserItem } from './UserItem';
|
|
7
|
+
import { useComponentContext } from '../../../context/ComponentContext';
|
|
8
|
+
import { useStateStore } from '../../../store';
|
|
9
|
+
import { InfiniteScrollPaginator } from '../../InfiniteScrollPaginator/InfiniteScrollPaginator';
|
|
10
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
11
|
+
const textComposerStateSelector = (state) => ({
|
|
12
|
+
suggestions: state.suggestions,
|
|
13
|
+
});
|
|
14
|
+
const searchSourceStateSelector = (nextValue) => ({
|
|
15
|
+
items: nextValue.items ?? [],
|
|
16
|
+
});
|
|
17
|
+
export const defaultComponents = {
|
|
18
|
+
'/': CommandItem,
|
|
19
|
+
':': EmoticonItem,
|
|
20
|
+
'@': UserItem,
|
|
21
|
+
};
|
|
22
|
+
export const SuggestionList = ({ className, closeOnClickOutside = true, containerClassName, focusedItemIndex, setFocusedItemIndex, }) => {
|
|
23
|
+
const { AutocompleteSuggestionItem = DefaultSuggestionListItem } = useComponentContext();
|
|
24
|
+
const messageComposer = useMessageComposer();
|
|
25
|
+
const { textComposer } = messageComposer;
|
|
26
|
+
const { suggestions } = useStateStore(textComposer.state, textComposerStateSelector);
|
|
27
|
+
const { items } = useStateStore(suggestions?.searchSource.state, searchSourceStateSelector) ?? {};
|
|
28
|
+
const [container, setContainer] = useState(null);
|
|
29
|
+
// @ts-expect-error component type mismatch
|
|
30
|
+
const component = suggestions?.trigger && defaultComponents[suggestions?.trigger];
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!closeOnClickOutside || !suggestions || !container)
|
|
33
|
+
return;
|
|
34
|
+
const handleClick = (event) => {
|
|
35
|
+
if (container.contains(event.target))
|
|
36
|
+
return;
|
|
37
|
+
textComposer.closeSuggestions();
|
|
38
|
+
};
|
|
39
|
+
document.addEventListener('click', handleClick);
|
|
40
|
+
return () => {
|
|
41
|
+
document.removeEventListener('click', handleClick);
|
|
42
|
+
};
|
|
43
|
+
}, [closeOnClickOutside, suggestions, container, textComposer]);
|
|
44
|
+
if (!suggestions || !items?.length || !component)
|
|
45
|
+
return null;
|
|
46
|
+
return (React.createElement("div", { className: clsx('str-chat__suggestion-list-container', containerClassName), ref: setContainer },
|
|
47
|
+
React.createElement(InfiniteScrollPaginator, { loadNextOnScrollToBottom: suggestions.searchSource.search, threshold: 100 },
|
|
48
|
+
React.createElement("ul", { className: clsx('str-chat__suggestion-list str-chat__suggestion-list--react', className) }, items.map((item, i) => (React.createElement(AutocompleteSuggestionItem, { component: component, focused: focusedItemIndex === i, item: item, key: item.id.toString(), onMouseEnter: () => setFocusedItemIndex?.(i) })))))));
|
|
49
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CommandResponse, TextComposerSuggestion, UserResponse } from 'stream-chat';
|
|
3
|
+
import type { EmojiSearchIndexResult } from '../../MessageInput';
|
|
4
|
+
export type SuggestionCommand = CommandResponse;
|
|
5
|
+
export type SuggestionUser = UserResponse;
|
|
6
|
+
export type SuggestionEmoji = EmojiSearchIndexResult;
|
|
7
|
+
export type SuggestionItem = SuggestionUser | SuggestionCommand | SuggestionEmoji;
|
|
8
|
+
export type SuggestionItemProps = {
|
|
9
|
+
component: React.ComponentType<{
|
|
10
|
+
entity: SuggestionItem;
|
|
11
|
+
focused: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
item: TextComposerSuggestion;
|
|
14
|
+
focused: boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
onMouseEnter?: () => void;
|
|
17
|
+
};
|
|
18
|
+
export declare const SuggestionListItem: React.ForwardRefExoticComponent<SuggestionItemProps & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import { useLayoutEffect } from 'react';
|
|
3
|
+
import React, { useCallback, useRef } from 'react';
|
|
4
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
5
|
+
export const SuggestionListItem = React.forwardRef(function SuggestionListItem({ className, component: Component, focused, item, onMouseEnter }, innerRef) {
|
|
6
|
+
const { textComposer } = useMessageComposer();
|
|
7
|
+
const containerRef = useRef(null);
|
|
8
|
+
const handleSelect = useCallback(() => {
|
|
9
|
+
textComposer.handleSelect(item);
|
|
10
|
+
}, [item, textComposer]);
|
|
11
|
+
useLayoutEffect(() => {
|
|
12
|
+
if (!focused)
|
|
13
|
+
return;
|
|
14
|
+
containerRef.current?.scrollIntoView({ behavior: 'instant', block: 'nearest' });
|
|
15
|
+
}, [focused, containerRef]);
|
|
16
|
+
return (React.createElement("li", { className: clsx('str-chat__suggestion-list-item', className, {
|
|
17
|
+
'str-chat__suggestion-item--selected': focused,
|
|
18
|
+
}), onMouseEnter: onMouseEnter, ref: containerRef },
|
|
19
|
+
React.createElement("button", { onClick: handleSelect, onKeyDown: (event) => {
|
|
20
|
+
if (event.key === 'Enter') {
|
|
21
|
+
handleSelect();
|
|
22
|
+
}
|
|
23
|
+
}, ref: innerRef },
|
|
24
|
+
React.createElement(Component, { entity: item, focused: focused }))));
|
|
25
|
+
});
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AvatarProps } from '
|
|
2
|
+
import type { AvatarProps } from '../../Avatar';
|
|
3
3
|
export type UserItemProps = {
|
|
4
4
|
/** The user */
|
|
5
5
|
entity: {
|
|
6
6
|
/** The parts of the Name property of the entity (or id if no name) that can be matched to the user input value.
|
|
7
7
|
* Default is bold for matches, but can be overwritten in css.
|
|
8
8
|
* */
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
tokenizedDisplayName: {
|
|
10
|
+
token: string;
|
|
11
11
|
parts: string[];
|
|
12
12
|
};
|
|
13
13
|
/** Id of the user */
|
|
@@ -20,4 +20,7 @@ export type UserItemProps = {
|
|
|
20
20
|
/** Custom UI component to display user avatar, defaults to and accepts same props as: [Avatar](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Avatar/Avatar.tsx) */
|
|
21
21
|
Avatar?: React.ComponentType<AvatarProps>;
|
|
22
22
|
};
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* UI component for mentions rendered in suggestion list
|
|
25
|
+
*/
|
|
26
|
+
export declare const UserItem: ({ Avatar, entity }: UserItemProps) => React.JSX.Element | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { Avatar as DefaultAvatar } from '../../Avatar';
|
|
4
|
+
/**
|
|
5
|
+
* UI component for mentions rendered in suggestion list
|
|
6
|
+
*/
|
|
7
|
+
export const UserItem = ({ Avatar = DefaultAvatar, entity }) => {
|
|
8
|
+
const hasEntity = !!Object.keys(entity).length;
|
|
9
|
+
if (!hasEntity)
|
|
10
|
+
return null;
|
|
11
|
+
const { parts, token } = entity.tokenizedDisplayName;
|
|
12
|
+
const renderName = () => parts.map((part, i) => {
|
|
13
|
+
const matches = part.toLowerCase() === token;
|
|
14
|
+
const partWithHTMLSpacesAround = part.replace(/^\s+|\s+$/g, '\u00A0');
|
|
15
|
+
return (React.createElement("span", { className: clsx({
|
|
16
|
+
'str-chat__emoji-item--highlight': matches,
|
|
17
|
+
'str-chat__emoji-item--part': !matches,
|
|
18
|
+
}), key: `part-${i}` }, partWithHTMLSpacesAround));
|
|
19
|
+
});
|
|
20
|
+
return (React.createElement("div", { className: 'str-chat__user-item' },
|
|
21
|
+
React.createElement(Avatar, { className: 'str-chat__avatar--autocomplete-item', image: entity.image, name: entity.name || entity.id }),
|
|
22
|
+
React.createElement("span", { className: 'str-chat__user-item--name', "data-testid": 'user-item-name' }, renderName()),
|
|
23
|
+
React.createElement("div", { className: 'str-chat__user-item-at' }, "@")));
|
|
24
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TextareaHTMLAttributes } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export type TextComposerProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'style' | 'defaultValue' | 'disabled'> & {
|
|
4
|
+
closeSuggestionsOnClickOutside?: boolean;
|
|
5
|
+
containerClassName?: string;
|
|
6
|
+
dropdownClassName?: string;
|
|
7
|
+
grow?: boolean;
|
|
8
|
+
itemClassName?: string;
|
|
9
|
+
listClassName?: string;
|
|
10
|
+
maxRows?: number;
|
|
11
|
+
shouldSubmit?: (event: React.KeyboardEvent<HTMLTextAreaElement>) => boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const TextareaComposer: ({ className, closeSuggestionsOnClickOutside, containerClassName, grow: growProp, listClassName, maxRows: maxRowsProp, onBlur, onChange, onKeyDown, onScroll, placeholder: placeholderProp, shouldSubmit: shouldSubmitProp, ...restProps }: TextComposerProps) => React.JSX.Element;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import Textarea from 'react-textarea-autosize';
|
|
4
|
+
import { useMessageComposer } from '../MessageInput';
|
|
5
|
+
import { useComponentContext, useMessageInputContext, useTranslationContext, } from '../../context';
|
|
6
|
+
import { useStateStore } from '../../store';
|
|
7
|
+
import { SuggestionList as DefaultSuggestionList } from './SuggestionList';
|
|
8
|
+
const textComposerStateSelector = (state) => ({
|
|
9
|
+
selection: state.selection,
|
|
10
|
+
suggestions: state.suggestions,
|
|
11
|
+
text: state.text,
|
|
12
|
+
});
|
|
13
|
+
const searchSourceStateSelector = (state) => ({
|
|
14
|
+
isLoadingItems: state.isLoading,
|
|
15
|
+
items: state.items,
|
|
16
|
+
});
|
|
17
|
+
const configStateSelector = (state) => ({
|
|
18
|
+
enabled: state.text.enabled,
|
|
19
|
+
});
|
|
20
|
+
/**
|
|
21
|
+
* isComposing prevents double submissions in Korean and other languages.
|
|
22
|
+
* starting point for a read:
|
|
23
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/isComposing
|
|
24
|
+
* In the long term, the fix should happen by handling keypress, but changing this has unknown implications.
|
|
25
|
+
*/
|
|
26
|
+
const defaultShouldSubmit = (event) => event.key === 'Enter' && !event.shiftKey && !event.nativeEvent.isComposing;
|
|
27
|
+
export const TextareaComposer = ({ className, closeSuggestionsOnClickOutside, containerClassName,
|
|
28
|
+
// dropdownClassName, // todo: X find a different way to prevent prop drilling
|
|
29
|
+
grow: growProp,
|
|
30
|
+
// itemClassName, // todo: X find a different way to prevent prop drilling
|
|
31
|
+
listClassName, maxRows: maxRowsProp = 1, onBlur, onChange, onKeyDown, onScroll, placeholder: placeholderProp, shouldSubmit: shouldSubmitProp, ...restProps }) => {
|
|
32
|
+
const { t } = useTranslationContext();
|
|
33
|
+
const { AutocompleteSuggestionList = DefaultSuggestionList } = useComponentContext();
|
|
34
|
+
const { additionalTextareaProps, cooldownRemaining, grow: growContext, handleSubmit, maxRows: maxRowsContext, onPaste, shouldSubmit: shouldSubmitContext, textareaRef, } = useMessageInputContext();
|
|
35
|
+
const grow = growProp ?? growContext;
|
|
36
|
+
const maxRows = maxRowsProp ?? maxRowsContext;
|
|
37
|
+
const placeholder = placeholderProp ?? additionalTextareaProps?.placeholder;
|
|
38
|
+
const shouldSubmit = shouldSubmitProp ?? shouldSubmitContext ?? defaultShouldSubmit;
|
|
39
|
+
const messageComposer = useMessageComposer();
|
|
40
|
+
const { textComposer } = messageComposer;
|
|
41
|
+
const { selection, suggestions, text } = useStateStore(textComposer.state, textComposerStateSelector);
|
|
42
|
+
const { enabled } = useStateStore(messageComposer.configState, configStateSelector);
|
|
43
|
+
const { isLoadingItems } = useStateStore(suggestions?.searchSource.state, searchSourceStateSelector) ?? {};
|
|
44
|
+
const containerRef = useRef(null);
|
|
45
|
+
const [focusedItemIndex, setFocusedItemIndex] = useState(0);
|
|
46
|
+
const [isComposing, setIsComposing] = useState(false);
|
|
47
|
+
const changeHandler = useCallback((e) => {
|
|
48
|
+
if (onChange) {
|
|
49
|
+
onChange(e);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (!textareaRef.current)
|
|
53
|
+
return;
|
|
54
|
+
textComposer.handleChange({
|
|
55
|
+
selection: {
|
|
56
|
+
end: textareaRef.current.selectionEnd,
|
|
57
|
+
start: textareaRef.current.selectionStart,
|
|
58
|
+
},
|
|
59
|
+
text: e.target.value,
|
|
60
|
+
});
|
|
61
|
+
}, [onChange, textComposer, textareaRef]);
|
|
62
|
+
const onCompositionEnd = useCallback(() => {
|
|
63
|
+
setIsComposing(false);
|
|
64
|
+
}, []);
|
|
65
|
+
const onCompositionStart = useCallback(() => {
|
|
66
|
+
setIsComposing(true);
|
|
67
|
+
}, []);
|
|
68
|
+
const keyDownHandler = useCallback((event) => {
|
|
69
|
+
if (onKeyDown) {
|
|
70
|
+
onKeyDown(event);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (event.key === 'Enter') {
|
|
74
|
+
// allow next line only on Shift + Enter. Enter is reserved for submission.
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
}
|
|
77
|
+
if (textComposer.suggestions &&
|
|
78
|
+
textComposer.suggestions.searchSource.items?.length) {
|
|
79
|
+
if (event.key === 'Escape')
|
|
80
|
+
return textComposer.closeSuggestions();
|
|
81
|
+
const loadedItems = textComposer.suggestions.searchSource.items;
|
|
82
|
+
if (event.key === 'Enter') {
|
|
83
|
+
textComposer.handleSelect(loadedItems[focusedItemIndex]);
|
|
84
|
+
}
|
|
85
|
+
if (event.key === 'ArrowUp') {
|
|
86
|
+
event.preventDefault();
|
|
87
|
+
setFocusedItemIndex((prev) => {
|
|
88
|
+
let nextIndex = prev - 1;
|
|
89
|
+
if (suggestions?.searchSource.hasNext) {
|
|
90
|
+
nextIndex = prev;
|
|
91
|
+
}
|
|
92
|
+
else if (nextIndex < 0) {
|
|
93
|
+
nextIndex = loadedItems.length - 1;
|
|
94
|
+
}
|
|
95
|
+
return nextIndex;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
if (event.key === 'ArrowDown') {
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
setFocusedItemIndex((prev) => {
|
|
101
|
+
let nextIndex = prev + 1;
|
|
102
|
+
if (suggestions?.searchSource.hasNext) {
|
|
103
|
+
nextIndex = prev;
|
|
104
|
+
}
|
|
105
|
+
else if (nextIndex >= loadedItems.length) {
|
|
106
|
+
nextIndex = 0;
|
|
107
|
+
}
|
|
108
|
+
return nextIndex;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else if (shouldSubmit(event) && textareaRef.current) {
|
|
113
|
+
handleSubmit();
|
|
114
|
+
textareaRef.current.selectionEnd = 0;
|
|
115
|
+
}
|
|
116
|
+
}, [
|
|
117
|
+
focusedItemIndex,
|
|
118
|
+
handleSubmit,
|
|
119
|
+
onKeyDown,
|
|
120
|
+
shouldSubmit,
|
|
121
|
+
suggestions,
|
|
122
|
+
textComposer,
|
|
123
|
+
textareaRef,
|
|
124
|
+
]);
|
|
125
|
+
const scrollHandler = useCallback((event) => {
|
|
126
|
+
if (onScroll) {
|
|
127
|
+
onScroll(event);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
textComposer.closeSuggestions();
|
|
131
|
+
}
|
|
132
|
+
}, [onScroll, textComposer]);
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
// FIXME: find the real reason for cursor being set to the end on each change
|
|
135
|
+
// This is a workaround to prevent the cursor from jumping
|
|
136
|
+
// to the end of the textarea when the user is typing
|
|
137
|
+
// at the position that is not at the end of the textarea value.
|
|
138
|
+
if (textareaRef.current && !isComposing) {
|
|
139
|
+
textareaRef.current.selectionStart = selection.start;
|
|
140
|
+
textareaRef.current.selectionEnd = selection.end;
|
|
141
|
+
}
|
|
142
|
+
}, [text, textareaRef, selection.start, selection.end, isComposing]);
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
if (textComposer.suggestions) {
|
|
145
|
+
setFocusedItemIndex(0);
|
|
146
|
+
}
|
|
147
|
+
}, [textComposer.suggestions]);
|
|
148
|
+
return (React.createElement("div", { className: clsx('rta', 'str-chat__textarea str-chat__message-textarea-react-host', containerClassName, {
|
|
149
|
+
['rta--loading']: isLoadingItems,
|
|
150
|
+
}), ref: containerRef },
|
|
151
|
+
React.createElement(Textarea, { ...restProps, "aria-label": cooldownRemaining ? t('Slow Mode ON') : placeholder, className: clsx('rta__textarea', 'str-chat__textarea__textarea str-chat__message-textarea', className), "data-testid": 'message-input', disabled: !enabled || !!cooldownRemaining, maxRows: grow ? maxRows : 1, onBlur: onBlur, onChange: changeHandler, onCompositionEnd: onCompositionEnd, onCompositionStart: onCompositionStart, onKeyDown: keyDownHandler, onPaste: onPaste, onScroll: scrollHandler, placeholder: placeholder || t('Type your message'), ref: (ref) => {
|
|
152
|
+
textareaRef.current = ref;
|
|
153
|
+
}, value: text }),
|
|
154
|
+
!isComposing && (React.createElement(AutocompleteSuggestionList, { className: listClassName, closeOnClickOutside: closeSuggestionsOnClickOutside, focusedItemIndex: focusedItemIndex, setFocusedItemIndex: setFocusedItemIndex }))));
|
|
155
|
+
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { MessageInputProps } from '../MessageInput';
|
|
3
|
-
import { MessageListProps, VirtualizedMessageListProps } from '../MessageList';
|
|
2
|
+
import type { MessageInputProps } from '../MessageInput';
|
|
3
|
+
import type { MessageListProps, VirtualizedMessageListProps } from '../MessageList';
|
|
4
4
|
import type { MessageProps, MessageUIComponentProps } from '../Message/types';
|
|
5
5
|
import type { MessageActionsArray } from '../Message/utils';
|
|
6
|
-
import type {
|
|
7
|
-
export type ThreadProps
|
|
6
|
+
import type { LocalMessage } from 'stream-chat';
|
|
7
|
+
export type ThreadProps = {
|
|
8
8
|
/** Additional props for `MessageInput` component: [available props](https://getstream.io/chat/docs/sdk/react/message-input-components/message_input/#props) */
|
|
9
|
-
additionalMessageInputProps?: MessageInputProps
|
|
9
|
+
additionalMessageInputProps?: MessageInputProps;
|
|
10
10
|
/** Additional props for `MessageList` component: [available props](https://getstream.io/chat/docs/sdk/react/core-components/message_list/#props) */
|
|
11
|
-
additionalMessageListProps?: MessageListProps
|
|
11
|
+
additionalMessageListProps?: MessageListProps;
|
|
12
12
|
/** Additional props for `Message` component of the parent message: [available props](https://getstream.io/chat/docs/sdk/react/message-components/message/#props) */
|
|
13
|
-
additionalParentMessageProps?: Partial<MessageProps
|
|
13
|
+
additionalParentMessageProps?: Partial<MessageProps>;
|
|
14
14
|
/** Additional props for `VirtualizedMessageList` component: [available props](https://getstream.io/chat/docs/sdk/react/core-components/virtualized_list/#props) */
|
|
15
|
-
additionalVirtualizedMessageListProps?: VirtualizedMessageListProps
|
|
15
|
+
additionalVirtualizedMessageListProps?: VirtualizedMessageListProps;
|
|
16
16
|
/** If true, focuses the `MessageInput` component on opening a thread */
|
|
17
17
|
autoFocus?: boolean;
|
|
18
18
|
/** Injects date separator components into `Thread`, defaults to `false`. To be passed to the underlying `MessageList` or `VirtualizedMessageList` components */
|
|
@@ -20,13 +20,16 @@ export type ThreadProps<StreamChatGenerics extends DefaultStreamChatGenerics = D
|
|
|
20
20
|
/** Custom thread input UI component used to override the default `Input` value stored in `ComponentContext` or the [MessageInputSmall](https://github.com/GetStream/stream-chat-react/blob/master/src/components/MessageInput/MessageInputSmall.tsx) default */
|
|
21
21
|
Input?: React.ComponentType;
|
|
22
22
|
/** Custom thread message UI component used to override the default `Message` value stored in `ComponentContext` */
|
|
23
|
-
Message?: React.ComponentType<MessageUIComponentProps
|
|
23
|
+
Message?: React.ComponentType<MessageUIComponentProps>;
|
|
24
24
|
/** Array of allowed message actions (ex: ['edit', 'delete', 'flag', 'mute', 'pin', 'quote', 'react', 'reply']). To disable all actions, provide an empty array. */
|
|
25
25
|
messageActions?: MessageActionsArray;
|
|
26
26
|
/** If true, render the `VirtualizedMessageList` instead of the standard `MessageList` component */
|
|
27
27
|
virtualized?: boolean;
|
|
28
28
|
};
|
|
29
|
+
export declare const useLegacyThreadContext: () => {
|
|
30
|
+
legacyThread: LocalMessage | undefined;
|
|
31
|
+
};
|
|
29
32
|
/**
|
|
30
33
|
* The Thread component renders a parent Message with a list of replies
|
|
31
34
|
*/
|
|
32
|
-
export declare const Thread:
|
|
35
|
+
export declare const Thread: (props: ThreadProps) => React.JSX.Element | null;
|