stream-chat-react 12.13.1 → 13.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -30
- package/dist/components/AIStateIndicator/AIStateIndicator.d.ts +4 -5
- package/dist/components/AIStateIndicator/hooks/useAIState.d.ts +2 -3
- package/dist/components/Attachment/Attachment.d.ts +8 -9
- package/dist/components/Attachment/Attachment.js +6 -5
- package/dist/components/Attachment/AttachmentActions.d.ts +2 -3
- package/dist/components/Attachment/AttachmentContainer.d.ts +15 -15
- package/dist/components/Attachment/AttachmentContainer.js +2 -2
- package/dist/components/Attachment/Audio.d.ts +3 -4
- package/dist/components/Attachment/Card.d.ts +1 -1
- package/dist/components/Attachment/FileAttachment.d.ts +3 -4
- package/dist/components/Attachment/FileAttachment.js +1 -1
- package/dist/components/Attachment/UnsupportedAttachment.d.ts +3 -4
- package/dist/components/Attachment/UnsupportedAttachment.js +1 -1
- package/dist/components/Attachment/VoiceRecording.d.ts +4 -5
- package/dist/components/Attachment/components/FileSizeIndicator.d.ts +1 -1
- package/dist/components/Attachment/components/FileSizeIndicator.js +4 -2
- package/dist/components/Attachment/utils.d.ts +8 -22
- package/dist/components/Attachment/utils.js +3 -18
- package/dist/components/Avatar/Avatar.d.ts +3 -4
- package/dist/components/Avatar/ChannelAvatar.d.ts +3 -4
- package/dist/components/Avatar/ChannelAvatar.js +1 -1
- package/dist/components/Avatar/GroupAvatar.d.ts +2 -2
- package/dist/components/Channel/Channel.d.ts +18 -37
- package/dist/components/Channel/Channel.js +31 -92
- package/dist/components/Channel/channelState.d.ts +17 -18
- package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +2 -3
- package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +2 -3
- package/dist/components/Channel/hooks/useCreateChannelStateContext.js +1 -15
- package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +1 -2
- package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +3 -4
- package/dist/components/Channel/hooks/useMentionsHandlers.d.ts +3 -4
- package/dist/components/Channel/utils.d.ts +8 -6
- package/dist/components/Channel/utils.js +1 -0
- package/dist/components/ChannelHeader/ChannelHeader.d.ts +2 -3
- package/dist/components/ChannelList/ChannelList.d.ts +31 -30
- package/dist/components/ChannelList/ChannelList.js +8 -10
- package/dist/components/ChannelList/ChannelListMessenger.d.ts +6 -6
- package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelListShape.d.ts +44 -44
- package/dist/components/ChannelList/hooks/useChannelListShape.js +0 -2
- package/dist/components/ChannelList/hooks/useChannelMembershipState.d.ts +3 -3
- package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts +1 -2
- package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +7 -8
- package/dist/components/ChannelList/hooks/usePaginatedChannels.js +3 -3
- package/dist/components/ChannelList/hooks/useSelectedChannelState.d.ts +7 -7
- package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts +1 -2
- package/dist/components/ChannelList/utils.d.ts +20 -21
- package/dist/components/ChannelList/utils.js +2 -2
- package/dist/components/ChannelPreview/ChannelPreview.d.ts +15 -16
- package/dist/components/ChannelPreview/ChannelPreview.js +1 -1
- package/dist/components/ChannelPreview/ChannelPreviewActionButtons.d.ts +4 -4
- package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +1 -2
- package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +3 -4
- package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts +1 -2
- package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +5 -7
- package/dist/components/ChannelPreview/icons.d.ts +1 -1
- package/dist/components/ChannelPreview/utils.d.ts +7 -7
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +5 -6
- package/dist/components/ChannelSearch/ChannelSearch.js +2 -2
- package/dist/components/ChannelSearch/SearchBar.d.ts +1 -1
- package/dist/components/ChannelSearch/SearchBar.js +1 -1
- package/dist/components/ChannelSearch/SearchResults.d.ts +13 -14
- package/dist/components/ChannelSearch/SearchResults.js +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +17 -18
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +2 -6
- package/dist/components/ChannelSearch/utils.d.ts +2 -3
- package/dist/components/Chat/Chat.d.ts +9 -9
- package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +1 -1
- package/dist/components/Chat/hooks/useChat.d.ts +10 -10
- package/dist/components/Chat/hooks/useChat.js +4 -3
- package/dist/components/Chat/hooks/useCreateChatClient.d.ts +4 -4
- package/dist/components/Chat/hooks/useCreateChatContext.d.ts +1 -2
- package/dist/components/Dialog/DialogAnchor.d.ts +4 -3
- package/dist/components/Dialog/DialogAnchor.js +2 -2
- package/dist/components/Dialog/DialogMenu.d.ts +2 -1
- package/dist/components/Dialog/DialogPortal.d.ts +2 -1
- package/dist/components/Dialog/FormDialog.d.ts +2 -1
- package/dist/components/Dialog/FormDialog.js +1 -1
- package/dist/components/Dialog/PromptDialog.d.ts +2 -1
- package/dist/components/DragAndDrop/DragAndDropContainer.d.ts +2 -1
- package/dist/components/EventComponent/EventComponent.d.ts +7 -6
- package/dist/components/Form/FieldError.d.ts +2 -1
- package/dist/components/Form/SwitchField.d.ts +2 -1
- package/dist/components/Form/SwitchField.js +1 -1
- package/dist/components/Gallery/Gallery.d.ts +5 -5
- package/dist/components/Gallery/Image.d.ts +6 -5
- package/dist/components/Gallery/ModalGallery.d.ts +3 -4
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts +2 -1
- package/dist/components/LoadMore/LoadMoreButton.d.ts +2 -1
- package/dist/components/LoadMore/LoadMorePaginator.d.ts +3 -2
- package/dist/components/LoadMore/LoadMorePaginator.js +1 -1
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +3 -2
- package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +1 -1
- package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +1 -1
- package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +11 -23
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +8 -8
- package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +6 -4
- package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +2 -2
- package/dist/components/MediaRecorder/observable/Observable.d.ts +1 -1
- package/dist/components/MediaRecorder/observable/Subject.d.ts +3 -2
- package/dist/components/Message/FixedHeightMessage.d.ts +4 -5
- package/dist/components/Message/Message.d.ts +1 -2
- package/dist/components/Message/MessageBlocked.d.ts +2 -0
- package/dist/components/Message/MessageBlocked.js +16 -0
- package/dist/components/Message/MessageDeleted.d.ts +4 -5
- package/dist/components/Message/MessageEditedTimestamp.d.ts +2 -3
- package/dist/components/Message/MessageErrorText.d.ts +4 -5
- package/dist/components/Message/MessageErrorText.js +2 -2
- package/dist/components/Message/MessageOptions.d.ts +3 -3
- package/dist/components/Message/MessageRepliesCountButton.d.ts +2 -1
- package/dist/components/Message/MessageSimple.d.ts +1 -2
- package/dist/components/Message/MessageSimple.js +14 -12
- package/dist/components/Message/MessageStatus.d.ts +3 -4
- package/dist/components/Message/MessageText.d.ts +6 -6
- package/dist/components/Message/MessageTimestamp.d.ts +4 -5
- package/dist/components/Message/QuotedMessage.d.ts +2 -3
- package/dist/components/Message/QuotedMessage.js +1 -1
- package/dist/components/Message/StreamedMessageText.d.ts +3 -4
- package/dist/components/Message/hooks/useActionHandler.d.ts +2 -3
- package/dist/components/Message/hooks/useActionHandler.js +1 -1
- package/dist/components/Message/hooks/useDeleteHandler.d.ts +4 -5
- package/dist/components/Message/hooks/useFlagHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useMarkUnreadHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useMentionsHandler.d.ts +6 -8
- package/dist/components/Message/hooks/useMessageTextStreaming.d.ts +2 -3
- package/dist/components/Message/hooks/useMuteHandler.d.ts +5 -7
- package/dist/components/Message/hooks/useMuteHandler.js +1 -1
- package/dist/components/Message/hooks/useOpenThreadHandler.d.ts +2 -3
- package/dist/components/Message/hooks/usePinHandler.d.ts +4 -5
- package/dist/components/Message/hooks/usePinHandler.js +1 -1
- package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -4
- package/dist/components/Message/hooks/useReactionHandler.js +2 -4
- package/dist/components/Message/hooks/useReactionsFetcher.d.ts +5 -7
- package/dist/components/Message/hooks/useRetryHandler.d.ts +2 -3
- package/dist/components/Message/hooks/useRetryHandler.js +1 -1
- package/dist/components/Message/hooks/useUserHandler.d.ts +5 -6
- package/dist/components/Message/hooks/useUserRole.d.ts +2 -3
- package/dist/components/Message/hooks/useUserRole.js +1 -1
- package/dist/components/Message/icons.d.ts +2 -2
- package/dist/components/Message/icons.js +1 -1
- package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +2 -1
- package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +1 -1
- package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +5 -5
- package/dist/components/Message/renderText/componentRenderers/Mention.js +1 -1
- package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +1 -2
- package/dist/components/Message/renderText/renderText.d.ts +6 -6
- package/dist/components/Message/renderText/types.d.ts +1 -1
- package/dist/components/Message/types.d.ts +27 -28
- package/dist/components/Message/utils.d.ts +21 -21
- package/dist/components/Message/utils.js +8 -4
- package/dist/components/MessageActions/CustomMessageActionsList.d.ts +6 -7
- package/dist/components/MessageActions/MessageActions.d.ts +6 -5
- package/dist/components/MessageActions/MessageActions.js +1 -1
- package/dist/components/MessageActions/MessageActionsBox.d.ts +5 -5
- package/dist/components/MessageActions/MessageActionsBox.js +4 -3
- package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.d.ts +1 -1
- package/dist/components/MessageBounce/MessageBounceModal.d.ts +4 -3
- package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +1 -2
- package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +11 -11
- package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +17 -14
- package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +4 -12
- package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +8 -5
- package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +4 -5
- package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +2 -2
- package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +7 -5
- package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +5 -2
- package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +4 -5
- package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +5 -2
- package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +1 -1
- package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +3 -4
- package/dist/components/MessageInput/AttachmentSelector.d.ts +1 -2
- package/dist/components/MessageInput/AttachmentSelector.js +5 -3
- package/dist/components/MessageInput/EditMessageForm.d.ts +3 -2
- package/dist/components/MessageInput/EditMessageForm.js +30 -6
- package/dist/components/MessageInput/LinkPreviewList.d.ts +6 -4
- package/dist/components/MessageInput/LinkPreviewList.js +24 -10
- package/dist/components/MessageInput/MessageInput.d.ts +23 -45
- package/dist/components/MessageInput/MessageInput.js +25 -15
- package/dist/components/MessageInput/MessageInputFlat.d.ts +1 -2
- package/dist/components/MessageInput/MessageInputFlat.js +31 -76
- package/dist/components/MessageInput/QuotedMessagePreview.d.ts +4 -7
- package/dist/components/MessageInput/QuotedMessagePreview.js +22 -16
- package/dist/components/MessageInput/SendButton.d.ts +4 -5
- package/dist/components/MessageInput/SendButton.js +6 -2
- package/dist/components/MessageInput/WithDragAndDropUpload.d.ts +38 -0
- package/dist/components/MessageInput/WithDragAndDropUpload.js +96 -0
- package/dist/components/MessageInput/hooks/index.d.ts +5 -1
- package/dist/components/MessageInput/hooks/index.js +5 -1
- package/dist/components/MessageInput/hooks/useAttachmentManagerState.d.ts +10 -0
- package/dist/components/MessageInput/hooks/useAttachmentManagerState.js +19 -0
- package/dist/components/MessageInput/hooks/useCanCreatePoll.d.ts +1 -0
- package/dist/components/MessageInput/hooks/useCanCreatePoll.js +10 -0
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +2 -3
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +1 -2
- package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +1 -55
- package/dist/components/MessageInput/hooks/useMessageComposer.d.ts +2 -0
- package/dist/components/MessageInput/hooks/useMessageComposer.js +80 -0
- package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.d.ts +1 -0
- package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.js +8 -0
- package/dist/components/MessageInput/hooks/useMessageInputControls.d.ts +12 -0
- package/dist/components/MessageInput/hooks/useMessageInputControls.js +23 -0
- package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +1 -5
- package/dist/components/MessageInput/hooks/useMessageInputText.js +19 -53
- package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +1 -3
- package/dist/components/MessageInput/hooks/usePasteHandler.js +6 -8
- package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -6
- package/dist/components/MessageInput/hooks/useSubmitHandler.js +30 -98
- package/dist/components/MessageInput/hooks/utils.d.ts +0 -27
- package/dist/components/MessageInput/hooks/utils.js +0 -124
- package/dist/components/MessageInput/index.d.ts +1 -2
- package/dist/components/MessageInput/index.js +1 -2
- package/dist/components/MessageList/ConnectionStatus.d.ts +1 -2
- package/dist/components/MessageList/ConnectionStatus.js +1 -1
- package/dist/components/MessageList/CustomNotification.d.ts +2 -1
- package/dist/components/MessageList/GiphyPreviewMessage.d.ts +4 -5
- package/dist/components/MessageList/MessageList.d.ts +11 -12
- package/dist/components/MessageList/MessageList.js +4 -4
- package/dist/components/MessageList/MessageNotification.d.ts +2 -1
- package/dist/components/MessageList/VirtualizedMessageList.d.ts +22 -21
- package/dist/components/MessageList/VirtualizedMessageList.js +6 -6
- package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +10 -10
- package/dist/components/MessageList/VirtualizedMessageListComponents.js +7 -7
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +8 -10
- package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +1 -1
- package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +11 -12
- package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts +4 -5
- package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +5 -6
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js +3 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +1 -1
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +6 -2
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +4 -5
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts +2 -3
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +3 -4
- package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +5 -6
- package/dist/components/MessageList/hooks/useLastReadData.d.ts +5 -6
- package/dist/components/MessageList/hooks/useLastReadData.js +5 -1
- package/dist/components/MessageList/hooks/useMarkRead.d.ts +1 -2
- package/dist/components/MessageList/renderMessages.d.ts +14 -14
- package/dist/components/MessageList/renderMessages.js +8 -7
- package/dist/components/MessageList/utils.d.ts +34 -28
- package/dist/components/MessageList/utils.js +26 -21
- package/dist/components/Modal/Modal.d.ts +2 -1
- package/dist/components/Poll/Poll.d.ts +2 -3
- package/dist/components/Poll/Poll.js +1 -1
- package/dist/components/Poll/PollActions/AddCommentForm.d.ts +1 -2
- package/dist/components/Poll/PollActions/AddCommentForm.js +4 -2
- package/dist/components/Poll/PollActions/EndPollDialog.d.ts +1 -2
- package/dist/components/Poll/PollActions/EndPollDialog.js +1 -1
- package/dist/components/Poll/PollActions/PollAction.d.ts +2 -1
- package/dist/components/Poll/PollActions/PollActions.d.ts +7 -8
- package/dist/components/Poll/PollActions/PollActions.js +5 -5
- package/dist/components/Poll/PollActions/PollAnswerList.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollOptionsFullList.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollOptionsFullList.js +4 -2
- package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.d.ts +3 -4
- package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js +1 -1
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.d.ts +3 -4
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts +4 -5
- package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js +1 -1
- package/dist/components/Poll/PollActions/PollResults/PollResults.d.ts +1 -2
- package/dist/components/Poll/PollActions/PollResults/PollResults.js +1 -1
- package/dist/components/Poll/PollActions/SuggestPollOptionForm.d.ts +1 -2
- package/dist/components/Poll/PollActions/SuggestPollOptionForm.js +3 -1
- package/dist/components/Poll/PollContent.d.ts +1 -2
- package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.d.ts +2 -0
- package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.js +35 -0
- package/dist/components/Poll/PollCreationDialog/NameField.d.ts +2 -0
- package/dist/components/Poll/PollCreationDialog/NameField.js +26 -0
- package/dist/components/Poll/PollCreationDialog/OptionFieldSet.d.ts +1 -8
- package/dist/components/Poll/PollCreationDialog/OptionFieldSet.js +33 -65
- package/dist/components/Poll/PollCreationDialog/PollCreationDialog.js +31 -85
- package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts +1 -4
- package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js +15 -41
- package/dist/components/Poll/PollCreationDialog/types.d.ts +0 -14
- package/dist/components/Poll/PollHeader.d.ts +1 -2
- package/dist/components/Poll/PollOptionList.d.ts +1 -2
- package/dist/components/Poll/PollOptionList.js +4 -2
- package/dist/components/Poll/PollOptionSelector.d.ts +3 -4
- package/dist/components/Poll/PollVote.d.ts +6 -7
- package/dist/components/Poll/PollVote.js +3 -3
- package/dist/components/Poll/QuotedPoll.d.ts +1 -2
- package/dist/components/Poll/constants.d.ts +0 -1
- package/dist/components/Poll/constants.js +0 -1
- package/dist/components/Poll/hooks/useManagePollVotesRealtime.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollAnswerPagination.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollAnswerPagination.js +2 -2
- package/dist/components/Poll/hooks/usePollOptionVotesPagination.d.ts +2 -3
- package/dist/components/Poll/hooks/usePollOptionVotesPagination.js +1 -1
- package/dist/components/Portal/Portal.d.ts +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +1 -1
- package/dist/components/ReactFileUtilities/FileIcon/FileIconSet.d.ts +2 -1
- package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts +1 -1
- package/dist/components/ReactFileUtilities/UploadButton.d.ts +3 -2
- package/dist/components/ReactFileUtilities/UploadButton.js +16 -6
- package/dist/components/ReactFileUtilities/index.d.ts +0 -1
- package/dist/components/ReactFileUtilities/index.js +0 -1
- package/dist/components/ReactFileUtilities/utils.d.ts +2 -2
- package/dist/components/Reactions/ReactionSelector.d.ts +4 -5
- package/dist/components/Reactions/ReactionSelectorWithButton.d.ts +1 -2
- package/dist/components/Reactions/ReactionsList.d.ts +6 -7
- package/dist/components/Reactions/ReactionsList.js +2 -2
- package/dist/components/Reactions/ReactionsListModal.d.ts +9 -10
- package/dist/components/Reactions/SimpleReactionsList.d.ts +5 -6
- package/dist/components/Reactions/StreamEmoji.d.ts +1 -1
- package/dist/components/Reactions/hooks/useFetchReactions.d.ts +9 -10
- package/dist/components/Reactions/hooks/useProcessReactions.d.ts +1 -2
- package/dist/components/Reactions/types.d.ts +3 -4
- package/dist/components/Reactions/utils/utils.d.ts +1 -1
- package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -1
- package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.d.ts +2 -1
- package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.js +1 -2
- package/dist/components/{EmoticonItem → TextareaComposer/SuggestionList}/EmoticonItem.d.ts +7 -7
- package/dist/components/TextareaComposer/SuggestionList/EmoticonItem.js +12 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionList.d.ts +16 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionList.js +49 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +18 -0
- package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js +25 -0
- package/dist/components/{UserItem → TextareaComposer/SuggestionList}/UserItem.d.ts +7 -4
- package/dist/components/TextareaComposer/SuggestionList/UserItem.js +24 -0
- package/dist/components/TextareaComposer/SuggestionList/index.d.ts +5 -0
- package/dist/components/TextareaComposer/SuggestionList/index.js +5 -0
- package/dist/components/TextareaComposer/TextareaComposer.d.ts +13 -0
- package/dist/components/TextareaComposer/TextareaComposer.js +155 -0
- package/dist/components/TextareaComposer/index.d.ts +2 -0
- package/dist/components/TextareaComposer/index.js +2 -0
- package/dist/components/Thread/Thread.d.ts +13 -10
- package/dist/components/Thread/Thread.js +23 -12
- package/dist/components/Thread/ThreadHead.d.ts +2 -3
- package/dist/components/Thread/ThreadHeader.d.ts +5 -6
- package/dist/components/Thread/ThreadHeader.js +1 -1
- package/dist/components/Threads/ThreadContext.d.ts +2 -2
- package/dist/components/Threads/ThreadContext.js +1 -4
- package/dist/components/Threads/ThreadList/ThreadList.d.ts +1 -1
- package/dist/components/Threads/ThreadList/ThreadListItem.d.ts +1 -1
- package/dist/components/Threads/hooks/useThreadManagerState.d.ts +1 -1
- package/dist/components/Threads/hooks/useThreadState.d.ts +1 -1
- package/dist/components/Threads/icons.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +3 -2
- package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts +1 -1
- package/dist/components/TypingIndicator/TypingIndicator.d.ts +1 -2
- package/dist/components/Window/Window.d.ts +6 -6
- package/dist/components/index.d.ts +1 -5
- package/dist/components/index.js +1 -5
- package/dist/context/AttachmentSelectorContext.d.ts +2 -1
- package/dist/context/ChannelActionContext.d.ts +26 -35
- package/dist/context/ChannelListContext.d.ts +9 -9
- package/dist/context/ChannelListContext.js +1 -1
- package/dist/context/ChannelStateContext.d.ts +24 -34
- package/dist/context/ChatContext.d.ts +18 -17
- package/dist/context/ComponentContext.d.ts +41 -37
- package/dist/context/DialogManagerContext.d.ts +2 -1
- package/dist/context/MessageBounceContext.d.ts +8 -7
- package/dist/context/MessageBounceContext.js +1 -1
- package/dist/context/MessageContext.d.ts +23 -23
- package/dist/context/MessageInputContext.d.ts +8 -26
- package/dist/context/MessageInputContext.js +3 -2
- package/dist/context/MessageListContext.d.ts +2 -1
- package/dist/context/PollContext.d.ts +8 -8
- package/dist/context/TranslationContext.d.ts +2 -1
- package/dist/context/TypingContext.d.ts +11 -10
- package/dist/context/VirtualizedMessageListContext.d.ts +2 -1
- package/dist/context/WithComponents.d.ts +3 -2
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/experimental/MessageActions/MessageActions.d.ts +1 -1
- package/dist/experimental/MessageActions/MessageActions.js +1 -1
- package/dist/experimental/MessageActions/defaults.js +4 -3
- package/dist/experimental/Search/Search.d.ts +1 -2
- package/dist/experimental/Search/SearchContext.d.ts +8 -8
- package/dist/experimental/Search/SearchResults/SearchResultItem.d.ts +11 -11
- package/dist/experimental/Search/SearchResults/SearchResultItem.js +3 -3
- package/dist/experimental/Search/SearchResults/SearchResults.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchResultsHeader.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchResultsHeader.js +1 -1
- package/dist/experimental/Search/SearchResults/SearchSourceResultList.d.ts +2 -3
- package/dist/experimental/Search/SearchResults/SearchSourceResultListFooter.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchSourceResults.d.ts +1 -2
- package/dist/experimental/Search/SearchResults/SearchSourceResults.js +1 -1
- package/dist/experimental/Search/SearchSourceResultsContext.d.ts +2 -1
- package/dist/experimental/Search/hooks/useSearchFocusedMessage.d.ts +1 -2
- package/dist/experimental/Search/hooks/useSearchFocusedMessage.js +3 -1
- package/dist/experimental/Search/hooks/useSearchQueriesInProgress.d.ts +3 -4
- package/dist/experimental/index.browser.cjs +1139 -1075
- package/dist/experimental/index.browser.cjs.map +4 -4
- package/dist/experimental/index.node.cjs +1139 -1075
- package/dist/experimental/index.node.cjs.map +4 -4
- package/dist/i18n/Streami18n.d.ts +2 -1
- package/dist/i18n/de.json +1 -0
- package/dist/i18n/en.json +1 -0
- package/dist/i18n/es.json +1 -0
- package/dist/i18n/fr.json +1 -0
- package/dist/i18n/hi.json +1 -0
- package/dist/i18n/it.json +1 -0
- package/dist/i18n/ja.json +1 -0
- package/dist/i18n/ko.json +1 -0
- package/dist/i18n/nl.json +1 -0
- package/dist/i18n/pt.json +1 -0
- package/dist/i18n/ru.json +1 -0
- package/dist/i18n/tr.json +1 -0
- package/dist/i18n/types.d.ts +2 -2
- package/dist/i18n/utils.d.ts +1 -1
- package/dist/i18n/utils.js +3 -1
- package/dist/index.browser.cjs +28774 -30813
- package/dist/index.browser.cjs.map +4 -4
- package/dist/index.node.cjs +30798 -32844
- package/dist/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/index.browser.cjs +133 -5
- package/dist/plugins/Emojis/index.browser.cjs.map +4 -4
- package/dist/plugins/Emojis/index.d.ts +1 -0
- package/dist/plugins/Emojis/index.js +1 -0
- package/dist/plugins/Emojis/index.node.cjs +135 -6
- package/dist/plugins/Emojis/index.node.cjs.map +4 -4
- package/dist/plugins/Emojis/middleware/index.d.ts +1 -0
- package/dist/plugins/Emojis/middleware/index.js +1 -0
- package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.d.ts +66 -0
- package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.js +143 -0
- package/dist/plugins/encoders/mp3.browser.cjs.map +2 -2
- package/dist/plugins/encoders/mp3.node.cjs.map +2 -2
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +14 -0
- package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +11 -0
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
- package/dist/scss/v2/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +18 -0
- package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +15 -0
- package/dist/scss/v2/Message/Message-layout.scss +8 -0
- package/dist/scss/v2/Message/Message-theme.scss +29 -0
- package/dist/scss/v2/MessageInput/MessageInput-layout.scss +0 -13
- package/dist/scss/v2/MessageInput/MessageInput-theme.scss +8 -19
- package/dist/scss/v2/index.layout.scss +2 -1
- package/dist/scss/v2/index.scss +1 -0
- package/dist/types/defaultDataInterfaces.d.ts +25 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/types.d.ts +2 -62
- package/dist/utils/getChannel.d.ts +5 -6
- package/dist/utils/mergeDeep.d.ts +2 -3
- package/package.json +8 -11
- package/dist/components/AutoCompleteTextarea/Item.d.ts +0 -2
- package/dist/components/AutoCompleteTextarea/Item.js +0 -10
- package/dist/components/AutoCompleteTextarea/List.d.ts +0 -17
- package/dist/components/AutoCompleteTextarea/List.js +0 -89
- package/dist/components/AutoCompleteTextarea/Textarea.d.ts +0 -114
- package/dist/components/AutoCompleteTextarea/Textarea.js +0 -593
- package/dist/components/AutoCompleteTextarea/index.d.ts +0 -4
- package/dist/components/AutoCompleteTextarea/index.js +0 -4
- package/dist/components/AutoCompleteTextarea/types.d.ts +0 -15
- package/dist/components/AutoCompleteTextarea/utils.d.ts +0 -6
- package/dist/components/AutoCompleteTextarea/utils.js +0 -40
- package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +0 -78
- package/dist/components/ChatAutoComplete/ChatAutoComplete.js +0 -33
- package/dist/components/ChatAutoComplete/index.d.ts +0 -1
- package/dist/components/ChatAutoComplete/index.js +0 -1
- package/dist/components/CommandItem/index.d.ts +0 -1
- package/dist/components/CommandItem/index.js +0 -1
- package/dist/components/EmoticonItem/EmoticonItem.js +0 -16
- package/dist/components/EmoticonItem/index.d.ts +0 -1
- package/dist/components/EmoticonItem/index.js +0 -1
- package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +0 -35
- package/dist/components/MessageInput/DefaultTriggerProvider.js +0 -24
- package/dist/components/MessageInput/DropzoneProvider.d.ts +0 -4
- package/dist/components/MessageInput/DropzoneProvider.js +0 -23
- package/dist/components/MessageInput/hooks/useAttachments.d.ts +0 -14
- package/dist/components/MessageInput/hooks/useAttachments.js +0 -209
- package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useCommandTrigger.js +0 -62
- package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +0 -3
- package/dist/components/MessageInput/hooks/useEmojiTrigger.js +0 -29
- package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +0 -30
- package/dist/components/MessageInput/hooks/useLinkPreviews.js +0 -109
- package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +0 -71
- package/dist/components/MessageInput/hooks/useMessageInputState.js +0 -200
- package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +0 -12
- package/dist/components/MessageInput/hooks/useUserTrigger.js +0 -130
- package/dist/components/MessageInput/types.d.ts +0 -87
- package/dist/components/MessageInput/types.js +0 -19
- package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +0 -16
- package/dist/components/ReactFileUtilities/ImageDropzone.js +0 -42
- package/dist/components/UserItem/UserItem.js +0 -26
- package/dist/components/UserItem/index.d.ts +0 -1
- package/dist/components/UserItem/index.js +0 -1
- /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.d.ts +0 -0
- /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.js +0 -0
- /package/dist/scss/v2/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
- /package/dist/{components/AutoCompleteTextarea/types.js → types/defaultDataInterfaces.js} +0 -0
|
@@ -16,7 +16,7 @@ import { isDate } from '../../i18n';
|
|
|
16
16
|
*
|
|
17
17
|
* The only required params are messages and userId, the rest are config params:
|
|
18
18
|
*
|
|
19
|
-
* @return {
|
|
19
|
+
* @return {LocalMessage[]} Transformed list of messages
|
|
20
20
|
*/
|
|
21
21
|
export const processMessages = (params) => {
|
|
22
22
|
const { messages, reviewProcessedMessage, setGiphyPreviewMessage, ...context } = params;
|
|
@@ -70,7 +70,7 @@ export const processMessages = (params) => {
|
|
|
70
70
|
(hideDeletedMessages &&
|
|
71
71
|
previousMessage?.type === 'deleted' &&
|
|
72
72
|
lastDateSeparator !== messageDate)) &&
|
|
73
|
-
changes[changes.length - 1]
|
|
73
|
+
!isDateSeparatorMessage(changes[changes.length - 1]) // do not show two date separators in a row)
|
|
74
74
|
) {
|
|
75
75
|
lastDateSeparator = messageDate;
|
|
76
76
|
changes.push({
|
|
@@ -96,6 +96,10 @@ export const processMessages = (params) => {
|
|
|
96
96
|
}
|
|
97
97
|
return newMessages;
|
|
98
98
|
};
|
|
99
|
+
export const makeIntroMessage = () => ({
|
|
100
|
+
customType: CUSTOM_MESSAGE_TYPE.intro,
|
|
101
|
+
id: nanoid(),
|
|
102
|
+
});
|
|
99
103
|
export const makeDateMessageId = (date) => {
|
|
100
104
|
let idSuffix;
|
|
101
105
|
try {
|
|
@@ -147,9 +151,7 @@ export const getReadStates = (messages, read = {}, returnAllReadData) => {
|
|
|
147
151
|
};
|
|
148
152
|
export const insertIntro = (messages, headerPosition) => {
|
|
149
153
|
const newMessages = messages;
|
|
150
|
-
const intro =
|
|
151
|
-
customType: CUSTOM_MESSAGE_TYPE.intro,
|
|
152
|
-
};
|
|
154
|
+
const intro = makeIntroMessage();
|
|
153
155
|
// if no headerPosition is set, HeaderComponent will go at the top
|
|
154
156
|
if (!headerPosition) {
|
|
155
157
|
newMessages.unshift(intro);
|
|
@@ -162,19 +164,17 @@ export const insertIntro = (messages, headerPosition) => {
|
|
|
162
164
|
}
|
|
163
165
|
// else loop over the messages
|
|
164
166
|
for (let i = 0; i < messages.length; i += 1) {
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
? message.created_at.getTime()
|
|
167
|
+
const messageTime = isDate(messages[i].created_at)
|
|
168
|
+
? messages[i].created_at.getTime()
|
|
168
169
|
: null;
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
? nextMessage.created_at.getTime()
|
|
170
|
+
const nextMessageTime = isDate(messages[i + 1].created_at)
|
|
171
|
+
? messages[i + 1].created_at.getTime()
|
|
172
172
|
: null;
|
|
173
173
|
// header position is smaller than message time so comes after;
|
|
174
174
|
if (messageTime && messageTime < headerPosition) {
|
|
175
175
|
// if header position is also smaller than message time continue;
|
|
176
176
|
if (nextMessageTime && nextMessageTime < headerPosition) {
|
|
177
|
-
if (messages[i + 1] && messages[i + 1]
|
|
177
|
+
if (messages[i + 1] && isDateSeparatorMessage(messages[i + 1]))
|
|
178
178
|
continue;
|
|
179
179
|
if (!nextMessageTime) {
|
|
180
180
|
newMessages.push(intro);
|
|
@@ -190,15 +190,13 @@ export const insertIntro = (messages, headerPosition) => {
|
|
|
190
190
|
return newMessages;
|
|
191
191
|
};
|
|
192
192
|
export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByUser, maxTimeBetweenGroupedMessages) => {
|
|
193
|
-
if (message
|
|
194
|
-
return '';
|
|
195
|
-
if (message.customType === CUSTOM_MESSAGE_TYPE.intro)
|
|
193
|
+
if (isDateSeparatorMessage(message) || isIntroMessage(message))
|
|
196
194
|
return '';
|
|
197
195
|
if (noGroupByUser || message.attachments?.length !== 0)
|
|
198
196
|
return 'single';
|
|
199
197
|
const isTopMessage = !previousMessage ||
|
|
200
|
-
previousMessage
|
|
201
|
-
previousMessage
|
|
198
|
+
isIntroMessage(previousMessage) ||
|
|
199
|
+
isDateSeparatorMessage(previousMessage) ||
|
|
202
200
|
previousMessage.type === 'system' ||
|
|
203
201
|
previousMessage.type === 'error' ||
|
|
204
202
|
previousMessage.attachments?.length !== 0 ||
|
|
@@ -213,8 +211,8 @@ export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByU
|
|
|
213
211
|
new Date(previousMessage.created_at).getTime() >
|
|
214
212
|
maxTimeBetweenGroupedMessages);
|
|
215
213
|
const isBottomMessage = !nextMessage ||
|
|
216
|
-
nextMessage
|
|
217
|
-
nextMessage
|
|
214
|
+
isIntroMessage(nextMessage) ||
|
|
215
|
+
isDateSeparatorMessage(nextMessage) ||
|
|
218
216
|
nextMessage.type === 'system' ||
|
|
219
217
|
nextMessage.type === 'error' ||
|
|
220
218
|
nextMessage.attachments?.length !== 0 ||
|
|
@@ -251,11 +249,18 @@ export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByU
|
|
|
251
249
|
export const hasMoreMessagesProbably = (returnedCountMessages, limit) => returnedCountMessages >= limit;
|
|
252
250
|
// @deprecated
|
|
253
251
|
export const hasNotMoreMessages = (returnedCountMessages, limit) => returnedCountMessages < limit;
|
|
252
|
+
export function isIntroMessage(message) {
|
|
253
|
+
return message.customType === CUSTOM_MESSAGE_TYPE.intro;
|
|
254
|
+
}
|
|
254
255
|
export function isDateSeparatorMessage(message) {
|
|
255
|
-
return (message
|
|
256
|
-
|
|
256
|
+
return (message !== null &&
|
|
257
|
+
typeof message === 'object' &&
|
|
258
|
+
message.customType === CUSTOM_MESSAGE_TYPE.date &&
|
|
257
259
|
isDate(message.date));
|
|
258
260
|
}
|
|
261
|
+
export function isLocalMessage(message) {
|
|
262
|
+
return !isDateSeparatorMessage(message) && !isIntroMessage(message);
|
|
263
|
+
}
|
|
259
264
|
export const getIsFirstUnreadMessage = ({ firstUnreadMessageId, isFirstMessage, lastReadDate, lastReadMessageId, message, previousMessage, unreadMessageCount = 0, }) => {
|
|
260
265
|
// prevent showing unread indicator in threads
|
|
261
266
|
if (message.parent_id)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { Poll as PollClass } from 'stream-chat';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
poll: PollClass<StreamChatGenerics>;
|
|
3
|
+
export declare const Poll: ({ isQuoted, poll }: {
|
|
4
|
+
poll: PollClass;
|
|
6
5
|
isQuoted?: boolean;
|
|
7
6
|
}) => React.JSX.Element | null;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { PollContent as DefaultPollContent } from './PollContent';
|
|
3
3
|
import { QuotedPoll as DefaultQuotedPoll } from './QuotedPoll';
|
|
4
4
|
import { PollProvider, useComponentContext } from '../../context';
|
|
5
|
-
export const Poll = ({ isQuoted, poll
|
|
5
|
+
export const Poll = ({ isQuoted, poll }) => {
|
|
6
6
|
const { PollContent = DefaultPollContent, QuotedPoll = DefaultQuotedPoll } = useComponentContext();
|
|
7
7
|
return poll ? (React.createElement(PollProvider, { poll: poll }, isQuoted ? React.createElement(QuotedPoll, null) : React.createElement(PollContent, null))) : null;
|
|
8
8
|
};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { DefaultStreamChatGenerics } from '../../../types';
|
|
3
2
|
export type AddCommentFormProps = {
|
|
4
3
|
close: () => void;
|
|
5
4
|
messageId: string;
|
|
6
5
|
};
|
|
7
|
-
export declare const AddCommentForm:
|
|
6
|
+
export declare const AddCommentForm: ({ close, messageId }: AddCommentFormProps) => React.JSX.Element;
|
|
@@ -2,8 +2,10 @@ import React from 'react';
|
|
|
2
2
|
import { FormDialog } from '../../Dialog/FormDialog';
|
|
3
3
|
import { useStateStore } from '../../../store';
|
|
4
4
|
import { usePollContext, useTranslationContext } from '../../../context';
|
|
5
|
-
const pollStateSelector = (nextValue) => ({
|
|
6
|
-
|
|
5
|
+
const pollStateSelector = (nextValue) => ({
|
|
6
|
+
ownAnswer: nextValue.ownAnswer,
|
|
7
|
+
});
|
|
8
|
+
export const AddCommentForm = ({ close, messageId }) => {
|
|
7
9
|
const { t } = useTranslationContext('AddCommentForm');
|
|
8
10
|
const { poll } = usePollContext();
|
|
9
11
|
const { ownAnswer } = useStateStore(poll.state, pollStateSelector);
|
|
@@ -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
|
};
|