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,16 +1,15 @@
1
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
1
+ import type { LocalMessage } from 'stream-chat';
3
2
  export type ContainerMeasures = {
4
3
  offsetHeight: number;
5
4
  scrollHeight: number;
6
5
  };
7
- export type UseMessageListScrollManagerParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
6
+ export type UseMessageListScrollManagerParams = {
8
7
  loadMoreScrollThreshold: number;
9
- messages: StreamMessage<StreamChatGenerics>[];
8
+ messages: LocalMessage[];
10
9
  onScrollBy: (scrollBy: number) => void;
11
10
  scrollContainerMeasures: () => ContainerMeasures;
12
11
  scrolledUpThreshold: number;
13
12
  scrollToBottom: () => void;
14
13
  showNewMessages: () => void;
15
14
  };
16
- export declare function useMessageListScrollManager<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseMessageListScrollManagerParams<StreamChatGenerics>): (scrollTopValue: number) => void;
15
+ export declare function useMessageListScrollManager(params: UseMessageListScrollManagerParams): (scrollTopValue: number) => void;
@@ -1,15 +1,14 @@
1
- import React from 'react';
2
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
3
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
- export type UseScrollLocationLogicParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
1
+ import type React from 'react';
2
+ import type { LocalMessage } from 'stream-chat';
3
+ export type UseScrollLocationLogicParams = {
5
4
  hasMoreNewer: boolean;
6
5
  listElement: HTMLDivElement | null;
7
6
  loadMoreScrollThreshold: number;
8
7
  suppressAutoscroll: boolean;
9
- messages?: StreamMessage<StreamChatGenerics>[];
8
+ messages?: LocalMessage[];
10
9
  scrolledUpThreshold?: number;
11
10
  };
