stream-chat-react 12.15.0 → 13.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) 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 -43
  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 +24 -17
  186. package/dist/components/MessageInput/MessageInputFlat.d.ts +1 -2
  187. package/dist/components/MessageInput/MessageInputFlat.js +14 -39
  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 +4 -3
  193. package/dist/components/MessageInput/WithDragAndDropUpload.js +20 -9
  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 +0 -2
  218. package/dist/components/MessageInput/index.js +0 -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/TextareaComposer/SuggestionList/CommandItem.d.ts +7 -0
  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 +14 -0
  326. package/dist/components/TextareaComposer/SuggestionList/SuggestionList.js +50 -0
  327. package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.d.ts +18 -0
  328. package/dist/components/TextareaComposer/SuggestionList/SuggestionListItem.js +24 -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/MessageListContext.d.ts +2 -1
  368. package/dist/context/PollContext.d.ts +8 -8
  369. package/dist/context/TranslationContext.d.ts +2 -1
  370. package/dist/context/TypingContext.d.ts +11 -10
  371. package/dist/context/VirtualizedMessageListContext.d.ts +2 -1
  372. package/dist/context/WithComponents.d.ts +3 -2
  373. package/dist/css/v2/index.css +1 -1
  374. package/dist/css/v2/index.layout.css +1 -1
  375. package/dist/experimental/MessageActions/MessageActions.d.ts +1 -1
  376. package/dist/experimental/MessageActions/MessageActions.js +1 -1
  377. package/dist/experimental/MessageActions/defaults.js +4 -3
  378. package/dist/experimental/Search/Search.d.ts +1 -2
  379. package/dist/experimental/Search/SearchContext.d.ts +8 -8
  380. package/dist/experimental/Search/SearchResults/SearchResultItem.d.ts +11 -11
  381. package/dist/experimental/Search/SearchResults/SearchResultItem.js +3 -3
  382. package/dist/experimental/Search/SearchResults/SearchResults.d.ts +1 -2
  383. package/dist/experimental/Search/SearchResults/SearchResultsHeader.d.ts +1 -2
  384. package/dist/experimental/Search/SearchResults/SearchResultsHeader.js +1 -1
  385. package/dist/experimental/Search/SearchResults/SearchSourceResultList.d.ts +2 -3
  386. package/dist/experimental/Search/SearchResults/SearchSourceResultListFooter.d.ts +1 -2
  387. package/dist/experimental/Search/SearchResults/SearchSourceResults.d.ts +1 -2
  388. package/dist/experimental/Search/SearchResults/SearchSourceResults.js +1 -1
  389. package/dist/experimental/Search/SearchSourceResultsContext.d.ts +2 -1
  390. package/dist/experimental/Search/hooks/useSearchFocusedMessage.d.ts +1 -2
  391. package/dist/experimental/Search/hooks/useSearchFocusedMessage.js +3 -1
  392. package/dist/experimental/Search/hooks/useSearchQueriesInProgress.d.ts +3 -4
  393. package/dist/experimental/index.browser.cjs +1139 -1075
  394. package/dist/experimental/index.browser.cjs.map +4 -4
  395. package/dist/experimental/index.node.cjs +1139 -1075
  396. package/dist/experimental/index.node.cjs.map +4 -4
  397. package/dist/i18n/Streami18n.d.ts +1 -1
  398. package/dist/i18n/types.d.ts +2 -2
  399. package/dist/i18n/utils.d.ts +1 -1
  400. package/dist/i18n/utils.js +3 -1
  401. package/dist/index.browser.cjs +28513 -30641
  402. package/dist/index.browser.cjs.map +4 -4
  403. package/dist/index.node.cjs +30740 -32877
  404. package/dist/index.node.cjs.map +4 -4
  405. package/dist/plugins/Emojis/index.browser.cjs +133 -2
  406. package/dist/plugins/Emojis/index.browser.cjs.map +4 -4
  407. package/dist/plugins/Emojis/index.d.ts +1 -0
  408. package/dist/plugins/Emojis/index.js +1 -0
  409. package/dist/plugins/Emojis/index.node.cjs +135 -3
  410. package/dist/plugins/Emojis/index.node.cjs.map +4 -4
  411. package/dist/plugins/Emojis/middleware/index.d.ts +1 -0
  412. package/dist/plugins/Emojis/middleware/index.js +1 -0
  413. package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.d.ts +66 -0
  414. package/dist/plugins/Emojis/middleware/textComposerEmojiMiddleware.js +143 -0
  415. package/dist/plugins/encoders/mp3.browser.cjs.map +2 -2
  416. package/dist/plugins/encoders/mp3.node.cjs.map +2 -2
  417. package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +14 -0
  418. package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +11 -0
  419. package/dist/scss/v2/LinkPreview/LinkPreview-layout.scss +18 -0
  420. package/dist/scss/v2/LinkPreview/LinkPreview-theme.scss +15 -0
  421. package/dist/types/defaultDataInterfaces.d.ts +25 -0
  422. package/dist/types/index.d.ts +2 -1
  423. package/dist/types/types.d.ts +2 -62
  424. package/dist/utils/getChannel.d.ts +5 -6
  425. package/dist/utils/mergeDeep.d.ts +2 -3
  426. package/package.json +5 -5
  427. package/dist/components/AutoCompleteTextarea/Item.d.ts +0 -2
  428. package/dist/components/AutoCompleteTextarea/Item.js +0 -10
  429. package/dist/components/AutoCompleteTextarea/List.d.ts +0 -17
  430. package/dist/components/AutoCompleteTextarea/List.js +0 -89
  431. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +0 -114
  432. package/dist/components/AutoCompleteTextarea/Textarea.js +0 -593
  433. package/dist/components/AutoCompleteTextarea/index.d.ts +0 -4
  434. package/dist/components/AutoCompleteTextarea/index.js +0 -4
  435. package/dist/components/AutoCompleteTextarea/types.d.ts +0 -15
  436. package/dist/components/AutoCompleteTextarea/utils.d.ts +0 -6
  437. package/dist/components/AutoCompleteTextarea/utils.js +0 -40
  438. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +0 -78
  439. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +0 -33
  440. package/dist/components/ChatAutoComplete/index.d.ts +0 -1
  441. package/dist/components/ChatAutoComplete/index.js +0 -1
  442. package/dist/components/CommandItem/CommandItem.d.ts +0 -12
  443. package/dist/components/CommandItem/index.d.ts +0 -1
  444. package/dist/components/CommandItem/index.js +0 -1
  445. package/dist/components/EmoticonItem/EmoticonItem.js +0 -16
  446. package/dist/components/EmoticonItem/index.d.ts +0 -1
  447. package/dist/components/EmoticonItem/index.js +0 -1
  448. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +0 -35
  449. package/dist/components/MessageInput/DefaultTriggerProvider.js +0 -24
  450. package/dist/components/MessageInput/DropzoneProvider.d.ts +0 -4
  451. package/dist/components/MessageInput/DropzoneProvider.js +0 -23
  452. package/dist/components/MessageInput/hooks/useAttachments.d.ts +0 -14
  453. package/dist/components/MessageInput/hooks/useAttachments.js +0 -209
  454. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +0 -3
  455. package/dist/components/MessageInput/hooks/useCommandTrigger.js +0 -62
  456. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +0 -3
  457. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +0 -29
  458. package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +0 -30
  459. package/dist/components/MessageInput/hooks/useLinkPreviews.js +0 -109
  460. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +0 -71
  461. package/dist/components/MessageInput/hooks/useMessageInputState.js +0 -200
  462. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +0 -12
  463. package/dist/components/MessageInput/hooks/useUserTrigger.js +0 -130
  464. package/dist/components/MessageInput/types.d.ts +0 -87
  465. package/dist/components/MessageInput/types.js +0 -19
  466. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +0 -16
  467. package/dist/components/ReactFileUtilities/ImageDropzone.js +0 -42
  468. package/dist/components/UserItem/UserItem.js +0 -26
  469. package/dist/components/UserItem/index.d.ts +0 -1
  470. package/dist/components/UserItem/index.js +0 -1
  471. /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.d.ts +0 -0
  472. /package/dist/components/{MessageInput → MediaRecorder/AudioRecorder}/hooks/useTimeElapsed.js +0 -0
  473. /package/dist/{components/AutoCompleteTextarea/types.js → types/defaultDataInterfaces.js} +0 -0
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
- import type { DefaultStreamChatGenerics } from '../../../types';
3
2
  export type EndPollDialogProps = {
4
3
  close: () => void;
5
4
  };
