stream-chat-react 12.14.0 → 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.
Files changed (480) hide show
  1. package/dist/components/AIStateIndicator/AIStateIndicator.d.ts +4 -5
  2. package/dist/components/AIStateIndicator/hooks/useAIState.d.ts +2 -3
  3. package/dist/components/Attachment/Attachment.d.ts +8 -9
  4. package/dist/components/Attachment/Attachment.js +6 -5
  5. package/dist/components/Attachment/AttachmentActions.d.ts +2 -3
  6. package/dist/components/Attachment/AttachmentContainer.d.ts +15 -15
  7. package/dist/components/Attachment/AttachmentContainer.js +2 -2
  8. package/dist/components/Attachment/Audio.d.ts +3 -4
  9. package/dist/components/Attachment/Card.d.ts +1 -1
  10. package/dist/components/Attachment/FileAttachment.d.ts +3 -4
  11. package/dist/components/Attachment/FileAttachment.js +1 -1
  12. package/dist/components/Attachment/UnsupportedAttachment.d.ts +3 -4
  13. package/dist/components/Attachment/UnsupportedAttachment.js +1 -1
  14. package/dist/components/Attachment/VoiceRecording.d.ts +4 -5
  15. package/dist/components/Attachment/components/FileSizeIndicator.d.ts +1 -1
  16. package/dist/components/Attachment/components/FileSizeIndicator.js +4 -2
  17. package/dist/components/Attachment/utils.d.ts +8 -22
  18. package/dist/components/Attachment/utils.js +3 -18
  19. package/dist/components/Avatar/Avatar.d.ts +3 -4
  20. package/dist/components/Avatar/ChannelAvatar.d.ts +3 -4
  21. package/dist/components/Avatar/ChannelAvatar.js +1 -1
  22. package/dist/components/Avatar/GroupAvatar.d.ts +2 -2
  23. package/dist/components/Channel/Channel.d.ts +18 -37
  24. package/dist/components/Channel/Channel.js +25 -88
  25. package/dist/components/Channel/channelState.d.ts +17 -18
  26. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +2 -3
  27. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +2 -3
  28. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +1 -15
  29. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +1 -2
  30. package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +3 -4
  31. package/dist/components/Channel/hooks/useMentionsHandlers.d.ts +3 -4
  32. package/dist/components/Channel/utils.d.ts +8 -6
  33. package/dist/components/Channel/utils.js +1 -0
  34. package/dist/components/ChannelHeader/ChannelHeader.d.ts +2 -3
  35. package/dist/components/ChannelList/ChannelList.d.ts +31 -30
  36. package/dist/components/ChannelList/ChannelList.js +8 -10
  37. package/dist/components/ChannelList/ChannelListMessenger.d.ts +6 -6
  38. package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts +1 -2
  39. package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts +1 -2
  40. package/dist/components/ChannelList/hooks/useChannelListShape.d.ts +44 -44
  41. package/dist/components/ChannelList/hooks/useChannelListShape.js +0 -2
  42. package/dist/components/ChannelList/hooks/useChannelMembershipState.d.ts +3 -3
  43. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -2
  44. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -2
  45. package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts +1 -2
  46. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +1 -2
  47. package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts +1 -2
  48. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +1 -2
  49. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -2
  50. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts +1 -2
  51. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +7 -8
  52. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +3 -3
  53. package/dist/components/ChannelList/hooks/useSelectedChannelState.d.ts +7 -7
  54. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts +1 -2
  55. package/dist/components/ChannelList/utils.d.ts +20 -21
  56. package/dist/components/ChannelList/utils.js +2 -2
  57. package/dist/components/ChannelPreview/ChannelPreview.d.ts +15 -16
  58. package/dist/components/ChannelPreview/ChannelPreview.js +1 -1
  59. package/dist/components/ChannelPreview/ChannelPreviewActionButtons.d.ts +4 -4
  60. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +1 -2
  61. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +3 -4
  62. package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts +1 -2
  63. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +5 -7
  64. package/dist/components/ChannelPreview/icons.d.ts +1 -1
  65. package/dist/components/ChannelPreview/utils.d.ts +7 -7
  66. package/dist/components/ChannelSearch/ChannelSearch.d.ts +5 -6
  67. package/dist/components/ChannelSearch/ChannelSearch.js +2 -2
  68. package/dist/components/ChannelSearch/SearchBar.d.ts +1 -1
  69. package/dist/components/ChannelSearch/SearchBar.js +1 -1
  70. package/dist/components/ChannelSearch/SearchResults.d.ts +13 -14
  71. package/dist/components/ChannelSearch/SearchResults.js +1 -1
  72. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +17 -18
  73. package/dist/components/ChannelSearch/hooks/useChannelSearch.js +2 -6
  74. package/dist/components/ChannelSearch/utils.d.ts +2 -3
  75. package/dist/components/Chat/Chat.d.ts +9 -9
  76. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +1 -1
  77. package/dist/components/Chat/hooks/useChat.d.ts +10 -10
  78. package/dist/components/Chat/hooks/useChat.js +3 -3
  79. package/dist/components/Chat/hooks/useCreateChatClient.d.ts +4 -4
  80. package/dist/components/Chat/hooks/useCreateChatContext.d.ts +1 -2
  81. package/dist/components/Dialog/DialogAnchor.d.ts +4 -3
  82. package/dist/components/Dialog/DialogAnchor.js +2 -2
  83. package/dist/components/Dialog/DialogMenu.d.ts +2 -1
  84. package/dist/components/Dialog/DialogPortal.d.ts +2 -1
  85. package/dist/components/Dialog/FormDialog.d.ts +2 -1
  86. package/dist/components/Dialog/FormDialog.js +1 -1
  87. package/dist/components/Dialog/PromptDialog.d.ts +2 -1
  88. package/dist/components/DragAndDrop/DragAndDropContainer.d.ts +2 -1
  89. package/dist/components/EventComponent/EventComponent.d.ts +7 -6
  90. package/dist/components/Form/FieldError.d.ts +2 -1
  91. package/dist/components/Form/SwitchField.d.ts +2 -1
  92. package/dist/components/Form/SwitchField.js +1 -1
  93. package/dist/components/Gallery/Gallery.d.ts +5 -5
  94. package/dist/components/Gallery/Image.d.ts +6 -5
  95. package/dist/components/Gallery/ModalGallery.d.ts +3 -4
  96. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -1
  97. package/dist/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts +2 -1
  98. package/dist/components/LoadMore/LoadMoreButton.d.ts +2 -1
  99. package/dist/components/LoadMore/LoadMorePaginator.d.ts +3 -2
  100. package/dist/components/LoadMore/LoadMorePaginator.js +1 -1
  101. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +3 -2
  102. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +1 -1
  103. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +1 -1
  104. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +11 -23
  105. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +8 -8
  106. package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +6 -4
  107. package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +2 -2
  108. package/dist/components/MediaRecorder/observable/Observable.d.ts +1 -1
  109. package/dist/components/MediaRecorder/observable/Subject.d.ts +3 -2
  110. package/dist/components/Message/FixedHeightMessage.d.ts +4 -5
  111. package/dist/components/Message/Message.d.ts +1 -2
  112. package/dist/components/Message/MessageDeleted.d.ts +4 -5
  113. package/dist/components/Message/MessageEditedTimestamp.d.ts +2 -3
  114. package/dist/components/Message/MessageErrorText.d.ts +4 -5
  115. package/dist/components/Message/MessageErrorText.js +2 -2
  116. package/dist/components/Message/MessageOptions.d.ts +3 -3
  117. package/dist/components/Message/MessageRepliesCountButton.d.ts +2 -1
  118. package/dist/components/Message/MessageSimple.d.ts +1 -2
  119. package/dist/components/Message/MessageSimple.js +8 -10
  120. package/dist/components/Message/MessageStatus.d.ts +3 -4
  121. package/dist/components/Message/MessageText.d.ts +6 -6
  122. package/dist/components/Message/MessageTimestamp.d.ts +4 -5
  123. package/dist/components/Message/QuotedMessage.d.ts +2 -3
  124. package/dist/components/Message/QuotedMessage.js +1 -1
  125. package/dist/components/Message/StreamedMessageText.d.ts +3 -4
  126. package/dist/components/Message/hooks/useActionHandler.d.ts +2 -3
  127. package/dist/components/Message/hooks/useActionHandler.js +1 -1
  128. package/dist/components/Message/hooks/useDeleteHandler.d.ts +4 -5
  129. package/dist/components/Message/hooks/useFlagHandler.d.ts +5 -6
  130. package/dist/components/Message/hooks/useMarkUnreadHandler.d.ts +5 -6
  131. package/dist/components/Message/hooks/useMentionsHandler.d.ts +6 -8
  132. package/dist/components/Message/hooks/useMessageTextStreaming.d.ts +2 -3
  133. package/dist/components/Message/hooks/useMuteHandler.d.ts +5 -7
  134. package/dist/components/Message/hooks/useMuteHandler.js +1 -1
  135. package/dist/components/Message/hooks/useOpenThreadHandler.d.ts +2 -3
  136. package/dist/components/Message/hooks/usePinHandler.d.ts +4 -5
  137. package/dist/components/Message/hooks/usePinHandler.js +1 -1
  138. package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -4
  139. package/dist/components/Message/hooks/useReactionHandler.js +2 -4
  140. package/dist/components/Message/hooks/useReactionsFetcher.d.ts +5 -7
  141. package/dist/components/Message/hooks/useRetryHandler.d.ts +2 -3
  142. package/dist/components/Message/hooks/useRetryHandler.js +1 -1
  143. package/dist/components/Message/hooks/useUserHandler.d.ts +5 -6
  144. package/dist/components/Message/hooks/useUserRole.d.ts +2 -3
  145. package/dist/components/Message/hooks/useUserRole.js +1 -1
  146. package/dist/components/Message/icons.d.ts +2 -2
  147. package/dist/components/Message/icons.js +1 -1
  148. package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +2 -1
  149. package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +1 -1
  150. package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +5 -5
  151. package/dist/components/Message/renderText/componentRenderers/Mention.js +1 -1
  152. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +1 -2
  153. package/dist/components/Message/renderText/renderText.d.ts +6 -6
  154. package/dist/components/Message/renderText/types.d.ts +1 -1
  155. package/dist/components/Message/types.d.ts +27 -28
  156. package/dist/components/Message/utils.d.ts +21 -22
  157. package/dist/components/Message/utils.js +5 -4
  158. package/dist/components/MessageActions/CustomMessageActionsList.d.ts +6 -7
  159. package/dist/components/MessageActions/MessageActions.d.ts +6 -5
  160. package/dist/components/MessageActions/MessageActions.js +1 -1
  161. package/dist/components/MessageActions/MessageActionsBox.d.ts +5 -5
  162. package/dist/components/MessageActions/MessageActionsBox.js +4 -3
  163. package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.d.ts +1 -1
  164. package/dist/components/MessageBounce/MessageBounceModal.d.ts +4 -3
  165. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +1 -2
  166. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +11 -11
  167. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +17 -14
  168. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +4 -12
  169. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +8 -5
  170. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +4 -5
  171. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +2 -2
  172. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +7 -5
  173. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +5 -2
  174. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +4 -5
  175. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +5 -2
  176. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +1 -1
  177. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +3 -4
  178. package/dist/components/MessageInput/AttachmentSelector.d.ts +1 -2
  179. package/dist/components/MessageInput/AttachmentSelector.js +5 -3
  180. package/dist/components/MessageInput/EditMessageForm.d.ts +3 -2
  181. package/dist/components/MessageInput/EditMessageForm.js +30 -6
  182. package/dist/components/MessageInput/LinkPreviewList.d.ts +6 -4
  183. package/dist/components/MessageInput/LinkPreviewList.js +24 -10
  184. package/dist/components/MessageInput/MessageInput.d.ts +23 -45
  185. package/dist/components/MessageInput/MessageInput.js +25 -15
  186. package/dist/components/MessageInput/MessageInputFlat.d.ts +1 -2
  187. package/dist/components/MessageInput/MessageInputFlat.js +31 -76
  188. package/dist/components/MessageInput/QuotedMessagePreview.d.ts +4 -7
  189. package/dist/components/MessageInput/QuotedMessagePreview.js +22 -16
  190. package/dist/components/MessageInput/SendButton.d.ts +4 -5
  191. package/dist/components/MessageInput/SendButton.js +6 -2
  192. package/dist/components/MessageInput/WithDragAndDropUpload.d.ts +38 -0
  193. package/dist/components/MessageInput/WithDragAndDropUpload.js +96 -0
  194. package/dist/components/MessageInput/hooks/index.d.ts +5 -1
  195. package/dist/components/MessageInput/hooks/index.js +5 -1
  196. package/dist/components/MessageInput/hooks/useAttachmentManagerState.d.ts +10 -0
  197. package/dist/components/MessageInput/hooks/useAttachmentManagerState.js +19 -0
  198. package/dist/components/MessageInput/hooks/useCanCreatePoll.d.ts +1 -0
  199. package/dist/components/MessageInput/hooks/useCanCreatePoll.js +10 -0
  200. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +2 -3
  201. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +1 -2
  202. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +1 -55
  203. package/dist/components/MessageInput/hooks/useMessageComposer.d.ts +2 -0
  204. package/dist/components/MessageInput/hooks/useMessageComposer.js +80 -0
  205. package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.d.ts +1 -0
  206. package/dist/components/MessageInput/hooks/useMessageComposerHasSendableData.js +8 -0
  207. package/dist/components/MessageInput/hooks/useMessageInputControls.d.ts +12 -0
  208. package/dist/components/MessageInput/hooks/useMessageInputControls.js +23 -0
  209. package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +1 -5
  210. package/dist/components/MessageInput/hooks/useMessageInputText.js +19 -53
  211. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +1 -3
  212. package/dist/components/MessageInput/hooks/usePasteHandler.js +6 -8
  213. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -6
  214. package/dist/components/MessageInput/hooks/useSubmitHandler.js +30 -98
  215. package/dist/components/MessageInput/hooks/utils.d.ts +0 -27
  216. package/dist/components/MessageInput/hooks/utils.js +0 -124
  217. package/dist/components/MessageInput/index.d.ts +1 -2
  218. package/dist/components/MessageInput/index.js +1 -2
  219. package/dist/components/MessageList/ConnectionStatus.d.ts +1 -2
  220. package/dist/components/MessageList/ConnectionStatus.js +1 -1
  221. package/dist/components/MessageList/CustomNotification.d.ts +2 -1
  222. package/dist/components/MessageList/GiphyPreviewMessage.d.ts +4 -5
  223. package/dist/components/MessageList/MessageList.d.ts +11 -12
  224. package/dist/components/MessageList/MessageList.js +4 -4
  225. package/dist/components/MessageList/MessageNotification.d.ts +2 -1
  226. package/dist/components/MessageList/VirtualizedMessageList.d.ts +22 -21
  227. package/dist/components/MessageList/VirtualizedMessageList.js +6 -6
  228. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +10 -10
  229. package/dist/components/MessageList/VirtualizedMessageListComponents.js +7 -7
  230. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +8 -10
  231. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +1 -1
  232. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +11 -12
  233. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts +4 -5
  234. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +5 -6
  235. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts +4 -5
  236. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js +3 -2
  237. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +4 -5
  238. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +1 -1
  239. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +2 -3
  240. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts +2 -3
  241. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +6 -2
  242. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +4 -5
  243. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts +2 -3
  244. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +3 -4
  245. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +5 -6
  246. package/dist/components/MessageList/hooks/useLastReadData.d.ts +5 -6
  247. package/dist/components/MessageList/hooks/useLastReadData.js +5 -1
  248. package/dist/components/MessageList/hooks/useMarkRead.d.ts +1 -2
  249. package/dist/components/MessageList/renderMessages.d.ts +14 -14
  250. package/dist/components/MessageList/renderMessages.js +8 -7
  251. package/dist/components/MessageList/utils.d.ts +34 -28
  252. package/dist/components/MessageList/utils.js +26 -21
  253. package/dist/components/Modal/Modal.d.ts +2 -1
  254. package/dist/components/Poll/Poll.d.ts +2 -3
  255. package/dist/components/Poll/Poll.js +1 -1
  256. package/dist/components/Poll/PollActions/AddCommentForm.d.ts +1 -2
  257. package/dist/components/Poll/PollActions/AddCommentForm.js +4 -2
  258. package/dist/components/Poll/PollActions/EndPollDialog.d.ts +1 -2
  259. package/dist/components/Poll/PollActions/EndPollDialog.js +1 -1
  260. package/dist/components/Poll/PollActions/PollAction.d.ts +2 -1
  261. package/dist/components/Poll/PollActions/PollActions.d.ts +7 -8
  262. package/dist/components/Poll/PollActions/PollActions.js +5 -5
  263. package/dist/components/Poll/PollActions/PollAnswerList.d.ts +1 -2
  264. package/dist/components/Poll/PollActions/PollOptionsFullList.d.ts +1 -2
  265. package/dist/components/Poll/PollActions/PollOptionsFullList.js +4 -2
  266. package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.d.ts +3 -4
  267. package/dist/components/Poll/PollActions/PollResults/PollOptionVotesList.js +1 -1
  268. package/dist/components/Poll/PollActions/PollResults/PollOptionWithLatestVotes.d.ts +3 -4
  269. package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts +4 -5
  270. package/dist/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.js +1 -1
  271. package/dist/components/Poll/PollActions/PollResults/PollResults.d.ts +1 -2
  272. package/dist/components/Poll/PollActions/PollResults/PollResults.js +1 -1
  273. package/dist/components/Poll/PollActions/SuggestPollOptionForm.d.ts +1 -2
  274. package/dist/components/Poll/PollActions/SuggestPollOptionForm.js +3 -1
  275. package/dist/components/Poll/PollContent.d.ts +1 -2
  276. package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.d.ts +2 -0
  277. package/dist/components/Poll/PollCreationDialog/MultipleAnswersField.js +35 -0
  278. package/dist/components/Poll/PollCreationDialog/NameField.d.ts +2 -0
  279. package/dist/components/Poll/PollCreationDialog/NameField.js +26 -0
  280. package/dist/components/Poll/PollCreationDialog/OptionFieldSet.d.ts +1 -8
  281. package/dist/components/Poll/PollCreationDialog/OptionFieldSet.js +33 -65
  282. package/dist/components/Poll/PollCreationDialog/PollCreationDialog.js +31 -85
  283. package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts +1 -4
  284. package/dist/components/Poll/PollCreationDialog/PollCreationDialogControls.js +15 -41
  285. package/dist/components/Poll/PollCreationDialog/types.d.ts +0 -14
  286. package/dist/components/Poll/PollHeader.d.ts +1 -2
  287. package/dist/components/Poll/PollOptionList.d.ts +1 -2
  288. package/dist/components/Poll/PollOptionList.js +4 -2
  289. package/dist/components/Poll/PollOptionSelector.d.ts +3 -4
  290. package/dist/components/Poll/PollVote.d.ts +6 -7
  291. package/dist/components/Poll/PollVote.js +3 -3
  292. package/dist/components/Poll/QuotedPoll.d.ts +1 -2
  293. package/dist/components/Poll/constants.d.ts +0 -1
  294. package/dist/components/Poll/constants.js +0 -1
  295. package/dist/components/Poll/hooks/useManagePollVotesRealtime.d.ts +2 -3
  296. package/dist/components/Poll/hooks/usePollAnswerPagination.d.ts +2 -3
  297. package/dist/components/Poll/hooks/usePollAnswerPagination.js +2 -2
  298. package/dist/components/Poll/hooks/usePollOptionVotesPagination.d.ts +2 -3
  299. package/dist/components/Poll/hooks/usePollOptionVotesPagination.js +1 -1
  300. package/dist/components/Portal/Portal.d.ts +1 -1
  301. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +1 -1
  302. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet.d.ts +2 -1
  303. package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts +1 -1
  304. package/dist/components/ReactFileUtilities/UploadButton.d.ts +3 -2
  305. package/dist/components/ReactFileUtilities/UploadButton.js +16 -6
  306. package/dist/components/ReactFileUtilities/index.d.ts +0 -1
  307. package/dist/components/ReactFileUtilities/index.js +0 -1
  308. package/dist/components/ReactFileUtilities/utils.d.ts +2 -2
  309. package/dist/components/Reactions/ReactionSelector.d.ts +4 -5
  310. package/dist/components/Reactions/ReactionSelectorWithButton.d.ts +1 -2
  311. package/dist/components/Reactions/ReactionsList.d.ts +6 -7
  312. package/dist/components/Reactions/ReactionsList.js +2 -2
  313. package/dist/components/Reactions/ReactionsListModal.d.ts +9 -10
  314. package/dist/components/Reactions/SimpleReactionsList.d.ts +5 -6
  315. package/dist/components/Reactions/StreamEmoji.d.ts +1 -1
  316. package/dist/components/Reactions/hooks/useFetchReactions.d.ts +9 -10
  317. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +1 -2
  318. package/dist/components/Reactions/types.d.ts +3 -4
  319. package/dist/components/Reactions/utils/utils.d.ts +1 -1
  320. package/dist/components/SafeAnchor/SafeAnchor.d.ts +2 -1
  321. package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.d.ts +2 -1
  322. package/dist/components/{CommandItem → TextareaComposer/SuggestionList}/CommandItem.js +1 -2
  323. package/dist/components/{EmoticonItem → TextareaComposer/SuggestionList}/EmoticonItem.d.ts +7 -7
  324. package/dist/components/TextareaComposer/SuggestionList/EmoticonItem.js +12 -0
  325. package/dist/components/TextareaComposer/SuggestionList/SuggestionList.d.ts +16 -0
  326. package/dist/components/TextareaComposer/SuggestionList/SuggestionList.js +49 -0
  327. package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +18 -0
  328. package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js +25 -0
  329. package/dist/components/{UserItem → TextareaComposer/SuggestionList}/UserItem.d.ts +7 -4
  330. package/dist/components/TextareaComposer/SuggestionList/UserItem.js +24 -0
  331. package/dist/components/TextareaComposer/SuggestionList/index.d.ts +5 -0
  332. package/dist/components/TextareaComposer/SuggestionList/index.js +5 -0
  333. package/dist/components/TextareaComposer/TextareaComposer.d.ts +13 -0
  334. package/dist/components/TextareaComposer/TextareaComposer.js +155 -0
  335. package/dist/components/TextareaComposer/index.d.ts +2 -0
  336. package/dist/components/TextareaComposer/index.js +2 -0
  337. package/dist/components/Thread/Thread.d.ts +13 -10
  338. package/dist/components/Thread/Thread.js +23 -12
  339. package/dist/components/Thread/ThreadHead.d.ts +2 -3
  340. package/dist/components/Thread/ThreadHeader.d.ts +5 -6
  341. package/dist/components/Thread/ThreadHeader.js +1 -1
  342. package/dist/components/Threads/ThreadContext.d.ts +2 -2
  343. package/dist/components/Threads/ThreadContext.js +1 -4
  344. package/dist/components/Threads/ThreadList/ThreadList.d.ts +1 -1
  345. package/dist/components/Threads/ThreadList/ThreadListItem.d.ts +1 -1
  346. package/dist/components/Threads/hooks/useThreadManagerState.d.ts +1 -1
  347. package/dist/components/Threads/hooks/useThreadState.d.ts +1 -1
  348. package/dist/components/Threads/icons.d.ts +1 -1
  349. package/dist/components/Tooltip/Tooltip.d.ts +3 -2
  350. package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts +1 -1
  351. package/dist/components/TypingIndicator/TypingIndicator.d.ts +1 -2
  352. package/dist/components/Window/Window.d.ts +6 -6
  353. package/dist/components/index.d.ts +1 -5
  354. package/dist/components/index.js +1 -5
  355. package/dist/context/AttachmentSelectorContext.d.ts +2 -1
  356. package/dist/context/ChannelActionContext.d.ts +26 -35
  357. package/dist/context/ChannelListContext.d.ts +9 -9
  358. package/dist/context/ChannelListContext.js +1 -1
  359. package/dist/context/ChannelStateContext.d.ts +24 -34
  360. package/dist/context/ChatContext.d.ts +18 -17
  361. package/dist/context/ComponentContext.d.ts +39 -37
  362. package/dist/context/DialogManagerContext.d.ts +2 -1
  363. package/dist/context/MessageBounceContext.d.ts +8 -7
  364. package/dist/context/MessageBounceContext.js +1 -1
  365. package/dist/context/MessageContext.d.ts +23 -23
  366. package/dist/context/MessageInputContext.d.ts +8 -26
  367. package/dist/context/MessageInputContext.js +3 -2
  368. package/dist/context/MessageListContext.d.ts +2 -1
  369. package/dist/context/PollContext.d.ts +8 -8
  370. package/dist/context/TranslationContext.d.ts +2 -1
  371. package/dist/context/TypingContext.d.ts +11 -10
  372. package/dist/context/VirtualizedMessageListContext.d.ts +2 -1
  373. package/dist/context/WithComponents.d.ts +3 -2
  374. package/dist/css/v2/index.css +1 -1
  375. package/dist/css/v2/index.layout.css +1 -1
  376. package/dist/experimental/MessageActions/MessageActions.d.ts +1 -1
  377. package/dist/experimental/MessageActions/MessageActions.js +1 -1
  378. package/dist/experimental/MessageActions/defaults.js +4 -3
  379. package/dist/experimental/Search/Search.d.ts +1 -2
  380. package/dist/experimental/Search/SearchContext.d.ts +8 -8
  381. package/dist/experimental/Search/SearchResults/SearchResultItem.d.ts +11 -11
  382. package/dist/experimental/Search/SearchResults/SearchResultItem.js +3 -3
  383. package/dist/experimental/Search/SearchResults/SearchResults.d.ts +1 -2
  384. package/dist/experimental/Search/SearchResults/SearchResultsHeader.d.ts +1 -2
  385. package/dist/experimental/Search/SearchResults/SearchResultsHeader.js +1 -1
  386. package/dist/experimental/Search/SearchResults/SearchSourceResultList.d.ts +2 -3
  387. package/dist/experimental/Search/SearchResults/SearchSourceResultListFooter.d.ts +1 -2
  388. package/dist/experimental/Search/SearchResults/SearchSourceResults.d.ts +1 -2
  389. package/dist/experimental/Search/SearchResults/SearchSourceResults.js +1 -1
  390. package/dist/experimental/Search/SearchSourceResultsContext.d.ts +2 -1
  391. package/dist/experimental/Search/hooks/useSearchFocusedMessage.d.ts +1 -2
  392. package/dist/experimental/Search/hooks/useSearchFocusedMessage.js +3 -1
  393. package/dist/experimental/Search/hooks/useSearchQueriesInProgress.d.ts +3 -4
  394. package/dist/experimental/index.browser.cjs +1139 -1075
  395. package/dist/experimental/index.browser.cjs.map +4 -4
  396. package/dist/experimental/index.node.cjs +1139 -1075
  397. package/dist/experimental/index.node.cjs.map +4 -4
  398. package/dist/i18n/Streami18n.d.ts +1 -1
  399. package/dist/i18n/types.d.ts +2 -2
  400. package/dist/i18n/utils.d.ts +1 -1
  401. package/dist/i18n/utils.js +3 -1
  402. package/dist/index.browser.cjs +28545 -30631
  403. package/dist/index.browser.cjs.map +4 -4
  404. package/dist/index.node.cjs +30774 -32868
  405. package/dist/index.node.cjs.map +4 -4
  406. package/dist/plugins/Emojis/index.browser.cjs +133 -5
  407. package/dist/plugins/Emojis/index.browser.cjs.map +4 -4
  408. package/dist/plugins/Emojis/index.d.ts +1 -0
  409. package/dist/plugins/Emojis/index.js +1 -0
  410. package/dist/plugins/Emojis/index.node.cjs +135 -6
  411. package/dist/plugins/Emojis/index.node.cjs.map +4 -4
  412. package/dist/plugins/Emojis/middleware/index.d.ts +1 -0
  413. package/dist/plugins/Emojis/middleware/index.js +1 -0
  414. package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.d.ts +66 -0
  415. package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.js +143 -0
  416. package/dist/plugins/encoders/mp3.browser.cjs.map +2 -2
  417. package/dist/plugins/encoders/mp3.node.cjs.map +2 -2
  418. package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +14 -0
  419. package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +11 -0
  420. package/dist/scss/v2/DropzoneContainer/DropzoneContainer-layout.scss +14 -0
  421. package/dist/scss/v2/DropzoneContainer/DropzoneContainer-theme.scss +17 -0
  422. package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +18 -0
  423. package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +15 -0
  424. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +0 -13
  425. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +8 -19
  426. package/dist/scss/v2/index.layout.scss +2 -1
  427. package/dist/scss/v2/index.scss +1 -0
  428. package/dist/types/defaultDataInterfaces.d.ts +25 -0
  429. package/dist/types/index.d.ts +2 -1
  430. package/dist/types/types.d.ts +2 -62
  431. package/dist/utils/getChannel.d.ts +5 -6
  432. package/dist/utils/mergeDeep.d.ts +2 -3
  433. package/package.json +5 -5
  434. package/dist/components/AutoCompleteTextarea/Item.d.ts +0 -2
  435. package/dist/components/AutoCompleteTextarea/Item.js +0 -10
  436. package/dist/components/AutoCompleteTextarea/List.d.ts +0 -17
  437. package/dist/components/AutoCompleteTextarea/List.js +0 -89
  438. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +0 -114
  439. package/dist/components/AutoCompleteTextarea/Textarea.js +0 -593
  440. package/dist/components/AutoCompleteTextarea/index.d.ts +0 -4
  441. package/dist/components/AutoCompleteTextarea/index.js +0 -4
  442. package/dist/components/AutoCompleteTextarea/types.d.ts +0 -15
  443. package/dist/components/AutoCompleteTextarea/utils.d.ts +0 -6
  444. package/dist/components/AutoCompleteTextarea/utils.js +0 -40
  445. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +0 -78
  446. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +0 -33
  447. package/dist/components/ChatAutoComplete/index.d.ts +0 -1
  448. package/dist/components/ChatAutoComplete/index.js +0 -1
  449. package/dist/components/CommandItem/index.d.ts +0 -1
  450. package/dist/components/CommandItem/index.js +0 -1
  451. package/dist/components/EmoticonItem/EmoticonItem.js +0 -16
  452. package/dist/components/EmoticonItem/index.d.ts +0 -1
  453. package/dist/components/EmoticonItem/index.js +0 -1
  454. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +0 -35
  455. package/dist/components/MessageInput/DefaultTriggerProvider.js +0 -24
  456. package/dist/components/MessageInput/DropzoneProvider.d.ts +0 -4
  457. package/dist/components/MessageInput/DropzoneProvider.js +0 -23
  458. package/dist/components/MessageInput/hooks/useAttachments.d.ts +0 -14
  459. package/dist/components/MessageInput/hooks/useAttachments.js +0 -209
  460. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +0 -3
  461. package/dist/components/MessageInput/hooks/useCommandTrigger.js +0 -62
  462. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +0 -3
  463. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +0 -29
  464. package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +0 -30
  465. package/dist/components/MessageInput/hooks/useLinkPreviews.js +0 -109
  466. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +0 -71
  467. package/dist/components/MessageInput/hooks/useMessageInputState.js +0 -200
  468. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +0 -12
  469. package/dist/components/MessageInput/hooks/useUserTrigger.js +0 -130
  470. package/dist/components/MessageInput/types.d.ts +0 -87
  471. package/dist/components/MessageInput/types.js +0 -19
  472. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +0 -16
  473. package/dist/components/ReactFileUtilities/ImageDropzone.js +0 -42
  474. package/dist/components/UserItem/UserItem.js +0 -26
  475. package/dist/components/UserItem/index.d.ts +0 -1
  476. package/dist/components/UserItem/index.js +0 -1
  477. /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.d.ts +0 -0
  478. /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.js +0 -0
  479. /package/dist/scss/v2/DragAndDropContainer/{DragAmdDropContainer-layout.scss → DragAndDropContainer-layout.scss} +0 -0
  480. /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 {StreamMessage<StreamChatGenerics>[]} Transformed list of messages
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]?.customType !== CUSTOM_MESSAGE_TYPE.date // do not show two date separators in a row)
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 message = messages[i];
166
- const messageTime = message.created_at && isDate(message.created_at)
167
- ? message.created_at.getTime()
167
+ const messageTime = isDate(messages[i].created_at)
168
+ ? messages[i].created_at.getTime()
168
169
  : null;