12
- export declare const useScrollLocationLogic: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseScrollLocationLogicParams<StreamChatGenerics>) => {
11
+ export declare const useScrollLocationLogic: (params: UseScrollLocationLogicParams) => {
13
12
  hasNewMessages: boolean;
14
13
  isMessageListScrolledToBottom: boolean;
15
14
  onScroll: (event: React.UIEvent<HTMLDivElement>) => void;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
3
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
- export declare const useGiphyPreview: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(separateGiphyPreview: boolean) => {
5
- giphyPreviewMessage: StreamMessage<StreamChatGenerics> | undefined;
6
- setGiphyPreviewMessage: import("react").Dispatch<import("react").SetStateAction<StreamMessage<StreamChatGenerics> | undefined>> | undefined;
2
+ import type { LocalMessage } from 'stream-chat';
3
+ export declare const useGiphyPreview: (separateGiphyPreview: boolean) => {
4
+ giphyPreviewMessage: LocalMessage | undefined;
5
+ setGiphyPreviewMessage: import("react").Dispatch<import("react").SetStateAction<LocalMessage | undefined>> | undefined;
7
6
  };
@@ -4,14 +4,15 @@ export const useGiphyPreview = (separateGiphyPreview) => {
4
4
  const [giphyPreviewMessage, setGiphyPreviewMessage] = useState();
5
5
  const { client } = useChatContext('useGiphyPreview');
6
6
  useEffect(() => {
7
+ if (!separateGiphyPreview)
8
+ return;
7
9
  const handleEvent = (event) => {
8
10
  const { message, user } = event;
9
11
  if (message?.command === 'giphy' && user?.id === client.userID) {
10
12
  setGiphyPreviewMessage(undefined);
11
13
  }
12
14
  };
13
- if (separateGiphyPreview)
14
- client.on('message.new', handleEvent);
15
+ client.on('message.new', handleEvent);
15
16
  return () => client.off('message.new', handleEvent);
16
17
  }, [client, separateGiphyPreview]);
17
18
  return {
@@ -1,9 +1,8 @@
1
- import { StreamMessage } from '../../../../context';
2
- import { DefaultStreamChatGenerics } from '../../../../types/types';
3
- type UseMessageSetKeyParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
4
- messages?: StreamMessage<StreamChatGenerics>[];
1
+ import type { LocalMessage } from 'stream-chat';
2
+ type UseMessageSetKeyParams = {
3
+ messages?: LocalMessage[];
5
4
  };
6
- export declare const useMessageSetKey: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ messages, }: UseMessageSetKeyParams<StreamChatGenerics>) => {
5
+ export declare const useMessageSetKey: ({ messages }: UseMessageSetKeyParams) => {
7
6
  messageSetKey: number;
8
7
  };
9
8
  export {};
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useRef, useState } from 'react';
2
- export const useMessageSetKey = ({ messages, }) => {
2
+ export const useMessageSetKey = ({ messages }) => {
3
3
  /**
4
4
  * Logic to update the key of the virtuoso component when the list jumps to a new location.
5
5
  */
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
3
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
4
- export declare function useNewMessageNotification<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], currentUserId: string | undefined, hasMoreNewer?: boolean): {
2
+ import type { RenderedMessage } from '../../utils';
3
+ export declare function useNewMessageNotification(messages: RenderedMessage[], currentUserId: string | undefined, hasMoreNewer?: boolean): {
5
4
  atBottom: import("react").RefObject<boolean>;
6
5
  isMessageListScrolledToBottom: boolean;
7
6
  newMessagesNotification: boolean;
@@ -1,3 +1,2 @@
1
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
- export declare function usePrependedMessagesCount<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], hasDateSeparator: boolean): number;
1
+ import type { RenderedMessage } from '../../utils';
2
+ export declare function usePrependedMessagesCount(messages: RenderedMessage[], hasDateSeparator: boolean): number;
@@ -1,4 +1,5 @@
1
1
  import { useMemo, useRef } from 'react';
2
+ import { isLocalMessage } from '../../utils';
2
3
  const STATUSES_EXCLUDED_FROM_PREPEND = {
3
4
  failed: true,
4
5
  sending: true,
@@ -26,8 +27,11 @@ export function usePrependedMessagesCount(messages, hasDateSeparator) {
26
27
  // That in turn leads to incorrect index calculation in VirtualizedMessageList trying to access a message
27
28
  // at non-existent index. Therefore, we ignore messages of status "sending" / "failed" in order they are
28
29
  // not considered as prepended messages.
29
- const firstMsgMovedAfterMessagesInExcludedStatus = !!(currentFirstMessage?.status &&
30
- STATUSES_EXCLUDED_FROM_PREPEND[currentFirstMessage.status]);
30
+ const currentFirstMessageStatus = isLocalMessage(currentFirstMessage)
31
+ ? currentFirstMessage.status
32
+ : undefined;
33
+ const firstMsgMovedAfterMessagesInExcludedStatus = !!(currentFirstMessageStatus &&
34
+ STATUSES_EXCLUDED_FROM_PREPEND[currentFirstMessageStatus]);
31
35
  if (noNewMessages || firstMsgMovedAfterMessagesInExcludedStatus) {
32
36
  return previousNumItemsPrepended.current;
33
37
  }
@@ -1,10 +1,9 @@
1
- import { StreamMessage } from '../../../../context';
2
- import { DefaultStreamChatGenerics } from '../../../../types/types';
3
- type UseScrollToBottomOnNewMessageParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
1
+ import type { RenderedMessage } from '../../utils';
2
+ type UseScrollToBottomOnNewMessageParams = {
4
3
  scrollToBottom: () => void;
5
- messages?: StreamMessage<StreamChatGenerics>[];
4
+ messages?: RenderedMessage[];
6
5
  /** When `true`, the list will scroll to the latest message when the window regains focus */
7
6
  scrollToLatestMessageOnFocus?: boolean;
8
7
  };
9
- export declare const useScrollToBottomOnNewMessage: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ messages, scrollToBottom, scrollToLatestMessageOnFocus, }: UseScrollToBottomOnNewMessageParams<StreamChatGenerics>) => void;
8
+ export declare const useScrollToBottomOnNewMessage: ({ messages, scrollToBottom, scrollToLatestMessageOnFocus, }: UseScrollToBottomOnNewMessageParams) => void;
10
9
  export {};
@@ -1,3 +1,2 @@
1
- import type { StreamMessage } from '../../../../context/ChannelStateContext';
2
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
3
- export declare function useShouldForceScrollToBottom<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], currentUserId?: string): () => boolean;
1
+ import type { RenderedMessage } from '../../utils';
2
+ export declare function useShouldForceScrollToBottom(messages: RenderedMessage[], currentUserId?: string): () => boolean;
@@ -1,5 +1,4 @@
1
- import { StreamMessage } from '../../../../context';
2
- import type { DefaultStreamChatGenerics } from '../../../../types/types';
1
+ import type { RenderedMessage } from '../../utils';
3
2
  export type UseUnreadMessagesNotificationParams = {
4
3
  showAlways: boolean;
5
4
  unreadCount: number;
@@ -17,7 +16,7 @@ export type UseUnreadMessagesNotificationParams = {
17
16
  * @param showAlways
18
17
  * @param unreadCount
19
18
  */
20
- export declare const useUnreadMessagesNotificationVirtualized: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ lastRead, showAlways, unreadCount, }: UseUnreadMessagesNotificationParams) => {
19
+ export declare const useUnreadMessagesNotificationVirtualized: ({ lastRead, showAlways, unreadCount, }: UseUnreadMessagesNotificationParams) => {
21
20
  show: boolean;
22
- toggleShowUnreadMessagesNotification: (renderedMessages: StreamMessage<StreamChatGenerics>[]) => void;
21
+ toggleShowUnreadMessagesNotification: (renderedMessages: RenderedMessage[]) => void;
23
22
  };
@@ -20,12 +20,11 @@ export const useUnreadMessagesNotificationVirtualized = ({ lastRead, showAlways,
20
20
  const lastRenderedMessage = renderedMessages.slice(-1)[0];
21
21
  if (!(firstRenderedMessage && lastRenderedMessage))
22
22
  return;
23
- const scrolledBelowSeparator = !!lastRead &&
24
- new Date(firstRenderedMessage.created_at).getTime() >
25
- lastRead.getTime();
26
- const scrolledAboveSeparator = !!lastRead &&
27
- new Date(lastRenderedMessage.created_at).getTime() <
28
- lastRead.getTime();
23
+ const firstRenderedMessageTime = new Date(firstRenderedMessage.created_at ?? 0).getTime();
24
+ const lastRenderedMessageTime = new Date(lastRenderedMessage.created_at ?? 0).getTime();
25
+ const lastReadTime = new Date(lastRead ?? 0).getTime();
26
+ const scrolledBelowSeparator = !!lastReadTime && firstRenderedMessageTime > lastReadTime;
27
+ const scrolledAboveSeparator = !!lastReadTime && lastRenderedMessageTime < lastReadTime;
29
28
  setShow(showAlways
30
29
  ? scrolledBelowSeparator || scrolledAboveSeparator
31
30
  : scrolledBelowSeparator);
@@ -1,14 +1,13 @@
1
1
  import type { UserResponse } from 'stream-chat';
2
- import type { StreamMessage } from '../../../context/ChannelStateContext';
3
- import type { DefaultStreamChatGenerics } from '../../../types/types';
4
- type UseLastReadDataParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
5
- messages: StreamMessage<StreamChatGenerics>[];
2
+ import type { RenderedMessage } from '../utils';
3
+ type UseLastReadDataParams = {
4
+ messages: RenderedMessage[];
6
5
  returnAllReadData: boolean;
7
6
  userID: string | undefined;
8
7
  read?: Record<string, {
9
8
  last_read: Date;
10
- user: UserResponse<StreamChatGenerics>;
9
+ user: UserResponse;
11
10
  }>;
12
11
  };
13
- export declare const useLastReadData: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: UseLastReadDataParams<StreamChatGenerics>) => Record<string, UserResponse<StreamChatGenerics>[]>;
12
+ export declare const useLastReadData: (props: UseLastReadDataParams) => Record<string, UserResponse[]>;
14
13
  export {};
@@ -1,6 +1,10 @@
1
1
  import { useMemo } from 'react';
2
+ import { isLocalMessage } from '../utils';
2
3
  import { getReadStates } from '../utils';
3
4
  export const useLastReadData = (props) => {
4
5
  const { messages, read, returnAllReadData, userID } = props;
5
- return useMemo(() => getReadStates(messages.filter(({ user }) => user?.id === userID), read, returnAllReadData), [messages, read, returnAllReadData, userID]);
6
+ return useMemo(() => {
7
+ const ownLocalMessages = messages.filter((msg) => isLocalMessage(msg) && msg.user?.id === userID);
8
+ return getReadStates(ownLocalMessages, read, returnAllReadData);
9
+ }, [messages, read, returnAllReadData, userID]);
6
10
  };
@@ -1,4 +1,3 @@
1
- import type { DefaultStreamChatGenerics } from '../../../types';
2
1
  type UseMarkReadParams = {
3
2
  isMessageListScrolledToBottom: boolean;
4
3
  messageListIsThread: boolean;
@@ -13,5 +12,5 @@ type UseMarkReadParams = {
13
12
  * @param messageListIsThread
14
13
  * @param wasChannelMarkedUnread
15
14
  */
16
- export declare const useMarkRead: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ isMessageListScrolledToBottom, messageListIsThread, wasMarkedUnread, }: UseMarkReadParams) => void;
15
+ export declare const useMarkRead: ({ isMessageListScrolledToBottom, messageListIsThread, wasMarkedUnread, }: UseMarkReadParams) => void;
17
16
  export {};
@@ -1,33 +1,33 @@
1
- import React, { ReactNode } from 'react';
1
+ import React from 'react';
2
+ import type { ReactNode } from 'react';
2
3
  import type { UserResponse } from 'stream-chat';
3
- import { GroupStyle } from './utils';
4
- import { ComponentContextValue, CustomClasses } from '../../context';
5
- import type { ChannelUnreadUiState, DefaultStreamChatGenerics } from '../../types';
6
- import type { StreamMessage } from '../../context/ChannelStateContext';
4
+ import type { GroupStyle, RenderedMessage } from './utils';
7
5
  import type { MessageProps } from '../Message';
8
- export interface RenderMessagesOptions<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> {
9
- components: ComponentContextValue<StreamChatGenerics>;
6
+ import type { ComponentContextValue, CustomClasses } from '../../context';
7
+ import type { ChannelUnreadUiState } from '../../types';
8
+ export interface RenderMessagesOptions {
9
+ components: ComponentContextValue;
10
10
  lastReceivedMessageId: string | null;
11
11
  messageGroupStyles: Record<string, GroupStyle>;
12
- messages: Array<StreamMessage<StreamChatGenerics>>;
12
+ messages: Array<RenderedMessage>;
13
13
  /**
14
14
  * Object mapping message IDs of own messages to the users who read those messages.
15
15
  */
16
- readData: Record<string, Array<UserResponse<StreamChatGenerics>>>;
16
+ readData: Record<string, Array<UserResponse>>;
17
17
  /**
18
18
  * Props forwarded to the Message component.
19
19
  */
20
- sharedMessageProps: SharedMessageProps<StreamChatGenerics>;
20
+ sharedMessageProps: SharedMessageProps;
21
21
  /**
22
22
  * Current user's channel read state used to render components reflecting unread state.
23
23
  * It does not reflect the back-end state if a channel is marked read on mount.
24
24
  * This is in order to keep the unread UI when an unread channel is open.
25
25
  */
26
- channelUnreadUiState?: ChannelUnreadUiState<StreamChatGenerics>;
26
+ channelUnreadUiState?: ChannelUnreadUiState;
27
27
  customClasses?: CustomClasses;
28
28
  }
29
- export type SharedMessageProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = Omit<MessageProps<StreamChatGenerics>, MessagePropsToOmit>;
30
- export type MessageRenderer<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = (options: RenderMessagesOptions<StreamChatGenerics>) => Array<ReactNode>;
29
+ export type SharedMessageProps = Omit<MessageProps, MessagePropsToOmit>;
30
+ export type MessageRenderer = (options: RenderMessagesOptions) => Array<ReactNode>;
31
31
  type MessagePropsToOmit = 'channel' | 'groupStyles' | 'initialMessage' | 'lastReceivedId' | 'message' | 'readBy';
32
- export declare function defaultRenderMessages<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ channelUnreadUiState, components, customClasses, lastReceivedMessageId: lastReceivedId, messageGroupStyles, messages, readData, sharedMessageProps: messageProps, }: RenderMessagesOptions<StreamChatGenerics>): React.JSX.Element[];
32
+ export declare function defaultRenderMessages({ channelUnreadUiState, components, customClasses, lastReceivedMessageId: lastReceivedId, messageGroupStyles, messages, readData, sharedMessageProps: messageProps, }: RenderMessagesOptions): React.JSX.Element[];
33
33
  export {};
@@ -1,10 +1,9 @@
1
1
  import React, { Fragment } from 'react';
2
- import { getIsFirstUnreadMessage, isDateSeparatorMessage } from './utils';
2
+ import { getIsFirstUnreadMessage, isDateSeparatorMessage, isIntroMessage } from './utils';
3
3
  import { Message } from '../Message';
4
4
  import { DateSeparator as DefaultDateSeparator } from '../DateSeparator';
5
5
  import { EventComponent as DefaultMessageSystem } from '../EventComponent';
6
6
  import { UnreadMessagesSeparator as DefaultUnreadMessagesSeparator } from './UnreadMessagesSeparator';
7
- import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
8
7
  export function defaultRenderMessages({ channelUnreadUiState, components, customClasses, lastReceivedMessageId: lastReceivedId, messageGroupStyles, messages, readData, sharedMessageProps: messageProps, }) {
9
8
  const { DateSeparator = DefaultDateSeparator, HeaderComponent, MessageSystem = DefaultMessageSystem, UnreadMessagesSeparator = DefaultUnreadMessagesSeparator, } = components;
10
9
  const renderedMessages = [];
@@ -16,12 +15,14 @@ export function defaultRenderMessages({ channelUnreadUiState, components, custom
16
15
  renderedMessages.push(React.createElement("li", { key: `${message.date.toISOString()}-i` },
17
16
  React.createElement(DateSeparator, { date: message.date, formatDate: messageProps.formatDate, unread: message.unread })));
18
17
  }
19
- else if (message.customType === CUSTOM_MESSAGE_TYPE.intro && HeaderComponent) {
20
- renderedMessages.push(React.createElement("li", { key: 'intro' },
21
- React.createElement(HeaderComponent, null)));
18
+ else if (isIntroMessage(message)) {
19
+ if (HeaderComponent) {
20
+ renderedMessages.push(React.createElement("li", { key: 'intro' },
21
+ React.createElement(HeaderComponent, null)));
22
+ }
22
23
  }
23
24
  else if (message.type === 'system') {
24
- renderedMessages.push(React.createElement("li", { "data-message-id": message.id, key: message.id || message.created_at },
25
+ renderedMessages.push(React.createElement("li", { "data-message-id": message.id, key: message.id || message.created_at.toISOString() },
25
26
  React.createElement(MessageSystem, { message: message })));
26
27
  }
27
28
  else {
@@ -39,7 +40,7 @@ export function defaultRenderMessages({ channelUnreadUiState, components, custom
39
40
  previousMessage,
40
41
  unreadMessageCount: channelUnreadUiState?.unread_messages,
41
42
  });
42
- renderedMessages.push(React.createElement(Fragment, { key: message.id || message.created_at },
43
+ renderedMessages.push(React.createElement(Fragment, { key: message.id || message.created_at.toISOString() },
43
44
  isFirstUnreadMessage && UnreadMessagesSeparator && (React.createElement("li", { className: 'str-chat__li str-chat__unread-messages-separator-wrapper' },
44
45
  React.createElement(UnreadMessagesSeparator, { unreadCount: channelUnreadUiState?.unread_messages }))),
45
46
  React.createElement("li", { className: messageClass, "data-message-id": message.id, "data-testid": messageClass },
@@ -1,8 +1,18 @@
1
1
  /// <reference types="react" />
2
2
  import { CUSTOM_MESSAGE_TYPE } from '../../constants/messageTypes';
3
- import type { MessageLabel, UserResponse } from 'stream-chat';
4
- import type { DefaultStreamChatGenerics } from '../../types/types';
5
- import type { StreamMessage } from '../../context/ChannelStateContext';
3
+ import type { LocalMessage, MessageLabel, UserResponse } from 'stream-chat';
4
+ type IntroMessage = {
5
+ customType: typeof CUSTOM_MESSAGE_TYPE.intro;
6
+ id: string;
7
+ };
8
+ type DateSeparatorMessage = {
9
+ customType: typeof CUSTOM_MESSAGE_TYPE.date;
10
+ date: Date;
11
+ id: string;
12
+ type: MessageLabel;
13
+ unread: boolean;
14
+ };
15
+ export type RenderedMessage = LocalMessage | DateSeparatorMessage | IntroMessage;
6
16
  type ProcessMessagesContext = {
7
17
  /** the connected user ID */
8
18
  userId: string;
@@ -15,22 +25,22 @@ type ProcessMessagesContext = {
15
25
  /** Sets the threshold after everything is considered unread */
16
26
  lastRead?: Date | null;
17
27
  };
18
- export type ProcessMessagesParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ProcessMessagesContext & {
19
- messages: StreamMessage<StreamChatGenerics>[];
28
+ export type ProcessMessagesParams = ProcessMessagesContext & {
29
+ messages: LocalMessage[];
20
30
  reviewProcessedMessage?: (params: {
21
31
  /** array of messages representing the changes applied around a given processed message */
22
- changes: StreamMessage<StreamChatGenerics>[];
32
+ changes: RenderedMessage[];
23
33
  /** configuration params and information forwarded from `processMessages` */
24
34
  context: ProcessMessagesContext;
25
35
  /** index of the processed message in the original messages array */
26
36
  index: number;
27
37
  /** array of messages retrieved from the back-end */
28
- messages: StreamMessage<StreamChatGenerics>[];
38
+ messages: LocalMessage[];
29
39
  /** newly built array of messages to be later rendered */
30
- processedMessages: StreamMessage<StreamChatGenerics>[];
31
- }) => StreamMessage<StreamChatGenerics>[];
40
+ processedMessages: RenderedMessage[];
41
+ }) => LocalMessage[];
32
42
  /** Signals whether to separate giphy preview as well as used to set the giphy preview state */
33
- setGiphyPreviewMessage?: React.Dispatch<React.SetStateAction<StreamMessage<StreamChatGenerics> | undefined>>;
43
+ setGiphyPreviewMessage?: React.Dispatch<React.SetStateAction<LocalMessage | undefined>>;
34
44
  };
35
45
  /**
36
46
  * processMessages - Transform the input message list according to config parameters
@@ -46,35 +56,31 @@ export type ProcessMessagesParams<StreamChatGenerics extends DefaultStreamChatGe
46
56
  *
47
57
  * The only required params are messages and userId, the rest are config params:
48
58
  *
49
- * @return {StreamMessage<StreamChatGenerics>[]} Transformed list of messages
59
+ * @return {LocalMessage[]} Transformed list of messages
50
60
  */
51
- export declare const processMessages: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: ProcessMessagesParams<StreamChatGenerics>) => StreamMessage<StreamChatGenerics>[];
61
+ export declare const processMessages: (params: ProcessMessagesParams) => RenderedMessage[];
62
+ export declare const makeIntroMessage: () => IntroMessage;
52
63
  export declare const makeDateMessageId: (date?: string | Date) => string;
53
- export declare const getLastReceived: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[]) => string | null;
54
- export declare const getReadStates: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], read: Record<string, {
64
+ export declare const getLastReceived: (messages: RenderedMessage[]) => string | null;
65
+ export declare const getReadStates: (messages: LocalMessage[], read: Record<string, {
55
66
  last_read: Date;
56
- user: UserResponse<StreamChatGenerics>;
57
- }> | undefined, returnAllReadData: boolean) => Record<string, UserResponse<StreamChatGenerics>[]>;
58
- export declare const insertIntro: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(messages: StreamMessage<StreamChatGenerics>[], headerPosition?: number) => StreamMessage<StreamChatGenerics>[];
67
+ user: UserResponse;
68
+ }> | undefined, returnAllReadData: boolean) => Record<string, UserResponse[]>;
69
+ export declare const insertIntro: (messages: RenderedMessage[], headerPosition?: number) => RenderedMessage[];
59
70
  export type GroupStyle = '' | 'middle' | 'top' | 'bottom' | 'single';
60
- export declare const getGroupStyles: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(message: StreamMessage<StreamChatGenerics>, previousMessage: StreamMessage<StreamChatGenerics>, nextMessage: StreamMessage<StreamChatGenerics>, noGroupByUser: boolean, maxTimeBetweenGroupedMessages?: number) => GroupStyle;
71
+ export declare const getGroupStyles: (message: RenderedMessage, previousMessage: RenderedMessage, nextMessage: RenderedMessage, noGroupByUser: boolean, maxTimeBetweenGroupedMessages?: number) => GroupStyle;
61
72
  export declare const hasMoreMessagesProbably: (returnedCountMessages: number, limit: number) => boolean;
62
73
  export declare const hasNotMoreMessages: (returnedCountMessages: number, limit: number) => boolean;
63
- type DateSeparatorMessage = {
64
- customType: typeof CUSTOM_MESSAGE_TYPE.date;
65
- date: Date;
66
- id: string;
67
- type: MessageLabel;
68
- unread: boolean;
69
- };
70
- export declare function isDateSeparatorMessage<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(message: StreamMessage<StreamChatGenerics>): message is DateSeparatorMessage;
74
+ export declare function isIntroMessage(message: unknown): message is IntroMessage;
75
+ export declare function isDateSeparatorMessage(message: unknown): message is DateSeparatorMessage;
76
+ export declare function isLocalMessage(message: unknown): message is LocalMessage;
71
77
  export declare const getIsFirstUnreadMessage: ({ firstUnreadMessageId, isFirstMessage, lastReadDate, lastReadMessageId, message, previousMessage, unreadMessageCount, }: {
72
78
  isFirstMessage: boolean;
73
- message: StreamMessage;
79
+ message: LocalMessage;
74
80
  firstUnreadMessageId?: string;
75
81
  lastReadDate?: Date;
76
82
  lastReadMessageId?: string;
77
- previousMessage?: StreamMessage;
83
+ previousMessage?: RenderedMessage;
78
84
  unreadMessageCount?: number;
79
85
  }) => boolean;
80
86
  export {};
@@ -16,7 +16,7 @@ import { isDate } from '../../i18n';
16
16
  *
17
17
  * The only required params are messages and userId, the rest are config params:
18
18
  *
19
- * @return {StreamMessage<StreamChatGenerics>[]} Transformed list of messages
19
+ * @return {LocalMessage[]} Transformed list of messages
20
20
  */
21
21
  export const processMessages = (params) => {
22
22
  const { messages, reviewProcessedMessage, setGiphyPreviewMessage, ...context } = params;
@@ -70,7 +70,7 @@ export const processMessages = (params) => {
70
70
  (hideDeletedMessages &&
71
71
  previousMessage?.type === 'deleted' &&
72
72
  lastDateSeparator !== messageDate)) &&
73
- changes[changes.length - 1]?.customType !== CUSTOM_MESSAGE_TYPE.date // do not show two date separators in a row)
73
+ !isDateSeparatorMessage(changes[changes.length - 1]) // do not show two date separators in a row)
74
74
  ) {
75
75
  lastDateSeparator = messageDate;
76
76
  changes.push({
@@ -96,6 +96,10 @@ export const processMessages = (params) => {
96
96
  }
97
97
  return newMessages;
98
98
  };
99
+ export const makeIntroMessage = () => ({
100
+ customType: CUSTOM_MESSAGE_TYPE.intro,
101
+ id: nanoid(),
102
+ });
99
103
  export const makeDateMessageId = (date) => {
100
104
  let idSuffix;
101
105
  try {
@@ -147,9 +151,7 @@ export const getReadStates = (messages, read = {}, returnAllReadData) => {
147
151
  };
148
152
  export const insertIntro = (messages, headerPosition) => {
149
153
  const newMessages = messages;
150
- const intro = {
151
- customType: CUSTOM_MESSAGE_TYPE.intro,
152
- };
154
+ const intro = makeIntroMessage();
153
155
  // if no headerPosition is set, HeaderComponent will go at the top
154
156
  if (!headerPosition) {
155
157
  newMessages.unshift(intro);
@@ -162,19 +164,17 @@ export const insertIntro = (messages, headerPosition) => {
162
164
  }
163
165
  // else loop over the messages
164
166
  for (let i = 0; i < messages.length; i += 1) {
165
- const message = messages[i];
166
- const messageTime = message.created_at && isDate(message.created_at)
167
- ? message.created_at.getTime()
167
+ const messageTime = isDate(messages[i].created_at)
168
+ ? messages[i].created_at.getTime()
168
169
  : null;
169
- const nextMessage = messages[i + 1];
170
- const nextMessageTime = nextMessage.created_at && isDate(nextMessage.created_at)
171
- ? nextMessage.created_at.getTime()
170
+ const nextMessageTime = isDate(messages[i + 1].created_at)
171
+ ? messages[i + 1].created_at.getTime()
172
172
  : null;
173
173
  // header position is smaller than message time so comes after;
174
174
  if (messageTime && messageTime < headerPosition) {
175
175
  // if header position is also smaller than message time continue;
176
176
  if (nextMessageTime && nextMessageTime < headerPosition) {
177
- if (messages[i + 1] && messages[i + 1].customType === CUSTOM_MESSAGE_TYPE.date)
177
+ if (messages[i + 1] && isDateSeparatorMessage(messages[i + 1]))
178
178
  continue;
179
179
  if (!nextMessageTime) {
180
180
  newMessages.push(intro);
@@ -190,15 +190,13 @@ export const insertIntro = (messages, headerPosition) => {
190
190
  return newMessages;
191
191
  };
192
192
  export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByUser, maxTimeBetweenGroupedMessages) => {
193
- if (message.customType === CUSTOM_MESSAGE_TYPE.date)
194
- return '';
195
- if (message.customType === CUSTOM_MESSAGE_TYPE.intro)
193
+ if (isDateSeparatorMessage(message) || isIntroMessage(message))
196
194
  return '';
197
195
  if (noGroupByUser || message.attachments?.length !== 0)
198
196
  return 'single';
199
197
  const isTopMessage = !previousMessage ||
200
- previousMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
201
- previousMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
198
+ isIntroMessage(previousMessage) ||
199
+ isDateSeparatorMessage(previousMessage) ||
202
200
  previousMessage.type === 'system' ||
203
201
  previousMessage.type === 'error' ||
204
202
  previousMessage.attachments?.length !== 0 ||
@@ -213,8 +211,8 @@ export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByU
213
211
  new Date(previousMessage.created_at).getTime() >
214
212
  maxTimeBetweenGroupedMessages);
215
213
  const isBottomMessage = !nextMessage ||
216
- nextMessage.customType === CUSTOM_MESSAGE_TYPE.intro ||
217
- nextMessage.customType === CUSTOM_MESSAGE_TYPE.date ||
214
+ isIntroMessage(nextMessage) ||
215
+ isDateSeparatorMessage(nextMessage) ||
218
216
  nextMessage.type === 'system' ||
219
217
  nextMessage.type === 'error' ||
220
218
  nextMessage.attachments?.length !== 0 ||
@@ -251,11 +249,18 @@ export const getGroupStyles = (message, previousMessage, nextMessage, noGroupByU
251
249
  export const hasMoreMessagesProbably = (returnedCountMessages, limit) => returnedCountMessages >= limit;
252
250
  // @deprecated
253
251
  export const hasNotMoreMessages = (returnedCountMessages, limit) => returnedCountMessages < limit;
252
+ export function isIntroMessage(message) {
253
+ return message.customType === CUSTOM_MESSAGE_TYPE.intro;
254
+ }
254
255
  export function isDateSeparatorMessage(message) {
255
- return (message.customType === CUSTOM_MESSAGE_TYPE.date &&
256
- !!message.date &&
256
+ return (message !== null &&
257
+ typeof message === 'object' &&
258
+ message.customType === CUSTOM_MESSAGE_TYPE.date &&
257
259
  isDate(message.date));
258
260
  }
261
+ export function isLocalMessage(message) {
262
+ return !isDateSeparatorMessage(message) && !isIntroMessage(message);
263
+ }
259
264
  export const getIsFirstUnreadMessage = ({ firstUnreadMessageId, isFirstMessage, lastReadDate, lastReadMessageId, message, previousMessage, unreadMessageCount = 0, }) => {
260
265
  // prevent showing unread indicator in threads
261
266
  if (message.parent_id)
@@ -1,4 +1,5 @@
1
- import React, { PropsWithChildren } from 'react';
1
+ import type { PropsWithChildren } from 'react';
2
+ import React from 'react';
2
3
  export type ModalProps = {
3
4
  /** If true, modal is opened or visible. */
4
5
  open: boolean;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { Poll as PollClass } from 'stream-chat';
3
- import type { DefaultStreamChatGenerics } from '../../types';
4
- export declare const Poll: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ isQuoted, poll, }: {
5
- poll: PollClass<StreamChatGenerics>;
3
+ export declare const Poll: ({ isQuoted, poll }: {
4
+ poll: PollClass;
6
5
  isQuoted?: boolean;
7
6
  }) => React.JSX.Element | null;
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { PollContent as DefaultPollContent } from './PollContent';
3
3
  import { QuotedPoll as DefaultQuotedPoll } from './QuotedPoll';
4
4
  import { PollProvider, useComponentContext } from '../../context';
5
- export const Poll = ({ isQuoted, poll, }) => {
5
+ export const Poll = ({ isQuoted, poll }) => {
6
6
  const { PollContent = DefaultPollContent, QuotedPoll = DefaultQuotedPoll } = useComponentContext();
7
7
  return poll ? (React.createElement(PollProvider, { poll: poll }, isQuoted ? React.createElement(QuotedPoll, null) : React.createElement(PollContent, null))) : null;
8
8
  };
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- import type { DefaultStreamChatGenerics } from '../../../types';
3
2
  export type AddCommentFormProps = {
4
3
  close: () => void;
5
4
  messageId: string;
6
5
  };
7
- export declare const AddCommentForm: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ close, messageId, }: AddCommentFormProps) => React.JSX.Element;
6
+ export declare const AddCommentForm: ({ close, messageId }: AddCommentFormProps) => React.JSX.Element;
@@ -2,8 +2,10 @@ import React from 'react';
2
2
  import { FormDialog } from '../../Dialog/FormDialog';
3
3
  import { useStateStore } from '../../../store';
4
4
  import { usePollContext, useTranslationContext } from '../../../context';
5
- const pollStateSelector = (nextValue) => ({ ownAnswer: nextValue.ownAnswer });
6
- export const AddCommentForm = ({ close, messageId, }) => {
5
+ const pollStateSelector = (nextValue) => ({
6
+ ownAnswer: nextValue.ownAnswer,
7
+ });
8
+ export const AddCommentForm = ({ close, messageId }) => {
7
9
  const { t } = useTranslationContext('AddCommentForm');
8
10
  const { poll } = usePollContext();
9
11
  const { ownAnswer } = useStateStore(poll.state, pollStateSelector);