6
- export declare const EndPollDialog: <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
  };
@@ -1,96 +1,42 @@
1
- import clsx from 'clsx';
2
- import { nanoid } from 'nanoid';
3
- import React, { useState } from 'react';
4
- import { FieldError } from '../../Form/FieldError';
1
+ import React, { useCallback } from 'react';
2
+ import { VotingVisibility } from 'stream-chat';
3
+ import { MultipleAnswersField } from './MultipleAnswersField';
4
+ import { NameField } from './NameField';
5
5
  import { OptionFieldSet } from './OptionFieldSet';
6
6
  import { PollCreationDialogControls } from './PollCreationDialogControls';
7
- import { VALID_MAX_VOTES_VALUE_REGEX } from '../constants';
8
7
  import { ModalHeader } from '../../Modal/ModalHeader';
9
8
  import { SimpleSwitchField } from '../../Form/SwitchField';
10
- import { useChatContext, useTranslationContext } from '../../../context';
9
+ import { useMessageComposer } from '../../MessageInput';
10
+ import { useTranslationContext } from '../../../context';
11
+ import { useStateStore } from '../../../store';
12
+ const pollComposerStateSelector = (state) => ({
13
+ allow_answers: state.data.allow_answers,
14
+ allow_user_suggested_options: state.data.allow_user_suggested_options,
15
+ voting_visibility: state.data.voting_visibility,
16
+ });
11
17
  export const PollCreationDialog = ({ close }) => {
12
- const { client } = useChatContext();
13
18
  const { t } = useTranslationContext();
14
- const [nameError, setNameError] = useState();
15
- const [optionsErrors, setOptionsErrors] = useState({});
16
- const [multipleAnswerCountError, setMultipleAnswerCountError] = useState();
17
- const [state, setState] = useState(() => ({
18
- allow_answers: false,
19
- allow_user_suggested_options: false,
20
- description: '',
21
- enforce_unique_vote: true,
22
- id: nanoid(),
23
- max_votes_allowed: '',
24
- name: '',
25
- options: [{ id: nanoid(), text: '' }],
26
- user_id: client.user?.id,
27
- voting_visibility: 'public',
28
- }));
19
+ const { pollComposer } = useMessageComposer();
20
+ const { allow_answers, allow_user_suggested_options, voting_visibility } = useStateStore(pollComposer.state, pollComposerStateSelector);
21
+ const onClose = useCallback(() => {
22
+ pollComposer.initState();
23
+ close();
24
+ }, [pollComposer, close]);
29
25
  return (React.createElement("div", { className: 'str-chat__dialog str-chat__poll-creation-dialog', "data-testid": 'poll-creation-dialog' },
30
- React.createElement(ModalHeader, { close: close, title: t('Create poll') }),
26
+ React.createElement(ModalHeader, { close: onClose, title: t('Create poll') }),
31
27
  React.createElement("div", { className: 'str-chat__dialog__body' },
32
28
  React.createElement("form", { autoComplete: 'off' },
33
- React.createElement("div", { className: clsx('str-chat__form__field str-chat__form__input-field str-chat__form__input-field--with-label', {
34
- 'str-chat__form__input-field--has-error': nameError,
35
- }) },
36
- React.createElement("label", { className: 'str-chat__form__field-label', htmlFor: 'name' }, t('Question')),
37
- React.createElement("div", { className: clsx('str-chat__form__input-field__value') },
38
- React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-name-input-field-error', text: nameError }),
39
- React.createElement("input", { id: 'name', onBlur: (e) => {
40
- if (!e.target.value) {
41
- setNameError('The field is required');
42
- }
43
- }, onChange: (e) => {
44
- setState((prev) => ({ ...prev, name: e.target.value }));
45
- if (nameError && e.target.value) {
46
- setNameError(undefined);
47
- }
48
- }, placeholder: t('Ask a question'), type: 'text', value: state.name }))),
49
- React.createElement(OptionFieldSet, { errors: optionsErrors, options: state.options, setErrors: setOptionsErrors, setState: setState }),
50
- React.createElement("div", { className: clsx('str-chat__form__expandable-field', {
51
- 'str-chat__form__expandable-field--expanded': !state.enforce_unique_vote,
52
- }) },
53
- React.createElement(SimpleSwitchField, { checked: !state.enforce_unique_vote, id: 'enforce_unique_vote', labelText: t('Multiple answers'), onChange: (e) => {
54
- setState((prev) => ({
55
- ...prev,
56
- enforce_unique_vote: !e.target.checked,
57
- max_votes_allowed: '',
58
- }));
59
- setMultipleAnswerCountError(undefined);
60
- } }),
61
- !state.enforce_unique_vote && (React.createElement("div", { className: clsx('str-chat__form__input-field', {
62
- 'str-chat__form__input-field--has-error': multipleAnswerCountError,
63
- }) },
64
- React.createElement("div", { className: clsx('str-chat__form__input-field__value') },
65
- React.createElement(FieldError, { className: 'str-chat__form__input-field__error', "data-testid": 'poll-max-votes-allowed-input-field-error', text: multipleAnswerCountError }),
66
- React.createElement("input", { id: 'max_votes_allowed', onChange: (e) => {
67
- const isValidValue = !e.target.value ||
68
- e.target.value.match(VALID_MAX_VOTES_VALUE_REGEX);
69
- if (!isValidValue) {
70
- setMultipleAnswerCountError(t('Type a number from 2 to 10'));
71
- }
72
- else if (multipleAnswerCountError) {
73
- setMultipleAnswerCountError(undefined);
74
- }
75
- setState((prev) => ({
76
- ...prev,
77
- max_votes_allowed: e.target.value,
78
- }));
79
- }, placeholder: t('Maximum number of votes (from 2 to 10)'), type: 'number', value: state.max_votes_allowed }))))),
80
- React.createElement(SimpleSwitchField, { checked: state.voting_visibility === 'anonymous', id: 'voting_visibility', labelText: t('Anonymous poll'), onChange: (e) => setState((prev) => ({
81
- ...prev,
82
- voting_visibility: (e.target.checked
83
- ? 'anonymous'
84
- : 'public'),
85
- })) }),
86
- React.createElement(SimpleSwitchField, { checked: state.allow_user_suggested_options, id: 'allow_user_suggested_options', labelText: t('Allow option suggestion'), onChange: (e) => setState((prev) => ({
87
- ...prev,
29
+ React.createElement(NameField, null),
30
+ React.createElement(OptionFieldSet, null),
31
+ React.createElement(MultipleAnswersField, null),
32
+ React.createElement(SimpleSwitchField, { checked: voting_visibility === 'anonymous', id: 'voting_visibility', labelText: t('Anonymous poll'), onChange: (e) => pollComposer.updateFields({
33
+ voting_visibility: e.target.checked
34
+ ? VotingVisibility.anonymous
35
+ : VotingVisibility.public,
36
+ }) }),
37
+ React.createElement(SimpleSwitchField, { checked: allow_user_suggested_options, id: 'allow_user_suggested_options', labelText: t('Allow option suggestion'), onChange: (e) => pollComposer.updateFields({
88
38
  allow_user_suggested_options: e.target.checked,
89
- })) }),
90
- React.createElement(SimpleSwitchField, { checked: state.allow_answers, id: 'allow_answers', labelText: t('Allow comments'), onChange: (e) => setState((prev) => ({ ...prev, allow_answers: e.target.checked })) }))),
91
- React.createElement(PollCreationDialogControls, { close: close, errors: [
92
- ...(nameError ?? []),
93
- ...(multipleAnswerCountError ?? []),
94
- ...Object.keys(optionsErrors),
95
- ], state: state })));
39
+ }) }),
40
+ React.createElement(SimpleSwitchField, { checked: allow_answers, id: 'allow_answers', labelText: t('Allow comments'), onChange: (e) => pollComposer.updateFields({ allow_answers: e.target.checked }) }))),
41
+ React.createElement(PollCreationDialogControls, { close: close })));
96
42
  };
@@ -1,8 +1,5 @@
1
1
  import React from 'react';
2
- import type { PollFormState } from './types';
3
2
  export type PollCreationDialogControlsProps = {
4
3
  close: () => void;
5
- errors: string[];
6
- state: PollFormState;
7
4
  };
8
- export declare const PollCreationDialogControls: ({ close, errors, state, }: PollCreationDialogControlsProps) => React.JSX.Element;
5
+ export declare const PollCreationDialogControls: ({ close, }: PollCreationDialogControlsProps) => React.JSX.Element;