169
- const nextMessage = messages[i + 1];
170
- const nextMessageTime = nextMessage.created_at && isDate(nextMessage.created_at)
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].customType === CUSTOM_MESSAGE_TYPE.date)
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.customType === CUSTOM_MESSAGE_TYPE.date)
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.customType === CUSTOM_MESSAGE_TYPE.intro ||
201
- previousMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
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.customType === CUSTOM_MESSAGE_TYPE.intro ||
217
- nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
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.customType === CUSTOM_MESSAGE_TYPE.date &&
256
- !!message.date &&
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,4 +1,5 @@
1
- import React, { PropsWithChildren } from 'react';
1
+ import type { PropsWithChildren } from 'react';
2
+ import React from 'react';
2
3
  export type ModalProps = {
3
4
  /** If true, modal is opened or visible. */
4
5
  open: boolean;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Poll as PollClass } from 'stream-chat';
3
- import type { DefaultStreamChatGenerics } from '../../types';
4
- export declare const Poll: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ isQuoted, poll, }: {
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, messageId, }: AddCommentFormProps) => React.JSX.Element;
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) => ({ ownAnswer: nextValue.ownAnswer });
6
- export const AddCommentForm = ({ close, messageId, }) => {
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, }: EndPollDialogProps) => React.JSX.Element;
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,4 +1,5 @@
1
- import React, { PropsWithChildren } from 'react';
1
+ import type { PropsWithChildren } from 'react';
2
+ import React from 'react';
2
3
  export type PollActionProps = {
3
4
  buttonText: string;
4
5
  closeModal: () => void;
@@ -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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ AddCommentForm, EndPollDialog, PollAnswerList, PollOptionsFullList, PollResults, SuggestPollOptionForm, }: PollActionsProps) => React.JSX.Element;
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, } 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';
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, onUpdateOwnAnswerClick, }: PollAnswerListProps) => React.JSX.Element;
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, }: FullPollOptionsListingProps) => React.JSX.Element;
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) => ({ name: nextValue.name });
7
- export const PollOptionsFullList = ({ close, }) => {
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
- import type { DefaultStreamChatGenerics } from '../../../../types';
4
- export type PollOptionVotesListingProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
- option: PollOption<StreamChatGenerics>;
3
+ export type PollOptionVotesListingProps = {
4
+ option: PollOption;
6
5
  };
7
- export declare const PollOptionVotesList: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ option, }: PollOptionVotesListingProps<StreamChatGenerics>) => React.JSX.Element;
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
- import type { DefaultStreamChatGenerics } from '../../../../types';
4
- export type PollOptionWithVotesProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ countVotesPreview, option, showAllVotes, }: PollOptionWithVotesProps<StreamChatGenerics>) => React.JSX.Element;
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ optionId, }: PollResultOptionVoteCounterProps) => React.JSX.Element;
8
- export type PollOptionWithVotesHeaderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
9
- option: PollOption<StreamChatGenerics>;
6
+ export declare const PollResultOptionVoteCounter: ({ optionId, }: PollResultOptionVoteCounterProps) => React.JSX.Element;
7
+ export type PollOptionWithVotesHeaderProps = {
8
+ option: PollOption;
10
9
  };
