stream-chat-react 11.22.0 → 12.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 (1100) hide show
  1. package/dist/components/Attachment/Attachment.d.ts +0 -1
  2. package/dist/components/Attachment/Attachment.js +18 -22
  3. package/dist/components/Attachment/AttachmentActions.d.ts +0 -1
  4. package/dist/components/Attachment/AttachmentActions.js +6 -6
  5. package/dist/components/Attachment/AttachmentContainer.d.ts +7 -3
  6. package/dist/components/Attachment/AttachmentContainer.js +81 -94
  7. package/dist/components/Attachment/Audio.d.ts +1 -2
  8. package/dist/components/Attachment/Audio.js +7 -37
  9. package/dist/components/Attachment/Card.d.ts +0 -1
  10. package/dist/components/Attachment/Card.js +39 -76
  11. package/dist/components/Attachment/FileAttachment.d.ts +0 -1
  12. package/dist/components/Attachment/FileAttachment.js +8 -26
  13. package/dist/components/Attachment/UnsupportedAttachment.d.ts +0 -2
  14. package/dist/components/Attachment/UnsupportedAttachment.js +3 -5
  15. package/dist/components/Attachment/VoiceRecording.d.ts +0 -1
  16. package/dist/components/Attachment/VoiceRecording.js +15 -20
  17. package/dist/components/Attachment/attachment-sizing.d.ts +0 -1
  18. package/dist/components/Attachment/attachment-sizing.js +28 -28
  19. package/dist/components/Attachment/audioSampling.d.ts +0 -1
  20. package/dist/components/Attachment/audioSampling.js +32 -34
  21. package/dist/components/Attachment/components/DownloadButton.d.ts +0 -1
  22. package/dist/components/Attachment/components/DownloadButton.js +2 -5
  23. package/dist/components/Attachment/components/FileSizeIndicator.d.ts +0 -1
  24. package/dist/components/Attachment/components/FileSizeIndicator.js +1 -2
  25. package/dist/components/Attachment/components/PlayButton.d.ts +0 -1
  26. package/dist/components/Attachment/components/PlayButton.js +1 -4
  27. package/dist/components/Attachment/components/PlaybackRateButton.d.ts +0 -1
  28. package/dist/components/Attachment/components/PlaybackRateButton.js +1 -4
  29. package/dist/components/Attachment/components/ProgressBar.d.ts +0 -1
  30. package/dist/components/Attachment/components/ProgressBar.js +4 -7
  31. package/dist/components/Attachment/components/WaveProgressBar.d.ts +0 -1
  32. package/dist/components/Attachment/components/WaveProgressBar.js +19 -24
  33. package/dist/components/Attachment/components/index.d.ts +0 -1
  34. package/dist/components/Attachment/hooks/useAudioController.d.ts +1 -1
  35. package/dist/components/Attachment/hooks/useAudioController.js +86 -107
  36. package/dist/components/Attachment/icons.d.ts +0 -1
  37. package/dist/components/Attachment/icons.js +6 -9
  38. package/dist/components/Attachment/index.d.ts +0 -1
  39. package/dist/components/Attachment/utils.d.ts +7 -52
  40. package/dist/components/Attachment/utils.js +30 -196
  41. package/dist/components/AutoCompleteTextarea/Item.d.ts +1 -2
  42. package/dist/components/AutoCompleteTextarea/Item.js +7 -14
  43. package/dist/components/AutoCompleteTextarea/List.d.ts +2 -4
  44. package/dist/components/AutoCompleteTextarea/List.js +42 -51
  45. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +26 -27
  46. package/dist/components/AutoCompleteTextarea/Textarea.js +242 -273
  47. package/dist/components/AutoCompleteTextarea/index.d.ts +0 -3
  48. package/dist/components/AutoCompleteTextarea/index.js +0 -1
  49. package/dist/components/AutoCompleteTextarea/types.d.ts +0 -1
  50. package/dist/components/AutoCompleteTextarea/utils.d.ts +0 -1
  51. package/dist/components/AutoCompleteTextarea/utils.js +13 -15
  52. package/dist/components/Avatar/Avatar.d.ts +2 -9
  53. package/dist/components/Avatar/Avatar.js +13 -21
  54. package/dist/components/Avatar/index.d.ts +0 -1
  55. package/dist/components/Channel/Channel.d.ts +1 -4
  56. package/dist/components/Channel/Channel.js +652 -760
  57. package/dist/components/Channel/LoadingChannel.d.ts +0 -1
  58. package/dist/components/Channel/LoadingChannel.js +9 -9
  59. package/dist/components/Channel/channelState.d.ts +0 -1
  60. package/dist/components/Channel/channelState.js +109 -38
  61. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +0 -1
  62. package/dist/components/Channel/hooks/useChannelContainerClasses.js +5 -7
  63. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts +2 -3
  64. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +59 -75
  65. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts +0 -1
  66. package/dist/components/Channel/hooks/useCreateTypingContext.js +6 -6
  67. package/dist/components/Channel/hooks/useEditMessageHandler.d.ts +1 -2
  68. package/dist/components/Channel/hooks/useEditMessageHandler.js +3 -3
  69. package/dist/components/Channel/hooks/useIsMounted.d.ts +1 -1
  70. package/dist/components/Channel/hooks/useIsMounted.js +4 -4
  71. package/dist/components/Channel/hooks/useMentionsHandlers.d.ts +1 -2
  72. package/dist/components/Channel/hooks/useMentionsHandlers.js +17 -22
  73. package/dist/components/Channel/index.d.ts +0 -1
  74. package/dist/components/Channel/utils.d.ts +7 -3
  75. package/dist/components/Channel/utils.js +16 -23
  76. package/dist/components/ChannelHeader/ChannelHeader.d.ts +0 -1
  77. package/dist/components/ChannelHeader/ChannelHeader.js +19 -19
  78. package/dist/components/ChannelHeader/icons.d.ts +1 -2
  79. package/dist/components/ChannelHeader/icons.js +3 -4
  80. package/dist/components/ChannelHeader/index.d.ts +0 -1
  81. package/dist/components/ChannelList/ChannelList.d.ts +2 -4
  82. package/dist/components/ChannelList/ChannelList.js +63 -76
  83. package/dist/components/ChannelList/ChannelListMessenger.d.ts +5 -7
  84. package/dist/components/ChannelList/ChannelListMessenger.js +5 -5
  85. package/dist/components/ChannelList/hooks/index.d.ts +0 -1
  86. package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts +1 -2
  87. package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +9 -10
  88. package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts +1 -2
  89. package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +9 -10
  90. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -2
  91. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +6 -7
  92. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -2
  93. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +14 -12
  94. package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts +1 -2
  95. package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +17 -28
  96. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +0 -1
  97. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.js +5 -5
  98. package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts +1 -2
  99. package/dist/components/ChannelList/hooks/useMessageNewListener.js +10 -13
  100. package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts +0 -1
  101. package/dist/components/ChannelList/hooks/useMobileNavigation.js +4 -4
  102. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts +1 -2
  103. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +24 -38
  104. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts +1 -2
  105. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +17 -30
  106. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts +1 -2
  107. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.js +6 -6
  108. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -2
  109. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +63 -79
  110. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts +1 -2
  111. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +10 -12
  112. package/dist/components/ChannelList/index.d.ts +0 -1
  113. package/dist/components/ChannelList/utils.d.ts +0 -1
  114. package/dist/components/ChannelList/utils.js +5 -7
  115. package/dist/components/ChannelPreview/ChannelPreview.d.ts +0 -1
  116. package/dist/components/ChannelPreview/ChannelPreview.js +33 -37
  117. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts +0 -1
  118. package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +10 -11
  119. package/dist/components/ChannelPreview/hooks/index.d.ts +0 -1
  120. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +0 -1
  121. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js +12 -12
  122. package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts +0 -1
  123. package/dist/components/ChannelPreview/hooks/useIsChannelMuted.js +6 -6
  124. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts +0 -1
  125. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.js +18 -21
  126. package/dist/components/ChannelPreview/index.d.ts +0 -1
  127. package/dist/components/ChannelPreview/utils.d.ts +2 -3
  128. package/dist/components/ChannelPreview/utils.js +18 -22
  129. package/dist/components/ChannelSearch/ChannelSearch.d.ts +1 -2
  130. package/dist/components/ChannelSearch/ChannelSearch.js +5 -9
  131. package/dist/components/ChannelSearch/SearchBar.d.ts +0 -1
  132. package/dist/components/ChannelSearch/SearchBar.js +21 -28
  133. package/dist/components/ChannelSearch/SearchInput.d.ts +0 -1
  134. package/dist/components/ChannelSearch/SearchInput.js +4 -4
  135. package/dist/components/ChannelSearch/SearchResults.d.ts +0 -1
  136. package/dist/components/ChannelSearch/SearchResults.js +28 -34
  137. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +0 -1
  138. package/dist/components/ChannelSearch/hooks/useChannelSearch.js +108 -131
  139. package/dist/components/ChannelSearch/icons.d.ts +0 -1
  140. package/dist/components/ChannelSearch/icons.js +8 -11
  141. package/dist/components/ChannelSearch/index.d.ts +0 -1
  142. package/dist/components/ChannelSearch/utils.d.ts +0 -1
  143. package/dist/components/ChannelSearch/utils.js +1 -1
  144. package/dist/components/Chat/Chat.d.ts +1 -17
  145. package/dist/components/Chat/Chat.js +18 -27
  146. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts +0 -1
  147. package/dist/components/Chat/hooks/useChannelsQueryState.js +7 -7
  148. package/dist/components/Chat/hooks/useChat.d.ts +1 -2
  149. package/dist/components/Chat/hooks/useChat.js +50 -66
  150. package/dist/components/Chat/hooks/useCreateChatClient.d.ts +0 -1
  151. package/dist/components/Chat/hooks/useCreateChatClient.js +11 -12
  152. package/dist/components/Chat/hooks/useCreateChatContext.d.ts +0 -1
  153. package/dist/components/Chat/hooks/useCreateChatContext.js +23 -24
  154. package/dist/components/Chat/index.d.ts +0 -2
  155. package/dist/components/Chat/index.js +0 -1
  156. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts +0 -1
  157. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +22 -34
  158. package/dist/components/ChatAutoComplete/index.d.ts +0 -1
  159. package/dist/components/CommandItem/CommandItem.d.ts +0 -1
  160. package/dist/components/CommandItem/CommandItem.js +3 -3
  161. package/dist/components/CommandItem/index.d.ts +0 -1
  162. package/dist/components/DateSeparator/DateSeparator.d.ts +0 -1
  163. package/dist/components/DateSeparator/DateSeparator.js +14 -7
  164. package/dist/components/DateSeparator/index.d.ts +0 -1
  165. package/dist/components/Emojis/EmojiPicker.d.ts +0 -1
  166. package/dist/components/Emojis/EmojiPicker.js +30 -45
  167. package/dist/components/Emojis/index.cjs.js +322 -120
  168. package/dist/components/Emojis/index.cjs.js.map +7 -0
  169. package/dist/components/Emojis/index.d.ts +0 -1
  170. package/dist/components/EmoticonItem/EmoticonItem.d.ts +0 -1
  171. package/dist/components/EmoticonItem/EmoticonItem.js +7 -9
  172. package/dist/components/EmoticonItem/index.d.ts +0 -1
  173. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +0 -1
  174. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +7 -8
  175. package/dist/components/EmptyStateIndicator/icons.d.ts +0 -1
  176. package/dist/components/EmptyStateIndicator/icons.js +2 -2
  177. package/dist/components/EmptyStateIndicator/index.d.ts +0 -1
  178. package/dist/components/EventComponent/EventComponent.d.ts +0 -1
  179. package/dist/components/EventComponent/EventComponent.js +19 -14
  180. package/dist/components/EventComponent/index.d.ts +0 -1
  181. package/dist/components/Gallery/BaseImage.d.ts +0 -1
  182. package/dist/components/Gallery/BaseImage.js +9 -11
  183. package/dist/components/Gallery/Gallery.d.ts +0 -1
  184. package/dist/components/Gallery/Gallery.js +23 -23
  185. package/dist/components/Gallery/Image.d.ts +0 -1
  186. package/dist/components/Gallery/Image.js +7 -8
  187. package/dist/components/Gallery/ModalGallery.d.ts +0 -1
  188. package/dist/components/Gallery/ModalGallery.js +13 -18
  189. package/dist/components/Gallery/index.d.ts +0 -1
  190. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +0 -1
  191. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +34 -40
  192. package/dist/components/InfiniteScrollPaginator/index.d.ts +0 -1
  193. package/dist/components/LoadMore/LoadMoreButton.d.ts +0 -1
  194. package/dist/components/LoadMore/LoadMoreButton.js +7 -8
  195. package/dist/components/LoadMore/LoadMorePaginator.d.ts +0 -1
  196. package/dist/components/LoadMore/LoadMorePaginator.js +6 -6
  197. package/dist/components/LoadMore/index.d.ts +0 -1
  198. package/dist/components/Loading/LoadingChannels.d.ts +0 -1
  199. package/dist/components/Loading/LoadingChannels.js +5 -5
  200. package/dist/components/Loading/LoadingErrorIndicator.d.ts +0 -1
  201. package/dist/components/Loading/LoadingErrorIndicator.js +3 -4
  202. package/dist/components/Loading/LoadingIndicator.d.ts +0 -1
  203. package/dist/components/Loading/LoadingIndicator.js +5 -7
  204. package/dist/components/Loading/index.d.ts +0 -1
  205. package/dist/components/MML/MML.d.ts +0 -1
  206. package/dist/components/MML/MML.js +8 -16
  207. package/dist/components/MML/index.d.ts +0 -1
  208. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts +0 -1
  209. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.js +8 -9
  210. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts +0 -1
  211. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.js +2 -3
  212. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts +0 -1
  213. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.js +16 -17
  214. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts +0 -1
  215. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.js +6 -8
  216. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts +0 -1
  217. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.js +3 -6
  218. package/dist/components/MediaRecorder/AudioRecorder/index.d.ts +0 -1
  219. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts +0 -1
  220. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.js +3 -4
  221. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts +0 -1
  222. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.js +36 -44
  223. package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts +0 -1
  224. package/dist/components/MediaRecorder/classes/BrowserPermission.js +45 -80
  225. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts +2 -3
  226. package/dist/components/MediaRecorder/classes/MediaRecorderController.js +185 -236
  227. package/dist/components/MediaRecorder/classes/index.d.ts +0 -1
  228. package/dist/components/MediaRecorder/hooks/index.d.ts +0 -1
  229. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts +0 -1
  230. package/dist/components/MediaRecorder/hooks/useMediaRecorder.js +37 -52
  231. package/dist/components/MediaRecorder/index.d.ts +0 -1
  232. package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts +0 -1
  233. package/dist/components/MediaRecorder/observable/BehaviorSubject.js +19 -28
  234. package/dist/components/MediaRecorder/observable/Observable.d.ts +0 -1
  235. package/dist/components/MediaRecorder/observable/Observable.js +12 -20
  236. package/dist/components/MediaRecorder/observable/Observer.d.ts +0 -1
  237. package/dist/components/MediaRecorder/observable/Subject.d.ts +0 -1
  238. package/dist/components/MediaRecorder/observable/Subject.js +32 -44
  239. package/dist/components/MediaRecorder/observable/Subscription.d.ts +0 -1
  240. package/dist/components/MediaRecorder/observable/Subscription.js +6 -9
  241. package/dist/components/MediaRecorder/observable/index.d.ts +0 -1
  242. package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts +0 -1
  243. package/dist/components/MediaRecorder/transcode/audioProcessing.js +16 -37
  244. package/dist/components/MediaRecorder/transcode/index.d.ts +0 -1
  245. package/dist/components/MediaRecorder/transcode/index.js +3 -4
  246. package/dist/components/MediaRecorder/transcode/mp3.d.ts +0 -1
  247. package/dist/components/MediaRecorder/transcode/mp3.js +25 -46
  248. package/dist/components/MediaRecorder/transcode/wav.d.ts +0 -1
  249. package/dist/components/MediaRecorder/transcode/wav.js +40 -57
  250. package/dist/components/Message/FixedHeightMessage.d.ts +0 -1
  251. package/dist/components/Message/FixedHeightMessage.js +29 -35
  252. package/dist/components/Message/Message.d.ts +1 -2
  253. package/dist/components/Message/Message.js +70 -64
  254. package/dist/components/Message/MessageDeleted.d.ts +0 -1
  255. package/dist/components/Message/MessageDeleted.js +6 -6
  256. package/dist/components/Message/MessageEditedTimestamp.d.ts +0 -1
  257. package/dist/components/Message/MessageEditedTimestamp.js +6 -8
  258. package/dist/components/Message/MessageErrorText.d.ts +0 -1
  259. package/dist/components/Message/MessageErrorText.js +4 -5
  260. package/dist/components/Message/MessageOptions.d.ts +0 -1
  261. package/dist/components/Message/MessageOptions.js +13 -13
  262. package/dist/components/Message/MessageRepliesCountButton.d.ts +0 -1
  263. package/dist/components/Message/MessageRepliesCountButton.js +9 -14
  264. package/dist/components/Message/MessageSimple.d.ts +1 -3
  265. package/dist/components/Message/MessageSimple.js +31 -40
  266. package/dist/components/Message/MessageStatus.d.ts +0 -1
  267. package/dist/components/Message/MessageStatus.js +26 -30
  268. package/dist/components/Message/MessageText.d.ts +0 -1
  269. package/dist/components/Message/MessageText.js +18 -17
  270. package/dist/components/Message/MessageTimestamp.d.ts +0 -1
  271. package/dist/components/Message/MessageTimestamp.js +8 -9
  272. package/dist/components/Message/QuotedMessage.d.ts +0 -1
  273. package/dist/components/Message/QuotedMessage.js +16 -17
  274. package/dist/components/Message/Timestamp.d.ts +0 -1
  275. package/dist/components/Message/Timestamp.js +15 -17
  276. package/dist/components/Message/hooks/index.d.ts +0 -1
  277. package/dist/components/Message/hooks/useActionHandler.d.ts +0 -1
  278. package/dist/components/Message/hooks/useActionHandler.js +29 -39
  279. package/dist/components/Message/hooks/useDeleteHandler.d.ts +1 -2
  280. package/dist/components/Message/hooks/useDeleteHandler.js +20 -34
  281. package/dist/components/Message/hooks/useEditHandler.d.ts +1 -2
  282. package/dist/components/Message/hooks/useEditHandler.js +9 -10
  283. package/dist/components/Message/hooks/useFlagHandler.d.ts +1 -2
  284. package/dist/components/Message/hooks/useFlagHandler.js +24 -39
  285. package/dist/components/Message/hooks/useMarkUnreadHandler.d.ts +1 -2
  286. package/dist/components/Message/hooks/useMarkUnreadHandler.js +28 -42
  287. package/dist/components/Message/hooks/useMentionsHandler.d.ts +4 -5
  288. package/dist/components/Message/hooks/useMentionsHandler.js +6 -7
  289. package/dist/components/Message/hooks/useMuteHandler.d.ts +1 -2
  290. package/dist/components/Message/hooks/useMuteHandler.js +46 -62
  291. package/dist/components/Message/hooks/useOpenThreadHandler.d.ts +1 -2
  292. package/dist/components/Message/hooks/useOpenThreadHandler.js +4 -4
  293. package/dist/components/Message/hooks/usePinHandler.d.ts +0 -1
  294. package/dist/components/Message/hooks/usePinHandler.js +51 -57
  295. package/dist/components/Message/hooks/useReactionHandler.d.ts +2 -3
  296. package/dist/components/Message/hooks/useReactionHandler.js +107 -133
  297. package/dist/components/Message/hooks/useReactionsFetcher.d.ts +0 -1
  298. package/dist/components/Message/hooks/useReactionsFetcher.js +27 -48
  299. package/dist/components/Message/hooks/useRetryHandler.d.ts +1 -2
  300. package/dist/components/Message/hooks/useRetryHandler.js +8 -17
  301. package/dist/components/Message/hooks/useUserHandler.d.ts +4 -5
  302. package/dist/components/Message/hooks/useUserHandler.js +6 -6
  303. package/dist/components/Message/hooks/useUserRole.d.ts +0 -1
  304. package/dist/components/Message/hooks/useUserRole.js +27 -28
  305. package/dist/components/Message/icons.d.ts +0 -4
  306. package/dist/components/Message/icons.js +16 -33
  307. package/dist/components/Message/index.d.ts +0 -1
  308. package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts +0 -1
  309. package/dist/components/Message/renderText/componentRenderers/Anchor.js +3 -4
  310. package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts +0 -1
  311. package/dist/components/Message/renderText/componentRenderers/Emoji.js +1 -4
  312. package/dist/components/Message/renderText/componentRenderers/Mention.d.ts +0 -1
  313. package/dist/components/Message/renderText/componentRenderers/Mention.js +1 -4
  314. package/dist/components/Message/renderText/componentRenderers/index.d.ts +0 -1
  315. package/dist/components/Message/renderText/index.d.ts +0 -1
  316. package/dist/components/Message/renderText/regex.d.ts +0 -1
  317. package/dist/components/Message/renderText/regex.js +11 -11
  318. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts +0 -1
  319. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.js +3 -5
  320. package/dist/components/Message/renderText/rehypePlugins/index.d.ts +0 -1
  321. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts +0 -1
  322. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.js +16 -20
  323. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts +0 -1
  324. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.js +3 -3
  325. package/dist/components/Message/renderText/remarkPlugins/index.d.ts +0 -1
  326. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.d.ts +0 -1
  327. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.js +15 -14
  328. package/dist/components/Message/renderText/renderText.d.ts +1 -2
  329. package/dist/components/Message/renderText/renderText.js +27 -27
  330. package/dist/components/Message/renderText/types.d.ts +0 -1
  331. package/dist/components/Message/types.d.ts +0 -1
  332. package/dist/components/Message/utils.d.ts +15 -16
  333. package/dist/components/Message/utils.js +50 -60
  334. package/dist/components/MessageActions/CustomMessageActionsList.d.ts +0 -5
  335. package/dist/components/MessageActions/CustomMessageActionsList.js +6 -6
  336. package/dist/components/MessageActions/MessageActions.d.ts +0 -1
  337. package/dist/components/MessageActions/MessageActions.js +39 -37
  338. package/dist/components/MessageActions/MessageActionsBox.d.ts +0 -1
  339. package/dist/components/MessageActions/MessageActionsBox.js +14 -15
  340. package/dist/components/MessageActions/hooks/index.d.ts +0 -1
  341. package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.d.ts +1 -1
  342. package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.js +10 -11
  343. package/dist/components/MessageActions/index.d.ts +0 -1
  344. package/dist/components/MessageBounce/MessageBounceModal.d.ts +0 -1
  345. package/dist/components/MessageBounce/MessageBounceModal.js +2 -4
  346. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts +0 -1
  347. package/dist/components/MessageBounce/MessageBouncePrompt.js +6 -7
  348. package/dist/components/MessageBounce/index.d.ts +0 -1
  349. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts +0 -1
  350. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.js +5 -6
  351. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts +1 -2
  352. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.js +8 -8
  353. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts +1 -2
  354. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.js +9 -10
  355. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts +1 -2
  356. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.js +8 -10
  357. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts +1 -2
  358. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.js +37 -47
  359. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts +1 -2
  360. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.js +7 -9
  361. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts +0 -1
  362. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts +0 -1
  363. package/dist/components/MessageInput/CooldownTimer.d.ts +0 -1
  364. package/dist/components/MessageInput/CooldownTimer.js +2 -3
  365. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts +0 -1
  366. package/dist/components/MessageInput/DefaultTriggerProvider.js +7 -6
  367. package/dist/components/MessageInput/DropzoneProvider.d.ts +1 -2
  368. package/dist/components/MessageInput/DropzoneProvider.js +11 -9
  369. package/dist/components/MessageInput/EditMessageForm.d.ts +0 -1
  370. package/dist/components/MessageInput/EditMessageForm.js +13 -40
  371. package/dist/components/MessageInput/LinkPreviewList.d.ts +0 -1
  372. package/dist/components/MessageInput/LinkPreviewList.js +9 -13
  373. package/dist/components/MessageInput/MessageInput.d.ts +0 -1
  374. package/dist/components/MessageInput/MessageInput.js +17 -14
  375. package/dist/components/MessageInput/MessageInputFlat.d.ts +0 -1
  376. package/dist/components/MessageInput/MessageInputFlat.js +47 -82
  377. package/dist/components/MessageInput/QuotedMessagePreview.d.ts +0 -1
  378. package/dist/components/MessageInput/QuotedMessagePreview.js +17 -27
  379. package/dist/components/MessageInput/SendButton.d.ts +0 -1
  380. package/dist/components/MessageInput/SendButton.js +3 -8
  381. package/dist/components/MessageInput/hooks/index.d.ts +0 -1
  382. package/dist/components/MessageInput/hooks/useAttachments.d.ts +2 -3
  383. package/dist/components/MessageInput/hooks/useAttachments.js +134 -132
  384. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts +0 -1
  385. package/dist/components/MessageInput/hooks/useCommandTrigger.js +22 -27
  386. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +0 -1
  387. package/dist/components/MessageInput/hooks/useCooldownTimer.js +19 -22
  388. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts +0 -1
  389. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.js +76 -82
  390. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +1 -2
  391. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +28 -43
  392. package/dist/components/MessageInput/hooks/useFileUploads.d.ts +1 -2
  393. package/dist/components/MessageInput/hooks/useFileUploads.js +67 -82
  394. package/dist/components/MessageInput/hooks/useImageUploads.d.ts +0 -1
  395. package/dist/components/MessageInput/hooks/useImageUploads.js +74 -87
  396. package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts +0 -1
  397. package/dist/components/MessageInput/hooks/useLinkPreviews.js +38 -34
  398. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +1 -21
  399. package/dist/components/MessageInput/hooks/useMessageInputState.js +174 -114
  400. package/dist/components/MessageInput/hooks/useMessageInputText.d.ts +2 -2
  401. package/dist/components/MessageInput/hooks/useMessageInputText.js +24 -24
  402. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts +0 -1
  403. package/dist/components/MessageInput/hooks/usePasteHandler.js +36 -51
  404. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts +2 -3
  405. package/dist/components/MessageInput/hooks/useSubmitHandler.js +138 -157
  406. package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts +0 -1
  407. package/dist/components/MessageInput/hooks/useTimeElapsed.js +14 -15
  408. package/dist/components/MessageInput/hooks/useTimer.d.ts +0 -1
  409. package/dist/components/MessageInput/hooks/useTimer.js +8 -9
  410. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +0 -1
  411. package/dist/components/MessageInput/hooks/useUserTrigger.js +77 -99
  412. package/dist/components/MessageInput/hooks/utils.d.ts +0 -1
  413. package/dist/components/MessageInput/hooks/utils.js +75 -100
  414. package/dist/components/MessageInput/icons.d.ts +2 -8
  415. package/dist/components/MessageInput/icons.js +35 -66
  416. package/dist/components/MessageInput/index.d.ts +0 -3
  417. package/dist/components/MessageInput/index.js +0 -2
  418. package/dist/components/MessageInput/types.d.ts +0 -1
  419. package/dist/components/MessageList/ConnectionStatus.d.ts +0 -1
  420. package/dist/components/MessageList/ConnectionStatus.js +8 -9
  421. package/dist/components/MessageList/CustomNotification.d.ts +0 -1
  422. package/dist/components/MessageList/CustomNotification.js +4 -4
  423. package/dist/components/MessageList/GiphyPreviewMessage.d.ts +0 -1
  424. package/dist/components/MessageList/GiphyPreviewMessage.js +2 -2
  425. package/dist/components/MessageList/MessageList.d.ts +0 -1
  426. package/dist/components/MessageList/MessageList.js +76 -86
  427. package/dist/components/MessageList/MessageListMainPanel.d.ts +0 -1
  428. package/dist/components/MessageList/MessageListMainPanel.js +2 -9
  429. package/dist/components/MessageList/MessageListNotifications.d.ts +0 -1
  430. package/dist/components/MessageList/MessageListNotifications.js +4 -4
  431. package/dist/components/MessageList/MessageNotification.d.ts +0 -1
  432. package/dist/components/MessageList/MessageNotification.js +4 -4
  433. package/dist/components/MessageList/ScrollToBottomButton.d.ts +0 -1
  434. package/dist/components/MessageList/ScrollToBottomButton.js +27 -25
  435. package/dist/components/MessageList/UnreadMessagesNotification.d.ts +0 -1
  436. package/dist/components/MessageList/UnreadMessagesNotification.js +6 -7
  437. package/dist/components/MessageList/UnreadMessagesSeparator.d.ts +0 -1
  438. package/dist/components/MessageList/UnreadMessagesSeparator.js +3 -4
  439. package/dist/components/MessageList/VirtualizedMessageList.d.ts +0 -1
  440. package/dist/components/MessageList/VirtualizedMessageList.js +114 -125
  441. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts +3 -11
  442. package/dist/components/MessageList/VirtualizedMessageListComponents.js +46 -61
  443. package/dist/components/MessageList/hooks/MessageList/index.d.ts +0 -1
  444. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +3 -16
  445. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.js +21 -23
  446. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +0 -1
  447. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.js +18 -21
  448. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts +0 -1
  449. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.js +19 -20
  450. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +0 -1
  451. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.js +33 -33
  452. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +0 -1
  453. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.js +20 -21
  454. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts +0 -1
  455. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts +1 -1
  456. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.js +9 -9
  457. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts +0 -1
  458. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.js +7 -9
  459. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +1 -1
  460. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.js +15 -16
  461. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts +0 -1
  462. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.js +12 -13
  463. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts +0 -1
  464. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.js +7 -8
  465. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts +0 -1
  466. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.js +6 -7
  467. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +0 -1
  468. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.js +9 -10
  469. package/dist/components/MessageList/hooks/index.d.ts +0 -1
  470. package/dist/components/MessageList/hooks/useLastReadData.d.ts +0 -1
  471. package/dist/components/MessageList/hooks/useLastReadData.js +3 -8
  472. package/dist/components/MessageList/hooks/useMarkRead.d.ts +0 -1
  473. package/dist/components/MessageList/hooks/useMarkRead.js +33 -34
  474. package/dist/components/MessageList/icons.d.ts +0 -1
  475. package/dist/components/MessageList/icons.js +6 -12
  476. package/dist/components/MessageList/index.d.ts +0 -1
  477. package/dist/components/MessageList/renderMessages.d.ts +0 -1
  478. package/dist/components/MessageList/renderMessages.js +23 -25
  479. package/dist/components/MessageList/utils.d.ts +0 -1
  480. package/dist/components/MessageList/utils.js +51 -59
  481. package/dist/components/Modal/Modal.d.ts +0 -1
  482. package/dist/components/Modal/Modal.js +13 -19
  483. package/dist/components/Modal/icons.d.ts +0 -1
  484. package/dist/components/Modal/icons.js +2 -2
  485. package/dist/components/Modal/index.d.ts +0 -1
  486. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts +2 -4
  487. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.js +7 -11
  488. package/dist/components/ReactFileUtilities/FileIcon/{FileIconSet/v2.d.ts → FileIconSet.d.ts} +18 -19
  489. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet.js +122 -0
  490. package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts +4 -13
  491. package/dist/components/ReactFileUtilities/FileIcon/iconMap.js +42 -61
  492. package/dist/components/ReactFileUtilities/FileIcon/index.d.ts +0 -1
  493. package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.d.ts +0 -1
  494. package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.js +5 -5
  495. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts +0 -1
  496. package/dist/components/ReactFileUtilities/ImageDropzone.js +19 -24
  497. package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts +0 -1
  498. package/dist/components/ReactFileUtilities/LoadingIndicator.js +8 -11
  499. package/dist/components/ReactFileUtilities/UploadButton.d.ts +0 -1
  500. package/dist/components/ReactFileUtilities/UploadButton.js +3 -5
  501. package/dist/components/ReactFileUtilities/index.d.ts +0 -8
  502. package/dist/components/ReactFileUtilities/index.js +0 -7
  503. package/dist/components/ReactFileUtilities/types.d.ts +0 -1
  504. package/dist/components/ReactFileUtilities/utils.d.ts +1 -2
  505. package/dist/components/ReactFileUtilities/utils.js +72 -119
  506. package/dist/components/Reactions/ReactionSelector.d.ts +0 -1
  507. package/dist/components/Reactions/ReactionSelector.js +43 -55
  508. package/dist/components/Reactions/ReactionsList.d.ts +0 -1
  509. package/dist/components/Reactions/ReactionsList.js +17 -20
  510. package/dist/components/Reactions/ReactionsListModal.d.ts +0 -1
  511. package/dist/components/Reactions/ReactionsListModal.js +25 -41
  512. package/dist/components/Reactions/SimpleReactionsList.d.ts +0 -1
  513. package/dist/components/Reactions/SimpleReactionsList.js +19 -31
  514. package/dist/components/Reactions/SpriteImage.d.ts +0 -1
  515. package/dist/components/Reactions/SpriteImage.js +19 -7
  516. package/dist/components/Reactions/StreamEmoji.d.ts +2 -4
  517. package/dist/components/Reactions/StreamEmoji.js +4 -5
  518. package/dist/components/Reactions/hooks/useFetchReactions.d.ts +0 -1
  519. package/dist/components/Reactions/hooks/useFetchReactions.js +27 -39
  520. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +0 -1
  521. package/dist/components/Reactions/hooks/useProcessReactions.js +30 -44
  522. package/dist/components/Reactions/index.d.ts +0 -1
  523. package/dist/components/Reactions/reactionOptions.d.ts +0 -1
  524. package/dist/components/Reactions/reactionOptions.js +6 -6
  525. package/dist/components/Reactions/types.d.ts +0 -1
  526. package/dist/components/Reactions/utils/utils.d.ts +1 -2
  527. package/dist/components/Reactions/utils/utils.js +10 -12
  528. package/dist/components/SafeAnchor/SafeAnchor.d.ts +0 -1
  529. package/dist/components/SafeAnchor/SafeAnchor.js +5 -5
  530. package/dist/components/SafeAnchor/index.d.ts +0 -1
  531. package/dist/components/Thread/Thread.d.ts +0 -1
  532. package/dist/components/Thread/Thread.js +22 -24
  533. package/dist/components/Thread/ThreadHead.d.ts +1 -2
  534. package/dist/components/Thread/ThreadHead.js +3 -4
  535. package/dist/components/Thread/ThreadHeader.d.ts +1 -2
  536. package/dist/components/Thread/ThreadHeader.js +10 -10
  537. package/dist/components/Thread/ThreadStart.d.ts +0 -1
  538. package/dist/components/Thread/ThreadStart.js +4 -4
  539. package/dist/components/Thread/icons.d.ts +1 -2
  540. package/dist/components/Thread/icons.js +3 -4
  541. package/dist/components/Thread/index.d.ts +0 -1
  542. package/dist/components/Tooltip/Tooltip.d.ts +0 -1
  543. package/dist/components/Tooltip/Tooltip.js +8 -13
  544. package/dist/components/Tooltip/hooks/index.d.ts +0 -1
  545. package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts +1 -2
  546. package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.js +7 -8
  547. package/dist/components/Tooltip/index.d.ts +0 -1
  548. package/dist/components/TypingIndicator/TypingIndicator.d.ts +2 -8
  549. package/dist/components/TypingIndicator/TypingIndicator.js +27 -57
  550. package/dist/components/TypingIndicator/index.d.ts +0 -1
  551. package/dist/components/UserItem/UserItem.d.ts +0 -1
  552. package/dist/components/UserItem/UserItem.js +10 -13
  553. package/dist/components/UserItem/index.d.ts +0 -1
  554. package/dist/components/UtilityComponents/NullComponent.d.ts +1 -0
  555. package/dist/components/UtilityComponents/NullComponent.js +1 -0
  556. package/dist/components/UtilityComponents/index.d.ts +1 -0
  557. package/dist/components/UtilityComponents/index.js +1 -0
  558. package/dist/components/Window/Window.d.ts +1 -2
  559. package/dist/components/Window/Window.js +4 -4
  560. package/dist/components/Window/index.d.ts +0 -1
  561. package/dist/components/index.d.ts +0 -2
  562. package/dist/components/index.js +0 -1
  563. package/dist/constants/limits.d.ts +0 -1
  564. package/dist/constants/limits.js +7 -7
  565. package/dist/constants/messageTypes.d.ts +0 -1
  566. package/dist/constants/messageTypes.js +1 -1
  567. package/dist/context/ChannelActionContext.d.ts +3 -4
  568. package/dist/context/ChannelActionContext.js +9 -13
  569. package/dist/context/ChannelListContext.d.ts +1 -2
  570. package/dist/context/ChannelListContext.js +5 -8
  571. package/dist/context/ChannelStateContext.d.ts +2 -3
  572. package/dist/context/ChannelStateContext.js +9 -13
  573. package/dist/context/ChatContext.d.ts +2 -8
  574. package/dist/context/ChatContext.js +10 -14
  575. package/dist/context/ComponentContext.d.ts +2 -5
  576. package/dist/context/ComponentContext.js +9 -13
  577. package/dist/context/MessageBounceContext.d.ts +0 -1
  578. package/dist/context/MessageBounceContext.js +16 -17
  579. package/dist/context/MessageContext.d.ts +1 -2
  580. package/dist/context/MessageContext.js +9 -13
  581. package/dist/context/MessageInputContext.d.ts +3 -4
  582. package/dist/context/MessageInputContext.js +5 -8
  583. package/dist/context/MessageListContext.d.ts +1 -2
  584. package/dist/context/MessageListContext.js +5 -8
  585. package/dist/context/TranslationContext.d.ts +1 -2
  586. package/dist/context/TranslationContext.js +17 -27
  587. package/dist/context/TypingContext.d.ts +2 -3
  588. package/dist/context/TypingContext.js +9 -13
  589. package/dist/context/index.d.ts +0 -1
  590. package/dist/context/utils/getDisplayName.d.ts +1 -2
  591. package/dist/context/utils/getDisplayName.js +1 -3
  592. package/dist/css/v2/emoji-replacement.css +1 -1
  593. package/dist/css/v2/index.css +2 -2
  594. package/dist/css/v2/index.layout.css +2 -2
  595. package/dist/i18n/Streami18n.d.ts +1 -1
  596. package/dist/i18n/Streami18n.js +143 -175
  597. package/dist/i18n/de.json +1 -0
  598. package/dist/i18n/en.json +1 -0
  599. package/dist/i18n/es.json +1 -0
  600. package/dist/i18n/fr.json +1 -0
  601. package/dist/i18n/hi.json +1 -0
  602. package/dist/i18n/index.d.ts +0 -1
  603. package/dist/i18n/it.json +1 -0
  604. package/dist/i18n/ja.json +1 -0
  605. package/dist/i18n/ko.json +1 -0
  606. package/dist/i18n/nl.json +1 -0
  607. package/dist/i18n/pt.json +1 -0
  608. package/dist/i18n/ru.json +1 -0
  609. package/dist/i18n/tr.json +1 -0
  610. package/dist/i18n/translations.d.ts +0 -1
  611. package/dist/i18n/utils.d.ts +0 -1
  612. package/dist/i18n/utils.js +20 -15
  613. package/dist/index.cjs.js +63460 -1990
  614. package/dist/index.cjs.js.map +7 -0
  615. package/dist/index.d.ts +0 -1
  616. package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +1 -1
  617. package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +4 -2
  618. package/dist/scss/v2/Avatar/Avatar-layout.scss +31 -23
  619. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +0 -5
  620. package/dist/scss/v2/ChannelSearch/ChannelSearch-layout.scss +1 -0
  621. package/dist/scss/v2/EditMessageForm/EditMessageForm-theme.scss +9 -9
  622. package/dist/scss/v2/Message/Message-layout.scss +37 -6
  623. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-layout.scss +11 -0
  624. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-theme.scss +5 -0
  625. package/dist/scss/v2/_emoji-replacement.scss +4 -2
  626. package/dist/types/index.d.ts +0 -1
  627. package/dist/types/types.d.ts +0 -1
  628. package/dist/utils/browsers.d.ts +0 -1
  629. package/dist/utils/browsers.js +1 -1
  630. package/dist/utils/deprecationWarning.d.ts +0 -1
  631. package/dist/utils/deprecationWarning.js +5 -5
  632. package/dist/utils/getChannel.d.ts +0 -1
  633. package/dist/utils/getChannel.js +30 -41
  634. package/dist/utils/getWholeChar.d.ts +0 -1
  635. package/dist/utils/getWholeChar.js +4 -4
  636. package/dist/utils/index.d.ts +0 -2
  637. package/dist/utils/index.js +0 -1
  638. package/dist/utils/mergeDeep.d.ts +0 -1
  639. package/dist/utils/mergeDeep.js +4 -4
  640. package/dist/version.d.ts +1 -2
  641. package/dist/version.js +1 -1
  642. package/package.json +18 -43
  643. package/dist/Window-b4032c33.js +0 -49584
  644. package/dist/browser.full-bundle.js +0 -98330
  645. package/dist/browser.full-bundle.js.map +0 -1
  646. package/dist/browser.full-bundle.min.js +0 -28
  647. package/dist/browser.full-bundle.min.js.map +0 -1
  648. package/dist/components/Attachment/Attachment.d.ts.map +0 -1
  649. package/dist/components/Attachment/AttachmentActions.d.ts.map +0 -1
  650. package/dist/components/Attachment/AttachmentContainer.d.ts.map +0 -1
  651. package/dist/components/Attachment/Audio.d.ts.map +0 -1
  652. package/dist/components/Attachment/Card.d.ts.map +0 -1
  653. package/dist/components/Attachment/FileAttachment.d.ts.map +0 -1
  654. package/dist/components/Attachment/UnsupportedAttachment.d.ts.map +0 -1
  655. package/dist/components/Attachment/VoiceRecording.d.ts.map +0 -1
  656. package/dist/components/Attachment/attachment-sizing.d.ts.map +0 -1
  657. package/dist/components/Attachment/audioSampling.d.ts.map +0 -1
  658. package/dist/components/Attachment/components/DownloadButton.d.ts.map +0 -1
  659. package/dist/components/Attachment/components/FileSizeIndicator.d.ts.map +0 -1
  660. package/dist/components/Attachment/components/PlayButton.d.ts.map +0 -1
  661. package/dist/components/Attachment/components/PlaybackRateButton.d.ts.map +0 -1
  662. package/dist/components/Attachment/components/ProgressBar.d.ts.map +0 -1
  663. package/dist/components/Attachment/components/WaveProgressBar.d.ts.map +0 -1
  664. package/dist/components/Attachment/components/index.d.ts.map +0 -1
  665. package/dist/components/Attachment/hooks/useAudioController.d.ts.map +0 -1
  666. package/dist/components/Attachment/icons.d.ts.map +0 -1
  667. package/dist/components/Attachment/index.d.ts.map +0 -1
  668. package/dist/components/Attachment/utils.d.ts.map +0 -1
  669. package/dist/components/AutoCompleteTextarea/Header.d.ts +0 -8
  670. package/dist/components/AutoCompleteTextarea/Header.d.ts.map +0 -1
  671. package/dist/components/AutoCompleteTextarea/Header.js +0 -26
  672. package/dist/components/AutoCompleteTextarea/Item.d.ts.map +0 -1
  673. package/dist/components/AutoCompleteTextarea/List.d.ts.map +0 -1
  674. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +0 -1
  675. package/dist/components/AutoCompleteTextarea/index.d.ts.map +0 -1
  676. package/dist/components/AutoCompleteTextarea/types.d.ts.map +0 -1
  677. package/dist/components/AutoCompleteTextarea/utils.d.ts.map +0 -1
  678. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  679. package/dist/components/Avatar/index.d.ts.map +0 -1
  680. package/dist/components/Channel/Channel.d.ts.map +0 -1
  681. package/dist/components/Channel/LoadingChannel.d.ts.map +0 -1
  682. package/dist/components/Channel/channelState.d.ts.map +0 -1
  683. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts.map +0 -1
  684. package/dist/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +0 -1
  685. package/dist/components/Channel/hooks/useCreateTypingContext.d.ts.map +0 -1
  686. package/dist/components/Channel/hooks/useEditMessageHandler.d.ts.map +0 -1
  687. package/dist/components/Channel/hooks/useIsMounted.d.ts.map +0 -1
  688. package/dist/components/Channel/hooks/useMentionsHandlers.d.ts.map +0 -1
  689. package/dist/components/Channel/index.d.ts.map +0 -1
  690. package/dist/components/Channel/utils.d.ts.map +0 -1
  691. package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +0 -1
  692. package/dist/components/ChannelHeader/icons.d.ts.map +0 -1
  693. package/dist/components/ChannelHeader/index.d.ts.map +0 -1
  694. package/dist/components/ChannelList/ChannelList.d.ts.map +0 -1
  695. package/dist/components/ChannelList/ChannelListMessenger.d.ts.map +0 -1
  696. package/dist/components/ChannelList/hooks/index.d.ts.map +0 -1
  697. package/dist/components/ChannelList/hooks/useChannelDeletedListener.d.ts.map +0 -1
  698. package/dist/components/ChannelList/hooks/useChannelHiddenListener.d.ts.map +0 -1
  699. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts.map +0 -1
  700. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts.map +0 -1
  701. package/dist/components/ChannelList/hooks/useChannelVisibleListener.d.ts.map +0 -1
  702. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +0 -1
  703. package/dist/components/ChannelList/hooks/useMessageNewListener.d.ts.map +0 -1
  704. package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts.map +0 -1
  705. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.d.ts.map +0 -1
  706. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.d.ts.map +0 -1
  707. package/dist/components/ChannelList/hooks/useNotificationRemovedFromChannelListener.d.ts.map +0 -1
  708. package/dist/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +0 -1
  709. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.d.ts.map +0 -1
  710. package/dist/components/ChannelList/index.d.ts.map +0 -1
  711. package/dist/components/ChannelList/utils.d.ts.map +0 -1
  712. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +0 -1
  713. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +0 -1
  714. package/dist/components/ChannelPreview/hooks/index.d.ts.map +0 -1
  715. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts.map +0 -1
  716. package/dist/components/ChannelPreview/hooks/useIsChannelMuted.d.ts.map +0 -1
  717. package/dist/components/ChannelPreview/hooks/useMessageDeliveryStatus.d.ts.map +0 -1
  718. package/dist/components/ChannelPreview/index.d.ts.map +0 -1
  719. package/dist/components/ChannelPreview/utils.d.ts.map +0 -1
  720. package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +0 -1
  721. package/dist/components/ChannelSearch/SearchBar.d.ts.map +0 -1
  722. package/dist/components/ChannelSearch/SearchInput.d.ts.map +0 -1
  723. package/dist/components/ChannelSearch/SearchResults.d.ts.map +0 -1
  724. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +0 -1
  725. package/dist/components/ChannelSearch/icons.d.ts.map +0 -1
  726. package/dist/components/ChannelSearch/index.d.ts.map +0 -1
  727. package/dist/components/ChannelSearch/utils.d.ts.map +0 -1
  728. package/dist/components/Chat/Chat.d.ts.map +0 -1
  729. package/dist/components/Chat/hooks/useChannelsQueryState.d.ts.map +0 -1
  730. package/dist/components/Chat/hooks/useChat.d.ts.map +0 -1
  731. package/dist/components/Chat/hooks/useCreateChatClient.d.ts.map +0 -1
  732. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +0 -1
  733. package/dist/components/Chat/hooks/useCustomStyles.d.ts +0 -12
  734. package/dist/components/Chat/hooks/useCustomStyles.d.ts.map +0 -1
  735. package/dist/components/Chat/hooks/useCustomStyles.js +0 -36
  736. package/dist/components/Chat/index.d.ts.map +0 -1
  737. package/dist/components/ChatAutoComplete/ChatAutoComplete.d.ts.map +0 -1
  738. package/dist/components/ChatAutoComplete/index.d.ts.map +0 -1
  739. package/dist/components/ChatDown/ChatDown.d.ts +0 -14
  740. package/dist/components/ChatDown/ChatDown.d.ts.map +0 -1
  741. package/dist/components/ChatDown/ChatDown.js +0 -16
  742. package/dist/components/ChatDown/icons.d.ts +0 -3
  743. package/dist/components/ChatDown/icons.d.ts.map +0 -1
  744. package/dist/components/ChatDown/icons.js +0 -7
  745. package/dist/components/ChatDown/index.d.ts +0 -2
  746. package/dist/components/ChatDown/index.d.ts.map +0 -1
  747. package/dist/components/ChatDown/index.js +0 -1
  748. package/dist/components/CommandItem/CommandItem.d.ts.map +0 -1
  749. package/dist/components/CommandItem/index.d.ts.map +0 -1
  750. package/dist/components/DateSeparator/DateSeparator.d.ts.map +0 -1
  751. package/dist/components/DateSeparator/index.d.ts.map +0 -1
  752. package/dist/components/Emojis/EmojiPicker.d.ts.map +0 -1
  753. package/dist/components/Emojis/index.d.ts.map +0 -1
  754. package/dist/components/EmoticonItem/EmoticonItem.d.ts.map +0 -1
  755. package/dist/components/EmoticonItem/index.d.ts.map +0 -1
  756. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +0 -1
  757. package/dist/components/EmptyStateIndicator/icons.d.ts.map +0 -1
  758. package/dist/components/EmptyStateIndicator/index.d.ts.map +0 -1
  759. package/dist/components/EventComponent/EventComponent.d.ts.map +0 -1
  760. package/dist/components/EventComponent/index.d.ts.map +0 -1
  761. package/dist/components/Gallery/BaseImage.d.ts.map +0 -1
  762. package/dist/components/Gallery/Gallery.d.ts.map +0 -1
  763. package/dist/components/Gallery/Image.d.ts.map +0 -1
  764. package/dist/components/Gallery/ModalGallery.d.ts.map +0 -1
  765. package/dist/components/Gallery/index.d.ts.map +0 -1
  766. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +0 -1
  767. package/dist/components/InfiniteScrollPaginator/index.d.ts.map +0 -1
  768. package/dist/components/LoadMore/LoadMoreButton.d.ts.map +0 -1
  769. package/dist/components/LoadMore/LoadMorePaginator.d.ts.map +0 -1
  770. package/dist/components/LoadMore/index.d.ts.map +0 -1
  771. package/dist/components/Loading/LoadingChannels.d.ts.map +0 -1
  772. package/dist/components/Loading/LoadingErrorIndicator.d.ts.map +0 -1
  773. package/dist/components/Loading/LoadingIndicator.d.ts.map +0 -1
  774. package/dist/components/Loading/index.d.ts.map +0 -1
  775. package/dist/components/MML/MML.d.ts.map +0 -1
  776. package/dist/components/MML/index.d.ts.map +0 -1
  777. package/dist/components/MediaRecorder/AudioRecorder/AudioRecorder.d.ts.map +0 -1
  778. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingButtons.d.ts.map +0 -1
  779. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingInProgress.d.ts.map +0 -1
  780. package/dist/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts.map +0 -1
  781. package/dist/components/MediaRecorder/AudioRecorder/RecordingTimer.d.ts.map +0 -1
  782. package/dist/components/MediaRecorder/AudioRecorder/index.d.ts.map +0 -1
  783. package/dist/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts.map +0 -1
  784. package/dist/components/MediaRecorder/classes/AmplitudeRecorder.d.ts.map +0 -1
  785. package/dist/components/MediaRecorder/classes/BrowserPermission.d.ts.map +0 -1
  786. package/dist/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +0 -1
  787. package/dist/components/MediaRecorder/classes/index.d.ts.map +0 -1
  788. package/dist/components/MediaRecorder/hooks/index.d.ts.map +0 -1
  789. package/dist/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +0 -1
  790. package/dist/components/MediaRecorder/index.d.ts.map +0 -1
  791. package/dist/components/MediaRecorder/observable/BehaviorSubject.d.ts.map +0 -1
  792. package/dist/components/MediaRecorder/observable/Observable.d.ts.map +0 -1
  793. package/dist/components/MediaRecorder/observable/Observer.d.ts.map +0 -1
  794. package/dist/components/MediaRecorder/observable/Subject.d.ts.map +0 -1
  795. package/dist/components/MediaRecorder/observable/Subscription.d.ts.map +0 -1
  796. package/dist/components/MediaRecorder/observable/index.d.ts.map +0 -1
  797. package/dist/components/MediaRecorder/transcode/audioProcessing.d.ts.map +0 -1
  798. package/dist/components/MediaRecorder/transcode/index.d.ts.map +0 -1
  799. package/dist/components/MediaRecorder/transcode/mp3.d.ts.map +0 -1
  800. package/dist/components/MediaRecorder/transcode/wav.d.ts.map +0 -1
  801. package/dist/components/Message/FixedHeightMessage.d.ts.map +0 -1
  802. package/dist/components/Message/Message.d.ts.map +0 -1
  803. package/dist/components/Message/MessageDeleted.d.ts.map +0 -1
  804. package/dist/components/Message/MessageEditedTimestamp.d.ts.map +0 -1
  805. package/dist/components/Message/MessageErrorText.d.ts.map +0 -1
  806. package/dist/components/Message/MessageOptions.d.ts.map +0 -1
  807. package/dist/components/Message/MessageRepliesCountButton.d.ts.map +0 -1
  808. package/dist/components/Message/MessageSimple.d.ts.map +0 -1
  809. package/dist/components/Message/MessageStatus.d.ts.map +0 -1
  810. package/dist/components/Message/MessageText.d.ts.map +0 -1
  811. package/dist/components/Message/MessageTimestamp.d.ts.map +0 -1
  812. package/dist/components/Message/QuotedMessage.d.ts.map +0 -1
  813. package/dist/components/Message/Timestamp.d.ts.map +0 -1
  814. package/dist/components/Message/hooks/index.d.ts.map +0 -1
  815. package/dist/components/Message/hooks/useActionHandler.d.ts.map +0 -1
  816. package/dist/components/Message/hooks/useDeleteHandler.d.ts.map +0 -1
  817. package/dist/components/Message/hooks/useEditHandler.d.ts.map +0 -1
  818. package/dist/components/Message/hooks/useFlagHandler.d.ts.map +0 -1
  819. package/dist/components/Message/hooks/useMarkUnreadHandler.d.ts.map +0 -1
  820. package/dist/components/Message/hooks/useMentionsHandler.d.ts.map +0 -1
  821. package/dist/components/Message/hooks/useMuteHandler.d.ts.map +0 -1
  822. package/dist/components/Message/hooks/useOpenThreadHandler.d.ts.map +0 -1
  823. package/dist/components/Message/hooks/usePinHandler.d.ts.map +0 -1
  824. package/dist/components/Message/hooks/useReactionHandler.d.ts.map +0 -1
  825. package/dist/components/Message/hooks/useReactionsFetcher.d.ts.map +0 -1
  826. package/dist/components/Message/hooks/useRetryHandler.d.ts.map +0 -1
  827. package/dist/components/Message/hooks/useUserHandler.d.ts.map +0 -1
  828. package/dist/components/Message/hooks/useUserRole.d.ts.map +0 -1
  829. package/dist/components/Message/icons.d.ts.map +0 -1
  830. package/dist/components/Message/index.d.ts.map +0 -1
  831. package/dist/components/Message/renderText/componentRenderers/Anchor.d.ts.map +0 -1
  832. package/dist/components/Message/renderText/componentRenderers/Emoji.d.ts.map +0 -1
  833. package/dist/components/Message/renderText/componentRenderers/Mention.d.ts.map +0 -1
  834. package/dist/components/Message/renderText/componentRenderers/index.d.ts.map +0 -1
  835. package/dist/components/Message/renderText/index.d.ts.map +0 -1
  836. package/dist/components/Message/renderText/regex.d.ts.map +0 -1
  837. package/dist/components/Message/renderText/rehypePlugins/emojiMarkdownPlugin.d.ts.map +0 -1
  838. package/dist/components/Message/renderText/rehypePlugins/index.d.ts.map +0 -1
  839. package/dist/components/Message/renderText/rehypePlugins/mentionsMarkdownPlugin.d.ts.map +0 -1
  840. package/dist/components/Message/renderText/remarkPlugins/htmlToTextPlugin.d.ts.map +0 -1
  841. package/dist/components/Message/renderText/remarkPlugins/index.d.ts.map +0 -1
  842. package/dist/components/Message/renderText/remarkPlugins/keepLineBreaksPlugin.d.ts.map +0 -1
  843. package/dist/components/Message/renderText/renderText.d.ts.map +0 -1
  844. package/dist/components/Message/renderText/types.d.ts.map +0 -1
  845. package/dist/components/Message/types.d.ts.map +0 -1
  846. package/dist/components/Message/utils.d.ts.map +0 -1
  847. package/dist/components/MessageActions/CustomMessageActionsList.d.ts.map +0 -1
  848. package/dist/components/MessageActions/MessageActions.d.ts.map +0 -1
  849. package/dist/components/MessageActions/MessageActionsBox.d.ts.map +0 -1
  850. package/dist/components/MessageActions/hooks/index.d.ts.map +0 -1
  851. package/dist/components/MessageActions/hooks/useMessageActionsBoxPopper.d.ts.map +0 -1
  852. package/dist/components/MessageActions/index.d.ts.map +0 -1
  853. package/dist/components/MessageBounce/MessageBounceModal.d.ts.map +0 -1
  854. package/dist/components/MessageBounce/MessageBouncePrompt.d.ts.map +0 -1
  855. package/dist/components/MessageBounce/index.d.ts.map +0 -1
  856. package/dist/components/MessageInput/AttachmentPreviewList/AttachmentPreviewList.d.ts.map +0 -1
  857. package/dist/components/MessageInput/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +0 -1
  858. package/dist/components/MessageInput/AttachmentPreviewList/ImageAttachmentPreview.d.ts.map +0 -1
  859. package/dist/components/MessageInput/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts.map +0 -1
  860. package/dist/components/MessageInput/AttachmentPreviewList/UploadPreviewItem.d.ts.map +0 -1
  861. package/dist/components/MessageInput/AttachmentPreviewList/VoiceRecordingPreview.d.ts.map +0 -1
  862. package/dist/components/MessageInput/AttachmentPreviewList/index.d.ts.map +0 -1
  863. package/dist/components/MessageInput/AttachmentPreviewList/types.d.ts.map +0 -1
  864. package/dist/components/MessageInput/CooldownTimer.d.ts.map +0 -1
  865. package/dist/components/MessageInput/DefaultTriggerProvider.d.ts.map +0 -1
  866. package/dist/components/MessageInput/DropzoneProvider.d.ts.map +0 -1
  867. package/dist/components/MessageInput/EditMessageForm.d.ts.map +0 -1
  868. package/dist/components/MessageInput/LinkPreviewList.d.ts.map +0 -1
  869. package/dist/components/MessageInput/MessageInput.d.ts.map +0 -1
  870. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +0 -1
  871. package/dist/components/MessageInput/MessageInputSmall.d.ts +0 -13
  872. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +0 -1
  873. package/dist/components/MessageInput/MessageInputSmall.js +0 -73
  874. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +0 -1
  875. package/dist/components/MessageInput/SendButton.d.ts.map +0 -1
  876. package/dist/components/MessageInput/UploadsPreview.d.ts +0 -11
  877. package/dist/components/MessageInput/UploadsPreview.d.ts.map +0 -1
  878. package/dist/components/MessageInput/UploadsPreview.js +0 -28
  879. package/dist/components/MessageInput/hooks/index.d.ts.map +0 -1
  880. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +0 -1
  881. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +0 -1
  882. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +0 -1
  883. package/dist/components/MessageInput/hooks/useCreateMessageInputContext.d.ts.map +0 -1
  884. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +0 -1
  885. package/dist/components/MessageInput/hooks/useFileUploads.d.ts.map +0 -1
  886. package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +0 -1
  887. package/dist/components/MessageInput/hooks/useLinkPreviews.d.ts.map +0 -1
  888. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +0 -1
  889. package/dist/components/MessageInput/hooks/useMessageInputText.d.ts.map +0 -1
  890. package/dist/components/MessageInput/hooks/usePasteHandler.d.ts.map +0 -1
  891. package/dist/components/MessageInput/hooks/useSubmitHandler.d.ts.map +0 -1
  892. package/dist/components/MessageInput/hooks/useTimeElapsed.d.ts.map +0 -1
  893. package/dist/components/MessageInput/hooks/useTimer.d.ts.map +0 -1
  894. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +0 -1
  895. package/dist/components/MessageInput/hooks/utils.d.ts.map +0 -1
  896. package/dist/components/MessageInput/icons.d.ts.map +0 -1
  897. package/dist/components/MessageInput/index.d.ts.map +0 -1
  898. package/dist/components/MessageInput/types.d.ts.map +0 -1
  899. package/dist/components/MessageList/ConnectionStatus.d.ts.map +0 -1
  900. package/dist/components/MessageList/CustomNotification.d.ts.map +0 -1
  901. package/dist/components/MessageList/GiphyPreviewMessage.d.ts.map +0 -1
  902. package/dist/components/MessageList/MessageList.d.ts.map +0 -1
  903. package/dist/components/MessageList/MessageListMainPanel.d.ts.map +0 -1
  904. package/dist/components/MessageList/MessageListNotifications.d.ts.map +0 -1
  905. package/dist/components/MessageList/MessageNotification.d.ts.map +0 -1
  906. package/dist/components/MessageList/ScrollToBottomButton.d.ts.map +0 -1
  907. package/dist/components/MessageList/UnreadMessagesNotification.d.ts.map +0 -1
  908. package/dist/components/MessageList/UnreadMessagesSeparator.d.ts.map +0 -1
  909. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +0 -1
  910. package/dist/components/MessageList/VirtualizedMessageListComponents.d.ts.map +0 -1
  911. package/dist/components/MessageList/hooks/MessageList/index.d.ts.map +0 -1
  912. package/dist/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +0 -1
  913. package/dist/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +0 -1
  914. package/dist/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +0 -1
  915. package/dist/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +0 -1
  916. package/dist/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +0 -1
  917. package/dist/components/MessageList/hooks/VirtualizedMessageList/index.d.ts.map +0 -1
  918. package/dist/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.d.ts.map +0 -1
  919. package/dist/components/MessageList/hooks/VirtualizedMessageList/useMessageSetKey.d.ts.map +0 -1
  920. package/dist/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +0 -1
  921. package/dist/components/MessageList/hooks/VirtualizedMessageList/usePrependMessagesCount.d.ts.map +0 -1
  922. package/dist/components/MessageList/hooks/VirtualizedMessageList/useScrollToBottomOnNewMessage.d.ts.map +0 -1
  923. package/dist/components/MessageList/hooks/VirtualizedMessageList/useShouldForceScrollToBottom.d.ts.map +0 -1
  924. package/dist/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts.map +0 -1
  925. package/dist/components/MessageList/hooks/index.d.ts.map +0 -1
  926. package/dist/components/MessageList/hooks/useLastReadData.d.ts.map +0 -1
  927. package/dist/components/MessageList/hooks/useMarkRead.d.ts.map +0 -1
  928. package/dist/components/MessageList/icons.d.ts.map +0 -1
  929. package/dist/components/MessageList/index.d.ts.map +0 -1
  930. package/dist/components/MessageList/renderMessages.d.ts.map +0 -1
  931. package/dist/components/MessageList/utils.d.ts.map +0 -1
  932. package/dist/components/Modal/Modal.d.ts.map +0 -1
  933. package/dist/components/Modal/icons.d.ts.map +0 -1
  934. package/dist/components/Modal/index.d.ts.map +0 -1
  935. package/dist/components/ReactFileUtilities/FileIcon/FileIcon.d.ts.map +0 -1
  936. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts +0 -23
  937. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.d.ts.map +0 -1
  938. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v1.js +0 -62
  939. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.d.ts.map +0 -1
  940. package/dist/components/ReactFileUtilities/FileIcon/FileIconSet/v2.js +0 -173
  941. package/dist/components/ReactFileUtilities/FileIcon/iconMap.d.ts.map +0 -1
  942. package/dist/components/ReactFileUtilities/FileIcon/index.d.ts.map +0 -1
  943. package/dist/components/ReactFileUtilities/FileIcon/mimeTypes.d.ts.map +0 -1
  944. package/dist/components/ReactFileUtilities/FilePreviewer.d.ts +0 -15
  945. package/dist/components/ReactFileUtilities/FilePreviewer.d.ts.map +0 -1
  946. package/dist/components/ReactFileUtilities/FilePreviewer.js +0 -21
  947. package/dist/components/ReactFileUtilities/FileUploadButton.d.ts +0 -13
  948. package/dist/components/ReactFileUtilities/FileUploadButton.d.ts.map +0 -1
  949. package/dist/components/ReactFileUtilities/FileUploadButton.js +0 -19
  950. package/dist/components/ReactFileUtilities/IconButton.d.ts +0 -9
  951. package/dist/components/ReactFileUtilities/IconButton.d.ts.map +0 -1
  952. package/dist/components/ReactFileUtilities/IconButton.js +0 -10
  953. package/dist/components/ReactFileUtilities/ImageDropzone.d.ts.map +0 -1
  954. package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts +0 -21
  955. package/dist/components/ReactFileUtilities/ImagePreviewer.d.ts.map +0 -1
  956. package/dist/components/ReactFileUtilities/ImagePreviewer.js +0 -26
  957. package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts +0 -12
  958. package/dist/components/ReactFileUtilities/ImageUploadButton.d.ts.map +0 -1
  959. package/dist/components/ReactFileUtilities/ImageUploadButton.js +0 -15
  960. package/dist/components/ReactFileUtilities/LoadingIndicator.d.ts.map +0 -1
  961. package/dist/components/ReactFileUtilities/Thumbnail.d.ts +0 -10
  962. package/dist/components/ReactFileUtilities/Thumbnail.d.ts.map +0 -1
  963. package/dist/components/ReactFileUtilities/Thumbnail.js +0 -11
  964. package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts +0 -7
  965. package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.d.ts.map +0 -1
  966. package/dist/components/ReactFileUtilities/ThumbnailPlaceholder.js +0 -9
  967. package/dist/components/ReactFileUtilities/UploadButton.d.ts.map +0 -1
  968. package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts +0 -6
  969. package/dist/components/ReactFileUtilities/icons/AttachmentIcon.d.ts.map +0 -1
  970. package/dist/components/ReactFileUtilities/icons/AttachmentIcon.js +0 -7
  971. package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts +0 -3
  972. package/dist/components/ReactFileUtilities/icons/CloseIcon.d.ts.map +0 -1
  973. package/dist/components/ReactFileUtilities/icons/CloseIcon.js +0 -11
  974. package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts +0 -3
  975. package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.d.ts.map +0 -1
  976. package/dist/components/ReactFileUtilities/icons/FilePlaceholderIcon.js +0 -6
  977. package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts +0 -6
  978. package/dist/components/ReactFileUtilities/icons/PictureIcon.d.ts.map +0 -1
  979. package/dist/components/ReactFileUtilities/icons/PictureIcon.js +0 -6
  980. package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts +0 -3
  981. package/dist/components/ReactFileUtilities/icons/RetryIcon.d.ts.map +0 -1
  982. package/dist/components/ReactFileUtilities/icons/RetryIcon.js +0 -3
  983. package/dist/components/ReactFileUtilities/icons/index.d.ts +0 -6
  984. package/dist/components/ReactFileUtilities/icons/index.d.ts.map +0 -1
  985. package/dist/components/ReactFileUtilities/icons/index.js +0 -5
  986. package/dist/components/ReactFileUtilities/index.d.ts.map +0 -1
  987. package/dist/components/ReactFileUtilities/types.d.ts.map +0 -1
  988. package/dist/components/ReactFileUtilities/utils.d.ts.map +0 -1
  989. package/dist/components/Reactions/ReactionSelector.d.ts.map +0 -1
  990. package/dist/components/Reactions/ReactionsList.d.ts.map +0 -1
  991. package/dist/components/Reactions/ReactionsListModal.d.ts.map +0 -1
  992. package/dist/components/Reactions/SimpleReactionsList.d.ts.map +0 -1
  993. package/dist/components/Reactions/SpriteImage.d.ts.map +0 -1
  994. package/dist/components/Reactions/StreamEmoji.d.ts.map +0 -1
  995. package/dist/components/Reactions/hooks/useFetchReactions.d.ts.map +0 -1
  996. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +0 -1
  997. package/dist/components/Reactions/index.d.ts.map +0 -1
  998. package/dist/components/Reactions/reactionOptions.d.ts.map +0 -1
  999. package/dist/components/Reactions/types.d.ts.map +0 -1
  1000. package/dist/components/Reactions/utils/utils.d.ts.map +0 -1
  1001. package/dist/components/SafeAnchor/SafeAnchor.d.ts.map +0 -1
  1002. package/dist/components/SafeAnchor/index.d.ts.map +0 -1
  1003. package/dist/components/Thread/Thread.d.ts.map +0 -1
  1004. package/dist/components/Thread/ThreadHead.d.ts.map +0 -1
  1005. package/dist/components/Thread/ThreadHeader.d.ts.map +0 -1
  1006. package/dist/components/Thread/ThreadStart.d.ts.map +0 -1
  1007. package/dist/components/Thread/icons.d.ts.map +0 -1
  1008. package/dist/components/Thread/index.d.ts.map +0 -1
  1009. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  1010. package/dist/components/Tooltip/hooks/index.d.ts.map +0 -1
  1011. package/dist/components/Tooltip/hooks/useEnterLeaveHandlers.d.ts.map +0 -1
  1012. package/dist/components/Tooltip/index.d.ts.map +0 -1
  1013. package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +0 -1
  1014. package/dist/components/TypingIndicator/index.d.ts.map +0 -1
  1015. package/dist/components/UserItem/UserItem.d.ts.map +0 -1
  1016. package/dist/components/UserItem/index.d.ts.map +0 -1
  1017. package/dist/components/Window/Window.d.ts.map +0 -1
  1018. package/dist/components/Window/index.d.ts.map +0 -1
  1019. package/dist/components/index.d.ts.map +0 -1
  1020. package/dist/constants/limits.d.ts.map +0 -1
  1021. package/dist/constants/messageTypes.d.ts.map +0 -1
  1022. package/dist/context/ChannelActionContext.d.ts.map +0 -1
  1023. package/dist/context/ChannelListContext.d.ts.map +0 -1
  1024. package/dist/context/ChannelStateContext.d.ts.map +0 -1
  1025. package/dist/context/ChatContext.d.ts.map +0 -1
  1026. package/dist/context/ComponentContext.d.ts.map +0 -1
  1027. package/dist/context/MessageBounceContext.d.ts.map +0 -1
  1028. package/dist/context/MessageContext.d.ts.map +0 -1
  1029. package/dist/context/MessageInputContext.d.ts.map +0 -1
  1030. package/dist/context/MessageListContext.d.ts.map +0 -1
  1031. package/dist/context/TranslationContext.d.ts.map +0 -1
  1032. package/dist/context/TypingContext.d.ts.map +0 -1
  1033. package/dist/context/index.d.ts.map +0 -1
  1034. package/dist/context/utils/getDisplayName.d.ts.map +0 -1
  1035. package/dist/css/index.css +0 -1
  1036. package/dist/i18n/Streami18n.d.ts.map +0 -1
  1037. package/dist/i18n/index.d.ts.map +0 -1
  1038. package/dist/i18n/translations.d.ts.map +0 -1
  1039. package/dist/i18n/utils.d.ts.map +0 -1
  1040. package/dist/index.d.ts.map +0 -1
  1041. package/dist/index_UMD.d.ts +0 -7
  1042. package/dist/index_UMD.d.ts.map +0 -1
  1043. package/dist/index_UMD.js +0 -8
  1044. package/dist/lamejs-261a59f5.js +0 -9648
  1045. package/dist/scss/ActionsBox.scss +0 -56
  1046. package/dist/scss/Attachment.scss +0 -329
  1047. package/dist/scss/AttachmentActions.scss +0 -44
  1048. package/dist/scss/Audio.scss +0 -113
  1049. package/dist/scss/Avatar.scss +0 -79
  1050. package/dist/scss/Card.scss +0 -125
  1051. package/dist/scss/ChannelHeader.scss +0 -284
  1052. package/dist/scss/ChannelList.scss +0 -141
  1053. package/dist/scss/ChannelListMessenger.scss +0 -9
  1054. package/dist/scss/ChannelPreview.scss +0 -133
  1055. package/dist/scss/ChannelSearch.scss +0 -124
  1056. package/dist/scss/ChatDown.scss +0 -15
  1057. package/dist/scss/DateSeparator.scss +0 -51
  1058. package/dist/scss/EditMessageForm.scss +0 -112
  1059. package/dist/scss/EventComponent.scss +0 -48
  1060. package/dist/scss/Gallery.scss +0 -121
  1061. package/dist/scss/ImageCarousel.scss +0 -45
  1062. package/dist/scss/InfiniteScrollPaginator.scss +0 -6
  1063. package/dist/scss/LoadMoreButton.scss +0 -44
  1064. package/dist/scss/LoadingChannels.scss +0 -70
  1065. package/dist/scss/LoadingIndicator.scss +0 -38
  1066. package/dist/scss/Message.scss +0 -1283
  1067. package/dist/scss/MessageActions.scss +0 -137
  1068. package/dist/scss/MessageCommerce.scss +0 -608
  1069. package/dist/scss/MessageInput.scss +0 -398
  1070. package/dist/scss/MessageInputFlat.scss +0 -323
  1071. package/dist/scss/MessageList.scss +0 -244
  1072. package/dist/scss/MessageLivestream.scss +0 -338
  1073. package/dist/scss/MessageNotification.scss +0 -43
  1074. package/dist/scss/MessageRepliesCountButton.scss +0 -33
  1075. package/dist/scss/MessageTeam.scss +0 -644
  1076. package/dist/scss/Modal.scss +0 -78
  1077. package/dist/scss/ReactionList.scss +0 -197
  1078. package/dist/scss/ReactionSelector.scss +0 -218
  1079. package/dist/scss/SendButton.scss +0 -20
  1080. package/dist/scss/SimpleReactionsList.scss +0 -76
  1081. package/dist/scss/SmallMessageInput.scss +0 -171
  1082. package/dist/scss/Thread.scss +0 -381
  1083. package/dist/scss/Tooltip.scss +0 -41
  1084. package/dist/scss/TypingIndicator.scss +0 -80
  1085. package/dist/scss/VirtualMessage.scss +0 -288
  1086. package/dist/scss/_base.scss +0 -219
  1087. package/dist/scss/_variables.scss +0 -161
  1088. package/dist/scss/index.scss +0 -50
  1089. package/dist/types/index.d.ts.map +0 -1
  1090. package/dist/types/types.d.ts.map +0 -1
  1091. package/dist/utils/browsers.d.ts.map +0 -1
  1092. package/dist/utils/deprecationWarning.d.ts.map +0 -1
  1093. package/dist/utils/generateRandomId.d.ts +0 -6
  1094. package/dist/utils/generateRandomId.d.ts.map +0 -1
  1095. package/dist/utils/generateRandomId.js +0 -5
  1096. package/dist/utils/getChannel.d.ts.map +0 -1
  1097. package/dist/utils/getWholeChar.d.ts.map +0 -1
  1098. package/dist/utils/index.d.ts.map +0 -1
  1099. package/dist/utils/mergeDeep.d.ts.map +0 -1
  1100. package/dist/version.d.ts.map +0 -1
