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,109 +0,0 @@
1
- import { find } from 'linkifyjs';
2
- import { useCallback, useEffect, useRef } from 'react';
3
- import debounce from 'lodash.debounce';
4
- import { useChannelStateContext, useChatContext } from '../../../context';
5
- import { LinkPreviewState, SetLinkPreviewMode } from '../types';
6
- export const useLinkPreviews = ({ debounceURLEnrichmentMs: debounceURLEnrichmentMsInputContext, dispatch, enrichURLForPreview = false, findURLFn: findURLFnInputContext, linkPreviews, onLinkPreviewDismissed: onLinkPreviewDismissedInputContext, }) => {
7
- const { client } = useChatContext();
8
- // FIXME: the value of channelConfig is stale due to omitting it from the memoization deps in useCreateChannelStateContext
9
- const { channelConfig, debounceURLEnrichmentMs: debounceURLEnrichmentMsChannelContext, findURLFn: findURLFnChannelContext, onLinkPreviewDismissed: onLinkPreviewDismissedChannelContext, } = useChannelStateContext();
10
- const shouldDiscardEnrichQueries = useRef(false);
11
- const findURLFn = findURLFnInputContext ?? findURLFnChannelContext;
12
- const onLinkPreviewDismissed = onLinkPreviewDismissedInputContext ?? onLinkPreviewDismissedChannelContext;
13
- const debounceURLEnrichmentMs = debounceURLEnrichmentMsInputContext ?? debounceURLEnrichmentMsChannelContext ?? 1500;
14
- const dismissLinkPreview = useCallback((linkPreview) => {
15
- onLinkPreviewDismissed?.(linkPreview);
16
- const previewToRemoveMap = new Map();
17
- linkPreview.state = LinkPreviewState.DISMISSED;
18
- previewToRemoveMap.set(linkPreview.og_scrape_url, linkPreview);
19
- dispatch({
20
- linkPreviews: previewToRemoveMap,
21
- mode: SetLinkPreviewMode.UPSERT,
22
- type: 'setLinkPreviews',
23
- });
24
- },
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
26
- [onLinkPreviewDismissed]);
27
- // eslint-disable-next-line react-hooks/exhaustive-deps
28
- const findAndEnqueueURLsToEnrich = useCallback(debounce((text, mode = SetLinkPreviewMode.SET) => {
29
- const urls = findURLFn
30
- ? findURLFn(text)
31
- : find(text, 'url').reduce((acc, link) => {
32
- if (link.isLink)
33
- acc.push(link.href);
34
- return acc;
35
- }, []);
36
- shouldDiscardEnrichQueries.current = urls.length === 0;
37
- dispatch({
38
- linkPreviews: urls.reduce((acc, url) => {
39
- acc.set(url, { og_scrape_url: url, state: LinkPreviewState.QUEUED });
40
- return acc;
41
- }, new Map()),
42
- mode,
43
- type: 'setLinkPreviews',
44
- });
45
- }, debounceURLEnrichmentMs, { leading: false, trailing: true }), [debounceURLEnrichmentMs, shouldDiscardEnrichQueries, findURLFn]);
46
- const cancelURLEnrichment = useCallback(() => {
47
- findAndEnqueueURLsToEnrich.cancel();
48
- findAndEnqueueURLsToEnrich('');
49
- findAndEnqueueURLsToEnrich.flush();
50
- }, [findAndEnqueueURLsToEnrich]);
51
- useEffect(() => {
52
- const enqueuedLinks = Array.from(linkPreviews.values()).reduce((acc, linkPreview) => {
53
- if (linkPreview.state === 'queued') {
54
- const loadingLinkPreview = {
55
- ...linkPreview,
56
- state: LinkPreviewState.LOADING,
57
- };
58
- acc.set(linkPreview.og_scrape_url, loadingLinkPreview);
59
- }
60
- return acc;
61
- }, new Map());
62
- if (!enqueuedLinks.size)
63
- return;
64
- dispatch({
65
- linkPreviews: enqueuedLinks,
66
- mode: SetLinkPreviewMode.UPSERT,
67
- type: 'setLinkPreviews',
68
- });
69
- enqueuedLinks.forEach((linkPreview) => {
70
- client
71
- .enrichURL(linkPreview.og_scrape_url)
72
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
73
- .then(({ duration, ...ogAttachment }) => {
74
- if (shouldDiscardEnrichQueries.current)
75
- return;
76
- const linkPreviewsMap = new Map();
77
- linkPreviewsMap.set(linkPreview.og_scrape_url, {
78
- ...ogAttachment,
79
- state: LinkPreviewState.LOADED,
80
- });
81
- dispatch({
82
- linkPreviews: linkPreviewsMap,
83
- mode: SetLinkPreviewMode.UPSERT,
84
- type: 'setLinkPreviews',
85
- });
86
- })
87
- .catch(() => {
88
- const linkPreviewsMap = new Map();
89
- linkPreviewsMap.set(linkPreview.og_scrape_url, {
90
- ...linkPreview,
91
- state: LinkPreviewState.FAILED,
92
- });
93
- dispatch({
94
- linkPreviews: linkPreviewsMap,
95
- mode: SetLinkPreviewMode.UPSERT,
96
- type: 'setLinkPreviews',
97
- });
98
- });
99
- });
100
- // eslint-disable-next-line react-hooks/exhaustive-deps
101
- }, [shouldDiscardEnrichQueries, linkPreviews]);
102
- return {
103
- cancelURLEnrichment,
104
- dismissLinkPreview,
105
- findAndEnqueueURLsToEnrich: channelConfig?.url_enrichment && enrichURLForPreview
106
- ? findAndEnqueueURLsToEnrich
107
- : undefined,
108
- };
109
- };
@@ -1,71 +0,0 @@
1
- import React from 'react';
2
- import { EnrichURLsController } from './useLinkPreviews';
3
- import { RecordingController } from '../../MediaRecorder/hooks/useMediaRecorder';
4
- import type { LinkPreviewMap, LocalAttachment } from '../types';
5
- import { SetLinkPreviewMode } from '../types';
6
- import type { Attachment, Message, UserResponse } from 'stream-chat';
7
- import type { MessageInputProps } from '../MessageInput';
8
- import type { CustomTrigger, DefaultStreamChatGenerics, SendMessageOptions } from '../../../types/types';
9
- export type MessageInputState<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
10
- attachments: LocalAttachment<StreamChatGenerics>[];
11
- linkPreviews: LinkPreviewMap;
12
- mentioned_users: UserResponse<StreamChatGenerics>[];
13
- setText: (text: string) => void;
14
- text: string;
15
- };
16
- type UpsertAttachmentsAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
17
- attachments: LocalAttachment<StreamChatGenerics>[];
18
- type: 'upsertAttachments';
19
- };
20
- type RemoveAttachmentsAction = {
21
- ids: string[];
22
- type: 'removeAttachments';
23
- };
24
- type SetTextAction = {
25
- getNewText: (currentStateText: string) => string;
26
- type: 'setText';
27
- };
28
- type ClearAction = {
29
- type: 'clear';
30
- };
31
- type SetLinkPreviewsAction = {
32
- linkPreviews: LinkPreviewMap;
33
- mode: SetLinkPreviewMode;
34
- type: 'setLinkPreviews';
35
- };
36
- type AddMentionedUserAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
37
- type: 'addMentionedUser';
38
- user: UserResponse<StreamChatGenerics>;
39
- };
40
- export type MessageInputReducerAction<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SetTextAction | ClearAction | SetLinkPreviewsAction | AddMentionedUserAction<StreamChatGenerics> | UpsertAttachmentsAction | RemoveAttachmentsAction;
41
- export type MessageInputHookProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = EnrichURLsController & {
42
- handleChange: React.ChangeEventHandler<HTMLTextAreaElement>;
43
- handleSubmit: (event?: React.BaseSyntheticEvent, customMessageData?: Partial<Message<StreamChatGenerics>>, options?: SendMessageOptions) => void;
44
- insertText: (textToInsert: string) => void;
45
- isUploadEnabled: boolean;
46
- maxFilesLeft: number;
47
- numberOfUploads: number;
48
- onPaste: (event: React.ClipboardEvent<HTMLTextAreaElement>) => void;
49
- onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
50
- recordingController: RecordingController<StreamChatGenerics>;
51
- removeAttachments: (ids: string[]) => void;
52
- textareaRef: React.MutableRefObject<HTMLTextAreaElement | null | undefined>;
53
- uploadAttachment: (attachment: LocalAttachment<StreamChatGenerics>) => Promise<LocalAttachment<StreamChatGenerics> | undefined>;
54
- uploadNewFiles: (files: FileList | File[]) => void;
55
- upsertAttachments: (attachments: (Attachment<StreamChatGenerics> | LocalAttachment<StreamChatGenerics>)[]) => void;
56
- };
57
- export type CommandsListState = {
58
- closeCommandsList: () => void;
59
- openCommandsList: () => void;
60
- showCommandsList: boolean;
61
- };
62
- export type MentionsListState = {
63
- closeMentionsList: () => void;
64
- openMentionsList: () => void;
65
- showMentionsList: boolean;
66
- };
67
- /**
68
- * hook for MessageInput state
69
- */
70
- export declare const useMessageInputState: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: MessageInputProps<StreamChatGenerics, V>) => MessageInputState<StreamChatGenerics> & MessageInputHookProps<StreamChatGenerics> & CommandsListState & MentionsListState;
71
- export {};
@@ -1,200 +0,0 @@
1
- import { useCallback, useReducer, useState } from 'react';
2
- import { nanoid } from 'nanoid';
3
- import { useChannelStateContext, } from '../../../context/ChannelStateContext';
4
- import { useAttachments } from './useAttachments';
5
- import { useLinkPreviews } from './useLinkPreviews';
6
- import { useMessageInputText } from './useMessageInputText';
7
- import { useSubmitHandler } from './useSubmitHandler';
8
- import { usePasteHandler } from './usePasteHandler';
9
- import { useMediaRecorder, } from '../../MediaRecorder/hooks/useMediaRecorder';
10
- import { LinkPreviewState, SetLinkPreviewMode } from '../types';
11
- import { mergeDeep } from '../../../utils/mergeDeep';
12
- const makeEmptyMessageInputState = () => ({
13
- attachments: [],
14
- linkPreviews: new Map(),
15
- mentioned_users: [],
16
- setText: () => null,
17
- text: '',
18
- });
19
- /**
20
- * Initializes the state. Empty if the message prop is falsy.
21
- */
22
- const initState = (message) => {
23
- if (!message) {
24
- return makeEmptyMessageInputState();
25
- }
26
- const linkPreviews = message.attachments?.reduce((acc, attachment) => {
27
- if (!attachment.og_scrape_url)
28
- return acc;
29
- acc.set(attachment.og_scrape_url, {
30
- ...attachment,
31
- state: LinkPreviewState.LOADED,
32
- });
33
- return acc;
34
- }, new Map()) ?? new Map();
35
- const attachments = message.attachments
36
- ?.filter(({ og_scrape_url }) => !og_scrape_url)
37
- .map((att) => ({
38
- ...att,
39
- localMetadata: { id: nanoid() },
40
- })) || [];
41
- const mentioned_users = message.mentioned_users || [];
42
- return {
43
- attachments,
44
- linkPreviews,
45
- mentioned_users,
46
- setText: () => null,
47
- text: message.text || '',
48
- };
49
- };
50
- /**
51
- * MessageInput state reducer
52
- */
53
- const messageInputReducer = (state, action) => {
54
- switch (action.type) {
55
- case 'setText':
56
- return { ...state, text: action.getNewText(state.text) };
57
- case 'clear':
58
- return makeEmptyMessageInputState();
59
- case 'upsertAttachments': {
60
- const attachments = [...state.attachments];
61
- action.attachments.forEach((actionAttachment) => {
62
- const attachmentIndex = state.attachments.findIndex((att) => att.localMetadata?.id &&
63
- att.localMetadata?.id === actionAttachment.localMetadata?.id);
64
- if (attachmentIndex === -1) {
65
- attachments.push(actionAttachment);
66
- }
67
- else {
68
- const upsertedAttachment = mergeDeep(state.attachments[attachmentIndex] ?? {}, actionAttachment);
69
- attachments.splice(attachmentIndex, 1, upsertedAttachment);
70
- }
71
- });
72
- return {
73
- ...state,
74
- attachments,
75
- };
76
- }
77
- case 'removeAttachments': {
78
- return {
79
- ...state,
80
- attachments: state.attachments.filter((att) => !action.ids.includes(att.localMetadata?.id)),
81
- };
82
- }
83
- case 'setLinkPreviews': {
84
- const linkPreviews = new Map(state.linkPreviews);
85
- if (action.mode === SetLinkPreviewMode.REMOVE) {
86
- Array.from(action.linkPreviews.keys()).forEach((key) => {
87
- linkPreviews.delete(key);
88
- });
89
- }
90
- else {
91
- Array.from(action.linkPreviews.values()).reduce((acc, linkPreview) => {
92
- const existingPreview = acc.get(linkPreview.og_scrape_url);
93
- const alreadyEnqueued = linkPreview.state === LinkPreviewState.QUEUED &&
94
- existingPreview?.state !== LinkPreviewState.FAILED;
95
- if (existingPreview && alreadyEnqueued)
96
- return acc;
97
- acc.set(linkPreview.og_scrape_url, linkPreview);
98
- return acc;
99
- }, linkPreviews);
100
- if (action.mode === SetLinkPreviewMode.SET) {
101
- Array.from(state.linkPreviews.keys()).forEach((key) => {
102
- if (!action.linkPreviews.get(key))
103
- linkPreviews.delete(key);
104
- });
105
- }
106
- }
107
- return {
108
- ...state,
109
- linkPreviews,
110
- };
111
- }
112
- case 'addMentionedUser':
113
- return {
114
- ...state,
115
- mentioned_users: state.mentioned_users.concat(action.user),
116
- };
117
- default:
118
- return state;
119
- }
120
- };
121
- /**
122
- * hook for MessageInput state
123
- */
124
- export const useMessageInputState = (props) => {
125
- const { additionalTextareaProps, asyncMessagesMultiSendEnabled, audioRecordingConfig, audioRecordingEnabled, getDefaultValue, message, urlEnrichmentConfig, } = props;
126
- const { channelCapabilities = {}, enrichURLForPreview: enrichURLForPreviewChannelContext, } = useChannelStateContext('useMessageInputState');
127
- const defaultValue = getDefaultValue?.() || additionalTextareaProps?.defaultValue;
128
- const initialStateValue = message ||
129
- (Array.isArray(defaultValue)
130
- ? { text: defaultValue.join('') }
131
- : { text: defaultValue?.toString() });
132
- const [state, dispatch] = useReducer(messageInputReducer, initialStateValue, initState);
133
- const enrichURLsController = useLinkPreviews({
134
- dispatch,
135
- linkPreviews: state.linkPreviews,
136
- ...urlEnrichmentConfig,
137
- enrichURLForPreview: urlEnrichmentConfig?.enrichURLForPreview ?? enrichURLForPreviewChannelContext,
138
- });
139
- const { handleChange, insertText, textareaRef } = useMessageInputText(props, state, dispatch, enrichURLsController.findAndEnqueueURLsToEnrich);
140
- const [showCommandsList, setShowCommandsList] = useState(false);
141
- const [showMentionsList, setShowMentionsList] = useState(false);
142
- const openCommandsList = () => {
143
- dispatch({
144
- getNewText: () => '/',
145
- type: 'setText',
146
- });
147
- setShowCommandsList(true);
148
- };
149
- const closeCommandsList = () => setShowCommandsList(false);
150
- const openMentionsList = () => {
151
- dispatch({
152
- getNewText: (currentText) => currentText + '@',
153
- type: 'setText',
154
- });
155
- setShowMentionsList(true);
156
- };
157
- const closeMentionsList = () => setShowMentionsList(false);
158
- const { maxFilesLeft, numberOfUploads, removeAttachments, uploadAttachment, uploadNewFiles, upsertAttachments, } = useAttachments(props, state, dispatch, textareaRef);
159
- const { handleSubmit } = useSubmitHandler(props, state, dispatch, numberOfUploads, enrichURLsController);
160
- const recordingController = useMediaRecorder({
161
- asyncMessagesMultiSendEnabled,
162
- enabled: !!audioRecordingEnabled,
163
- handleSubmit,
164
- recordingConfig: audioRecordingConfig,
165
- uploadAttachment,
166
- });
167
- const isUploadEnabled = !!channelCapabilities['upload-file'];
168
- const { onPaste } = usePasteHandler(uploadNewFiles, insertText, isUploadEnabled, enrichURLsController.findAndEnqueueURLsToEnrich);
169
- const onSelectUser = useCallback((item) => {
170
- dispatch({ type: 'addMentionedUser', user: item });
171
- }, []);
172
- const setText = useCallback((text) => {
173
- dispatch({ getNewText: () => text, type: 'setText' });
174
- }, []);
175
- return {
176
- ...state,
177
- ...enrichURLsController,
178
- closeCommandsList,
179
- closeMentionsList,
180
- handleChange,
181
- handleSubmit,
182
- insertText,
183
- isUploadEnabled,
184
- maxFilesLeft,
185
- numberOfUploads,
186
- onPaste,
187
- onSelectUser,
188
- openCommandsList,
189
- openMentionsList,
190
- recordingController,
191
- removeAttachments,
192
- setText,
193
- showCommandsList,
194
- showMentionsList,
195
- textareaRef,
196
- uploadAttachment,
197
- uploadNewFiles,
198
- upsertAttachments,
199
- };
200
- };
@@ -1,12 +0,0 @@
1
- import type { UserResponse } from 'stream-chat';
2
- import type { SearchQueryParams } from '../../ChannelSearch/hooks/useChannelSearch';
3
- import type { UserTriggerSetting } from '../../MessageInput/DefaultTriggerProvider';
4
- import type { DefaultStreamChatGenerics } from '../../../types/types';
5
- export type UserTriggerParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
6
- onSelectUser: (item: UserResponse<StreamChatGenerics>) => void;
7
- disableMentions?: boolean;
8
- mentionAllAppUsers?: boolean;
9
- mentionQueryParams?: SearchQueryParams<StreamChatGenerics>['userFilters'];
10
- useMentionsTransliteration?: boolean;
11
- };
12
- export declare const useUserTrigger: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UserTriggerParams<StreamChatGenerics>) => UserTriggerSetting<StreamChatGenerics>;
@@ -1,130 +0,0 @@
1
- import { useCallback, useState } from 'react';
2
- import throttle from 'lodash.throttle';
3
- import { searchLocalUsers } from './utils';
4
- import { UserItem } from '../../UserItem/UserItem';
5
- import { useChatContext } from '../../../context/ChatContext';
6
- import { useChannelStateContext } from '../../../context/ChannelStateContext';
7
- export const useUserTrigger = (params) => {
8
- const { disableMentions, mentionAllAppUsers, mentionQueryParams = {}, onSelectUser, useMentionsTransliteration, } = params;
9
- const [searching, setSearching] = useState(false);
10
- const { client, mutes } = useChatContext('useUserTrigger');
11
- const { channel } = useChannelStateContext('useUserTrigger');
12
- const { members } = channel.state;
13
- const { watchers } = channel.state;
14
- const getMembersAndWatchers = useCallback(() => {
15
- const memberUsers = members ? Object.values(members).map(({ user }) => user) : [];
16
- const watcherUsers = watchers ? Object.values(watchers) : [];
17
- const users = [...memberUsers, ...watcherUsers];
18
- // make sure we don't list users twice
19
- const uniqueUsers = {};
20
- users.forEach((user) => {
21
- if (user && !uniqueUsers[user.id]) {
22
- uniqueUsers[user.id] = user;
23
- }
24
- });
25
- return Object.values(uniqueUsers);
26
- }, [members, watchers]);
27
- // eslint-disable-next-line react-hooks/exhaustive-deps
28
- const queryMembersThrottled = useCallback(throttle(async (query, onReady) => {
29
- try {
30
- // @ts-expect-error valid query
31
- const response = await channel.queryMembers({
32
- name: { $autocomplete: query },
33
- });
34
- const users = response.members.map((member) => member.user);
35
- if (onReady && users.length) {
36
- onReady(users);
37
- }
38
- else {
39
- onReady([]);
40
- }
41
- }
42
- catch (error) {
43
- console.log({ error });
44
- }
45
- }, 200), [channel]);
46
- const queryUsers = async (query, onReady) => {
47
- if (!query || searching)
48
- return;
49
- setSearching(true);
50
- try {
51
- const { users } = await client.queryUsers(
52
- // @ts-expect-error valid query
53
- {
54
- $or: [{ id: { $autocomplete: query } }, { name: { $autocomplete: query } }],
55
- ...(typeof mentionQueryParams.filters === 'function'
56
- ? mentionQueryParams.filters(query)
57
- : mentionQueryParams.filters),
58
- }, Array.isArray(mentionQueryParams.sort)
59
- ? [{ id: 1 }, ...mentionQueryParams.sort]
60
- : { id: 1, ...mentionQueryParams.sort }, { limit: 10, ...mentionQueryParams.options });
61
- if (onReady && users.length) {
62
- onReady(users);
63
- }
64
- else {
65
- onReady([]);
66
- }
67
- }
68
- catch (error) {
69
- console.log({ error });
70
- }
71
- setSearching(false);
72
- };
73
- const queryUsersThrottled = throttle(queryUsers, 200);
74
- return {
75
- callback: (item) => onSelectUser(item),
76
- component: UserItem,
77
- dataProvider: (query, text, onReady) => {
78
- if (disableMentions)
79
- return;
80
- const filterMutes = (data) => {
81
- if (text.includes('/unmute') && !mutes.length) {
82
- return [];
83
- }
84
- if (!mutes.length)
85
- return data;
86
- if (text.includes('/unmute')) {
87
- return data.filter((suggestion) => mutes.some((mute) => mute.target.id === suggestion.id));
88
- }
89
- return data.filter((suggestion) => mutes.every((mute) => mute.target.id !== suggestion.id));
90
- };
91
- if (mentionAllAppUsers) {
92
- return queryUsersThrottled(query, (data) => {
93
- if (onReady)
94
- onReady(filterMutes(data), query);
95
- });
96
- }
97
- /**
98
- * By default, we return maximum 100 members via queryChannels api call.
99
- * Thus it is safe to assume, that if number of members in channel.state is < 100,
100
- * then all the members are already available on client side and we don't need to
101
- * make any api call to queryMembers endpoint.
102
- */
103
- if (!query || Object.values(members || {}).length < 100) {
104
- const users = getMembersAndWatchers();
105
- const params = {
106
- ownUserId: client.userID,
107
- query,
108
- text,
109
- useMentionsTransliteration,
110
- users,
111
- };
112
- const matchingUsers = searchLocalUsers(params);
113
- const usersToShow = mentionQueryParams.options?.limit ?? 7;
114
- const data = matchingUsers.slice(0, usersToShow);
115
- if (onReady)
116
- onReady(filterMutes(data), query);
117
- return data;
118
- }
119
- return queryMembersThrottled(query, (data) => {
120
- if (onReady)
121
- onReady(filterMutes(data), query);
122
- });
123
- },
124
- output: (entity) => ({
125
- caretPosition: 'next',
126
- key: entity.id,
127
- text: `@${entity.name || entity.id}`,
128
- }),
129
- };
130
- };
@@ -1,87 +0,0 @@
1
- import type { Attachment, DefaultGenerics, ExtendableGenerics, OGAttachment } from 'stream-chat';
2
- import type { DefaultStreamChatGenerics } from '../../types/types';
3
- export type AttachmentLoadingState = 'uploading' | 'finished' | 'failed';
4
- export declare enum LinkPreviewState {
5
- /** Link preview has been dismissed using MessageInputContextValue.dismissLinkPreview **/
6
- DISMISSED = "dismissed",
7
- /** Link preview could not be loaded, the enrichment request has failed. **/
8
- FAILED = "failed",
9
- /** Link preview has been successfully loaded. **/
10
- LOADED = "loaded",
11
- /** The enrichment query is in progress for a given link. **/
12
- LOADING = "loading",
13
- /** The link is scheduled for enrichment. **/
14
- QUEUED = "queued"
15
- }
16
- export type LinkURL = string;
17
- export type LinkPreview = OGAttachment & {
18
- state: LinkPreviewState;
19
- };
20
- export declare enum SetLinkPreviewMode {
21
- UPSERT = 0,
22
- SET = 1,
23
- REMOVE = 2
24
- }
25
- export type LinkPreviewMap = Map<LinkURL, LinkPreview>;
26
- export type VoiceRecordingAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
27
- asset_url: string;
28
- type: 'voiceRecording';
29
- duration?: number;
30
- file_size?: number;
31
- mime_type?: string;
32
- title?: string;
33
- waveform_data?: Array<number>;
34
- };
35
- type FileAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
36
- type: 'file';
37
- asset_url?: string;
38
- file_size?: number;
39
- mime_type?: string;
40
- title?: string;
41
- };
42
- export type AudioAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
43
- type: 'audio';
44
- asset_url?: string;
45
- file_size?: number;
46
- mime_type?: string;
47
- title?: string;
48
- };
49
- export type VideoAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
50
- type: 'video';
51
- asset_url?: string;
52
- mime_type?: string;
53
- thumb_url?: string;
54
- title?: string;
55
- };
56
- type ImageAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
57
- type: 'image';
58
- fallback?: string;
59
- image_url?: string;
60
- original_height?: number;
61
- original_width?: number;
62
- };
63
- export type BaseLocalAttachmentMetadata = {
64
- id: string;
65
- };
66
- export type LocalAttachmentUploadMetadata = {
67
- file?: File;
68
- uploadState?: AttachmentLoadingState;
69
- };
70
- export type LocalImageAttachmentUploadMetadata = LocalAttachmentUploadMetadata & {
71
- previewUri?: string;
72
- };
73
- export type LocalAttachmentCast<A, L = Record<string, unknown>> = A & {
74
- localMetadata: L & BaseLocalAttachmentMetadata;
75
- };
76
- export type LocalAttachmentMetadata<CustomLocalMetadata = Record<string, unknown>> = CustomLocalMetadata & BaseLocalAttachmentMetadata & LocalImageAttachmentUploadMetadata;
77
- export type LocalVoiceRecordingAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<VoiceRecordingAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
78
- export type LocalAudioAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<AudioAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
79
- export type LocalVideoAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<VideoAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
80
- export type LocalImageAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<ImageAttachment<StreamChatGenerics>, LocalImageAttachmentUploadMetadata & CustomLocalMetadata>;
81
- export type LocalFileAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<FileAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
82
- export type AnyLocalAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<Attachment<StreamChatGenerics>, LocalAttachmentMetadata<CustomLocalMetadata>>;
83
- export type LocalAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = AnyLocalAttachment<StreamChatGenerics> | LocalFileAttachment<StreamChatGenerics> | LocalImageAttachment<StreamChatGenerics> | LocalAudioAttachment<StreamChatGenerics> | LocalVideoAttachment<StreamChatGenerics> | LocalVoiceRecordingAttachment<StreamChatGenerics>;
84
- export type LocalAttachmentToUpload<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = Partial<Attachment<StreamChatGenerics>> & {
85
- localMetadata: Partial<BaseLocalAttachmentMetadata> & LocalAttachmentUploadMetadata & CustomLocalMetadata;
86
- };
87
- export {};
@@ -1,19 +0,0 @@
1
- export var LinkPreviewState;
2
- (function (LinkPreviewState) {
3
- /** Link preview has been dismissed using MessageInputContextValue.dismissLinkPreview **/
4
- LinkPreviewState["DISMISSED"] = "dismissed";
5
- /** Link preview could not be loaded, the enrichment request has failed. **/
6
- LinkPreviewState["FAILED"] = "failed";
7
- /** Link preview has been successfully loaded. **/
8
- LinkPreviewState["LOADED"] = "loaded";
9
- /** The enrichment query is in progress for a given link. **/
10
- LinkPreviewState["LOADING"] = "loading";
11
- /** The link is scheduled for enrichment. **/
12
- LinkPreviewState["QUEUED"] = "queued";
13
- })(LinkPreviewState || (LinkPreviewState = {}));
14
- export var SetLinkPreviewMode;
15
- (function (SetLinkPreviewMode) {
16
- SetLinkPreviewMode[SetLinkPreviewMode["UPSERT"] = 0] = "UPSERT";
17
- SetLinkPreviewMode[SetLinkPreviewMode["SET"] = 1] = "SET";
18
- SetLinkPreviewMode[SetLinkPreviewMode["REMOVE"] = 2] = "REMOVE";
19
- })(SetLinkPreviewMode || (SetLinkPreviewMode = {}));
@@ -1,16 +0,0 @@
1
- import React, { PropsWithChildren } from 'react';
2
- export type ImageDropzoneProps = {
3
- /**
4
- * Set accepted file types. See https://github.com/okonet/attr-accept for more information. Keep in mind that mime type determination is not reliable across platforms. CSV files, for example, are reported as text/plain under macOS but as application/vnd.ms-excel under Windows. In some cases there might not be a mime type set at all.
5
- *
6
- * One of type: `string, string[]`
7
- */
8
- accept?: string | string[];
9
- /** Enable/disable the dropzone */
10
- disabled?: boolean;
11
- handleFiles?: (files: FileList | File[]) => void;
12
- maxNumberOfFiles?: number;
13
- /** Allow drag 'n' drop (or selection from the file dialog) of multiple files */
14
- multiple?: boolean;
15
- };
16
- export declare const ImageDropzone: ({ accept: acceptedFiles, children, disabled, handleFiles, maxNumberOfFiles, multiple, }: PropsWithChildren<ImageDropzoneProps>) => React.JSX.Element;