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,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
3
2
|
export type EndPollDialogProps = {
|
|
4
3
|
close: () => void;
|
|
5
4
|
};
|
|
6
|
-
export declare const EndPollDialog:
|
|
5
|
+
export declare const EndPollDialog: ({ close }: EndPollDialogProps) => React.JSX.Element;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PromptDialog } from '../../Dialog/PromptDialog';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { usePollContext, useTranslationContext } from '../../../context';
|
|
4
|
-
export const EndPollDialog = ({ close
|
|
4
|
+
export const EndPollDialog = ({ close }) => {
|
|
5
5
|
const { t } = useTranslationContext('SuggestPollOptionForm');
|
|
6
6
|
const { poll } = usePollContext();
|
|
7
7
|
return (React.createElement(PromptDialog, { actions: [
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AddCommentFormProps } from './AddCommentForm';
|
|
3
|
-
import { SuggestPollOptionFormProps } from './SuggestPollOptionForm';
|
|
4
|
-
import { EndPollDialogProps } from './EndPollDialog';
|
|
5
|
-
import { PollAnswerListProps } from './PollAnswerList';
|
|
6
|
-
import { FullPollOptionsListingProps } from './PollOptionsFullList';
|
|
7
|
-
import { PollResultsProps } from './PollResults';
|
|
8
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
2
|
+
import type { AddCommentFormProps } from './AddCommentForm';
|
|
3
|
+
import type { SuggestPollOptionFormProps } from './SuggestPollOptionForm';
|
|
4
|
+
import type { EndPollDialogProps } from './EndPollDialog';
|
|
5
|
+
import type { PollAnswerListProps } from './PollAnswerList';
|
|
6
|
+
import type { FullPollOptionsListingProps } from './PollOptionsFullList';
|
|
7
|
+
import type { PollResultsProps } from './PollResults';
|
|
9
8
|
export type PollActionsProps = {
|
|
10
9
|
AddCommentForm?: React.ComponentType<AddCommentFormProps>;
|
|
11
10
|
EndPollDialog?: React.ComponentType<EndPollDialogProps>;
|
|
@@ -14,4 +13,4 @@ export type PollActionsProps = {
|
|
|
14
13
|
PollResults?: React.ComponentType<PollResultsProps>;
|
|
15
14
|
SuggestPollOptionForm?: React.ComponentType<SuggestPollOptionFormProps>;
|
|
16
15
|
};
|
|
17
|
-
export declare const PollActions:
|
|
16
|
+
export declare const PollActions: ({ AddCommentForm, EndPollDialog, PollAnswerList, PollOptionsFullList, PollResults, SuggestPollOptionForm, }: PollActionsProps) => React.JSX.Element;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useCallback, useState } from 'react';
|
|
2
2
|
import { PollAction } from './PollAction';
|
|
3
|
-
import { AddCommentForm as DefaultAddCommentForm
|
|
4
|
-
import { SuggestPollOptionForm as DefaultSuggestPollOptionForm
|
|
5
|
-
import { EndPollDialog as DefaultEndPollDialog
|
|
6
|
-
import { PollAnswerList as DefaultPollAnswerList
|
|
7
|
-
import { PollOptionsFullList as DefaultPollOptionsFullList
|
|
3
|
+
import { AddCommentForm as DefaultAddCommentForm } from './AddCommentForm';
|
|
4
|
+
import { SuggestPollOptionForm as DefaultSuggestPollOptionForm } from './SuggestPollOptionForm';
|
|
5
|
+
import { EndPollDialog as DefaultEndPollDialog } from './EndPollDialog';
|
|
6
|
+
import { PollAnswerList as DefaultPollAnswerList } from './PollAnswerList';
|
|
7
|
+
import { PollOptionsFullList as DefaultPollOptionsFullList } from './PollOptionsFullList';
|
|
8
8
|
import { PollResults as DefaultPollResults } from './PollResults';
|
|
9
9
|
import { MAX_OPTIONS_DISPLAYED, MAX_POLL_OPTIONS } from '../constants';
|
|
10
10
|
import { useChannelStateContext, useChatContext, useMessageContext, usePollContext, useTranslationContext, } from '../../../context';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
3
2
|
export type PollAnswerListProps = {
|
|
4
3
|
onUpdateOwnAnswerClick: () => void;
|
|
5
4
|
close?: () => void;
|
|
6
5
|
};
|
|
7
|
-
export declare const PollAnswerList:
|
|
6
|
+
export declare const PollAnswerList: ({ close, onUpdateOwnAnswerClick, }: PollAnswerListProps) => React.JSX.Element;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
3
2
|
export type FullPollOptionsListingProps = {
|
|
4
3
|
close?: () => void;
|
|
5
4
|
};
|
|
6
|
-
export declare const PollOptionsFullList:
|
|
5
|
+
export declare const PollOptionsFullList: ({ close }: FullPollOptionsListingProps) => React.JSX.Element;
|
|
@@ -3,8 +3,10 @@ import { ModalHeader } from '../../Modal/ModalHeader';
|
|
|
3
3
|
import { PollOptionList } from '../PollOptionList';
|
|
4
4
|
import { useStateStore } from '../../../store';
|
|
5
5
|
import { usePollContext, useTranslationContext } from '../../../context';
|
|
6
|
-
const pollStateSelector = (nextValue) => ({
|
|
7
|
-
|
|
6
|
+
const pollStateSelector = (nextValue) => ({
|
|
7
|
+
name: nextValue.name,
|
|
8
|
+
});
|
|
9
|
+
export const PollOptionsFullList = ({ close }) => {
|
|
8
10
|
const { t } = useTranslationContext();
|
|
9
11
|
const { poll } = usePollContext();
|
|
10
12
|
const { name } = useStateStore(poll.state, pollStateSelector);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { PollOption } from 'stream-chat';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
option: PollOption<StreamChatGenerics>;
|
|
3
|
+
export type PollOptionVotesListingProps = {
|
|
4
|
+
option: PollOption;
|
|
6
5
|
};
|
|
7
|
-
export declare const PollOptionVotesList:
|
|
6
|
+
export declare const PollOptionVotesList: ({ option }: PollOptionVotesListingProps) => React.JSX.Element;
|
|
@@ -4,7 +4,7 @@ import { usePollOptionVotesPagination } from '../../hooks';
|
|
|
4
4
|
import { LoadingIndicator } from '../../../Loading';
|
|
5
5
|
import { InfiniteScrollPaginator } from '../../../InfiniteScrollPaginator/InfiniteScrollPaginator';
|
|
6
6
|
import { PollOptionWithVotesHeader } from './PollOptionWithVotesHeader';
|
|
7
|
-
export const PollOptionVotesList = ({ option
|
|
7
|
+
export const PollOptionVotesList = ({ option }) => {
|
|
8
8
|
const paginationParams = useMemo(() => ({ filter: { option_id: option.id } }), [option.id]);
|
|
9
9
|
const { error, hasNextPage, loading, loadMore, votes } = usePollOptionVotesPagination({
|
|
10
10
|
paginationParams,
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { PollOption } from 'stream-chat';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
option: PollOption<StreamChatGenerics>;
|
|
3
|
+
export type PollOptionWithVotesProps = {
|
|
4
|
+
option: PollOption;
|
|
6
5
|
countVotesPreview?: number;
|
|
7
6
|
showAllVotes?: () => void;
|
|
8
7
|
};
|
|
9
|
-
export declare const PollOptionWithLatestVotes:
|
|
8
|
+
export declare const PollOptionWithLatestVotes: ({ countVotesPreview, option, showAllVotes, }: PollOptionWithVotesProps) => React.JSX.Element;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { PollOption } from 'stream-chat';
|
|
3
|
-
import type { DefaultStreamChatGenerics } from '../../../../types';
|
|
4
3
|
export type PollResultOptionVoteCounterProps = {
|
|
5
4
|
optionId: string;
|
|
6
5
|
};
|
|
7
|
-
export declare const PollResultOptionVoteCounter:
|
|
8
|
-
export type PollOptionWithVotesHeaderProps
|
|
9
|
-
option: PollOption
|
|
6
|
+
export declare const PollResultOptionVoteCounter: ({ optionId, }: PollResultOptionVoteCounterProps) => React.JSX.Element;
|
|
7
|
+
export type PollOptionWithVotesHeaderProps = {
|
|
8
|
+
option: PollOption;
|
|
10
9
|
};
|
|
11
|
-
export declare const PollOptionWithVotesHeader:
|
|
10
|
+
export declare const PollOptionWithVotesHeader: ({ option }: PollOptionWithVotesHeaderProps) => React.JSX.Element;
|
|
@@ -13,6 +13,6 @@ export const PollResultOptionVoteCounter = ({ optionId, }) => {
|
|
|
13
13
|
maxVotedOptionIds.length === 1 && maxVotedOptionIds[0] === optionId && (React.createElement("div", { className: 'str-chat__poll-result-winning-option-icon' })),
|
|
14
14
|
React.createElement("span", { className: 'str-chat__poll-result-option-vote-count' }, t('{{count}} votes', { count: vote_counts_by_option[optionId] ?? 0 }))));
|
|
15
15
|
};
|
|
16
|
-
export const PollOptionWithVotesHeader = ({ option
|
|
16
|
+
export const PollOptionWithVotesHeader = ({ option }) => (React.createElement("div", { className: 'str-chat__poll-option__header' },
|
|
17
17
|
React.createElement("div", { className: 'str-chat__poll-option__option-text' }, option.text),
|
|
18
18
|
React.createElement(PollResultOptionVoteCounter, { optionId: option.id })));
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../../types';
|
|
3
2
|
export type PollResultsProps = {
|
|
4
3
|
close?: () => void;
|
|
5
4
|
};
|
|
6
|
-
export declare const PollResults:
|
|
5
|
+
export declare const PollResults: ({ close }: PollResultsProps) => React.JSX.Element;
|
|
@@ -10,7 +10,7 @@ const pollStateSelector = (nextValue) => ({
|
|
|
10
10
|
options: nextValue.options,
|
|
11
11
|
vote_counts_by_option: nextValue.vote_counts_by_option,
|
|
12
12
|
});
|
|
13
|
-
export const PollResults = ({ close
|
|
13
|
+
export const PollResults = ({ close }) => {
|
|
14
14
|
const { t } = useTranslationContext();
|
|
15
15
|
const { poll } = usePollContext();
|
|
16
16
|
const { name, options, vote_counts_by_option } = useStateStore(poll.state, pollStateSelector);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
3
2
|
export type SuggestPollOptionFormProps = {
|
|
4
3
|
close: () => void;
|
|
5
4
|
messageId: string;
|
|
6
5
|
};
|
|
7
|
-
export declare const SuggestPollOptionForm:
|
|
6
|
+
export declare const SuggestPollOptionForm: ({ close, messageId, }: SuggestPollOptionFormProps) => React.JSX.Element;
|
|
@@ -2,7 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { FormDialog } from '../../Dialog/FormDialog';
|
|
3
3
|
import { useChatContext, usePollContext, useTranslationContext } from '../../../context';
|
|
4
4
|
import { useStateStore } from '../../../store';
|
|
5
|
-
const pollStateSelector = (nextValue) => ({
|
|
5
|
+
const pollStateSelector = (nextValue) => ({
|
|
6
|
+
options: nextValue.options,
|
|
7
|
+
});
|
|
6
8
|
export const SuggestPollOptionForm = ({ close, messageId, }) => {
|
|
7
9
|
const { client } = useChatContext('SuggestPollOptionForm');
|
|
8
10
|
const { t } = useTranslationContext('SuggestPollOptionForm');
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export declare const PollContent: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => React.JSX.Element;
|
|
2
|
+
export declare const PollContent: () => React.JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { SimpleSwitchField } from '../../Form/SwitchField';
|
|
4
|
+
import { FieldError } from '../../Form/FieldError';
|
|
5
|
+
import { useTranslationContext } from '../../../context';
|
|
6
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
7
|
+
import { useStateStore } from '../../../store';
|
|
8
|
+
const pollComposerStateSelector = (state) => ({
|
|
9
|
+
enforce_unique_vote: state.data.enforce_unique_vote,
|
|
10
|
+
error: state.errors.max_votes_allowed,
|
|
11
|
+
max_votes_allowed: state.data.max_votes_allowed,
|
|
12
|
+
});
|
|
13
|
+
export const MultipleAnswersField = () => {
|
|
14
|
+
const { t } = useTranslationContext();
|
|
15
|
+
const { pollComposer } = useMessageComposer();
|
|
16
|
+
const { enforce_unique_vote, error, max_votes_allowed } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
17
|
+
return (React.createElement("div", { className: clsx('str-chat__form__expandable-field', {
|
|
18
|
+
'str-chat__form__expandable-field--expanded': !enforce_unique_vote,
|
|
19
|
+
}) },
|
|
20
|
+
React.createElement(SimpleSwitchField, { checked: !enforce_unique_vote, id: 'enforce_unique_vote', labelText: t('Multiple answers'), onChange: (e) => {
|
|
21
|
+
pollComposer.updateFields({ enforce_unique_vote: !e.target.checked });
|
|
22
|
+
} }),
|
|
23
|
+
!enforce_unique_vote && (React.createElement("div", { className: clsx('str-chat__form__input-field', {
|
|
24
|
+
'str-chat__form__input-field--has-error': error,
|
|
25
|
+
}) },
|
|
26
|
+
React.createElement("div", { className: clsx('str-chat__form__input-field__value') },
|
|
27
|
+
React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-max-votes-allowed-input-field-error', text: error && t(error) }),
|
|
28
|
+
React.createElement("input", { id: 'max_votes_allowed', onBlur: () => {
|
|
29
|
+
pollComposer.handleFieldBlur('max_votes_allowed');
|
|
30
|
+
}, onChange: (e) => {
|
|
31
|
+
pollComposer.updateFields({
|
|
32
|
+
max_votes_allowed: e.target.value,
|
|
33
|
+
});
|
|
34
|
+
}, placeholder: t('Maximum number of votes (from 2 to 10)'), type: 'number', value: max_votes_allowed }))))));
|
|
35
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { FieldError } from '../../Form/FieldError';
|
|
4
|
+
import { useTranslationContext } from '../../../context';
|
|
5
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
6
|
+
import { useStateStore } from '../../../store';
|
|
7
|
+
const pollComposerStateSelector = (state) => ({
|
|
8
|
+
error: state.errors.name,
|
|
9
|
+
name: state.data.name,
|
|
10
|
+
});
|
|
11
|
+
export const NameField = () => {
|
|
12
|
+
const { t } = useTranslationContext();
|
|
13
|
+
const { pollComposer } = useMessageComposer();
|
|
14
|
+
const { error, name } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
15
|
+
return (React.createElement("div", { className: clsx('str-chat__form__field str-chat__form__input-field str-chat__form__input-field--with-label', {
|
|
16
|
+
'str-chat__form__input-field--has-error': error,
|
|
17
|
+
}) },
|
|
18
|
+
React.createElement("label", { className: 'str-chat__form__field-label', htmlFor: 'name' }, t('Question')),
|
|
19
|
+
React.createElement("div", { className: clsx('str-chat__form__input-field__value') },
|
|
20
|
+
React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-name-input-field-error', text: error && t(error) }),
|
|
21
|
+
React.createElement("input", { id: 'name', onBlur: () => {
|
|
22
|
+
pollComposer.handleFieldBlur('name');
|
|
23
|
+
}, onChange: (e) => {
|
|
24
|
+
pollComposer.updateFields({ name: e.target.value });
|
|
25
|
+
}, placeholder: t('Ask a question'), type: 'text', value: name }))));
|
|
26
|
+
};
|
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export type OptionFieldSetProps = {
|
|
4
|
-
errors: OptionErrors;
|
|
5
|
-
options: PollFormState['options'];
|
|
6
|
-
setErrors: (fn: (prev: OptionErrors) => OptionErrors) => void;
|
|
7
|
-
setState: (fn: (prev: PollFormState) => PollFormState) => void;
|
|
8
|
-
};
|
|
9
|
-
export declare const OptionFieldSet: ({ errors, options, setErrors, setState, }: OptionFieldSetProps) => React.JSX.Element;
|
|
2
|
+
export declare const OptionFieldSet: () => React.JSX.Element;
|
|
@@ -1,77 +1,45 @@
|
|
|
1
1
|
import clsx from 'clsx';
|
|
2
|
-
import { MAX_POLL_OPTIONS } from '../constants';
|
|
3
|
-
import { nanoid } from 'nanoid';
|
|
4
2
|
import React, { useCallback } from 'react';
|
|
5
3
|
import { FieldError } from '../../Form/FieldError';
|
|
6
4
|
import { DragAndDropContainer } from '../../DragAndDrop/DragAndDropContainer';
|
|
7
5
|
import { useTranslationContext } from '../../../context';
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
7
|
+
import { useStateStore } from '../../../store';
|
|
8
|
+
const pollComposerStateSelector = (state) => ({
|
|
9
|
+
errors: state.errors.options,
|
|
10
|
+
options: state.data.options,
|
|
11
|
+
});
|
|
12
|
+
export const OptionFieldSet = () => {
|
|
13
|
+
const { pollComposer } = useMessageComposer();
|
|
14
|
+
const { errors, options } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
10
15
|
const { t } = useTranslationContext('OptionFieldSet');
|
|
11
|
-
const findOptionDuplicate = (sourceOption) => {
|
|
12
|
-
const isDuplicateFilter = (option) => !!sourceOption.text.trim() && // do not include empty options into consideration
|
|
13
|
-
option.id !== sourceOption.id &&
|
|
14
|
-
option.text.trim() === sourceOption.text.trim();
|
|
15
|
-
return options.find(isDuplicateFilter);
|
|
16
|
-
};
|
|
17
16
|
const onSetNewOrder = useCallback((newOrder) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}));
|
|
22
|
-
}, [setState]);
|
|
17
|
+
const prevOptions = pollComposer.options;
|
|
18
|
+
pollComposer.updateFields({ options: newOrder.map((index) => prevOptions[index]) });
|
|
19
|
+
}, [pollComposer]);
|
|
23
20
|
const draggable = options.length > 1;
|
|
24
21
|
return (React.createElement("fieldset", { className: 'str-chat__form__field str-chat__form__input-fieldset' },
|
|
25
22
|
React.createElement("legend", { className: 'str-chat__form__field-label' }, t('Options')),
|
|
26
|
-
React.createElement(DragAndDropContainer, { className: 'str-chat__form__input-fieldset__values', draggable: draggable, onSetNewOrder: onSetNewOrder }, options.map((option, i) =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
React.createElement("
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const shouldRemoveOption = prev.options &&
|
|
45
|
-
prev.options.slice(i + 1).length > 0 &&
|
|
46
|
-
!e.target.value;
|
|
47
|
-
const optionListHead = prev.options ? prev.options.slice(0, i) : [];
|
|
48
|
-
const optionListTail = shouldAddEmptyOption
|
|
49
|
-
? [{ id: nanoid(), text: '' }]
|
|
50
|
-
: (prev.options || []).slice(i + 1);
|
|
51
|
-
if ((errors[option.id] && !e.target.value) ||
|
|
52
|
-
(VALIDATION_ERRORS[errors[option.id]] &&
|
|
53
|
-
!findOptionDuplicate({ id: e.target.id, text: e.target.value }))) {
|
|
54
|
-
setErrors((prev) => {
|
|
55
|
-
delete prev[option.id];
|
|
56
|
-
return prev;
|
|
57
|
-
});
|
|
23
|
+
React.createElement(DragAndDropContainer, { className: 'str-chat__form__input-fieldset__values', draggable: draggable, onSetNewOrder: onSetNewOrder }, options.map((option, i) => {
|
|
24
|
+
const error = errors?.[option.id];
|
|
25
|
+
return (React.createElement("div", { className: clsx('str-chat__form__input-field', {
|
|
26
|
+
'str-chat__form__input-field--draggable': draggable,
|
|
27
|
+
'str-chat__form__input-field--has-error': error,
|
|
28
|
+
}), key: `new-poll-option-${i}` },
|
|
29
|
+
React.createElement("div", { className: 'str-chat__form__input-field__value' },
|
|
30
|
+
React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-option-input-field-error', text: error && t(error) }),
|
|
31
|
+
React.createElement("input", { id: option.id, onBlur: () => {
|
|
32
|
+
pollComposer.handleFieldBlur('options');
|
|
33
|
+
}, onChange: (e) => {
|
|
34
|
+
pollComposer.updateFields({
|
|
35
|
+
options: { index: i, text: e.target.value },
|
|
36
|
+
});
|
|
37
|
+
}, onKeyUp: (event) => {
|
|
38
|
+
if (event.key === 'Enter') {
|
|
39
|
+
const nextInputId = options[i + 1].id;
|
|
40
|
+
document.getElementById(nextInputId)?.focus();
|
|
58
41
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
...optionListHead,
|
|
63
|
-
...(shouldRemoveOption
|
|
64
|
-
? []
|
|
65
|
-
: [{ ...option, text: e.target.value }]),
|
|
66
|
-
...optionListTail,
|
|
67
|
-
],
|
|
68
|
-
};
|
|
69
|
-
});
|
|
70
|
-
}, onKeyUp: (event) => {
|
|
71
|
-
if (event.key === 'Enter') {
|
|
72
|
-
const nextInputId = options[i + 1].id;
|
|
73
|
-
document.getElementById(nextInputId)?.focus();
|
|
74
|
-
}
|
|
75
|
-
}, placeholder: t('Add an option'), type: 'text', value: option.text })),
|
|
76
|
-
draggable && React.createElement("div", { className: 'str-chat__drag-handle' })))))));
|
|
42
|
+
}, placeholder: t('Add an option'), type: 'text', value: option.text })),
|
|
43
|
+
draggable && React.createElement("div", { className: 'str-chat__drag-handle' })));
|
|
44
|
+
}))));
|
|
77
45
|
};
|
|
@@ -1,96 +1,42 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { VotingVisibility } from 'stream-chat';
|
|
3
|
+
import { MultipleAnswersField } from './MultipleAnswersField';
|
|
4
|
+
import { NameField } from './NameField';
|
|
5
5
|
import { OptionFieldSet } from './OptionFieldSet';
|
|
6
6
|
import { PollCreationDialogControls } from './PollCreationDialogControls';
|
|
7
|
-
import { VALID_MAX_VOTES_VALUE_REGEX } from '../constants';
|
|
8
7
|
import { ModalHeader } from '../../Modal/ModalHeader';
|
|
9
8
|
import { SimpleSwitchField } from '../../Form/SwitchField';
|
|
10
|
-
import {
|
|
9
|
+
import { useMessageComposer } from '../../MessageInput';
|
|
10
|
+
import { useTranslationContext } from '../../../context';
|
|
11
|
+
import { useStateStore } from '../../../store';
|
|
12
|
+
const pollComposerStateSelector = (state) => ({
|
|
13
|
+
allow_answers: state.data.allow_answers,
|
|
14
|
+
allow_user_suggested_options: state.data.allow_user_suggested_options,
|
|
15
|
+
voting_visibility: state.data.voting_visibility,
|
|
16
|
+
});
|
|
11
17
|
export const PollCreationDialog = ({ close }) => {
|
|
12
|
-
const { client } = useChatContext();
|
|
13
18
|
const { t } = useTranslationContext();
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
description: '',
|
|
21
|
-
enforce_unique_vote: true,
|
|
22
|
-
id: nanoid(),
|
|
23
|
-
max_votes_allowed: '',
|
|
24
|
-
name: '',
|
|
25
|
-
options: [{ id: nanoid(), text: '' }],
|
|
26
|
-
user_id: client.user?.id,
|
|
27
|
-
voting_visibility: 'public',
|
|
28
|
-
}));
|
|
19
|
+
const { pollComposer } = useMessageComposer();
|
|
20
|
+
const { allow_answers, allow_user_suggested_options, voting_visibility } = useStateStore(pollComposer.state, pollComposerStateSelector);
|
|
21
|
+
const onClose = useCallback(() => {
|
|
22
|
+
pollComposer.initState();
|
|
23
|
+
close();
|
|
24
|
+
}, [pollComposer, close]);
|
|
29
25
|
return (React.createElement("div", { className: 'str-chat__dialog str-chat__poll-creation-dialog', "data-testid": 'poll-creation-dialog' },
|
|
30
|
-
React.createElement(ModalHeader, { close:
|
|
26
|
+
React.createElement(ModalHeader, { close: onClose, title: t('Create poll') }),
|
|
31
27
|
React.createElement("div", { className: 'str-chat__dialog__body' },
|
|
32
28
|
React.createElement("form", { autoComplete: 'off' },
|
|
33
|
-
React.createElement(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
}, onChange: (e) => {
|
|
44
|
-
setState((prev) => ({ ...prev, name: e.target.value }));
|
|
45
|
-
if (nameError && e.target.value) {
|
|
46
|
-
setNameError(undefined);
|
|
47
|
-
}
|
|
48
|
-
}, placeholder: t('Ask a question'), type: 'text', value: state.name }))),
|
|
49
|
-
React.createElement(OptionFieldSet, { errors: optionsErrors, options: state.options, setErrors: setOptionsErrors, setState: setState }),
|
|
50
|
-
React.createElement("div", { className: clsx('str-chat__form__expandable-field', {
|
|
51
|
-
'str-chat__form__expandable-field--expanded': !state.enforce_unique_vote,
|
|
52
|
-
}) },
|
|
53
|
-
React.createElement(SimpleSwitchField, { checked: !state.enforce_unique_vote, id: 'enforce_unique_vote', labelText: t('Multiple answers'), onChange: (e) => {
|
|
54
|
-
setState((prev) => ({
|
|
55
|
-
...prev,
|
|
56
|
-
enforce_unique_vote: !e.target.checked,
|
|
57
|
-
max_votes_allowed: '',
|
|
58
|
-
}));
|
|
59
|
-
setMultipleAnswerCountError(undefined);
|
|
60
|
-
} }),
|
|
61
|
-
!state.enforce_unique_vote && (React.createElement("div", { className: clsx('str-chat__form__input-field', {
|
|
62
|
-
'str-chat__form__input-field--has-error': multipleAnswerCountError,
|
|
63
|
-
}) },
|
|
64
|
-
React.createElement("div", { className: clsx('str-chat__form__input-field__value') },
|
|
65
|
-
React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-max-votes-allowed-input-field-error', text: multipleAnswerCountError }),
|
|
66
|
-
React.createElement("input", { id: 'max_votes_allowed', onChange: (e) => {
|
|
67
|
-
const isValidValue = !e.target.value ||
|
|
68
|
-
e.target.value.match(VALID_MAX_VOTES_VALUE_REGEX);
|
|
69
|
-
if (!isValidValue) {
|
|
70
|
-
setMultipleAnswerCountError(t('Type a number from 2 to 10'));
|
|
71
|
-
}
|
|
72
|
-
else if (multipleAnswerCountError) {
|
|
73
|
-
setMultipleAnswerCountError(undefined);
|
|
74
|
-
}
|
|
75
|
-
setState((prev) => ({
|
|
76
|
-
...prev,
|
|
77
|
-
max_votes_allowed: e.target.value,
|
|
78
|
-
}));
|
|
79
|
-
}, placeholder: t('Maximum number of votes (from 2 to 10)'), type: 'number', value: state.max_votes_allowed }))))),
|
|
80
|
-
React.createElement(SimpleSwitchField, { checked: state.voting_visibility === 'anonymous', id: 'voting_visibility', labelText: t('Anonymous poll'), onChange: (e) => setState((prev) => ({
|
|
81
|
-
...prev,
|
|
82
|
-
voting_visibility: (e.target.checked
|
|
83
|
-
? 'anonymous'
|
|
84
|
-
: 'public'),
|
|
85
|
-
})) }),
|
|
86
|
-
React.createElement(SimpleSwitchField, { checked: state.allow_user_suggested_options, id: 'allow_user_suggested_options', labelText: t('Allow option suggestion'), onChange: (e) => setState((prev) => ({
|
|
87
|
-
...prev,
|
|
29
|
+
React.createElement(NameField, null),
|
|
30
|
+
React.createElement(OptionFieldSet, null),
|
|
31
|
+
React.createElement(MultipleAnswersField, null),
|
|
32
|
+
React.createElement(SimpleSwitchField, { checked: voting_visibility === 'anonymous', id: 'voting_visibility', labelText: t('Anonymous poll'), onChange: (e) => pollComposer.updateFields({
|
|
33
|
+
voting_visibility: e.target.checked
|
|
34
|
+
? VotingVisibility.anonymous
|
|
35
|
+
: VotingVisibility.public,
|
|
36
|
+
}) }),
|
|
37
|
+
React.createElement(SimpleSwitchField, { checked: allow_user_suggested_options, id: 'allow_user_suggested_options', labelText: t('Allow option suggestion'), onChange: (e) => pollComposer.updateFields({
|
|
88
38
|
allow_user_suggested_options: e.target.checked,
|
|
89
|
-
})
|
|
90
|
-
React.createElement(SimpleSwitchField, { checked:
|
|
91
|
-
React.createElement(PollCreationDialogControls, { close: close
|
|
92
|
-
...(nameError ?? []),
|
|
93
|
-
...(multipleAnswerCountError ?? []),
|
|
94
|
-
...Object.keys(optionsErrors),
|
|
95
|
-
], state: state })));
|
|
39
|
+
}) }),
|
|
40
|
+
React.createElement(SimpleSwitchField, { checked: allow_answers, id: 'allow_answers', labelText: t('Allow comments'), onChange: (e) => pollComposer.updateFields({ allow_answers: e.target.checked }) }))),
|
|
41
|
+
React.createElement(PollCreationDialogControls, { close: close })));
|
|
96
42
|
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { PollFormState } from './types';
|
|
3
2
|
export type PollCreationDialogControlsProps = {
|
|
4
3
|
close: () => void;
|
|
5
|
-
errors: string[];
|
|
6
|
-
state: PollFormState;
|
|
7
4
|
};
|
|
8
|
-
export declare const PollCreationDialogControls: ({ close,
|
|
5
|
+
export declare const PollCreationDialogControls: ({ close, }: PollCreationDialogControlsProps) => React.JSX.Element;
|