@@ -1,4 +1,3 @@
1
- import { __assign, __awaiter, __generator, __rest } from "tslib";
2
1
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, } from 'react';
3
2
  import debounce from 'lodash.debounce';
4
3
  import defaultsDeep from 'lodash.defaultsdeep';
@@ -31,15 +30,15 @@ import { getImageAttachmentConfiguration, getVideoAttachmentConfiguration, } fro
31
30
  import { defaultReactionOptions } from '../Reactions';
32
31
  import { EventComponent } from '../EventComponent';
33
32
  import { DateSeparator } from '../DateSeparator';
34
- var isUserResponseArray = function (output) { var _a; return ((_a = output[0]) === null || _a === void 0 ? void 0 : _a.id) != null; };
35
- var UnMemoizedChannel = function (props) {
36
- var propsChannel = props.channel, _a = props.EmptyPlaceholder, EmptyPlaceholder = _a === void 0 ? null : _a, LoadingErrorIndicator = props.LoadingErrorIndicator, _b = props.LoadingIndicator, LoadingIndicator = _b === void 0 ? DefaultLoadingIndicator : _b;
37
- var _c = useChatContext('Channel'), contextChannel = _c.channel, channelsQueryState = _c.channelsQueryState, customClasses = _c.customClasses, theme = _c.theme;
38
- var _d = useChannelContainerClasses({
39
- customClasses: customClasses,
40
- }), channelClass = _d.channelClass, chatClass = _d.chatClass;
41
- var channel = propsChannel || contextChannel;
42
- var className = clsx(chatClass, theme, channelClass);
33
+ const isUserResponseArray = (output) => output[0]?.id != null;
34
+ const UnMemoizedChannel = (props) => {
35
+ const { channel: propsChannel, EmptyPlaceholder = null, LoadingErrorIndicator, LoadingIndicator = DefaultLoadingIndicator, } = props;
36
+ const { channel: contextChannel, channelsQueryState, customClasses, theme, } = useChatContext('Channel');
37
+ const { channelClass, chatClass } = useChannelContainerClasses({
38
+ customClasses,
39
+ });
40
+ const channel = propsChannel || contextChannel;
41
+ const className = clsx(chatClass, theme, channelClass);
43
42
  if (channelsQueryState.queryInProgress === 'reload' && LoadingIndicator) {
44
43
  return (React.createElement("div", { className: className },
45
44
  React.createElement(LoadingIndicator, null)));
@@ -48,254 +47,212 @@ var UnMemoizedChannel = function (props) {
48
47
  return (React.createElement("div", { className: className },
49
48
  React.createElement(LoadingErrorIndicator, { error: channelsQueryState.error })));
50
49
  }
51
- if (!(channel === null || channel === void 0 ? void 0 : channel.cid)) {
50
+ if (!channel?.cid) {
52
51
  return React.createElement("div", { className: className }, EmptyPlaceholder);
53
52
  }
54
- return React.createElement(ChannelInner, __assign({}, props, { channel: channel, key: channel.cid }));
53
+ return React.createElement(ChannelInner, { ...props, channel: channel, key: channel.cid });
55
54
  };
56
- var ChannelInner = function (props) {
57
- var _a;
58
- var acceptedFiles = props.acceptedFiles, activeUnreadHandler = props.activeUnreadHandler, channel = props.channel, propChannelQueryOptions = props.channelQueryOptions, children = props.children, doDeleteMessageRequest = props.doDeleteMessageRequest, doMarkReadRequest = props.doMarkReadRequest, doSendMessageRequest = props.doSendMessageRequest, doUpdateMessageRequest = props.doUpdateMessageRequest, _b = props.dragAndDropWindow, dragAndDropWindow = _b === void 0 ? false : _b, enrichURLForPreviewConfig = props.enrichURLForPreviewConfig, _c = props.initializeOnMount, initializeOnMount = _c === void 0 ? true : _c, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? DefaultLoadingErrorIndicator : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? DefaultLoadingIndicator : _e, _f = props.markReadOnMount, markReadOnMount = _f === void 0 ? true : _f, maxNumberOfFiles = props.maxNumberOfFiles, _g = props.multipleUploads, multipleUploads = _g === void 0 ? true : _g, onMentionsClick = props.onMentionsClick, onMentionsHover = props.onMentionsHover, _h = props.optionalMessageInputProps, optionalMessageInputProps = _h === void 0 ? {} : _h, skipMessageDataMemoization = props.skipMessageDataMemoization;
59
- var channelQueryOptions = useMemo(function () {
60
- return defaultsDeep(propChannelQueryOptions, {
61
- messages: { limit: DEFAULT_INITIAL_CHANNEL_PAGE_SIZE },
62
- });
63
- }, [propChannelQueryOptions]);
64
- var _j = useChatContext('Channel'), client = _j.client, customClasses = _j.customClasses, latestMessageDatesByChannels = _j.latestMessageDatesByChannels, mutes = _j.mutes, theme = _j.theme;
65
- var t = useTranslationContext('Channel').t;
66
- var _k = useChannelContainerClasses({ customClasses: customClasses }), channelClass = _k.channelClass, chatClass = _k.chatClass, chatContainerClass = _k.chatContainerClass, windowsEmojiClass = _k.windowsEmojiClass;
67
- var _l = useState(channel.getConfig()), channelConfig = _l[0], setChannelConfig = _l[1];
68
- var _m = useState([]), notifications = _m[0], setNotifications = _m[1];
69
- var _o = useState(), quotedMessage = _o[0], setQuotedMessage = _o[1];
70
- var _p = useState(), channelUnreadUiState = _p[0], _setChannelUnreadUiState = _p[1];
71
- var notificationTimeouts = useRef([]);
72
- var _q = useReducer(channelReducer, __assign(__assign({}, initialState), { loading: !channel.initialized })), state = _q[0], dispatch = _q[1];
73
- var isMounted = useIsMounted();
74
- var originalTitle = useRef('');
75
- var lastRead = useRef();
76
- var online = useRef(true);
77
- var channelCapabilitiesArray = (_a = channel.data) === null || _a === void 0 ? void 0 : _a.own_capabilities;
78
- var throttledCopyStateFromChannel = throttle(function () { return dispatch({ channel: channel, type: 'copyStateFromChannelOnEvent' }); }, 500, {
55
+ const ChannelInner = (props) => {
56
+ const { acceptedFiles, activeUnreadHandler, channel, channelQueryOptions: propChannelQueryOptions, children, doDeleteMessageRequest, doMarkReadRequest, doSendMessageRequest, doUpdateMessageRequest, dragAndDropWindow = false, enrichURLForPreviewConfig, initializeOnMount = true, LoadingErrorIndicator = DefaultLoadingErrorIndicator, LoadingIndicator = DefaultLoadingIndicator, markReadOnMount = true, maxNumberOfFiles, multipleUploads = true, onMentionsClick, onMentionsHover, optionalMessageInputProps = {}, skipMessageDataMemoization, } = props;
57
+ const channelQueryOptions = useMemo(() => defaultsDeep(propChannelQueryOptions, {
58
+ messages: { limit: DEFAULT_INITIAL_CHANNEL_PAGE_SIZE },
59
+ }), [propChannelQueryOptions]);
60
+ const { client, customClasses, latestMessageDatesByChannels, mutes, theme, } = useChatContext('Channel');
61
+ const { t } = useTranslationContext('Channel');
62
+ const { channelClass, chatClass, chatContainerClass, windowsEmojiClass, } = useChannelContainerClasses({ customClasses });
63
+ const [channelConfig, setChannelConfig] = useState(channel.getConfig());
64
+ const [notifications, setNotifications] = useState([]);
65
+ const [quotedMessage, setQuotedMessage] = useState();
66
+ const [channelUnreadUiState, _setChannelUnreadUiState] = useState();
67
+ const notificationTimeouts = useRef([]);
68
+ const [state, dispatch] = useReducer(channelReducer,
69
+ // channel.initialized === false if client.channel().query() was not called, e.g. ChannelList is not used
70
+ // => Channel will call channel.watch() in useLayoutEffect => state.loading is used to signal the watch() call state
71
+ { ...initialState, loading: !channel.initialized });
72
+ const isMounted = useIsMounted();
73
+ const originalTitle = useRef('');
74
+ const lastRead = useRef();
75
+ const online = useRef(true);
76
+ const channelCapabilitiesArray = channel.data?.own_capabilities;
77
+ const throttledCopyStateFromChannel = throttle(() => dispatch({ channel, type: 'copyStateFromChannelOnEvent' }), 500, {
79
78
  leading: true,
80
79
  trailing: true,
81
80
  });
82
- var setChannelUnreadUiState = useMemo(function () {
83
- return throttle(_setChannelUnreadUiState, 200, {
84
- leading: true,
85
- trailing: false,
86
- });
87
- }, []);
88
- var markRead = useMemo(function () {
89
- return throttle(function (options) { return __awaiter(void 0, void 0, void 0, function () {
90
- var _a, updateChannelUiUnreadState, markReadResponse, e_1;
91
- return __generator(this, function (_b) {
92
- switch (_b.label) {
93
- case 0:
94
- _a = (options !== null && options !== void 0 ? options : {}).updateChannelUiUnreadState, updateChannelUiUnreadState = _a === void 0 ? true : _a;
95
- if (channel.disconnected || !(channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events)) {
96
- return [2 /*return*/];
97
- }
98
- lastRead.current = new Date();
99
- _b.label = 1;
100
- case 1:
101
- _b.trys.push([1, 5, , 6]);
102
- if (!doMarkReadRequest) return [3 /*break*/, 2];
103
- doMarkReadRequest(channel, updateChannelUiUnreadState ? setChannelUnreadUiState : undefined);
104
- return [3 /*break*/, 4];
105
- case 2: return [4 /*yield*/, channel.markRead()];
106
- case 3:
107
- markReadResponse = _b.sent();
108
- if (updateChannelUiUnreadState && markReadResponse) {
109
- _setChannelUnreadUiState({
110
- last_read: lastRead.current,
111
- last_read_message_id: markReadResponse.event.last_read_message_id,
112
- unread_messages: 0,
113
- });
114
- }
115
- _b.label = 4;
116
- case 4:
117
- if (activeUnreadHandler) {
118
- activeUnreadHandler(0, originalTitle.current);
119
- }
120
- else if (originalTitle.current) {
121
- document.title = originalTitle.current;
122
- }
123
- return [3 /*break*/, 6];
124
- case 5:
125
- e_1 = _b.sent();
126
- console.error(t('Failed to mark channel as read'));
127
- return [3 /*break*/, 6];
128
- case 6: return [2 /*return*/];
81
+ const setChannelUnreadUiState = useMemo(() => throttle(_setChannelUnreadUiState, 200, {
82
+ leading: true,
83
+ trailing: false,
84
+ }), []);
85
+ const markRead = useMemo(() => throttle(async (options) => {
86
+ const { updateChannelUiUnreadState = true } = options ?? {};
87
+ if (channel.disconnected || !channelConfig?.read_events) {
88
+ return;
89
+ }
90
+ lastRead.current = new Date();
91
+ try {
92
+ if (doMarkReadRequest) {
93
+ doMarkReadRequest(channel, updateChannelUiUnreadState ? setChannelUnreadUiState : undefined);
94
+ }
95
+ else {
96
+ const markReadResponse = await channel.markRead();
97
+ if (updateChannelUiUnreadState && markReadResponse) {
98
+ _setChannelUnreadUiState({
99
+ last_read: lastRead.current,
100
+ last_read_message_id: markReadResponse.event.last_read_message_id,
101
+ unread_messages: 0,
102
+ });
129
103
  }
104
+ }
105
+ if (activeUnreadHandler) {
106
+ activeUnreadHandler(0, originalTitle.current);
107
+ }
108
+ else if (originalTitle.current) {
109
+ document.title = originalTitle.current;
110
+ }
111
+ }
112
+ catch (e) {
113
+ console.error(t('Failed to mark channel as read'));
114
+ }
115
+ }, 500, { leading: true, trailing: false }), [activeUnreadHandler, channel, channelConfig, doMarkReadRequest, setChannelUnreadUiState, t]);
116
+ const handleEvent = async (event) => {
117
+ if (event.message) {
118
+ dispatch({
119
+ channel,
120
+ message: event.message,
121
+ type: 'updateThreadOnEvent',
130
122
  });
131
- }); }, 500, { leading: true, trailing: false });
132
- }, [activeUnreadHandler, channel, channelConfig, doMarkReadRequest, setChannelUnreadUiState, t]);
133
- var handleEvent = function (event) { return __awaiter(void 0, void 0, void 0, function () {
134
- var mainChannelUpdated, unread, messageDate, cid, oldestID;
135
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
136
- return __generator(this, function (_k) {
137
- switch (_k.label) {
138
- case 0:
139
- if (event.message) {
140
- dispatch({
141
- channel: channel,
142
- message: event.message,
143
- type: 'updateThreadOnEvent',
144
- });
145
- }
146
- if (event.type === 'user.watching.start' || event.type === 'user.watching.stop')
147
- return [2 /*return*/];
148
- if (event.type === 'typing.start' || event.type === 'typing.stop') {
149
- return [2 /*return*/, dispatch({ channel: channel, type: 'setTyping' })];
150
- }
151
- if (event.type === 'connection.changed' && typeof event.online === 'boolean') {
152
- online.current = event.online;
153
- }
154
- if (event.type === 'message.new') {
155
- mainChannelUpdated = !((_a = event.message) === null || _a === void 0 ? void 0 : _a.parent_id) || ((_b = event.message) === null || _b === void 0 ? void 0 : _b.show_in_channel);
156
- if (mainChannelUpdated) {
157
- if (document.hidden && (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events) && !channel.muteStatus().muted) {
158
- unread = channel.countUnread(lastRead.current);
159
- if (activeUnreadHandler) {
160
- activeUnreadHandler(unread, originalTitle.current);
161
- }
162
- else {
163
- document.title = "(".concat(unread, ") ").concat(originalTitle.current);
164
- }
165
- }
166
- }
167
- if (((_d = (_c = event.message) === null || _c === void 0 ? void 0 : _c.user) === null || _d === void 0 ? void 0 : _d.id) === client.userID &&
168
- ((_e = event === null || event === void 0 ? void 0 : event.message) === null || _e === void 0 ? void 0 : _e.created_at) &&
169
- ((_f = event === null || event === void 0 ? void 0 : event.message) === null || _f === void 0 ? void 0 : _f.cid)) {
170
- messageDate = new Date(event.message.created_at);
171
- cid = event.message.cid;
172
- if (!latestMessageDatesByChannels[cid] ||
173
- latestMessageDatesByChannels[cid].getTime() < messageDate.getTime()) {
174
- latestMessageDatesByChannels[cid] = messageDate;
175
- }
176
- }
123
+ }
124
+ if (event.type === 'user.watching.start' || event.type === 'user.watching.stop')
125
+ return;
126
+ if (event.type === 'typing.start' || event.type === 'typing.stop') {
127
+ return dispatch({ channel, type: 'setTyping' });
128
+ }
129
+ if (event.type === 'connection.changed' && typeof event.online === 'boolean') {
130
+ online.current = event.online;
131
+ }
132
+ if (event.type === 'message.new') {
133
+ const mainChannelUpdated = !event.message?.parent_id || event.message?.show_in_channel;
134
+ if (mainChannelUpdated) {
135
+ if (document.hidden && channelConfig?.read_events && !channel.muteStatus().muted) {
136
+ const unread = channel.countUnread(lastRead.current);
137
+ if (activeUnreadHandler) {
138
+ activeUnreadHandler(unread, originalTitle.current);
177
139
  }
178
- if (!(event.type === 'user.deleted')) return [3 /*break*/, 2];
179
- oldestID = (_j = (_h = (_g = channel.state) === null || _g === void 0 ? void 0 : _g.messages) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.id;
180
- /**
181
- * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
182
- */
183
- // FIXME: we should use channelQueryOptions if they are available
184
- return [4 /*yield*/, channel.query({
185
- messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
186
- watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
187
- })];
188
- case 1:
189
- /**
190
- * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
191
- */
192
- // FIXME: we should use channelQueryOptions if they are available
193
- _k.sent();
194
- _k.label = 2;
195
- case 2:
196
- if (event.type === 'notification.mark_unread')
197
- _setChannelUnreadUiState(function (prev) {
198
- var _a;
199
- if (!(event.last_read_at && event.user))
200
- return prev;
201
- return {
202
- first_unread_message_id: event.first_unread_message_id,
203
- last_read: new Date(event.last_read_at),
204
- last_read_message_id: event.last_read_message_id,
205
- unread_messages: (_a = event.unread_messages) !== null && _a !== void 0 ? _a : 0,
206
- };
207
- });
208
- if (event.type === 'channel.truncated' && event.cid === channel.cid) {
209
- _setChannelUnreadUiState(undefined);
140
+ else {
141
+ document.title = `(${unread}) ${originalTitle.current}`;
210
142
  }
211
- throttledCopyStateFromChannel();
212
- return [2 /*return*/];
143
+ }
213
144
  }
214
- });
215
- }); };
145
+ if (event.message?.user?.id === client.userID &&
146
+ event?.message?.created_at &&
147
+ event?.message?.cid) {
148
+ const messageDate = new Date(event.message.created_at);
149
+ const cid = event.message.cid;
150
+ if (!latestMessageDatesByChannels[cid] ||
151
+ latestMessageDatesByChannels[cid].getTime() < messageDate.getTime()) {
152
+ latestMessageDatesByChannels[cid] = messageDate;
153
+ }
154
+ }
155
+ }
156
+ if (event.type === 'user.deleted') {
157
+ const oldestID = channel.state?.messages?.[0]?.id;
158
+ /**
159
+ * As the channel state is not normalized we re-fetch the channel data. Thus, we avoid having to search for user references in the channel state.
160
+ */
161
+ // FIXME: we should use channelQueryOptions if they are available
162
+ await channel.query({
163
+ messages: { id_lt: oldestID, limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
164
+ watchers: { limit: DEFAULT_NEXT_CHANNEL_PAGE_SIZE },
165
+ });
166
+ }
167
+ if (event.type === 'notification.mark_unread')
168
+ _setChannelUnreadUiState((prev) => {
169
+ if (!(event.last_read_at && event.user))
170
+ return prev;
171
+ return {
172
+ first_unread_message_id: event.first_unread_message_id,
173
+ last_read: new Date(event.last_read_at),
174
+ last_read_message_id: event.last_read_message_id,
175
+ unread_messages: event.unread_messages ?? 0,
176
+ };
177
+ });
178
+ if (event.type === 'channel.truncated' && event.cid === channel.cid) {
179
+ _setChannelUnreadUiState(undefined);
180
+ }
181
+ throttledCopyStateFromChannel();
182
+ };
216
183
  // useLayoutEffect here to prevent spinner. Use Suspense when it is available in stable release
217
- useLayoutEffect(function () {
218
- var errored = false;
219
- var done = false;
220
- var channelInitializedExternally = true;
221
- (function () { return __awaiter(void 0, void 0, void 0, function () {
222
- var members, _i, _a, member, userId, _b, user, user_id, config, e_2, _c, user, ownReadState;
223
- var _d, _e;
224
- return __generator(this, function (_f) {
225
- switch (_f.label) {
226
- case 0:
227
- if (!(!channel.initialized && initializeOnMount)) return [3 /*break*/, 4];
228
- _f.label = 1;
229
- case 1:
230
- _f.trys.push([1, 3, , 4]);
231
- members = [];
232
- if (!channel.id && ((_d = channel.data) === null || _d === void 0 ? void 0 : _d.members)) {
233
- for (_i = 0, _a = channel.data.members; _i < _a.length; _i++) {
234
- member = _a[_i];
235
- userId = void 0;
236
- if (typeof member === 'string') {
237
- userId = member;
238
- }
239
- else if (typeof member === 'object') {
240
- _b = member, user = _b.user, user_id = _b.user_id;
241
- userId = user_id || (user === null || user === void 0 ? void 0 : user.id);
242
- }
243
- if (userId) {
244
- members.push(userId);
245
- }
184
+ useLayoutEffect(() => {
185
+ let errored = false;
186
+ let done = false;
187
+ let channelInitializedExternally = true;
188
+ (async () => {
189
+ if (!channel.initialized && initializeOnMount) {
190
+ try {
191
+ // if active channel has been set without id, we will create a temporary channel id from its member IDs
192
+ // to keep track of the /query request in progress. This is the same approach of generating temporary id
193
+ // that the JS client uses to keep track of channel in client.activeChannels
194
+ const members = [];
195
+ if (!channel.id && channel.data?.members) {
196
+ for (const member of channel.data.members) {
197
+ let userId;
198
+ if (typeof member === 'string') {
199
+ userId = member;
246
200
  }
247
- }
248
- return [4 /*yield*/, getChannel({ channel: channel, client: client, members: members, options: channelQueryOptions })];
249
- case 2:
250
- _f.sent();
251
- config = channel.getConfig();
252
- setChannelConfig(config);
253
- channelInitializedExternally = false;
254
- return [3 /*break*/, 4];
255
- case 3:
256
- e_2 = _f.sent();
257
- dispatch({ error: e_2, type: 'setError' });
258
- errored = true;
259
- return [3 /*break*/, 4];
260
- case 4:
261
- done = true;
262
- originalTitle.current = document.title;
263
- if (!errored) {
264
- dispatch({
265
- channel: channel,
266
- hasMore: channelInitializedExternally ||
267
- hasMoreMessagesProbably(channel.state.messages.length, channelQueryOptions.messages.limit),
268
- type: 'initStateFromChannel',
269
- });
270
- if (((_e = client.user) === null || _e === void 0 ? void 0 : _e.id) && channel.state.read[client.user.id]) {
271
- _c = channel.state.read[client.user.id], user = _c.user, ownReadState = __rest(_c, ["user"]);
272
- _setChannelUnreadUiState(ownReadState);
201
+ else if (typeof member === 'object') {
202
+ const { user, user_id } = member;
203
+ userId = user_id || user?.id;
204
+ }
205
+ if (userId) {
206
+ members.push(userId);
273
207
  }
274
- /**
275
- * TODO: maybe pass last_read to the countUnread method to get proper value
276
- * combined with channel.countUnread adjustment (_countMessageAsUnread)
277
- * to allow counting own messages too
278
- *
279
- * const lastRead = channel.state.read[client.userID as string].last_read;
280
- */
281
- if (channel.countUnread() > 0 && markReadOnMount)
282
- markRead({ updateChannelUiUnreadState: false });
283
- // The more complex sync logic is done in Chat
284
- client.on('connection.changed', handleEvent);
285
- client.on('connection.recovered', handleEvent);
286
- client.on('user.updated', handleEvent);
287
- client.on('user.deleted', handleEvent);
288
- channel.on(handleEvent);
289
208
  }
290
- return [2 /*return*/];
209
+ }
210
+ await getChannel({ channel, client, members, options: channelQueryOptions });
211
+ const config = channel.getConfig();
212
+ setChannelConfig(config);
213
+ channelInitializedExternally = false;
291
214
  }
292
- });
293
- }); })();
294
- var notificationTimeoutsRef = notificationTimeouts.current;
295
- return function () {
215
+ catch (e) {
216
+ dispatch({ error: e, type: 'setError' });
217
+ errored = true;
218
+ }
219
+ }
220
+ done = true;
221
+ originalTitle.current = document.title;
222
+ if (!errored) {
223
+ dispatch({
224
+ channel,
225
+ hasMore: channelInitializedExternally ||
226
+ hasMoreMessagesProbably(channel.state.messages.length, channelQueryOptions.messages.limit),
227
+ type: 'initStateFromChannel',
228
+ });
229
+ if (client.user?.id && channel.state.read[client.user.id]) {
230
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
231
+ const { user, ...ownReadState } = channel.state.read[client.user.id];
232
+ _setChannelUnreadUiState(ownReadState);
233
+ }
234
+ /**
235
+ * TODO: maybe pass last_read to the countUnread method to get proper value
236
+ * combined with channel.countUnread adjustment (_countMessageAsUnread)
237
+ * to allow counting own messages too
238
+ *
239
+ * const lastRead = channel.state.read[client.userID as string].last_read;
240
+ */
241
+ if (channel.countUnread() > 0 && markReadOnMount)
242
+ markRead({ updateChannelUiUnreadState: false });
243
+ // The more complex sync logic is done in Chat
244
+ client.on('connection.changed', handleEvent);
245
+ client.on('connection.recovered', handleEvent);
246
+ client.on('user.updated', handleEvent);
247
+ client.on('user.deleted', handleEvent);
248
+ channel.on(handleEvent);
249
+ }
250
+ })();
251
+ const notificationTimeoutsRef = notificationTimeouts.current;
252
+ return () => {
296
253
  if (errored || !done)
297
254
  return;
298
- channel === null || channel === void 0 ? void 0 : channel.off(handleEvent);
255
+ channel?.off(handleEvent);
299
256
  client.off('connection.changed', handleEvent);
300
257
  client.off('connection.recovered', handleEvent);
301
258
  client.off('user.deleted', handleEvent);
@@ -306,530 +263,469 @@ var ChannelInner = function (props) {
306
263
  channel.cid,
307
264
  channelQueryOptions,
308
265
  doMarkReadRequest,
309
- channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.read_events,
266
+ channelConfig?.read_events,
310
267
  initializeOnMount,
311
268
  ]);
312
- useEffect(function () {
313
- var _a;
269
+ useEffect(() => {
314
270
  if (!state.thread)
315
271
  return;
316
- var message = (_a = state.messages) === null || _a === void 0 ? void 0 : _a.find(function (m) { var _a; return m.id === ((_a = state.thread) === null || _a === void 0 ? void 0 : _a.id); });
272
+ const message = state.messages?.find((m) => m.id === state.thread?.id);
317
273
  if (message)
318
- dispatch({ message: message, type: 'setThread' });
274
+ dispatch({ message, type: 'setThread' });
319
275
  }, [state.messages, state.thread]);
320
276
  /** MESSAGE */
321
277
  // Adds a temporary notification to message list, will be removed after 5 seconds
322
- var addNotification = useMemo(function () { return makeAddNotifications(setNotifications, notificationTimeouts.current); }, []);
278
+ const addNotification = useMemo(() => makeAddNotifications(setNotifications, notificationTimeouts.current), []);
323
279
  // eslint-disable-next-line react-hooks/exhaustive-deps
324
- var loadMoreFinished = useCallback(debounce(function (hasMore, messages) {
280
+ const loadMoreFinished = useCallback(debounce((hasMore, messages) => {
325
281
  if (!isMounted.current)
326
282
  return;
327
- dispatch({ hasMore: hasMore, messages: messages, type: 'loadMoreFinished' });
283
+ dispatch({ hasMore, messages, type: 'loadMoreFinished' });
328
284
  }, 2000, { leading: true, trailing: true }), []);
329
- var loadMore = function (limit) {
330
- if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
331
- return __awaiter(void 0, void 0, void 0, function () {
332
- var oldestMessage, oldestID, perPage, queryResponse, e_3, hasMoreMessages;
333
- var _a;
334
- return __generator(this, function (_b) {
335
- switch (_b.label) {
336
- case 0:
337
- if (!online.current || !window.navigator.onLine || !state.hasMore)
338
- return [2 /*return*/, 0];
339
- oldestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[0];
340
- if (state.loadingMore || state.loadingMoreNewer || (oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.status) !== 'received') {
341
- return [2 /*return*/, 0];
342
- }
343
- dispatch({ loadingMore: true, type: 'setLoadingMore' });
344
- oldestID = oldestMessage === null || oldestMessage === void 0 ? void 0 : oldestMessage.id;
345
- perPage = limit;
346
- _b.label = 1;
347
- case 1:
348
- _b.trys.push([1, 3, , 4]);
349
- return [4 /*yield*/, channel.query({
350
- messages: { id_lt: oldestID, limit: perPage },
351
- watchers: { limit: perPage },
352
- })];
353
- case 2:
354
- queryResponse = _b.sent();
355
- return [3 /*break*/, 4];
356
- case 3:
357
- e_3 = _b.sent();
358
- console.warn('message pagination request failed with error', e_3);
359
- dispatch({ loadingMore: false, type: 'setLoadingMore' });
360
- return [2 /*return*/, 0];
361
- case 4:
362
- hasMoreMessages = queryResponse.messages.length === perPage;
363
- loadMoreFinished(hasMoreMessages, channel.state.messages);
364
- return [2 /*return*/, queryResponse.messages.length];
365
- }
285
+ const loadMore = async (limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE) => {
286
+ if (!online.current || !window.navigator.onLine || !state.hasMore)
287
+ return 0;
288
+ // prevent duplicate loading events...
289
+ const oldestMessage = state?.messages?.[0];
290
+ if (state.loadingMore || state.loadingMoreNewer || oldestMessage?.status !== 'received') {
291
+ return 0;
292
+ }
293
+ dispatch({ loadingMore: true, type: 'setLoadingMore' });
294
+ const oldestID = oldestMessage?.id;
295
+ const perPage = limit;
296
+ let queryResponse;
297
+ try {
298
+ queryResponse = await channel.query({
299
+ messages: { id_lt: oldestID, limit: perPage },
300
+ watchers: { limit: perPage },
366
301
  });
367
- });
302
+ }
303
+ catch (e) {
304
+ console.warn('message pagination request failed with error', e);
305
+ dispatch({ loadingMore: false, type: 'setLoadingMore' });
306
+ return 0;
307
+ }
308
+ const hasMoreMessages = queryResponse.messages.length === perPage;
309
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
310
+ return queryResponse.messages.length;
368
311
  };
369
- var loadMoreNewer = function (limit) {
370
- if (limit === void 0) { limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE; }
371
- return __awaiter(void 0, void 0, void 0, function () {
372
- var newestMessage, newestId, perPage, queryResponse, e_4, hasMoreNewerMessages;
373
- var _a, _b;
374
- return __generator(this, function (_c) {
375
- switch (_c.label) {
376
- case 0:
377
- if (!online.current || !window.navigator.onLine || !state.hasMoreNewer)
378
- return [2 /*return*/, 0];
379
- newestMessage = (_a = state === null || state === void 0 ? void 0 : state.messages) === null || _a === void 0 ? void 0 : _a[((_b = state === null || state === void 0 ? void 0 : state.messages) === null || _b === void 0 ? void 0 : _b.length) - 1];
380
- if (state.loadingMore || state.loadingMoreNewer)
381
- return [2 /*return*/, 0];
382
- dispatch({ loadingMoreNewer: true, type: 'setLoadingMoreNewer' });
383
- newestId = newestMessage === null || newestMessage === void 0 ? void 0 : newestMessage.id;
384
- perPage = limit;
385
- _c.label = 1;
386
- case 1:
387
- _c.trys.push([1, 3, , 4]);
388
- return [4 /*yield*/, channel.query({
389
- messages: { id_gt: newestId, limit: perPage },
390
- watchers: { limit: perPage },
391
- })];
392
- case 2:
393
- queryResponse = _c.sent();
394
- return [3 /*break*/, 4];
395
- case 3:
396
- e_4 = _c.sent();
397
- console.warn('message pagination request failed with error', e_4);
398
- dispatch({ loadingMoreNewer: false, type: 'setLoadingMoreNewer' });
399
- return [2 /*return*/, 0];
400
- case 4:
401
- hasMoreNewerMessages = channel.state.messages !== channel.state.latestMessages;
402
- dispatch({
403
- hasMoreNewer: hasMoreNewerMessages,
404
- messages: channel.state.messages,
405
- type: 'loadMoreNewerFinished',
406
- });
407
- return [2 /*return*/, queryResponse.messages.length];
408
- }
312
+ const loadMoreNewer = async (limit = DEFAULT_NEXT_CHANNEL_PAGE_SIZE) => {
313
+ if (!online.current || !window.navigator.onLine || !state.hasMoreNewer)
314
+ return 0;
315
+ const newestMessage = state?.messages?.[state?.messages?.length - 1];
316
+ if (state.loadingMore || state.loadingMoreNewer)
317
+ return 0;
318
+ dispatch({ loadingMoreNewer: true, type: 'setLoadingMoreNewer' });
319
+ const newestId = newestMessage?.id;
320
+ const perPage = limit;
321
+ let queryResponse;
322
+ try {
323
+ queryResponse = await channel.query({
324
+ messages: { id_gt: newestId, limit: perPage },
325
+ watchers: { limit: perPage },
409
326
  });
327
+ }
328
+ catch (e) {
329
+ console.warn('message pagination request failed with error', e);
330
+ dispatch({ loadingMoreNewer: false, type: 'setLoadingMoreNewer' });
331
+ return 0;
332
+ }
333
+ const hasMoreNewerMessages = channel.state.messages !== channel.state.latestMessages;
334
+ dispatch({
335
+ hasMoreNewer: hasMoreNewerMessages,
336
+ messages: channel.state.messages,
337
+ type: 'loadMoreNewerFinished',
410
338
  });
339
+ return queryResponse.messages.length;
411
340
  };
412
- var clearHighlightedMessageTimeoutId = useRef(null);
413
- var jumpToMessage = useCallback(function (messageId, messageLimit, highlightDuration) {
414
- if (messageLimit === void 0) { messageLimit = DEFAULT_JUMP_TO_PAGE_SIZE; }
415
- if (highlightDuration === void 0) { highlightDuration = DEFAULT_HIGHLIGHT_DURATION; }
416
- return __awaiter(void 0, void 0, void 0, function () {
417
- var indexOfMessage, hasMoreMessages;
418
- return __generator(this, function (_a) {
419
- switch (_a.label) {
420
- case 0:
421
- dispatch({ loadingMore: true, type: 'setLoadingMore' });
422
- return [4 /*yield*/, channel.state.loadMessageIntoState(messageId, undefined, messageLimit)];
423
- case 1:
424
- _a.sent();
425
- indexOfMessage = channel.state.messages.findIndex(function (message) { return message.id === messageId; });
426
- hasMoreMessages = indexOfMessage >= Math.floor(messageLimit / 2);
427
- loadMoreFinished(hasMoreMessages, channel.state.messages);
428
- dispatch({
429
- hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
430
- highlightedMessageId: messageId,
431
- type: 'jumpToMessageFinished',
432
- });
433
- if (clearHighlightedMessageTimeoutId.current) {
434
- clearTimeout(clearHighlightedMessageTimeoutId.current);
435
- }
436
- clearHighlightedMessageTimeoutId.current = setTimeout(function () {
437
- clearHighlightedMessageTimeoutId.current = null;
438
- dispatch({ type: 'clearHighlightedMessage' });
439
- }, highlightDuration);
440
- return [2 /*return*/];
441
- }
442
- });
341
+ const clearHighlightedMessageTimeoutId = useRef(null);
342
+ const jumpToMessage = useCallback(async (messageId, messageLimit = DEFAULT_JUMP_TO_PAGE_SIZE, highlightDuration = DEFAULT_HIGHLIGHT_DURATION) => {
343
+ dispatch({ loadingMore: true, type: 'setLoadingMore' });
344
+ await channel.state.loadMessageIntoState(messageId, undefined, messageLimit);
345
+ /**
346
+ * if the message we are jumping to has less than half of the page size older messages,
347
+ * we have jumped to the beginning of the channel.
348
+ */
349
+ const indexOfMessage = channel.state.messages.findIndex((message) => message.id === messageId);
350
+ const hasMoreMessages = indexOfMessage >= Math.floor(messageLimit / 2);
351
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
352
+ dispatch({
353
+ hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
354
+ highlightedMessageId: messageId,
355
+ type: 'jumpToMessageFinished',
443
356
  });
357
+ if (clearHighlightedMessageTimeoutId.current) {
358
+ clearTimeout(clearHighlightedMessageTimeoutId.current);
359
+ }
360
+ clearHighlightedMessageTimeoutId.current = setTimeout(() => {
361
+ clearHighlightedMessageTimeoutId.current = null;
362
+ dispatch({ type: 'clearHighlightedMessage' });
363
+ }, highlightDuration);
444
364
  }, [channel, loadMoreFinished]);
445
- var jumpToLatestMessage = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
446
- var hasMoreOlder;
447
- return __generator(this, function (_a) {
448
- switch (_a.label) {
449
- case 0: return [4 /*yield*/, channel.state.loadMessageIntoState('latest')];
450
- case 1:
451
- _a.sent();
452
- hasMoreOlder = channel.state.messages.length >= 25;
453
- loadMoreFinished(hasMoreOlder, channel.state.messages);
454
- dispatch({
455
- type: 'jumpToLatestMessage',
456
- });
457
- return [2 /*return*/];
458
- }
365
+ const jumpToLatestMessage = useCallback(async () => {
366
+ await channel.state.loadMessageIntoState('latest');
367
+ // FIXME: we cannot rely on constant value 25 as the page size can be customized by integrators
368
+ const hasMoreOlder = channel.state.messages.length >= 25;
369
+ loadMoreFinished(hasMoreOlder, channel.state.messages);
370
+ dispatch({
371
+ type: 'jumpToLatestMessage',
459
372
  });
460
- }); }, [channel, loadMoreFinished]);
461
- var jumpToFirstUnreadMessage = useCallback(function (queryMessageLimit, highlightDuration) {
462
- if (queryMessageLimit === void 0) { queryMessageLimit = DEFAULT_JUMP_TO_PAGE_SIZE; }
463
- if (highlightDuration === void 0) { highlightDuration = DEFAULT_HIGHLIGHT_DURATION; }
464
- return __awaiter(void 0, void 0, void 0, function () {
465
- var lastReadMessageId, firstUnreadMessageId, isInCurrentMessageSet, hasMoreMessages, result, result, lastReadTimestamp, _a, lastReadMessageIndex, lastReadMessage, messages, e_5, firstMessageWithCreationDate, firstMessageTimestamp, result, targetId_1, indexOfTarget, e_6;
466
- var _b, _c, _d, _e;
467
- return __generator(this, function (_f) {
468
- switch (_f.label) {
469
- case 0:
470
- if (!(channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.unread_messages))
471
- return [2 /*return*/];
472
- lastReadMessageId = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.last_read_message_id;
473
- firstUnreadMessageId = channelUnreadUiState === null || channelUnreadUiState === void 0 ? void 0 : channelUnreadUiState.first_unread_message_id;
474
- isInCurrentMessageSet = false;
475
- hasMoreMessages = true;
476
- if (!firstUnreadMessageId) return [3 /*break*/, 1];
477
- result = findInMsgSetById(firstUnreadMessageId, channel.state.messages);
478
- isInCurrentMessageSet = result.index !== -1;
479
- return [3 /*break*/, 8];
480
- case 1:
481
- if (!lastReadMessageId) return [3 /*break*/, 2];
482
- result = findInMsgSetById(lastReadMessageId, channel.state.messages);
483
- isInCurrentMessageSet = !!result.target;
484
- firstUnreadMessageId =
485
- result.index > -1 ? (_b = channel.state.messages[result.index + 1]) === null || _b === void 0 ? void 0 : _b.id : undefined;
486
- return [3 /*break*/, 8];
487
- case 2:
488
- lastReadTimestamp = channelUnreadUiState.last_read.getTime();
489
- _a = findInMsgSetByDate(channelUnreadUiState.last_read, channel.state.messages, true), lastReadMessageIndex = _a.index, lastReadMessage = _a.target;
490
- if (!lastReadMessage) return [3 /*break*/, 3];
491
- firstUnreadMessageId = (_c = channel.state.messages[lastReadMessageIndex + 1]) === null || _c === void 0 ? void 0 : _c.id;
492
- isInCurrentMessageSet = !!firstUnreadMessageId;
493
- lastReadMessageId = lastReadMessage.id;
494
- return [3 /*break*/, 8];
495
- case 3:
496
- dispatch({ loadingMore: true, type: 'setLoadingMore' });
497
- messages = void 0;
498
- _f.label = 4;
499
- case 4:
500
- _f.trys.push([4, 6, , 7]);
501
- return [4 /*yield*/, channel.query({
502
- messages: {
503
- created_at_around: channelUnreadUiState.last_read.toISOString(),
504
- limit: queryMessageLimit,
505
- },
506
- }, 'new')];
507
- case 5:
508
- messages = (_f.sent()).messages;
509
- return [3 /*break*/, 7];
510
- case 6:
511
- e_5 = _f.sent();
512
- addNotification(t('Failed to jump to the first unread message'), 'error');
513
- loadMoreFinished(hasMoreMessages, channel.state.messages);
514
- return [2 /*return*/];
515
- case 7:
516
- firstMessageWithCreationDate = messages.find(function (msg) { return msg.created_at; });
517
- if (!firstMessageWithCreationDate) {
518
- addNotification(t('Failed to jump to the first unread message'), 'error');
519
- loadMoreFinished(hasMoreMessages, channel.state.messages);
520
- return [2 /*return*/];
521
- }
522
- firstMessageTimestamp = new Date(firstMessageWithCreationDate.created_at).getTime();
523
- if (lastReadTimestamp < firstMessageTimestamp) {
524
- // whole channel is unread
525
- firstUnreadMessageId = firstMessageWithCreationDate.id;
526
- hasMoreMessages = false;
527
- }
528
- else {
529
- result = findInMsgSetByDate(channelUnreadUiState.last_read, messages);
530
- lastReadMessageId = (_d = result.target) === null || _d === void 0 ? void 0 : _d.id;
531
- hasMoreMessages = result.index >= Math.floor(queryMessageLimit / 2);
532
- }
533
- loadMoreFinished(hasMoreMessages, channel.state.messages);
534
- _f.label = 8;
535
- case 8:
536
- if (!firstUnreadMessageId && !lastReadMessageId) {
537
- addNotification(t('Failed to jump to the first unread message'), 'error');
538
- return [2 /*return*/];
539
- }
540
- if (!!isInCurrentMessageSet) return [3 /*break*/, 12];
541
- dispatch({ loadingMore: true, type: 'setLoadingMore' });
542
- _f.label = 9;
543
- case 9:
544
- _f.trys.push([9, 11, , 12]);
545
- targetId_1 = (firstUnreadMessageId !== null && firstUnreadMessageId !== void 0 ? firstUnreadMessageId : lastReadMessageId);
546
- return [4 /*yield*/, channel.state.loadMessageIntoState(targetId_1, undefined, queryMessageLimit)];
547
- case 10:
548
- _f.sent();
549
- indexOfTarget = channel.state.messages.findIndex(function (message) { return message.id === targetId_1; });
550
- hasMoreMessages = indexOfTarget >= Math.floor(queryMessageLimit / 2);
551
- loadMoreFinished(hasMoreMessages, channel.state.messages);
552
- firstUnreadMessageId =
553
- firstUnreadMessageId !== null && firstUnreadMessageId !== void 0 ? firstUnreadMessageId : (_e = channel.state.messages[indexOfTarget + 1]) === null || _e === void 0 ? void 0 : _e.id;
554
- return [3 /*break*/, 12];
555
- case 11:
556
- e_6 = _f.sent();
557
- addNotification(t('Failed to jump to the first unread message'), 'error');
558
- loadMoreFinished(hasMoreMessages, channel.state.messages);
559
- return [2 /*return*/];
560
- case 12:
561
- if (!firstUnreadMessageId) {
562
- addNotification(t('Failed to jump to the first unread message'), 'error');
563
- return [2 /*return*/];
564
- }
565
- if (!channelUnreadUiState.first_unread_message_id)
566
- _setChannelUnreadUiState(__assign(__assign({}, channelUnreadUiState), { first_unread_message_id: firstUnreadMessageId, last_read_message_id: lastReadMessageId }));
567
- dispatch({
568
- hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
569
- highlightedMessageId: firstUnreadMessageId,
570
- type: 'jumpToMessageFinished',
571
- });
572
- if (clearHighlightedMessageTimeoutId.current) {
573
- clearTimeout(clearHighlightedMessageTimeoutId.current);
574
- }
575
- clearHighlightedMessageTimeoutId.current = setTimeout(function () {
576
- clearHighlightedMessageTimeoutId.current = null;
577
- dispatch({ type: 'clearHighlightedMessage' });
578
- }, highlightDuration);
579
- return [2 /*return*/];
373
+ }, [channel, loadMoreFinished]);
374
+ const jumpToFirstUnreadMessage = useCallback(async (queryMessageLimit = DEFAULT_JUMP_TO_PAGE_SIZE, highlightDuration = DEFAULT_HIGHLIGHT_DURATION) => {
375
+ if (!channelUnreadUiState?.unread_messages)
376
+ return;
377
+ let lastReadMessageId = channelUnreadUiState?.last_read_message_id;
378
+ let firstUnreadMessageId = channelUnreadUiState?.first_unread_message_id;
379
+ let isInCurrentMessageSet = false;
380
+ let hasMoreMessages = true;
381
+ if (firstUnreadMessageId) {
382
+ const result = findInMsgSetById(firstUnreadMessageId, channel.state.messages);
383
+ isInCurrentMessageSet = result.index !== -1;
384
+ }
385
+ else if (lastReadMessageId) {
386
+ const result = findInMsgSetById(lastReadMessageId, channel.state.messages);
387
+ isInCurrentMessageSet = !!result.target;
388
+ firstUnreadMessageId =
389
+ result.index > -1 ? channel.state.messages[result.index + 1]?.id : undefined;
390
+ }
391
+ else {
392
+ const lastReadTimestamp = channelUnreadUiState.last_read.getTime();
393
+ const { index: lastReadMessageIndex, target: lastReadMessage } = findInMsgSetByDate(channelUnreadUiState.last_read, channel.state.messages, true);
394
+ if (lastReadMessage) {
395
+ firstUnreadMessageId = channel.state.messages[lastReadMessageIndex + 1]?.id;
396
+ isInCurrentMessageSet = !!firstUnreadMessageId;
397
+ lastReadMessageId = lastReadMessage.id;
398
+ }
399
+ else {
400
+ dispatch({ loadingMore: true, type: 'setLoadingMore' });
401
+ let messages;
402
+ try {
403
+ messages = (await channel.query({
404
+ messages: {
405
+ created_at_around: channelUnreadUiState.last_read.toISOString(),
406
+ limit: queryMessageLimit,
407
+ },
408
+ }, 'new')).messages;
409
+ }
410
+ catch (e) {
411
+ addNotification(t('Failed to jump to the first unread message'), 'error');
412
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
413
+ return;
414
+ }
415
+ const firstMessageWithCreationDate = messages.find((msg) => msg.created_at);
416
+ if (!firstMessageWithCreationDate) {
417
+ addNotification(t('Failed to jump to the first unread message'), 'error');
418
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
419
+ return;
580
420
  }
421
+ const firstMessageTimestamp = new Date(firstMessageWithCreationDate.created_at).getTime();
422
+ if (lastReadTimestamp < firstMessageTimestamp) {
423
+ // whole channel is unread
424
+ firstUnreadMessageId = firstMessageWithCreationDate.id;
425
+ hasMoreMessages = false;
426
+ }
427
+ else {
428
+ const result = findInMsgSetByDate(channelUnreadUiState.last_read, messages);
429
+ lastReadMessageId = result.target?.id;
430
+ hasMoreMessages = result.index >= Math.floor(queryMessageLimit / 2);
431
+ }
432
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
433
+ }
434
+ }
435
+ if (!firstUnreadMessageId && !lastReadMessageId) {
436
+ addNotification(t('Failed to jump to the first unread message'), 'error');
437
+ return;
438
+ }
439
+ if (!isInCurrentMessageSet) {
440
+ dispatch({ loadingMore: true, type: 'setLoadingMore' });
441
+ try {
442
+ const targetId = (firstUnreadMessageId ?? lastReadMessageId);
443
+ await channel.state.loadMessageIntoState(targetId, undefined, queryMessageLimit);
444
+ /**
445
+ * if the index of the last read message on the page is beyond the half of the page,
446
+ * we have arrived to the oldest page of the channel
447
+ */
448
+ const indexOfTarget = channel.state.messages.findIndex((message) => message.id === targetId);
449
+ hasMoreMessages = indexOfTarget >= Math.floor(queryMessageLimit / 2);
450
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
451
+ firstUnreadMessageId =
452
+ firstUnreadMessageId ?? channel.state.messages[indexOfTarget + 1]?.id;
453
+ }
454
+ catch (e) {
455
+ addNotification(t('Failed to jump to the first unread message'), 'error');
456
+ loadMoreFinished(hasMoreMessages, channel.state.messages);
457
+ return;
458
+ }
459
+ }
460
+ if (!firstUnreadMessageId) {
461
+ addNotification(t('Failed to jump to the first unread message'), 'error');
462
+ return;
463
+ }
464
+ if (!channelUnreadUiState.first_unread_message_id)
465
+ _setChannelUnreadUiState({
466
+ ...channelUnreadUiState,
467
+ first_unread_message_id: firstUnreadMessageId,
468
+ last_read_message_id: lastReadMessageId,
581
469
  });
470
+ dispatch({
471
+ hasMoreNewer: channel.state.messages !== channel.state.latestMessages,
472
+ highlightedMessageId: firstUnreadMessageId,
473
+ type: 'jumpToMessageFinished',
582
474
  });
475
+ if (clearHighlightedMessageTimeoutId.current) {
476
+ clearTimeout(clearHighlightedMessageTimeoutId.current);
477
+ }
478
+ clearHighlightedMessageTimeoutId.current = setTimeout(() => {
479
+ clearHighlightedMessageTimeoutId.current = null;
480
+ dispatch({ type: 'clearHighlightedMessage' });
481
+ }, highlightDuration);
583
482
  }, [addNotification, channel, loadMoreFinished, t, channelUnreadUiState]);
584
- var deleteMessage = useCallback(function (message) { return __awaiter(void 0, void 0, void 0, function () {
585
- var deletedMessage, result;
586
- return __generator(this, function (_a) {
587
- switch (_a.label) {
588
- case 0:
589
- if (!(message === null || message === void 0 ? void 0 : message.id)) {
590
- throw new Error('Cannot delete a message - missing message ID.');
591
- }
592
- if (!doDeleteMessageRequest) return [3 /*break*/, 2];
593
- return [4 /*yield*/, doDeleteMessageRequest(message)];
594
- case 1:
595
- deletedMessage = _a.sent();
596
- return [3 /*break*/, 4];
597
- case 2: return [4 /*yield*/, client.deleteMessage(message.id)];
598
- case 3:
599
- result = _a.sent();
600
- deletedMessage = result.message;
601
- _a.label = 4;
602
- case 4: return [2 /*return*/, deletedMessage];
603
- }
604
- });
605
- }); }, [client, doDeleteMessageRequest]);
606
- var updateMessage = function (updatedMessage) {
483
+ const deleteMessage = useCallback(async (message) => {
484
+ if (!message?.id) {
485
+ throw new Error('Cannot delete a message - missing message ID.');
486
+ }
487
+ let deletedMessage;
488
+ if (doDeleteMessageRequest) {
489
+ deletedMessage = await doDeleteMessageRequest(message);
490
+ }
491
+ else {
492
+ const result = await client.deleteMessage(message.id);
493
+ deletedMessage = result.message;
494
+ }
495
+ return deletedMessage;
496
+ }, [client, doDeleteMessageRequest]);
497
+ const updateMessage = (updatedMessage) => {
607
498
  // add the message to the local channel state
608
499
  channel.state.addMessageSorted(updatedMessage, true);
609
500
  dispatch({
610
- channel: channel,
501
+ channel,
611
502
  parentId: state.thread && updatedMessage.parent_id,
612
503
  type: 'copyMessagesFromChannel',
613
504
  });
614
505
  };
615
- var doSendMessage = function (message, customMessageData, options) { return __awaiter(void 0, void 0, void 0, function () {
616
- var attachments, id, _a, mentioned_users, parent_id, text, mentions, messageData, messageResponse, existingMessage, i, msg, responseTimestamp, existingMessageTimestamp, responseIsTheNewest, error_1, stringError, parsedError;
617
- var _b, _c;
618
- return __generator(this, function (_d) {
619
- switch (_d.label) {
620
- case 0:
621
- attachments = message.attachments, id = message.id, _a = message.mentioned_users, mentioned_users = _a === void 0 ? [] : _a, parent_id = message.parent_id, text = message.text;
622
- mentions = isUserResponseArray(mentioned_users)
623
- ? mentioned_users.map(function (_a) {
624
- var id = _a.id;
625
- return id;
626
- })
627
- : mentioned_users;
628
- messageData = __assign({ attachments: attachments, id: id, mentioned_users: mentions, parent_id: parent_id, quoted_message_id: parent_id === (quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.parent_id) ? quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.id : undefined, text: text }, customMessageData);
629
- _d.label = 1;
630
- case 1:
631
- _d.trys.push([1, 6, , 7]);
632
- messageResponse = void 0;
633
- if (!doSendMessageRequest) return [3 /*break*/, 3];
634
- return [4 /*yield*/, doSendMessageRequest(channel, messageData, options)];
635
- case 2:
636
- messageResponse = _d.sent();
637
- return [3 /*break*/, 5];
638
- case 3: return [4 /*yield*/, channel.sendMessage(messageData, options)];
639
- case 4:
640
- messageResponse = _d.sent();
641
- _d.label = 5;
642
- case 5:
643
- existingMessage = void 0;
644
- for (i = channel.state.messages.length - 1; i >= 0; i--) {
645
- msg = channel.state.messages[i];
646
- if (msg.id && msg.id === messageData.id) {
647
- existingMessage = msg;
648
- break;
649
- }
650
- }
651
- responseTimestamp = new Date(((_b = messageResponse === null || messageResponse === void 0 ? void 0 : messageResponse.message) === null || _b === void 0 ? void 0 : _b.updated_at) || 0).getTime();
652
- existingMessageTimestamp = ((_c = existingMessage === null || existingMessage === void 0 ? void 0 : existingMessage.updated_at) === null || _c === void 0 ? void 0 : _c.getTime()) || 0;
653
- responseIsTheNewest = responseTimestamp > existingMessageTimestamp;
654
- // Replace the message payload after send is completed
655
- // We need to check for the newest message payload, because on slow network, the response can arrive later than WS events message.new, message.updated.
656
- // Always override existing message in status "sending"
657
- if ((messageResponse === null || messageResponse === void 0 ? void 0 : messageResponse.message) &&
658
- (responseIsTheNewest || (existingMessage === null || existingMessage === void 0 ? void 0 : existingMessage.status) === 'sending')) {
659
- updateMessage(__assign(__assign({}, messageResponse.message), { status: 'received' }));
660
- }
661
- if (quotedMessage && parent_id === (quotedMessage === null || quotedMessage === void 0 ? void 0 : quotedMessage.parent_id))
662
- setQuotedMessage(undefined);
663
- return [3 /*break*/, 7];
664
- case 6:
665
- error_1 = _d.sent();
666
- stringError = JSON.stringify(error_1);
667
- parsedError = (stringError
668
- ? JSON.parse(stringError)
669
- : {});
670
- // Handle the case where the message already exists
671
- // (typically, when retrying to send a message).
672
- // If the message already exists, we can assume it was sent successfully,
673
- // so we update the message status to "received".
674
- // Right now, the only way to check this error is by checking
675
- // the combination of the error code and the error description,
676
- // since there is no special error code for duplicate messages.
677
- if (parsedError.code === 4 &&
678
- error_1 instanceof Error &&
679
- error_1.message.includes('already exists')) {
680
- updateMessage(__assign(__assign({}, message), { status: 'received' }));
681
- }
682
- else {
683
- updateMessage(__assign(__assign({}, message), { error: parsedError, errorStatusCode: parsedError.status || undefined, status: 'failed' }));
684
- }
685
- return [3 /*break*/, 7];
686
- case 7: return [2 /*return*/];
506
+ const doSendMessage = async (message, customMessageData, options) => {
507
+ const { attachments, id, mentioned_users = [], parent_id, text } = message;
508
+ // channel.sendMessage expects an array of user id strings
509
+ const mentions = isUserResponseArray(mentioned_users)
510
+ ? mentioned_users.map(({ id }) => id)
511
+ : mentioned_users;
512
+ const messageData = {
513
+ attachments,
514
+ id,
515
+ mentioned_users: mentions,
516
+ parent_id,
517
+ quoted_message_id: parent_id === quotedMessage?.parent_id ? quotedMessage?.id : undefined,
518
+ text,
519
+ ...customMessageData,
520
+ };
521
+ try {
522
+ let messageResponse;
523
+ if (doSendMessageRequest) {
524
+ messageResponse = await doSendMessageRequest(channel, messageData, options);
687
525
  }
688
- });
689
- }); };
690
- var sendMessage = function (_a, customMessageData, options) {
691
- var _b = _a.attachments, attachments = _b === void 0 ? [] : _b, _c = _a.mentioned_users, mentioned_users = _c === void 0 ? [] : _c, parent = _a.parent, _d = _a.text, text = _d === void 0 ? '' : _d;
692
- return __awaiter(void 0, void 0, void 0, function () {
693
- var messagePreview;
694
- var _e;
695
- return __generator(this, function (_f) {
696
- switch (_f.label) {
697
- case 0:
698
- channel.state.filterErrorMessages();
699
- messagePreview = __assign({ __html: text, attachments: attachments, created_at: new Date(), html: text, id: (_e = customMessageData === null || customMessageData === void 0 ? void 0 : customMessageData.id) !== null && _e !== void 0 ? _e : "".concat(client.userID, "-").concat(nanoid()), mentioned_users: mentioned_users, reactions: [], status: 'sending', text: text, type: 'regular', user: client.user }, ((parent === null || parent === void 0 ? void 0 : parent.id) ? { parent_id: parent.id } : null));
700
- updateMessage(messagePreview);
701
- return [4 /*yield*/, doSendMessage(messagePreview, customMessageData, options)];
702
- case 1:
703
- _f.sent();
704
- return [2 /*return*/];
526
+ else {
527
+ messageResponse = await channel.sendMessage(messageData, options);
528
+ }
529
+ let existingMessage;
530
+ for (let i = channel.state.messages.length - 1; i >= 0; i--) {
531
+ const msg = channel.state.messages[i];
532
+ if (msg.id && msg.id === messageData.id) {
533
+ existingMessage = msg;
534
+ break;
705
535
  }
706
- });
707
- });
708
- };
709
- var retrySendMessage = function (message) { return __awaiter(void 0, void 0, void 0, function () {
710
- return __generator(this, function (_a) {
711
- switch (_a.label) {
712
- case 0:
713
- updateMessage(__assign(__assign({}, message), { errorStatusCode: undefined, status: 'sending' }));
714
- if (message.attachments) {
715
- // remove scraped attachments added during the message composition in MessageInput to prevent sync issues
716
- message.attachments = message.attachments.filter(function (attachment) { return !attachment.og_scrape_url; });
717
- }
718
- return [4 /*yield*/, doSendMessage(message)];
719
- case 1:
720
- _a.sent();
721
- return [2 /*return*/];
722
536
  }
537
+ const responseTimestamp = new Date(messageResponse?.message?.updated_at || 0).getTime();
538
+ const existingMessageTimestamp = existingMessage?.updated_at?.getTime() || 0;
539
+ const responseIsTheNewest = responseTimestamp > existingMessageTimestamp;
540
+ // Replace the message payload after send is completed
541
+ // We need to check for the newest message payload, because on slow network, the response can arrive later than WS events message.new, message.updated.
542
+ // Always override existing message in status "sending"
543
+ if (messageResponse?.message &&
544
+ (responseIsTheNewest || existingMessage?.status === 'sending')) {
545
+ updateMessage({
546
+ ...messageResponse.message,
547
+ status: 'received',
548
+ });
549
+ }
550
+ if (quotedMessage && parent_id === quotedMessage?.parent_id)
551
+ setQuotedMessage(undefined);
552
+ }
553
+ catch (error) {
554
+ // error response isn't usable so needs to be stringified then parsed
555
+ const stringError = JSON.stringify(error);
556
+ const parsedError = (stringError
557
+ ? JSON.parse(stringError)
558
+ : {});
559
+ // Handle the case where the message already exists
560
+ // (typically, when retrying to send a message).
561
+ // If the message already exists, we can assume it was sent successfully,
562
+ // so we update the message status to "received".
563
+ // Right now, the only way to check this error is by checking
564
+ // the combination of the error code and the error description,
565
+ // since there is no special error code for duplicate messages.
566
+ if (parsedError.code === 4 &&
567
+ error instanceof Error &&
568
+ error.message.includes('already exists')) {
569
+ updateMessage({
570
+ ...message,
571
+ status: 'received',
572
+ });
573
+ }
574
+ else {
575
+ updateMessage({
576
+ ...message,
577
+ error: parsedError,
578
+ errorStatusCode: parsedError.status || undefined,
579
+ status: 'failed',
580
+ });
581
+ }
582
+ }
583
+ };
584
+ const sendMessage = async ({ attachments = [], mentioned_users = [], parent, text = '', }, customMessageData, options) => {
585
+ channel.state.filterErrorMessages();
586
+ const messagePreview = {
587
+ __html: text,
588
+ attachments,
589
+ created_at: new Date(),
590
+ html: text,
591
+ id: customMessageData?.id ?? `${client.userID}-${nanoid()}`,
592
+ mentioned_users,
593
+ reactions: [],
594
+ status: 'sending',
595
+ text,
596
+ type: 'regular',
597
+ user: client.user,
598
+ ...(parent?.id ? { parent_id: parent.id } : null),
599
+ };
600
+ updateMessage(messagePreview);
601
+ await doSendMessage(messagePreview, customMessageData, options);
602
+ };
603
+ const retrySendMessage = async (message) => {
604
+ updateMessage({
605
+ ...message,
606
+ errorStatusCode: undefined,
607
+ status: 'sending',
723
608
  });
724
- }); };
725
- var removeMessage = function (message) {
609
+ if (message.attachments) {
610
+ // remove scraped attachments added during the message composition in MessageInput to prevent sync issues
611
+ message.attachments = message.attachments.filter((attachment) => !attachment.og_scrape_url);
612
+ }
613
+ await doSendMessage(message);
614
+ };
615
+ const removeMessage = (message) => {
726
616
  channel.state.removeMessage(message);
727
617
  dispatch({
728
- channel: channel,
618
+ channel,
729
619
  parentId: state.thread && message.parent_id,
730
620
  type: 'copyMessagesFromChannel',
731
621
  });
732
622
  };
733
623
  /** THREAD */
734
- var openThread = function (message, event) {
735
- event === null || event === void 0 ? void 0 : event.preventDefault();
736
- setQuotedMessage(function (current) {
737
- if ((current === null || current === void 0 ? void 0 : current.parent_id) !== (message === null || message === void 0 ? void 0 : message.parent_id)) {
624
+ const openThread = (message, event) => {
625
+ event?.preventDefault();
626
+ setQuotedMessage((current) => {
627
+ if (current?.parent_id !== message?.parent_id) {
738
628
  return undefined;
739
629
  }
740
630
  else {
741
631
  return current;
742
632
  }
743
633
  });
744
- dispatch({ channel: channel, message: message, type: 'openThread' });
634
+ dispatch({ channel, message, type: 'openThread' });
745
635
  };
746
- var closeThread = function (event) {
747
- event === null || event === void 0 ? void 0 : event.preventDefault();
636
+ const closeThread = (event) => {
637
+ event?.preventDefault();
748
638
  dispatch({ type: 'closeThread' });
749
639
  };
750
640
  // eslint-disable-next-line react-hooks/exhaustive-deps
751
- var loadMoreThreadFinished = useCallback(debounce(function (threadHasMore, threadMessages) {
641
+ const loadMoreThreadFinished = useCallback(debounce((threadHasMore, threadMessages) => {
752
642
  dispatch({
753
- threadHasMore: threadHasMore,
754
- threadMessages: threadMessages,
643
+ threadHasMore,
644
+ threadMessages,
755
645
  type: 'loadMoreThreadFinished',
756
646
  });
757
647
  }, 2000, { leading: true, trailing: true }), []);
758
- var loadMoreThread = function (limit) {
759
- if (limit === void 0) { limit = DEFAULT_THREAD_PAGE_SIZE; }
760
- return __awaiter(void 0, void 0, void 0, function () {
761
- var parentId, oldMessages, oldestMessageId, queryResponse, threadHasMoreMessages, newThreadMessages, e_7;
762
- var _a;
763
- return __generator(this, function (_b) {
764
- switch (_b.label) {
765
- case 0:
766
- // FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
767
- if (state.threadLoadingMore || !state.thread || !state.threadHasMore)
768
- return [2 /*return*/];
769
- dispatch({ type: 'startLoadingThread' });
770
- parentId = state.thread.id;
771
- if (!parentId) {
772
- return [2 /*return*/, dispatch({ type: 'closeThread' })];
773
- }
774
- oldMessages = channel.state.threads[parentId] || [];
775
- oldestMessageId = (_a = oldMessages[0]) === null || _a === void 0 ? void 0 : _a.id;
776
- _b.label = 1;
777
- case 1:
778
- _b.trys.push([1, 3, , 4]);
779
- return [4 /*yield*/, channel.getReplies(parentId, {
780
- id_lt: oldestMessageId,
781
- limit: limit,
782
- })];
783
- case 2:
784
- queryResponse = _b.sent();
785
- threadHasMoreMessages = hasMoreMessagesProbably(queryResponse.messages.length, limit);
786
- newThreadMessages = channel.state.threads[parentId] || [];
787
- // next set loadingMore to false so we can start asking for more data
788
- loadMoreThreadFinished(threadHasMoreMessages, newThreadMessages);
789
- return [3 /*break*/, 4];
790
- case 3:
791
- e_7 = _b.sent();
792
- loadMoreThreadFinished(false, oldMessages);
793
- return [3 /*break*/, 4];
794
- case 4: return [2 /*return*/];
795
- }
648
+ const loadMoreThread = async (limit = DEFAULT_THREAD_PAGE_SIZE) => {
649
+ // FIXME: should prevent loading more, if state.thread.reply_count === channel.state.threads[parentID].length
650
+ if (state.threadLoadingMore || !state.thread || !state.threadHasMore)
651
+ return;
652
+ dispatch({ type: 'startLoadingThread' });
653
+ const parentId = state.thread.id;
654
+ if (!parentId) {
655
+ return dispatch({ type: 'closeThread' });
656
+ }
657
+ const oldMessages = channel.state.threads[parentId] || [];
658
+ const oldestMessageId = oldMessages[0]?.id;
659
+ try {
660
+ const queryResponse = await channel.getReplies(parentId, {
661
+ id_lt: oldestMessageId,
662
+ limit,
796
663
  });
797
- });
664
+ const threadHasMoreMessages = hasMoreMessagesProbably(queryResponse.messages.length, limit);
665
+ const newThreadMessages = channel.state.threads[parentId] || [];
666
+ // next set loadingMore to false so we can start asking for more data
667
+ loadMoreThreadFinished(threadHasMoreMessages, newThreadMessages);
668
+ }
669
+ catch (e) {
670
+ loadMoreThreadFinished(false, oldMessages);
671
+ }
798
672
  };
799
- var onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
800
- var editMessage = useEditMessageHandler(doUpdateMessageRequest);
801
- var typing = state.typing, restState = __rest(state, ["typing"]);
802
- var channelStateContextValue = useCreateChannelStateContext(__assign(__assign({}, restState), { acceptedFiles: acceptedFiles, channel: channel, channelCapabilitiesArray: channelCapabilitiesArray, channelConfig: channelConfig, channelUnreadUiState: channelUnreadUiState, debounceURLEnrichmentMs: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.debounceURLEnrichmentMs, dragAndDropWindow: dragAndDropWindow, enrichURLForPreview: props.enrichURLForPreview, findURLFn: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn, giphyVersion: props.giphyVersion || 'fixed_height', imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration, maxNumberOfFiles: maxNumberOfFiles, multipleUploads: multipleUploads, mutes: mutes, notifications: notifications, onLinkPreviewDismissed: enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed, quotedMessage: quotedMessage, shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true, videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration, watcher_count: state.watcherCount }));
803
- var channelActionContextValue = useMemo(function () { return ({
804
- addNotification: addNotification,
805
- closeThread: closeThread,
806
- deleteMessage: deleteMessage,
807
- dispatch: dispatch,
808
- editMessage: editMessage,
809
- jumpToFirstUnreadMessage: jumpToFirstUnreadMessage,
810
- jumpToLatestMessage: jumpToLatestMessage,
811
- jumpToMessage: jumpToMessage,
812
- loadMore: loadMore,
813
- loadMoreNewer: loadMoreNewer,
814
- loadMoreThread: loadMoreThread,
815
- markRead: markRead,
673
+ const onMentionsHoverOrClick = useMentionsHandlers(onMentionsHover, onMentionsClick);
674
+ const editMessage = useEditMessageHandler(doUpdateMessageRequest);
675
+ const { typing, ...restState } = state;
676
+ const channelStateContextValue = useCreateChannelStateContext({
677
+ ...restState,
678
+ acceptedFiles,
679
+ channel,
680
+ channelCapabilitiesArray,
681
+ channelConfig,
682
+ channelUnreadUiState,
683
+ debounceURLEnrichmentMs: enrichURLForPreviewConfig?.debounceURLEnrichmentMs,
684
+ dragAndDropWindow,
685
+ enrichURLForPreview: props.enrichURLForPreview,
686
+ findURLFn: enrichURLForPreviewConfig?.findURLFn,
687
+ giphyVersion: props.giphyVersion || 'fixed_height',
688
+ imageAttachmentSizeHandler: props.imageAttachmentSizeHandler || getImageAttachmentConfiguration,
689
+ maxNumberOfFiles,
690
+ multipleUploads,
691
+ mutes,
692
+ notifications,
693
+ onLinkPreviewDismissed: enrichURLForPreviewConfig?.onLinkPreviewDismissed,
694
+ quotedMessage,
695
+ shouldGenerateVideoThumbnail: props.shouldGenerateVideoThumbnail || true,
696
+ videoAttachmentSizeHandler: props.videoAttachmentSizeHandler || getVideoAttachmentConfiguration,
697
+ watcher_count: state.watcherCount,
698
+ });
699
+ const channelActionContextValue = useMemo(() => ({
700
+ addNotification,
701
+ closeThread,
702
+ deleteMessage,
703
+ dispatch,
704
+ editMessage,
705
+ jumpToFirstUnreadMessage,
706
+ jumpToLatestMessage,
707
+ jumpToMessage,
708
+ loadMore,
709
+ loadMoreNewer,
710
+ loadMoreThread,
711
+ markRead,
816
712
  onMentionsClick: onMentionsHoverOrClick,
817
713
  onMentionsHover: onMentionsHoverOrClick,
818
- openThread: openThread,
819
- removeMessage: removeMessage,
820
- retrySendMessage: retrySendMessage,
821
- sendMessage: sendMessage,
822
- setChannelUnreadUiState: setChannelUnreadUiState,
823
- setQuotedMessage: setQuotedMessage,
824
- skipMessageDataMemoization: skipMessageDataMemoization,
825
- updateMessage: updateMessage,
826
- }); },
714
+ openThread,
715
+ removeMessage,
716
+ retrySendMessage,
717
+ sendMessage,
718
+ setChannelUnreadUiState,
719
+ setQuotedMessage,
720
+ skipMessageDataMemoization,
721
+ updateMessage,
722
+ }),
827
723
  // eslint-disable-next-line react-hooks/exhaustive-deps
828
724
  [
829
725
  channel.cid,
830
726
  deleteMessage,
831
- enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.findURLFn,
832
- enrichURLForPreviewConfig === null || enrichURLForPreviewConfig === void 0 ? void 0 : enrichURLForPreviewConfig.onLinkPreviewDismissed,
727
+ enrichURLForPreviewConfig?.findURLFn,
728
+ enrichURLForPreviewConfig?.onLinkPreviewDismissed,
833
729
  loadMore,
834
730
  loadMoreNewer,
835
731
  markRead,
@@ -839,66 +735,62 @@ var ChannelInner = function (props) {
839
735
  jumpToLatestMessage,
840
736
  setChannelUnreadUiState,
841
737
  ]);
842
- var componentContextValue = useMemo(function () {
843
- var _a;
844
- return ({
845
- Attachment: props.Attachment || DefaultAttachment,
846
- AttachmentPreviewList: props.AttachmentPreviewList,
847
- AudioRecorder: props.AudioRecorder,
848
- AutocompleteSuggestionHeader: props.AutocompleteSuggestionHeader,
849
- AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
850
- AutocompleteSuggestionList: props.AutocompleteSuggestionList,
851
- Avatar: props.Avatar,
852
- BaseImage: props.BaseImage,
853
- CooldownTimer: props.CooldownTimer,
854
- CustomMessageActionsList: props.CustomMessageActionsList,
855
- DateSeparator: props.DateSeparator || DateSeparator,
856
- EditMessageInput: props.EditMessageInput,
857
- EmojiPicker: props.EmojiPicker,
858
- emojiSearchIndex: props.emojiSearchIndex,
859
- EmptyStateIndicator: props.EmptyStateIndicator,
860
- FileUploadIcon: props.FileUploadIcon,
861
- GiphyPreviewMessage: props.GiphyPreviewMessage,
862
- HeaderComponent: props.HeaderComponent,
863
- Input: props.Input,
864
- LinkPreviewList: props.LinkPreviewList,
865
- LoadingIndicator: props.LoadingIndicator,
866
- Message: props.Message || MessageSimple,
867
- MessageBouncePrompt: props.MessageBouncePrompt,
868
- MessageDeleted: props.MessageDeleted,
869
- MessageListNotifications: props.MessageListNotifications,
870
- MessageNotification: props.MessageNotification,
871
- MessageOptions: props.MessageOptions,
872
- MessageRepliesCountButton: props.MessageRepliesCountButton,
873
- MessageStatus: props.MessageStatus,
874
- MessageSystem: props.MessageSystem || EventComponent,
875
- MessageTimestamp: props.MessageTimestamp,
876
- ModalGallery: props.ModalGallery,
877
- PinIndicator: props.PinIndicator,
878
- QuotedMessage: props.QuotedMessage,
879
- QuotedMessagePreview: props.QuotedMessagePreview,
880
- reactionOptions: (_a = props.reactionOptions) !== null && _a !== void 0 ? _a : defaultReactionOptions,
881
- ReactionSelector: props.ReactionSelector,
882
- ReactionsList: props.ReactionsList,
883
- SendButton: props.SendButton,
884
- StartRecordingAudioButton: props.StartRecordingAudioButton,
885
- ThreadHead: props.ThreadHead,
886
- ThreadHeader: props.ThreadHeader,
887
- ThreadStart: props.ThreadStart,
888
- Timestamp: props.Timestamp,
889
- TriggerProvider: props.TriggerProvider,
890
- TypingIndicator: props.TypingIndicator,
891
- UnreadMessagesNotification: props.UnreadMessagesNotification,
892
- UnreadMessagesSeparator: props.UnreadMessagesSeparator || UnreadMessagesSeparator,
893
- VirtualMessage: props.VirtualMessage,
894
- });
895
- },
738
+ const componentContextValue = useMemo(() => ({
739
+ Attachment: props.Attachment || DefaultAttachment,
740
+ AttachmentPreviewList: props.AttachmentPreviewList,
741
+ AudioRecorder: props.AudioRecorder,
742
+ AutocompleteSuggestionItem: props.AutocompleteSuggestionItem,
743
+ AutocompleteSuggestionList: props.AutocompleteSuggestionList,
744
+ Avatar: props.Avatar,
745
+ BaseImage: props.BaseImage,
746
+ CooldownTimer: props.CooldownTimer,
747
+ CustomMessageActionsList: props.CustomMessageActionsList,
748
+ DateSeparator: props.DateSeparator || DateSeparator,
749
+ EditMessageInput: props.EditMessageInput,
750
+ EmojiPicker: props.EmojiPicker,
751
+ emojiSearchIndex: props.emojiSearchIndex,
752
+ EmptyStateIndicator: props.EmptyStateIndicator,
753
+ FileUploadIcon: props.FileUploadIcon,
754
+ GiphyPreviewMessage: props.GiphyPreviewMessage,
755
+ HeaderComponent: props.HeaderComponent,
756
+ Input: props.Input,
757
+ LinkPreviewList: props.LinkPreviewList,
758
+ LoadingIndicator: props.LoadingIndicator,
759
+ Message: props.Message || MessageSimple,
760
+ MessageBouncePrompt: props.MessageBouncePrompt,
761
+ MessageDeleted: props.MessageDeleted,
762
+ MessageListNotifications: props.MessageListNotifications,
763
+ MessageNotification: props.MessageNotification,
764
+ MessageOptions: props.MessageOptions,
765
+ MessageRepliesCountButton: props.MessageRepliesCountButton,
766
+ MessageStatus: props.MessageStatus,
767
+ MessageSystem: props.MessageSystem || EventComponent,
768
+ MessageTimestamp: props.MessageTimestamp,
769
+ ModalGallery: props.ModalGallery,
770
+ PinIndicator: props.PinIndicator,
771
+ QuotedMessage: props.QuotedMessage,
772
+ QuotedMessagePreview: props.QuotedMessagePreview,
773
+ reactionOptions: props.reactionOptions ?? defaultReactionOptions,
774
+ ReactionSelector: props.ReactionSelector,
775
+ ReactionsList: props.ReactionsList,
776
+ SendButton: props.SendButton,
777
+ StartRecordingAudioButton: props.StartRecordingAudioButton,
778
+ ThreadHead: props.ThreadHead,
779
+ ThreadHeader: props.ThreadHeader,
780
+ ThreadStart: props.ThreadStart,
781
+ Timestamp: props.Timestamp,
782
+ TriggerProvider: props.TriggerProvider,
783
+ TypingIndicator: props.TypingIndicator,
784
+ UnreadMessagesNotification: props.UnreadMessagesNotification,
785
+ UnreadMessagesSeparator: props.UnreadMessagesSeparator || UnreadMessagesSeparator,
786
+ VirtualMessage: props.VirtualMessage,
787
+ }),
896
788
  // eslint-disable-next-line react-hooks/exhaustive-deps
897
789
  [props.reactionOptions]);
898
- var typingContextValue = useCreateTypingContext({
899
- typing: typing,
790
+ const typingContextValue = useCreateTypingContext({
791
+ typing,
900
792
  });
901
- var className = clsx(chatClass, theme, channelClass);
793
+ const className = clsx(chatClass, theme, channelClass);
902
794
  if (state.error) {
903
795
  return (React.createElement("div", { className: className },
904
796
  React.createElement(LoadingErrorIndicator, { error: state.error })));
@@ -916,8 +808,8 @@ var ChannelInner = function (props) {
916
808
  React.createElement(ChannelActionProvider, { value: channelActionContextValue },
917
809
  React.createElement(ComponentProvider, { value: componentContextValue },
918
810
  React.createElement(TypingProvider, { value: typingContextValue },
919
- React.createElement("div", { className: "".concat(chatContainerClass) },
920
- dragAndDropWindow && (React.createElement(DropzoneProvider, __assign({}, optionalMessageInputProps), children)),
811
+ React.createElement("div", { className: `${chatContainerClass}` },
812
+ dragAndDropWindow && (React.createElement(DropzoneProvider, { ...optionalMessageInputProps }, children)),
921
813
  !dragAndDropWindow && React.createElement(React.Fragment, null, children))))))));
922
814
  };
923
815
  /**
@@ -928,4 +820,4 @@ var ChannelInner = function (props) {
928
820
  * - [ComponentContext](https://getstream.io/chat/docs/sdk/react/contexts/component_context/)
929
821
  * - [TypingContext](https://getstream.io/chat/docs/sdk/react/contexts/typing_context/)
930
822
  */
931
- export var Channel = React.memo(UnMemoizedChannel);
823
+ export const Channel = React.memo(UnMemoizedChannel);