11
- export declare const PollOptionWithVotesHeader: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ option, }: PollOptionWithVotesHeaderProps<StreamChatGenerics>) => React.JSX.Element;
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, }) => (React.createElement("div", { className: 'str-chat__poll-option__header' },
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, }: PollResultsProps) => React.JSX.Element;
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: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, messageId, }: SuggestPollOptionFormProps) => React.JSX.Element;
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) => ({ options: nextValue.options });
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
- import type { DefaultStreamChatGenerics } from '../../types';
3
- export declare const PollContent: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>() => React.JSX.Element;
2
+ export declare const PollContent: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const MultipleAnswersField: () => 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,2 @@
1
+ import React from 'react';
2
+ export declare const NameField: () => React.JSX.Element;
@@ -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
- import type { OptionErrors, PollFormState } from './types';
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
- const VALIDATION_ERRORS = { 'Option already exists': true };
9
- export const OptionFieldSet = ({ errors, options, setErrors, setState, }) => {
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
- setState((prev) => ({
19
- ...prev,
20
- options: newOrder.map((index) => prev.options[index]),
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) => (React.createElement("div", { className: clsx('str-chat__form__input-field', {
27
- 'str-chat__form__input-field--draggable': draggable,
28
- 'str-chat__form__input-field--has-error': errors[option.id],
29
- }), key: `new-poll-option-${i}` },
30
- React.createElement("div", { className: 'str-chat__form__input-field__value' },
31
- React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-option-input-field-error', text: errors[option.id] }),
32
- React.createElement("input", { id: option.id, onBlur: (e) => {
33
- if (findOptionDuplicate({ id: e.target.id, text: e.target.value })) {
34
- setErrors((prev) => ({
35
- ...prev,
36
- [e.target.id]: t('Option already exists'),
37
- }));
38
- }
39
- }, onChange: (e) => {
40
- setState((prev) => {
41
- const shouldAddEmptyOption = prev.options.length < MAX_POLL_OPTIONS &&
42
- (!prev.options ||
43
- (prev.options.slice(i + 1).length === 0 && !!e.target.value));
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
- return {
60
- ...prev,
61
- options: [
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
  };