stream-chat-react 12.15.0 → 13.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 -43
- package/dist/components/Channel/Channel.js +25 -88
- 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 +3 -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/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 +8 -10
- 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 -22
- package/dist/components/Message/utils.js +5 -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 +24 -17
- package/dist/components/MessageInput/MessageInputFlat.d.ts +1 -2
- package/dist/components/MessageInput/MessageInputFlat.js +14 -39
- 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 +4 -3
- package/dist/components/MessageInput/WithDragAndDropUpload.js +20 -9
- 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 +0 -2
- package/dist/components/MessageInput/index.js +0 -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/TextareaComposer/SuggestionList/CommandItem.d.ts +7 -0
- 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 +14 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionList.js +50 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +18 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js +24 -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 +39 -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/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 +1 -1
- 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 +28513 -30641
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +30740 -32877
- package/dist/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/index.browser.cjs +133 -2
- 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 -3
- 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/LinkPreview/LinkPreview-layout.scss +18 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +15 -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 +5 -5
- 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/CommandItem.d.ts +0 -12
- 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/{components/AutoCompleteTextarea/types.js → types/defaultDataInterfaces.js} +0 -0
|
@@ -1,28 +1 @@
|
|
|
1
|
-
import type { UserResponse } from 'stream-chat';
|
|
2
|
-
import type { ChannelActionContextValue } from '../../../context/ChannelActionContext';
|
|
3
|
-
import type { ChatContextValue } from '../../../context/ChatContext';
|
|
4
|
-
import type { TranslationContextValue } from '../../../context/TranslationContext';
|
|
5
|
-
import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
6
|
-
export declare const accentsMap: {
|
|
7
|
-
[key: string]: string;
|
|
8
|
-
};
|
|
9
|
-
export declare const removeDiacritics: (text?: string) => string;
|
|
10
|
-
export declare const calculateLevenshtein: (query: string, name: string) => number;
|
|
11
|
-
export type SearchLocalUserParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
12
|
-
ownUserId: string | undefined;
|
|
13
|
-
query: string;
|
|
14
|
-
text: string;
|
|
15
|
-
users: UserResponse<StreamChatGenerics>[];
|
|
16
|
-
useMentionsTransliteration?: boolean;
|
|
17
|
-
};
|
|
18
|
-
export declare const searchLocalUsers: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: SearchLocalUserParams<StreamChatGenerics>) => UserResponse<StreamChatGenerics>[];
|
|
19
|
-
type CheckUploadPermissionsParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
20
|
-
addNotification: ChannelActionContextValue<StreamChatGenerics>['addNotification'];
|
|
21
|
-
file: File;
|
|
22
|
-
getAppSettings: ChatContextValue<StreamChatGenerics>['getAppSettings'];
|
|
23
|
-
t: TranslationContextValue['t'];
|
|
24
|
-
uploadType: 'image' | 'file';
|
|
25
|
-
};
|
|
26
|
-
export declare const checkUploadPermissions: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: CheckUploadPermissionsParams<StreamChatGenerics>) => Promise<boolean>;
|
|
27
1
|
export declare function prettifyFileSize(bytes: number, precision?: number): string;
|
|
28
|
-
export {};
|
|
@@ -1,127 +1,3 @@
|
|
|
1
|
-
import { DEFAULT_UPLOAD_SIZE_LIMIT_BYTES } from '../../../constants/limits';
|
|
2
|
-
export const accentsMap = {
|
|
3
|
-
a: 'á|à|ã|â|À|Á|Ã|Â',
|
|
4
|
-
c: 'ç|Ç',
|
|
5
|
-
e: 'é|è|ê|É|È|Ê',
|
|
6
|
-
i: 'í|ì|î|Í|Ì|Î',
|
|
7
|
-
n: 'ñ|Ñ',
|
|
8
|
-
o: 'ó|ò|ô|ő|õ|Ó|Ò|Ô|Õ',
|
|
9
|
-
u: 'ú|ù|û|ü|Ú|Ù|Û|Ü',
|
|
10
|
-
};
|
|
11
|
-
export const removeDiacritics = (text) => {
|
|
12
|
-
if (!text)
|
|
13
|
-
return '';
|
|
14
|
-
return Object.keys(accentsMap).reduce((acc, current) => acc.replace(new RegExp(accentsMap[current], 'g'), current), text);
|
|
15
|
-
};
|
|
16
|
-
export const calculateLevenshtein = (query, name) => {
|
|
17
|
-
if (query.length === 0)
|
|
18
|
-
return name.length;
|
|
19
|
-
if (name.length === 0)
|
|
20
|
-
return query.length;
|
|
21
|
-
const matrix = [];
|
|
22
|
-
let i;
|
|
23
|
-
for (i = 0; i <= name.length; i++) {
|
|
24
|
-
matrix[i] = [i];
|
|
25
|
-
}
|
|
26
|
-
let j;
|
|
27
|
-
for (j = 0; j <= query.length; j++) {
|
|
28
|
-
matrix[0][j] = j;
|
|
29
|
-
}
|
|
30
|
-
for (i = 1; i <= name.length; i++) {
|
|
31
|
-
for (j = 1; j <= query.length; j++) {
|
|
32
|
-
if (name.charAt(i - 1) === query.charAt(j - 1)) {
|
|
33
|
-
matrix[i][j] = matrix[i - 1][j - 1];
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution
|
|
37
|
-
Math.min(matrix[i][j - 1] + 1, // insertion
|
|
38
|
-
matrix[i - 1][j] + 1)); // deletion
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return matrix[name.length][query.length];
|
|
43
|
-
};
|
|
44
|
-
export const searchLocalUsers = (params) => {
|
|
45
|
-
const { ownUserId, query, text, useMentionsTransliteration, users } = params;
|
|
46
|
-
const matchingUsers = users.filter((user) => {
|
|
47
|
-
if (user.id === ownUserId)
|
|
48
|
-
return false;
|
|
49
|
-
if (!query)
|
|
50
|
-
return true;
|
|
51
|
-
let updatedId = removeDiacritics(user.id).toLowerCase();
|
|
52
|
-
let updatedName = removeDiacritics(user.name).toLowerCase();
|
|
53
|
-
let updatedQuery = removeDiacritics(query).toLowerCase();
|
|
54
|
-
if (useMentionsTransliteration) {
|
|
55
|
-
(async () => {
|
|
56
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
57
|
-
const { default: transliterate } = await import('@stream-io/transliterate');
|
|
58
|
-
updatedName = transliterate(user.name || '').toLowerCase();
|
|
59
|
-
updatedQuery = transliterate(query).toLowerCase();
|
|
60
|
-
updatedId = transliterate(user.id).toLowerCase();
|
|
61
|
-
})();
|
|
62
|
-
}
|
|
63
|
-
const maxDistance = 3;
|
|
64
|
-
const lastDigits = text.slice(-(maxDistance + 1)).includes('@');
|
|
65
|
-
if (updatedName) {
|
|
66
|
-
const levenshtein = calculateLevenshtein(updatedQuery, updatedName);
|
|
67
|
-
if (updatedName.includes(updatedQuery) ||
|
|
68
|
-
(levenshtein <= maxDistance && lastDigits)) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const levenshtein = calculateLevenshtein(updatedQuery, updatedId);
|
|
73
|
-
return updatedId.includes(updatedQuery) || (levenshtein <= maxDistance && lastDigits);
|
|
74
|
-
});
|
|
75
|
-
return matchingUsers;
|
|
76
|
-
};
|
|
77
|
-
export const checkUploadPermissions = async (params) => {
|
|
78
|
-
const { addNotification, file, getAppSettings, t, uploadType } = params;
|
|
79
|
-
let appSettings = null;
|
|
80
|
-
appSettings = await getAppSettings();
|
|
81
|
-
const { allowed_file_extensions, allowed_mime_types, blocked_file_extensions, blocked_mime_types, size_limit, } = (uploadType === 'image'
|
|
82
|
-
? appSettings?.app?.image_upload_config
|
|
83
|
-
: appSettings?.app?.file_upload_config) || {};
|
|
84
|
-
const sendNotAllowedErrorNotification = () => addNotification(t(`Upload type: "{{ type }}" is not allowed`, {
|
|
85
|
-
type: file.type || 'unknown type',
|
|
86
|
-
}), 'error');
|
|
87
|
-
if (allowed_file_extensions?.length) {
|
|
88
|
-
const allowed = allowed_file_extensions.some((ext) => file.name.toLowerCase().endsWith(ext.toLowerCase()));
|
|
89
|
-
if (!allowed) {
|
|
90
|
-
sendNotAllowedErrorNotification();
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (blocked_file_extensions?.length) {
|
|
95
|
-
const blocked = blocked_file_extensions.some((ext) => file.name.toLowerCase().endsWith(ext.toLowerCase()));
|
|
96
|
-
if (blocked) {
|
|
97
|
-
sendNotAllowedErrorNotification();
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (allowed_mime_types?.length) {
|
|
102
|
-
const allowed = allowed_mime_types.some((type) => type.toLowerCase() === file.type?.toLowerCase());
|
|
103
|
-
if (!allowed) {
|
|
104
|
-
sendNotAllowedErrorNotification();
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (blocked_mime_types?.length) {
|
|
109
|
-
const blocked = blocked_mime_types.some((type) => type.toLowerCase() === file.type?.toLowerCase());
|
|
110
|
-
if (blocked) {
|
|
111
|
-
sendNotAllowedErrorNotification();
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
const sizeLimit = size_limit || DEFAULT_UPLOAD_SIZE_LIMIT_BYTES;
|
|
116
|
-
if (file.size && file.size > sizeLimit) {
|
|
117
|
-
addNotification(t('File is too large: {{ size }}, maximum upload size is {{ limit }}', {
|
|
118
|
-
limit: prettifyFileSize(sizeLimit),
|
|
119
|
-
size: prettifyFileSize(file.size),
|
|
120
|
-
}), 'error');
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
return true;
|
|
124
|
-
};
|
|
125
1
|
export function prettifyFileSize(bytes, precision = 3) {
|
|
126
2
|
const units = ['B', 'kB', 'MB', 'GB'];
|
|
127
3
|
const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);
|
|
@@ -2,7 +2,6 @@ export * from './AttachmentSelector';
|
|
|
2
2
|
export { AttachmentPreviewList } from './AttachmentPreviewList';
|
|
3
3
|
export type { AttachmentPreviewListProps, FileAttachmentPreviewProps, ImageAttachmentPreviewProps, AttachmentPreviewProps, UnsupportedAttachmentPreviewProps, VoiceRecordingPreviewProps, } from './AttachmentPreviewList';
|
|
4
4
|
export * from './CooldownTimer';
|
|
5
|
-
export * from './DefaultTriggerProvider';
|
|
6
5
|
export * from './EditMessageForm';
|
|
7
6
|
export * from './hooks';
|
|
8
7
|
export * from './icons';
|
|
@@ -12,4 +11,3 @@ export * from './MessageInputFlat';
|
|
|
12
11
|
export * from './QuotedMessagePreview';
|
|
13
12
|
export * from './SendButton';
|
|
14
13
|
export { WithDragAndDropUpload } from './WithDragAndDropUpload';
|
|
15
|
-
export * from './types';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './AttachmentSelector';
|
|
2
2
|
export { AttachmentPreviewList } from './AttachmentPreviewList';
|
|
3
3
|
export * from './CooldownTimer';
|
|
4
|
-
export * from './DefaultTriggerProvider';
|
|
5
4
|
export * from './EditMessageForm';
|
|
6
5
|
export * from './hooks';
|
|
7
6
|
export * from './icons';
|
|
@@ -11,4 +10,3 @@ export * from './MessageInputFlat';
|
|
|
11
10
|
export * from './QuotedMessagePreview';
|
|
12
11
|
export * from './SendButton';
|
|
13
12
|
export { WithDragAndDropUpload } from './WithDragAndDropUpload';
|
|
14
|
-
export * from './types';
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export declare const ConnectionStatus: React.MemoExoticComponent<(<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => React.JSX.Element)>;
|
|
2
|
+
export declare const ConnectionStatus: React.MemoExoticComponent<() => React.JSX.Element>;
|
|
@@ -6,7 +6,7 @@ const UnMemoizedConnectionStatus = () => {
|
|
|
6
6
|
const { t } = useTranslationContext('ConnectionStatus');
|
|
7
7
|
const [online, setOnline] = useState(true);
|
|
8
8
|
useEffect(() => {
|
|
9
|
-
const connectionChanged = ({ online: onlineStatus = false
|
|
9
|
+
const connectionChanged = ({ online: onlineStatus = false }) => {
|
|
10
10
|
if (online !== onlineStatus) {
|
|
11
11
|
setOnline(onlineStatus);
|
|
12
12
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
message: StreamMessage<StreamChatGenerics>;
|
|
2
|
+
import type { LocalMessage } from 'stream-chat';
|
|
3
|
+
export type GiphyPreviewMessageProps = {
|
|
4
|
+
message: LocalMessage;
|
|
6
5
|
};
|
|
7
|
-
export declare const GiphyPreviewMessage:
|
|
6
|
+
export declare const GiphyPreviewMessage: (props: GiphyPreviewMessageProps) => React.JSX.Element;
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ChannelActionContextValue } from '../../context/ChannelActionContext';
|
|
3
|
-
import { InfiniteScrollProps } from '../InfiniteScrollPaginator/InfiniteScroll';
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
2
|
+
import type { ChannelActionContextValue } from '../../context/ChannelActionContext';
|
|
3
|
+
import type { InfiniteScrollProps } from '../InfiniteScrollPaginator/InfiniteScroll';
|
|
4
|
+
import type { LocalMessage } from 'stream-chat';
|
|
5
|
+
import type { MessageRenderer } from './renderMessages';
|
|
6
|
+
import type { GroupStyle, ProcessMessagesParams, RenderedMessage } from './utils';
|
|
6
7
|
import type { MessageProps } from '../Message/types';
|
|
7
|
-
import type { StreamMessage } from '../../context/ChannelStateContext';
|
|
8
|
-
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
9
8
|
type PropsDrilledToMessage = 'additionalMessageInputProps' | 'closeReactionSelectorOnClick' | 'customMessageActions' | 'disableQuotedMessages' | 'formatDate' | 'getDeleteMessageErrorNotification' | 'getFlagMessageErrorNotification' | 'getFlagMessageSuccessNotification' | 'getMarkMessageUnreadErrorNotification' | 'getMarkMessageUnreadSuccessNotification' | 'getMuteUserErrorNotification' | 'getMuteUserSuccessNotification' | 'getPinMessageErrorNotification' | 'Message' | 'messageActions' | 'onlySenderCanEdit' | 'onMentionsClick' | 'onMentionsHover' | 'onUserClick' | 'onUserHover' | 'openThread' | 'pinPermissions' | 'reactionDetailsSort' | 'renderText' | 'retrySendMessage' | 'sortReactions' | 'sortReactionDetails' | 'unsafeHTML';
|
|
10
|
-
export type MessageListProps
|
|
9
|
+
export type MessageListProps = Partial<Pick<MessageProps, PropsDrilledToMessage>> & {
|
|
11
10
|
/** Disables the injection of date separator components in MessageList, defaults to `false` */
|
|
12
11
|
disableDateSeparator?: boolean;
|
|
13
12
|
/** Callback function to set group styles for each message */
|
|
14
|
-
groupStyles?: (message:
|
|
13
|
+
groupStyles?: (message: RenderedMessage, previousMessage: RenderedMessage, nextMessage: RenderedMessage, noGroupByUser: boolean, maxTimeBetweenGroupedMessages?: number) => GroupStyle;
|
|
15
14
|
/** Whether the list has more items to load */
|
|
16
15
|
hasMore?: boolean;
|
|
17
16
|
/** Element to be rendered at the top of the thread message list. By default, these are the Message and ThreadStart components */
|
|
@@ -39,18 +38,18 @@ export type MessageListProps<StreamChatGenerics extends DefaultStreamChatGeneric
|
|
|
39
38
|
/** The limit to use when paginating messages */
|
|
40
39
|
messageLimit?: number;
|
|
41
40
|
/** The messages to render in the list, defaults to messages stored in [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/) */
|
|
42
|
-
messages?:
|
|
41
|
+
messages?: LocalMessage[];
|
|
43
42
|
/** If true, turns off message UI grouping by user */
|
|
44
43
|
noGroupByUser?: boolean;
|
|
45
44
|
/** Overrides the way MessageList renders messages */
|
|
46
|
-
renderMessages?: MessageRenderer
|
|
45
|
+
renderMessages?: MessageRenderer;
|
|
47
46
|
/** If true, `readBy` data supplied to the `Message` components will include all user read states per sent message */
|
|
48
47
|
returnAllReadData?: boolean;
|
|
49
48
|
/**
|
|
50
49
|
* Allows to review changes introduced to messages array on per message basis (e.g. date separator injection before a message).
|
|
51
50
|
* The array returned from the function is appended to the array of messages that are later rendered into React elements in the `MessageList`.
|
|
52
51
|
*/
|
|
53
|
-
reviewProcessedMessage?: ProcessMessagesParams
|
|
52
|
+
reviewProcessedMessage?: ProcessMessagesParams['reviewProcessedMessage'];
|
|
54
53
|
/**
|
|
55
54
|
* The pixel threshold under which the message list is considered to be so near to the bottom,
|
|
56
55
|
* so that if a new message is delivered, the list will be scrolled to the absolute bottom.
|
|
@@ -74,5 +73,5 @@ export type MessageListProps<StreamChatGenerics extends DefaultStreamChatGeneric
|
|
|
74
73
|
* - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
|
|
75
74
|
* - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
|
|
76
75
|
*/
|
|
77
|
-
export declare const MessageList:
|
|
76
|
+
export declare const MessageList: (props: MessageListProps) => React.JSX.Element;
|
|
78
77
|
export {};
|
|
@@ -5,14 +5,14 @@ import { useMarkRead } from './hooks/useMarkRead';
|
|
|
5
5
|
import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
|
|
6
6
|
import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
|
|
7
7
|
import { UnreadMessagesNotification as DefaultUnreadMessagesNotification } from './UnreadMessagesNotification';
|
|
8
|
-
import { useChannelActionContext
|
|
9
|
-
import { useChannelStateContext
|
|
8
|
+
import { useChannelActionContext } from '../../context/ChannelActionContext';
|
|
9
|
+
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
10
10
|
import { DialogManagerProvider } from '../../context';
|
|
11
11
|
import { useChatContext } from '../../context/ChatContext';
|
|
12
12
|
import { useComponentContext } from '../../context/ComponentContext';
|
|
13
13
|
import { MessageListContextProvider } from '../../context/MessageListContext';
|
|
14
14
|
import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyStateIndicator';
|
|
15
|
-
import { InfiniteScroll
|
|
15
|
+
import { InfiniteScroll } from '../InfiniteScrollPaginator/InfiniteScroll';
|
|
16
16
|
import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
|
|
17
17
|
import { defaultPinPermissions, MESSAGE_ACTIONS } from '../Message/utils';
|
|
18
18
|
import { TypingIndicator as DefaultTypingIndicator } from '../TypingIndicator';
|
|
@@ -30,7 +30,7 @@ const MessageListWithContext = (props) => {
|
|
|
30
30
|
hasMoreNewer,
|
|
31
31
|
listElement,
|
|
32
32
|
loadMoreScrollThreshold,
|
|
33
|
-
messages,
|
|
33
|
+
messages, // todo: is it correct to base the scroll logic on an array that does not contain date separators or intro?
|
|
34
34
|
scrolledUpThreshold: props.scrolledUpThreshold,
|
|
35
35
|
suppressAutoscroll,
|
|
36
36
|
});
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
1
|
+
import type { RefObject } from 'react';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { ScrollSeekConfiguration, ScrollSeekPlaceholderProps, VirtuosoHandle, VirtuosoProps } from 'react-virtuoso';
|
|
4
|
+
import type { GroupStyle, ProcessMessagesParams, RenderedMessage } from './utils';
|
|
5
|
+
import type { MessageProps, MessageUIComponentProps } from '../Message';
|
|
6
|
+
import type { ChannelActionContextValue } from '../../context/ChannelActionContext';
|
|
7
|
+
import type { ChannelStateContextValue } from '../../context/ChannelStateContext';
|
|
8
|
+
import type { ChatContextValue } from '../../context/ChatContext';
|
|
9
|
+
import type { ComponentContextValue } from '../../context/ComponentContext';
|
|
10
|
+
import type { LocalMessage, UserResponse } from 'stream-chat';
|
|
11
|
+
import type { UnknownType } from '../../types/types';
|
|
11
12
|
type PropsDrilledToMessage = 'additionalMessageInputProps' | 'customMessageActions' | 'formatDate' | 'messageActions' | 'openThread' | 'reactionDetailsSort' | 'sortReactions' | 'sortReactionDetails';
|
|
12
13
|
type VirtualizedMessageListPropsForContext = PropsDrilledToMessage | 'closeReactionSelectorOnClick' | 'customMessageRenderer' | 'head' | 'loadingMore' | 'Message' | 'shouldGroupByUser' | 'threadList';
|
|
13
14
|
/**
|
|
14
15
|
* Context object provided to some Virtuoso props that are functions (components rendered by Virtuoso and other functions)
|
|
15
16
|
*/
|
|
16
|
-
export type VirtuosoContext
|
|
17
|
+
export type VirtuosoContext = Required<Pick<ComponentContextValue, 'DateSeparator' | 'MessageSystem' | 'UnreadMessagesSeparator'>> & Pick<VirtualizedMessageListProps, VirtualizedMessageListPropsForContext> & Pick<ChatContextValue, 'customClasses'> & {
|
|
17
18
|
/** Latest received message id in the current channel */
|
|
18
19
|
lastReceivedMessageId: string | null | undefined;
|
|
19
20
|
/** Object mapping between the message ID and a string representing the position in the group of a sequence of messages posted by the same user. */
|
|
@@ -21,9 +22,9 @@ export type VirtuosoContext<StreamChatGenerics extends DefaultStreamChatGenerics
|
|
|
21
22
|
/** Number of messages prepended before the first page of messages. This is needed to calculate the virtual position in the virtual list. */
|
|
22
23
|
numItemsPrepended: number;
|
|
23
24
|
/** Mapping of message ID of own messages to the array of users, who read the given message */
|
|
24
|
-
ownMessagesReadByOthers: Record<string, UserResponse
|
|
25
|
+
ownMessagesReadByOthers: Record<string, UserResponse[]>;
|
|
25
26
|
/** The original message list enriched with date separators, omitted deleted messages or giphy previews. */
|
|
26
|
-
processedMessages:
|
|
27
|
+
processedMessages: RenderedMessage[];
|
|
27
28
|
/** Instance of VirtuosoHandle object providing the API to navigate in the virtualized list by various scroll actions. */
|
|
28
29
|
virtuosoRef: RefObject<VirtuosoHandle | null>;
|
|
29
30
|
/** Message id which was marked as unread. ALl the messages following this message are considered unrea. */
|
|
@@ -37,14 +38,14 @@ export type VirtuosoContext<StreamChatGenerics extends DefaultStreamChatGenerics
|
|
|
37
38
|
/** The number of unread messages in the current channel. */
|
|
38
39
|
unreadMessageCount?: number;
|
|
39
40
|
};
|
|
40
|
-
export type VirtualizedMessageListProps
|
|
41
|
+
export type VirtualizedMessageListProps = Partial<Pick<MessageProps, PropsDrilledToMessage>> & {
|
|
41
42
|
/** Additional props to be passed the underlying [`react-virtuoso` virtualized list dependency](https://virtuoso.dev/virtuoso-api-reference/) */
|
|
42
|
-
additionalVirtuosoProps?: VirtuosoProps<UnknownType, VirtuosoContext
|
|
43
|
+
additionalVirtuosoProps?: VirtuosoProps<UnknownType, VirtuosoContext>;
|
|
43
44
|
channelUnreadUiState?: ChannelStateContextValue['channelUnreadUiState'];
|
|
44
45
|
/** If true, picking a reaction from the `ReactionSelector` component will close the selector */
|
|
45
46
|
closeReactionSelectorOnClick?: boolean;
|
|
46
47
|
/** Custom render function, if passed, certain UI props are ignored */
|
|
47
|
-
customMessageRenderer?: (messageList:
|
|
48
|
+
customMessageRenderer?: (messageList: RenderedMessage[], index: number) => React.ReactElement;
|
|
48
49
|
/** @deprecated Use additionalVirtuosoProps.defaultItemHeight instead. Will be removed with next major release - `v11.0.0`.
|
|
49
50
|
* If set, the default item height is used for the calculation of the total list height. Use if you expect messages with a lot of height variance
|
|
50
51
|
* */
|
|
@@ -52,7 +53,7 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
52
53
|
/** Disables the injection of date separator components in MessageList, defaults to `true` */
|
|
53
54
|
disableDateSeparator?: boolean;
|
|
54
55
|
/** Callback function to set group styles for each message */
|
|
55
|
-
groupStyles?: (message:
|
|
56
|
+
groupStyles?: (message: RenderedMessage, previousMessage: RenderedMessage, nextMessage: RenderedMessage, noGroupByUser: boolean, maxTimeBetweenGroupedMessages?: number) => GroupStyle;
|
|
56
57
|
/** Whether or not the list has more items to load */
|
|
57
58
|
hasMore?: boolean;
|
|
58
59
|
/** Whether or not the list has newer items to load */
|
|
@@ -79,11 +80,11 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
79
80
|
/** Maximum time in milliseconds that should occur between messages to still consider them grouped together */
|
|
80
81
|
maxTimeBetweenGroupedMessages?: number;
|
|
81
82
|
/** Custom UI component to display a message, defaults to and accepts same props as [MessageSimple](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Message/MessageSimple.tsx) */
|
|
82
|
-
Message?: React.ComponentType<MessageUIComponentProps
|
|
83
|
+
Message?: React.ComponentType<MessageUIComponentProps>;
|
|
83
84
|
/** The limit to use when paginating messages */
|
|
84
85
|
messageLimit?: number;
|
|
85
86
|
/** Optional prop to override the messages available from [ChannelStateContext](https://getstream.io/chat/docs/sdk/react/contexts/channel_state_context/) */
|
|
86
|
-
messages?:
|
|
87
|
+
messages?: LocalMessage[];
|
|
87
88
|
/**
|
|
88
89
|
* @deprecated Use additionalVirtuosoProps.overscan instead. Will be removed with next major release - `v11.0.0`.
|
|
89
90
|
* The amount of extra content the list should render in addition to what's necessary to fill in the viewport
|
|
@@ -95,7 +96,7 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
95
96
|
* Allows to review changes introduced to messages array on per message basis (e.g. date separator injected before a message).
|
|
96
97
|
* The array returned from the function is appended to the array of messages that are later rendered into React elements in the `VirtualizedMessageList`.
|
|
97
98
|
*/
|
|
98
|
-
reviewProcessedMessage?: ProcessMessagesParams
|
|
99
|
+
reviewProcessedMessage?: ProcessMessagesParams['reviewProcessedMessage'];
|
|
99
100
|
/**
|
|
100
101
|
* @deprecated Pass additionalVirtuosoProps.scrollSeekConfiguration and specify the placeholder in additionalVirtuosoProps.components.ScrollSeekPlaceholder instead. Will be removed with next major release - `v11.0.0`.
|
|
101
102
|
* Performance improvement by showing placeholders if user scrolls fast through list.
|
|
@@ -135,5 +136,5 @@ export type VirtualizedMessageListProps<StreamChatGenerics extends DefaultStream
|
|
|
135
136
|
* The VirtualizedMessageList component renders a list of messages in a virtualized list.
|
|
136
137
|
* It is a consumer of the React contexts set in [Channel](https://github.com/GetStream/stream-chat-react/blob/master/src/components/Channel/Channel.tsx).
|
|
137
138
|
*/
|
|
138
|
-
export declare function VirtualizedMessageList
|
|
139
|
+
export declare function VirtualizedMessageList(props: VirtualizedMessageListProps): React.JSX.Element;
|
|
139
140
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
2
|
-
import { Virtuoso
|
|
2
|
+
import { Virtuoso } from 'react-virtuoso';
|
|
3
3
|
import { GiphyPreviewMessage as DefaultGiphyPreviewMessage } from './GiphyPreviewMessage';
|
|
4
4
|
import { useLastReadData } from './hooks';
|
|
5
5
|
import { useGiphyPreview, useMessageSetKey, useNewMessageNotification, usePrependedMessagesCount, useScrollToBottomOnNewMessage, useShouldForceScrollToBottom, useUnreadMessagesNotificationVirtualized, } from './hooks/VirtualizedMessageList';
|
|
@@ -7,7 +7,7 @@ import { useMarkRead } from './hooks/useMarkRead';
|
|
|
7
7
|
import { MessageNotification as DefaultMessageNotification } from './MessageNotification';
|
|
8
8
|
import { MessageListNotifications as DefaultMessageListNotifications } from './MessageListNotifications';
|
|
9
9
|
import { MessageListMainPanel as DefaultMessageListMainPanel } from './MessageListMainPanel';
|
|
10
|
-
import { getGroupStyles, getLastReceived, processMessages
|
|
10
|
+
import { getGroupStyles, getLastReceived, processMessages } from './utils';
|
|
11
11
|
import { MessageSimple } from '../Message';
|
|
12
12
|
import { UnreadMessagesNotification as DefaultUnreadMessagesNotification } from './UnreadMessagesNotification';
|
|
13
13
|
import { calculateFirstItemIndex, calculateItemIndex, EmptyPlaceholder, Header, Item, makeItemsRenderedHandler, messageRenderer, } from './VirtualizedMessageListComponents';
|
|
@@ -15,10 +15,10 @@ import { UnreadMessagesSeparator as DefaultUnreadMessagesSeparator } from '../Me
|
|
|
15
15
|
import { DateSeparator as DefaultDateSeparator } from '../DateSeparator';
|
|
16
16
|
import { EventComponent as DefaultMessageSystem } from '../EventComponent';
|
|
17
17
|
import { DialogManagerProvider } from '../../context';
|
|
18
|
-
import { useChannelActionContext
|
|
19
|
-
import { useChannelStateContext
|
|
18
|
+
import { useChannelActionContext } from '../../context/ChannelActionContext';
|
|
19
|
+
import { useChannelStateContext } from '../../context/ChannelStateContext';
|
|
20
20
|
import { useChatContext } from '../../context/ChatContext';
|
|
21
|
-
import { useComponentContext
|
|
21
|
+
import { useComponentContext } from '../../context/ComponentContext';
|
|
22
22
|
import { VirtualizedMessageListContextProvider } from '../../context/VirtualizedMessageListContext';
|
|
23
23
|
import { DEFAULT_NEXT_CHANNEL_PAGE_SIZE } from '../../constants/limits';
|
|
24
24
|
function captureResizeObserverExceededError(e) {
|
|
@@ -110,7 +110,7 @@ const VirtualizedMessageListWithContext = (props) => {
|
|
|
110
110
|
const groupStylesFn = groupStyles || getGroupStyles;
|
|
111
111
|
const messageGroupStyles = useMemo(() => processedMessages.reduce((acc, message, i) => {
|
|
112
112
|
const style = groupStylesFn(message, processedMessages[i - 1], processedMessages[i + 1], !shouldGroupByUser, maxTimeBetweenGroupedMessages);
|
|
113
|
-
if (style)
|
|
113
|
+
if (style && message.id)
|
|
114
114
|
acc[message.id] = style;
|
|
115
115
|
return acc;
|
|
116
116
|
}, {}),
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/// <reference types="lodash" />
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { ItemProps, ListItem } from 'react-virtuoso';
|
|
4
|
-
import {
|
|
3
|
+
import type { ItemProps, ListItem } from 'react-virtuoso';
|
|
4
|
+
import type { RenderedMessage } from './utils';
|
|
5
5
|
import type { VirtuosoContext } from './VirtualizedMessageList';
|
|
6
|
-
import type {
|
|
6
|
+
import type { UnknownType } from '../../types/types';
|
|
7
7
|
export declare function calculateItemIndex(virtuosoIndex: number, numItemsPrepended: number): number;
|
|
8
8
|
export declare function calculateFirstItemIndex(numItemsPrepended: number): number;
|
|
9
|
-
export declare const makeItemsRenderedHandler:
|
|
10
|
-
type CommonVirtuosoComponentProps
|
|
11
|
-
context?: VirtuosoContext
|
|
9
|
+
export declare const makeItemsRenderedHandler: (renderedItemsActions: Array<(msg: RenderedMessage[]) => void>, processedMessages: RenderedMessage[]) => import("lodash").DebouncedFunc<(items: ListItem<UnknownType>[]) => void>;
|
|
10
|
+
type CommonVirtuosoComponentProps = {
|
|
11
|
+
context?: VirtuosoContext;
|
|
12
12
|
};
|
|
13
|
-
export declare const Item:
|
|
14
|
-
export declare const Header:
|
|
15
|
-
export declare const EmptyPlaceholder:
|
|
16
|
-
export declare const messageRenderer:
|
|
13
|
+
export declare const Item: ({ context, ...props }: ItemProps & CommonVirtuosoComponentProps) => React.JSX.Element;
|
|
14
|
+
export declare const Header: ({ context }: CommonVirtuosoComponentProps) => React.JSX.Element;
|
|
15
|
+
export declare const EmptyPlaceholder: ({ context }: CommonVirtuosoComponentProps) => React.JSX.Element;
|
|
16
|
+
export declare const messageRenderer: (virtuosoIndex: number, _data: UnknownType, virtuosoContext: VirtuosoContext) => React.JSX.Element | null;
|
|
17
17
|
export {};
|
|
@@ -5,7 +5,7 @@ import { EmptyStateIndicator as DefaultEmptyStateIndicator } from '../EmptyState
|
|
|
5
5
|
import { LoadingIndicator as DefaultLoadingIndicator } from '../Loading';
|
|
6
6
|
import { isMessageEdited, Message } from '../Message';
|
|
7
7
|
import { useComponentContext } from '../../context';
|
|
8
|
-
import { getIsFirstUnreadMessage, isDateSeparatorMessage } from './utils';
|
|
8
|
+
import { getIsFirstUnreadMessage, isDateSeparatorMessage, isIntroMessage } from './utils';
|
|
9
9
|
const PREPEND_OFFSET = 10 ** 7;
|
|
10
10
|
export function calculateItemIndex(virtuosoIndex, numItemsPrepended) {
|
|
11
11
|
return virtuosoIndex + numItemsPrepended - PREPEND_OFFSET;
|
|
@@ -35,14 +35,14 @@ export const Item = ({ context, ...props }) => {
|
|
|
35
35
|
[`str-chat__li--${groupStyles}`]: groupStyles,
|
|
36
36
|
}) }));
|
|
37
37
|
};
|
|
38
|
-
export const Header = ({ context
|
|
38
|
+
export const Header = ({ context }) => {
|
|
39
39
|
const { LoadingIndicator = DefaultLoadingIndicator } = useComponentContext('VirtualizedMessageListHeader');
|
|
40
40
|
return (React.createElement(React.Fragment, null,
|
|
41
41
|
context?.head,
|
|
42
42
|
context?.loadingMore && LoadingIndicator && (React.createElement("div", { className: 'str-chat__virtual-list__loading' },
|
|
43
43
|
React.createElement(LoadingIndicator, { size: 20 })))));
|
|
44
44
|
};
|
|
45
|
-
export const EmptyPlaceholder = ({ context
|
|
45
|
+
export const EmptyPlaceholder = ({ context }) => {
|
|
46
46
|
const { EmptyStateIndicator = DefaultEmptyStateIndicator } = useComponentContext('VirtualizedMessageList');
|
|
47
47
|
return (React.createElement(React.Fragment, null, EmptyStateIndicator && (React.createElement(EmptyStateIndicator, { listType: context?.threadList ? 'thread' : 'message' }))));
|
|
48
48
|
};
|
|
@@ -53,7 +53,7 @@ export const messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
53
53
|
return customMessageRenderer(messageList, streamMessageIndex);
|
|
54
54
|
}
|
|
55
55
|
const message = messageList[streamMessageIndex];
|
|
56
|
-
if (!message)
|
|
56
|
+
if (!message || isIntroMessage(message))
|
|
57
57
|
return React.createElement("div", { style: { height: '1px' } }); // returning null or zero height breaks the virtuoso
|
|
58
58
|
if (isDateSeparatorMessage(message)) {
|
|
59
59
|
return DateSeparator ? (React.createElement(DateSeparator, { date: message.date, unread: message.unread })) : null;
|
|
@@ -61,11 +61,11 @@ export const messageRenderer = (virtuosoIndex, _data, virtuosoContext) => {
|
|
|
61
61
|
if (message.type === 'system') {
|
|
62
62
|
return MessageSystem ? React.createElement(MessageSystem, { message: message }) : null;
|
|
63
63
|
}
|
|
64
|
-
const groupedByUser = shouldGroupByUser &&
|
|
65
|
-
streamMessageIndex > 0 &&
|
|
66
|
-
message.user?.id === messageList[streamMessageIndex - 1].user?.id;
|
|
67
64
|
const maybePrevMessage = messageList[streamMessageIndex - 1];
|
|
68
65
|
const maybeNextMessage = messageList[streamMessageIndex + 1];
|
|
66
|
+
const groupedByUser = shouldGroupByUser &&
|
|
67
|
+
streamMessageIndex > 0 &&
|
|
68
|
+
message.user?.id === maybePrevMessage?.user?.id;
|
|
69
69
|
// FIXME: firstOfGroup & endOfGroup should be derived from groupStyles which apply a more complex logic
|
|
70
70
|
const firstOfGroup = shouldGroupByUser &&
|
|
71
71
|
(message.user?.id !== maybePrevMessage?.user?.id ||
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import { GroupStyle, ProcessMessagesParams } from '../../utils';
|
|
2
|
-
import type { Channel } from 'stream-chat';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export declare const useEnrichedMessages: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(args: {
|
|
6
|
-
channel: Channel<StreamChatGenerics>;
|
|
1
|
+
import type { GroupStyle, ProcessMessagesParams, RenderedMessage } from '../../utils';
|
|
2
|
+
import type { Channel, LocalMessage } from 'stream-chat';
|
|
3
|
+
export declare const useEnrichedMessages: (args: {
|
|
4
|
+
channel: Channel;
|
|
7
5
|
disableDateSeparator: boolean;
|
|
8
6
|
hideDeletedMessages: boolean;
|
|
9
7
|
hideNewMessageSeparator: boolean;
|
|
10
|
-
messages:
|
|
8
|
+
messages: LocalMessage[];
|
|
11
9
|
noGroupByUser: boolean;
|
|
12
|
-
groupStyles?: (message:
|
|
10
|
+
groupStyles?: (message: RenderedMessage, previousMessage: RenderedMessage, nextMessage: RenderedMessage, noGroupByUser: boolean, maxTimeBetweenGroupedMessages?: number) => GroupStyle;
|
|
13
11
|
headerPosition?: number;
|
|
14
12
|
maxTimeBetweenGroupedMessages?: number;
|
|
15
|
-
reviewProcessedMessage?: ProcessMessagesParams
|
|
13
|
+
reviewProcessedMessage?: ProcessMessagesParams['reviewProcessedMessage'];
|
|
16
14
|
}) => {
|
|
17
15
|
messageGroupStyles: Record<string, GroupStyle>;
|
|
18
|
-
messages:
|
|
16
|
+
messages: RenderedMessage[];
|
|
19
17
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import { getGroupStyles, insertIntro, processMessages
|
|
2
|
+
import { getGroupStyles, insertIntro, processMessages } from '../../utils';
|
|
3
3
|
import { useChatContext } from '../../../../context/ChatContext';
|
|
4
4
|
import { useComponentContext } from '../../../../context/ComponentContext';
|
|
5
5
|
export const useEnrichedMessages = (args) => {
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { GroupStyle } from '../../utils';
|
|
1
|
+
import type React from 'react';
|
|
3
2
|
import type { ChannelState as StreamChannelState } from 'stream-chat';
|
|
4
|
-
import type {
|
|
5
|
-
import type { ChannelUnreadUiState
|
|
6
|
-
import { MessageRenderer, SharedMessageProps } from '../../renderMessages';
|
|
7
|
-
type UseMessageListElementsProps
|
|
8
|
-
enrichedMessages:
|
|
9
|
-
internalMessageProps: SharedMessageProps
|
|
3
|
+
import type { GroupStyle, RenderedMessage } from '../../utils';
|
|
4
|
+
import type { ChannelUnreadUiState } from '../../../../types/types';
|
|
5
|
+
import type { MessageRenderer, SharedMessageProps } from '../../renderMessages';
|
|
6
|
+
type UseMessageListElementsProps = {
|
|
7
|
+
enrichedMessages: RenderedMessage[];
|
|
8
|
+
internalMessageProps: SharedMessageProps;
|
|
10
9
|
messageGroupStyles: Record<string, GroupStyle>;
|
|
11
|
-
renderMessages: MessageRenderer
|
|
10
|
+
renderMessages: MessageRenderer;
|
|
12
11
|
returnAllReadData: boolean;
|
|
13
12
|
threadList: boolean;
|
|
14
|
-
channelUnreadUiState?: ChannelUnreadUiState
|
|
15
|
-
read?: StreamChannelState
|
|
13
|
+
channelUnreadUiState?: ChannelUnreadUiState;
|
|
14
|
+
read?: StreamChannelState['read'];
|
|
16
15
|
};
|
|
17
|
-
export declare const useMessageListElements:
|
|
16
|
+
export declare const useMessageListElements: (props: UseMessageListElementsProps) => React.ReactNode[];
|
|
18
17
|
export {};
|