stream-chat-react 9.4.0 → 10.0.0-theming-v2.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 (520) hide show
  1. package/dist/browser.full-bundle.js +16760 -13355
  2. package/dist/browser.full-bundle.js.map +1 -1
  3. package/dist/browser.full-bundle.min.js +20 -5
  4. package/dist/browser.full-bundle.min.js.map +1 -1
  5. package/dist/components/Attachment/Attachment.d.ts +1 -0
  6. package/dist/components/Attachment/Attachment.d.ts.map +1 -1
  7. package/dist/components/Attachment/Attachment.js +80 -35
  8. package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
  9. package/dist/components/Attachment/AttachmentActions.js +2 -6
  10. package/dist/components/Attachment/AttachmentContainer.d.ts +12 -0
  11. package/dist/components/Attachment/AttachmentContainer.d.ts.map +1 -0
  12. package/dist/components/Attachment/AttachmentContainer.js +107 -0
  13. package/dist/components/Attachment/Audio.d.ts +11 -0
  14. package/dist/components/Attachment/Audio.d.ts.map +1 -1
  15. package/dist/components/Attachment/Audio.js +59 -32
  16. package/dist/components/Attachment/Card.d.ts +5 -20
  17. package/dist/components/Attachment/Card.d.ts.map +1 -1
  18. package/dist/components/Attachment/Card.js +93 -15
  19. package/dist/components/Attachment/DownloadButton.d.ts +6 -0
  20. package/dist/components/Attachment/DownloadButton.d.ts.map +1 -0
  21. package/dist/components/Attachment/DownloadButton.js +8 -0
  22. package/dist/components/Attachment/FileAttachment.d.ts +1 -1
  23. package/dist/components/Attachment/FileAttachment.d.ts.map +1 -1
  24. package/dist/components/Attachment/FileAttachment.js +23 -6
  25. package/dist/components/Attachment/FileSizeIndicator.d.ts +6 -0
  26. package/dist/components/Attachment/FileSizeIndicator.d.ts.map +1 -0
  27. package/dist/components/Attachment/FileSizeIndicator.js +8 -0
  28. package/dist/components/Attachment/hooks/useAudioController.d.ts +9 -0
  29. package/dist/components/Attachment/hooks/useAudioController.d.ts.map +1 -0
  30. package/dist/components/Attachment/hooks/useAudioController.js +45 -0
  31. package/dist/components/Attachment/icons.d.ts +5 -0
  32. package/dist/components/Attachment/icons.d.ts.map +1 -0
  33. package/dist/components/Attachment/icons.js +10 -0
  34. package/dist/components/Attachment/index.d.ts +1 -0
  35. package/dist/components/Attachment/index.d.ts.map +1 -1
  36. package/dist/components/Attachment/index.js +1 -0
  37. package/dist/components/Attachment/utils.d.ts +41 -4
  38. package/dist/components/Attachment/utils.d.ts.map +1 -1
  39. package/dist/components/Attachment/utils.js +63 -18
  40. package/dist/components/AutoCompleteTextarea/Item.d.ts.map +1 -1
  41. package/dist/components/AutoCompleteTextarea/Item.js +11 -4
  42. package/dist/components/AutoCompleteTextarea/List.d.ts +17 -1
  43. package/dist/components/AutoCompleteTextarea/List.d.ts.map +1 -1
  44. package/dist/components/AutoCompleteTextarea/List.js +19 -17
  45. package/dist/components/AutoCompleteTextarea/Textarea.d.ts +16 -2
  46. package/dist/components/AutoCompleteTextarea/Textarea.d.ts.map +1 -1
  47. package/dist/components/AutoCompleteTextarea/Textarea.js +19 -16
  48. package/dist/components/AutoCompleteTextarea/utils.js +1 -1
  49. package/dist/components/Avatar/Avatar.js +10 -10
  50. package/dist/components/Channel/Channel.d.ts +7 -2
  51. package/dist/components/Channel/Channel.d.ts.map +1 -1
  52. package/dist/components/Channel/Channel.js +78 -69
  53. package/dist/components/Channel/LoadingChannel.d.ts +2 -0
  54. package/dist/components/Channel/LoadingChannel.d.ts.map +1 -0
  55. package/dist/components/Channel/LoadingChannel.js +20 -0
  56. package/dist/components/Channel/channelState.d.ts +1 -0
  57. package/dist/components/Channel/channelState.d.ts.map +1 -1
  58. package/dist/components/Channel/channelState.js +14 -9
  59. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts +9 -0
  60. package/dist/components/Channel/hooks/useChannelContainerClasses.d.ts.map +1 -0
  61. package/dist/components/Channel/hooks/useChannelContainerClasses.js +14 -0
  62. package/dist/components/Channel/hooks/useCreateChannelStateContext.js +6 -6
  63. package/dist/components/Channel/utils.d.ts +3 -0
  64. package/dist/components/Channel/utils.d.ts.map +1 -1
  65. package/dist/components/Channel/utils.js +9 -5
  66. package/dist/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
  67. package/dist/components/ChannelHeader/ChannelHeader.js +14 -9
  68. package/dist/components/ChannelList/ChannelList.d.ts +10 -4
  69. package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
  70. package/dist/components/ChannelList/ChannelList.js +32 -14
  71. package/dist/components/ChannelList/hooks/useChannelDeletedListener.js +10 -6
  72. package/dist/components/ChannelList/hooks/useChannelHiddenListener.js +10 -6
  73. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts +1 -1
  74. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.d.ts.map +1 -1
  75. package/dist/components/ChannelList/hooks/useChannelTruncatedListener.js +9 -5
  76. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts +1 -1
  77. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.d.ts.map +1 -1
  78. package/dist/components/ChannelList/hooks/useChannelUpdatedListener.js +9 -5
  79. package/dist/components/ChannelList/hooks/useChannelVisibleListener.js +9 -5
  80. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +1 -1
  81. package/dist/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +1 -1
  82. package/dist/components/ChannelList/hooks/useMessageNewListener.js +9 -5
  83. package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts +1 -1
  84. package/dist/components/ChannelList/hooks/useMobileNavigation.d.ts.map +1 -1
  85. package/dist/components/ChannelList/hooks/useNotificationAddedToChannelListener.js +9 -5
  86. package/dist/components/ChannelList/hooks/useNotificationMessageNewListener.js +9 -5
  87. package/dist/components/ChannelList/hooks/usePaginatedChannels.js +9 -5
  88. package/dist/components/ChannelList/hooks/useUserPresenceChangedListener.js +9 -5
  89. package/dist/components/ChannelList/utils.js +9 -5
  90. package/dist/components/ChannelPreview/ChannelPreview.d.ts +6 -0
  91. package/dist/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  92. package/dist/components/ChannelPreview/ChannelPreview.js +5 -21
  93. package/dist/components/ChannelPreview/ChannelPreviewMessenger.d.ts.map +1 -1
  94. package/dist/components/ChannelPreview/ChannelPreviewMessenger.js +13 -9
  95. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts +14 -0
  96. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.d.ts.map +1 -0
  97. package/dist/components/ChannelPreview/hooks/useChannelPreviewInfo.js +29 -0
  98. package/dist/components/ChannelPreview/utils.js +2 -2
  99. package/dist/components/ChannelSearch/ChannelSearch.d.ts +6 -42
  100. package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
  101. package/dist/components/ChannelSearch/ChannelSearch.js +4 -160
  102. package/dist/components/ChannelSearch/SearchBar.d.ts +29 -0
  103. package/dist/components/ChannelSearch/SearchBar.d.ts.map +1 -0
  104. package/dist/components/ChannelSearch/SearchBar.js +93 -0
  105. package/dist/components/ChannelSearch/SearchInput.d.ts +9 -17
  106. package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
  107. package/dist/components/ChannelSearch/SearchInput.js +2 -4
  108. package/dist/components/ChannelSearch/SearchResults.d.ts +14 -8
  109. package/dist/components/ChannelSearch/SearchResults.d.ts.map +1 -1
  110. package/dist/components/ChannelSearch/SearchResults.js +44 -27
  111. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +50 -0
  112. package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -0
  113. package/dist/components/ChannelSearch/hooks/useChannelSearch.js +232 -0
  114. package/dist/components/ChannelSearch/icons.d.ts +6 -0
  115. package/dist/components/ChannelSearch/icons.d.ts.map +1 -0
  116. package/dist/components/ChannelSearch/icons.js +12 -0
  117. package/dist/components/Chat/Chat.d.ts.map +1 -1
  118. package/dist/components/Chat/Chat.js +4 -0
  119. package/dist/components/Chat/hooks/useChat.d.ts +1 -1
  120. package/dist/components/Chat/hooks/useChat.d.ts.map +1 -1
  121. package/dist/components/Chat/hooks/useChat.js +1 -1
  122. package/dist/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
  123. package/dist/components/Chat/hooks/useCreateChatContext.js +3 -2
  124. package/dist/components/Chat/hooks/useCustomStyles.d.ts +1 -1
  125. package/dist/components/Chat/hooks/useCustomStyles.d.ts.map +1 -1
  126. package/dist/components/ChatAutoComplete/ChatAutoComplete.js +1 -1
  127. package/dist/components/DateSeparator/DateSeparator.js +1 -1
  128. package/dist/components/EmoticonItem/EmoticonItem.js +1 -1
  129. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +1 -1
  130. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
  131. package/dist/components/EmptyStateIndicator/EmptyStateIndicator.js +16 -3
  132. package/dist/components/EmptyStateIndicator/icons.d.ts +2 -0
  133. package/dist/components/EmptyStateIndicator/icons.d.ts.map +1 -0
  134. package/dist/components/EmptyStateIndicator/icons.js +3 -0
  135. package/dist/components/EventComponent/EventComponent.js +1 -1
  136. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  137. package/dist/components/Gallery/Gallery.js +16 -14
  138. package/dist/components/Gallery/Image.d.ts +7 -3
  139. package/dist/components/Gallery/Image.d.ts.map +1 -1
  140. package/dist/components/Gallery/Image.js +21 -9
  141. package/dist/components/Gallery/ModalGallery.d.ts +10 -0
  142. package/dist/components/Gallery/ModalGallery.d.ts.map +1 -0
  143. package/dist/components/Gallery/ModalGallery.js +16 -0
  144. package/dist/components/Gallery/index.d.ts +1 -1
  145. package/dist/components/Gallery/index.js +1 -1
  146. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +2 -0
  147. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts.map +1 -1
  148. package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +4 -1
  149. package/dist/components/LoadMore/LoadMoreButton.js +2 -2
  150. package/dist/components/Loading/LoadingChannels.js +2 -2
  151. package/dist/components/Loading/LoadingIndicator.js +1 -1
  152. package/dist/components/MML/MML.js +1 -1
  153. package/dist/components/Message/FixedHeightMessage.js +3 -3
  154. package/dist/components/Message/MessageDeleted.js +2 -2
  155. package/dist/components/Message/MessageOptions.d.ts +1 -0
  156. package/dist/components/Message/MessageOptions.d.ts.map +1 -1
  157. package/dist/components/Message/MessageOptions.js +9 -16
  158. package/dist/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
  159. package/dist/components/Message/MessageRepliesCountButton.js +8 -5
  160. package/dist/components/Message/MessageSimple.d.ts.map +1 -1
  161. package/dist/components/Message/MessageSimple.js +41 -21
  162. package/dist/components/Message/MessageStatus.d.ts.map +1 -1
  163. package/dist/components/Message/MessageStatus.js +17 -8
  164. package/dist/components/Message/MessageText.d.ts +1 -1
  165. package/dist/components/Message/MessageText.d.ts.map +1 -1
  166. package/dist/components/Message/MessageText.js +10 -14
  167. package/dist/components/Message/QuotedMessage.d.ts.map +1 -1
  168. package/dist/components/Message/QuotedMessage.js +8 -3
  169. package/dist/components/Message/hooks/index.d.ts +0 -2
  170. package/dist/components/Message/hooks/index.d.ts.map +1 -1
  171. package/dist/components/Message/hooks/index.js +0 -2
  172. package/dist/components/Message/hooks/useEditHandler.d.ts +1 -1
  173. package/dist/components/Message/hooks/useEditHandler.d.ts.map +1 -1
  174. package/dist/components/Message/hooks/useReactionHandler.d.ts +3 -3
  175. package/dist/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
  176. package/dist/components/Message/hooks/useReactionHandler.js +11 -7
  177. package/dist/components/Message/hooks/useUserRole.d.ts +1 -1
  178. package/dist/components/Message/hooks/useUserRole.d.ts.map +1 -1
  179. package/dist/components/Message/icons.d.ts +6 -4
  180. package/dist/components/Message/icons.d.ts.map +1 -1
  181. package/dist/components/Message/icons.js +25 -10
  182. package/dist/components/Message/index.d.ts +0 -3
  183. package/dist/components/Message/index.d.ts.map +1 -1
  184. package/dist/components/Message/index.js +0 -3
  185. package/dist/components/Message/utils.js +10 -6
  186. package/dist/components/MessageActions/MessageActions.d.ts.map +1 -1
  187. package/dist/components/MessageActions/MessageActions.js +3 -3
  188. package/dist/components/MessageActions/MessageActionsBox.d.ts.map +1 -1
  189. package/dist/components/MessageActions/MessageActionsBox.js +14 -7
  190. package/dist/components/MessageInput/AttachmentPreviewList.d.ts +2 -0
  191. package/dist/components/MessageInput/AttachmentPreviewList.d.ts.map +1 -0
  192. package/dist/components/MessageInput/AttachmentPreviewList.js +60 -0
  193. package/dist/components/MessageInput/EditMessageForm.d.ts.map +1 -1
  194. package/dist/components/MessageInput/EditMessageForm.js +11 -6
  195. package/dist/components/MessageInput/EmojiPicker.d.ts +1 -1
  196. package/dist/components/MessageInput/EmojiPicker.d.ts.map +1 -1
  197. package/dist/components/MessageInput/EmojiPicker.js +14 -17
  198. package/dist/components/MessageInput/MessageInput.d.ts +1 -1
  199. package/dist/components/MessageInput/MessageInput.d.ts.map +1 -1
  200. package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
  201. package/dist/components/MessageInput/MessageInputFlat.js +84 -10
  202. package/dist/components/MessageInput/MessageInputSmall.d.ts +9 -0
  203. package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
  204. package/dist/components/MessageInput/MessageInputSmall.js +10 -1
  205. package/dist/components/MessageInput/QuotedMessagePreview.d.ts +2 -1
  206. package/dist/components/MessageInput/QuotedMessagePreview.d.ts.map +1 -1
  207. package/dist/components/MessageInput/QuotedMessagePreview.js +29 -22
  208. package/dist/components/MessageInput/UploadsPreview.d.ts +7 -0
  209. package/dist/components/MessageInput/UploadsPreview.d.ts.map +1 -1
  210. package/dist/components/MessageInput/UploadsPreview.js +17 -6
  211. package/dist/components/MessageInput/hooks/useAttachments.d.ts.map +1 -1
  212. package/dist/components/MessageInput/hooks/useAttachments.js +8 -1
  213. package/dist/components/MessageInput/hooks/useCommandTrigger.d.ts.map +1 -1
  214. package/dist/components/MessageInput/hooks/useCommandTrigger.js +6 -4
  215. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +1 -1
  216. package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
  217. package/dist/components/MessageInput/hooks/useCooldownTimer.js +4 -4
  218. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts +1 -1
  219. package/dist/components/MessageInput/hooks/useEmojiPicker.d.ts.map +1 -1
  220. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts +1 -1
  221. package/dist/components/MessageInput/hooks/useEmojiTrigger.d.ts.map +1 -1
  222. package/dist/components/MessageInput/hooks/useEmojiTrigger.js +23 -19
  223. package/dist/components/MessageInput/hooks/useFileState.d.ts +7 -0
  224. package/dist/components/MessageInput/hooks/useFileState.d.ts.map +1 -0
  225. package/dist/components/MessageInput/hooks/useFileState.js +8 -0
  226. package/dist/components/MessageInput/hooks/useImageUploads.d.ts.map +1 -1
  227. package/dist/components/MessageInput/hooks/useImageUploads.js +17 -36
  228. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts +2 -6
  229. package/dist/components/MessageInput/hooks/useMessageInputState.d.ts.map +1 -1
  230. package/dist/components/MessageInput/hooks/useSubmitHandler.js +10 -6
  231. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts +1 -1
  232. package/dist/components/MessageInput/hooks/useUserTrigger.d.ts.map +1 -1
  233. package/dist/components/MessageInput/hooks/useUserTrigger.js +13 -9
  234. package/dist/components/MessageInput/hooks/utils.d.ts +1 -1
  235. package/dist/components/MessageInput/hooks/utils.d.ts.map +1 -1
  236. package/dist/components/MessageInput/icons.d.ts +12 -2
  237. package/dist/components/MessageInput/icons.d.ts.map +1 -1
  238. package/dist/components/MessageInput/icons.js +67 -7
  239. package/dist/components/MessageList/CustomNotification.js +1 -1
  240. package/dist/components/MessageList/MessageList.d.ts +3 -0
  241. package/dist/components/MessageList/MessageList.d.ts.map +1 -1
  242. package/dist/components/MessageList/MessageList.js +17 -14
  243. package/dist/components/MessageList/MessageListMainPanel.d.ts +3 -0
  244. package/dist/components/MessageList/MessageListMainPanel.d.ts.map +1 -0
  245. package/dist/components/MessageList/MessageListMainPanel.js +9 -0
  246. package/dist/components/MessageList/MessageListNotifications.d.ts +2 -0
  247. package/dist/components/MessageList/MessageListNotifications.d.ts.map +1 -1
  248. package/dist/components/MessageList/MessageListNotifications.js +2 -2
  249. package/dist/components/MessageList/MessageNotification.d.ts +9 -6
  250. package/dist/components/MessageList/MessageNotification.d.ts.map +1 -1
  251. package/dist/components/MessageList/MessageNotification.js +1 -1
  252. package/dist/components/MessageList/ScrollToBottomButton.d.ts +3 -0
  253. package/dist/components/MessageList/ScrollToBottomButton.d.ts.map +1 -0
  254. package/dist/components/MessageList/ScrollToBottomButton.js +53 -0
  255. package/dist/components/MessageList/VirtualizedMessageList.d.ts +5 -0
  256. package/dist/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
  257. package/dist/components/MessageList/VirtualizedMessageList.js +41 -14
  258. package/dist/components/MessageList/hooks/useMessageListElements.d.ts +1 -1
  259. package/dist/components/MessageList/hooks/useMessageListElements.d.ts.map +1 -1
  260. package/dist/components/MessageList/hooks/useMessageListElements.js +4 -3
  261. package/dist/components/MessageList/hooks/useMessageListScrollManager.d.ts.map +1 -1
  262. package/dist/components/MessageList/hooks/useMessageListScrollManager.js +3 -1
  263. package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts +2 -0
  264. package/dist/components/MessageList/hooks/useNewMessageNotification.d.ts.map +1 -1
  265. package/dist/components/MessageList/hooks/useNewMessageNotification.js +8 -1
  266. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts +1 -2
  267. package/dist/components/MessageList/hooks/useScrollLocationLogic.d.ts.map +1 -1
  268. package/dist/components/MessageList/hooks/useScrollLocationLogic.js +12 -30
  269. package/dist/components/MessageList/icons.d.ts +8 -0
  270. package/dist/components/MessageList/icons.d.ts.map +1 -0
  271. package/dist/components/MessageList/icons.js +11 -0
  272. package/dist/components/MessageList/index.d.ts +1 -0
  273. package/dist/components/MessageList/index.d.ts.map +1 -1
  274. package/dist/components/MessageList/index.js +1 -0
  275. package/dist/components/MessageList/utils.d.ts +4 -2
  276. package/dist/components/MessageList/utils.d.ts.map +1 -1
  277. package/dist/components/MessageList/utils.js +16 -3
  278. package/dist/components/Modal/Modal.d.ts +2 -2
  279. package/dist/components/Modal/Modal.d.ts.map +1 -1
  280. package/dist/components/Modal/Modal.js +18 -15
  281. package/dist/components/Modal/icons.d.ts +2 -0
  282. package/dist/components/Modal/icons.d.ts.map +1 -0
  283. package/dist/components/Modal/icons.js +5 -0
  284. package/dist/components/Reactions/ReactionSelector.d.ts +2 -0
  285. package/dist/components/Reactions/ReactionSelector.d.ts.map +1 -1
  286. package/dist/components/Reactions/ReactionSelector.js +18 -9
  287. package/dist/components/Reactions/ReactionsList.d.ts +3 -1
  288. package/dist/components/Reactions/ReactionsList.d.ts.map +1 -1
  289. package/dist/components/Reactions/ReactionsList.js +33 -47
  290. package/dist/components/Reactions/SimpleReactionsList.d.ts +3 -1
  291. package/dist/components/Reactions/SimpleReactionsList.d.ts.map +1 -1
  292. package/dist/components/Reactions/SimpleReactionsList.js +41 -58
  293. package/dist/components/Reactions/hooks/useProcessReactions.d.ts +21 -0
  294. package/dist/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -0
  295. package/dist/components/Reactions/hooks/useProcessReactions.js +51 -0
  296. package/dist/components/Thread/Thread.d.ts +2 -6
  297. package/dist/components/Thread/Thread.d.ts.map +1 -1
  298. package/dist/components/Thread/Thread.js +21 -89
  299. package/dist/components/Thread/ThreadHead.d.ts +4 -0
  300. package/dist/components/Thread/ThreadHead.d.ts.map +1 -0
  301. package/dist/components/Thread/ThreadHead.js +21 -0
  302. package/dist/components/Thread/ThreadHeader.d.ts +12 -0
  303. package/dist/components/Thread/ThreadHeader.d.ts.map +1 -0
  304. package/dist/components/Thread/ThreadHeader.js +21 -0
  305. package/dist/components/Thread/ThreadStart.d.ts +2 -0
  306. package/dist/components/Thread/ThreadStart.d.ts.map +1 -0
  307. package/dist/components/Thread/ThreadStart.js +10 -0
  308. package/dist/components/Thread/icons.d.ts +4 -0
  309. package/dist/components/Thread/icons.d.ts.map +1 -0
  310. package/dist/components/Thread/icons.js +9 -0
  311. package/dist/components/Thread/index.d.ts +2 -0
  312. package/dist/components/Thread/index.d.ts.map +1 -1
  313. package/dist/components/Thread/index.js +2 -0
  314. package/dist/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
  315. package/dist/components/TypingIndicator/TypingIndicator.js +52 -9
  316. package/dist/components/UserItem/UserItem.d.ts +1 -1
  317. package/dist/components/UserItem/UserItem.d.ts.map +1 -1
  318. package/dist/components/UserItem/UserItem.js +15 -8
  319. package/dist/components/Window/Window.js +1 -1
  320. package/dist/constants/limits.d.ts +4 -0
  321. package/dist/constants/limits.d.ts.map +1 -0
  322. package/dist/constants/limits.js +3 -0
  323. package/dist/context/ChannelActionContext.d.ts +1 -1
  324. package/dist/context/ChannelActionContext.d.ts.map +1 -1
  325. package/dist/context/ChannelActionContext.js +1 -1
  326. package/dist/context/ChannelStateContext.d.ts +3 -2
  327. package/dist/context/ChannelStateContext.d.ts.map +1 -1
  328. package/dist/context/ChannelStateContext.js +1 -1
  329. package/dist/context/ChatContext.d.ts +5 -4
  330. package/dist/context/ChatContext.d.ts.map +1 -1
  331. package/dist/context/ChatContext.js +2 -2
  332. package/dist/context/ComponentContext.d.ts +6 -2
  333. package/dist/context/ComponentContext.d.ts.map +1 -1
  334. package/dist/context/ComponentContext.js +1 -1
  335. package/dist/context/EmojiContext.d.ts +1 -1
  336. package/dist/context/EmojiContext.d.ts.map +1 -1
  337. package/dist/context/EmojiContext.js +1 -1
  338. package/dist/context/MessageContext.d.ts +1 -1
  339. package/dist/context/MessageContext.d.ts.map +1 -1
  340. package/dist/context/MessageContext.js +1 -1
  341. package/dist/context/MessageInputContext.d.ts +1 -1
  342. package/dist/context/MessageInputContext.d.ts.map +1 -1
  343. package/dist/context/MessageInputContext.js +1 -1
  344. package/dist/context/TranslationContext.d.ts +2 -2
  345. package/dist/context/TranslationContext.d.ts.map +1 -1
  346. package/dist/context/TranslationContext.js +8 -4
  347. package/dist/context/TypingContext.d.ts +1 -1
  348. package/dist/context/TypingContext.d.ts.map +1 -1
  349. package/dist/context/TypingContext.js +1 -1
  350. package/dist/css/index.css +1 -1
  351. package/dist/css/index.css.map +1 -0
  352. package/dist/css/v2/index.css +1 -0
  353. package/dist/css/v2/index.css.map +1 -0
  354. package/dist/css/v2/index.layout.css +1 -0
  355. package/dist/css/v2/index.layout.css.map +1 -0
  356. package/dist/i18n/Streami18n.d.ts +8 -2
  357. package/dist/i18n/Streami18n.d.ts.map +1 -1
  358. package/dist/i18n/Streami18n.js +12 -12
  359. package/dist/i18n/de.json +8 -2
  360. package/dist/i18n/en.json +8 -2
  361. package/dist/i18n/es.json +9 -2
  362. package/dist/i18n/fr.json +9 -2
  363. package/dist/i18n/hi.json +8 -2
  364. package/dist/i18n/it.json +9 -2
  365. package/dist/i18n/ja.json +8 -2
  366. package/dist/i18n/ko.json +8 -2
  367. package/dist/i18n/nl.json +8 -2
  368. package/dist/i18n/pt.json +9 -2
  369. package/dist/i18n/ru.json +10 -2
  370. package/dist/i18n/tr.json +8 -2
  371. package/dist/index.cjs.js +9535 -4005
  372. package/dist/index.cjs.js.map +1 -1
  373. package/dist/scss/Attachment.scss +52 -22
  374. package/dist/scss/Audio.scss +1 -1
  375. package/dist/scss/Avatar.scss +1 -1
  376. package/dist/scss/ChannelList.scss +5 -1
  377. package/dist/scss/ChannelPreview.scss +25 -0
  378. package/dist/scss/ChannelSearch.scss +5 -3
  379. package/dist/scss/Gallery.scss +0 -20
  380. package/dist/scss/ImageCarousel.scss +39 -0
  381. package/dist/scss/LoadingChannels.scss +1 -1
  382. package/dist/scss/Message.scss +84 -86
  383. package/dist/scss/MessageActions.scss +15 -0
  384. package/dist/scss/MessageCommerce.scss +57 -13
  385. package/dist/scss/MessageInputFlat.scss +21 -9
  386. package/dist/scss/MessageList.scss +35 -3
  387. package/dist/scss/MessageLivestream.scss +23 -10
  388. package/dist/scss/MessageNotification.scss +7 -1
  389. package/dist/scss/MessageTeam.scss +37 -10
  390. package/dist/scss/Modal.scss +2 -0
  391. package/dist/scss/ReactionList.scss +14 -0
  392. package/dist/scss/ReactionSelector.scss +6 -0
  393. package/dist/scss/SendButton.scss +6 -0
  394. package/dist/scss/SmallMessageInput.scss +0 -1
  395. package/dist/scss/Thread.scss +21 -2
  396. package/dist/scss/Tooltip.scss +6 -3
  397. package/dist/scss/TypingIndicator.scss +5 -0
  398. package/dist/scss/_base.scss +26 -0
  399. package/dist/scss/_variables.scss +2 -1
  400. package/dist/scss/index.scss +5 -4
  401. package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +392 -0
  402. package/dist/scss/v2/AttachmentList/AttachmentList-theme.scss +400 -0
  403. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-layout.scss +118 -0
  404. package/dist/scss/v2/AttachmentPreviewList/AttachmentPreviewList-theme.scss +150 -0
  405. package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +62 -0
  406. package/dist/scss/v2/Autocomplete/Autocomplete-theme.scss +207 -0
  407. package/dist/scss/v2/Avatar/Avatar-layout.scss +13 -0
  408. package/dist/scss/v2/Avatar/Avatar-theme.scss +42 -0
  409. package/dist/scss/v2/Channel/Channel-layout.scss +139 -0
  410. package/dist/scss/v2/Channel/Channel-theme.scss +99 -0
  411. package/dist/scss/v2/ChannelHeader/ChannelHeader-layout.scss +23 -0
  412. package/dist/scss/v2/ChannelHeader/ChannelHeader-theme.scss +43 -0
  413. package/dist/scss/v2/ChannelList/ChannelList-layout.scss +41 -0
  414. package/dist/scss/v2/ChannelList/ChannelList-theme.scss +87 -0
  415. package/dist/scss/v2/ChannelPreview/ChannelPreview-layout.scss +82 -0
  416. package/dist/scss/v2/ChannelPreview/ChannelPreview-theme.scss +108 -0
  417. package/dist/scss/v2/ChannelSearch/ChannelSearch-layout.scss +71 -0
  418. package/dist/scss/v2/ChannelSearch/ChannelSearch-theme.scss +190 -0
  419. package/dist/scss/v2/EditMessageForm/EditMessageForm-layout.scss +53 -0
  420. package/dist/scss/v2/EditMessageForm/EditMessageForm-theme.scss +50 -0
  421. package/dist/scss/v2/ImageCarousel/ImageCarousel-layout.scss +41 -0
  422. package/dist/scss/v2/ImageCarousel/ImageCarousel-theme.scss +15 -0
  423. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-layout.scss +39 -0
  424. package/dist/scss/v2/LoadingIndicator/LoadingIndicator-theme.scss +12 -0
  425. package/dist/scss/v2/Message/Message-layout.scss +373 -0
  426. package/dist/scss/v2/Message/Message-theme.scss +353 -0
  427. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-layout.scss +48 -0
  428. package/dist/scss/v2/MessageActionsBox/MessageActionsBox-theme.scss +69 -0
  429. package/dist/scss/v2/MessageInput/MessageInput-layout.scss +186 -0
  430. package/dist/scss/v2/MessageInput/MessageInput-theme.scss +221 -0
  431. package/dist/scss/v2/MessageList/MessageList-layout.scss +61 -0
  432. package/dist/scss/v2/MessageList/MessageList-theme.scss +105 -0
  433. package/dist/scss/v2/MessageList/VirtualizedMessageList-layout.scss +44 -0
  434. package/dist/scss/v2/MessageList/VirtualizedMessageList-theme.scss +32 -0
  435. package/dist/scss/v2/MessageReactions/MessageReactions-layout.scss +64 -0
  436. package/dist/scss/v2/MessageReactions/MessageReactions-theme.scss +75 -0
  437. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-layout.scss +52 -0
  438. package/dist/scss/v2/MessageReactions/MessageReactionsSelector-theme.scss +83 -0
  439. package/dist/scss/v2/Modal/Modal-layout.scss +40 -0
  440. package/dist/scss/v2/Modal/Modal-theme.scss +82 -0
  441. package/dist/scss/v2/Notification/MessageNotification-layout.scss +12 -0
  442. package/dist/scss/v2/Notification/MessageNotification-theme.scss +34 -0
  443. package/dist/scss/v2/Notification/Notification-layout.scss +3 -0
  444. package/dist/scss/v2/Notification/Notification-theme.scss +32 -0
  445. package/dist/scss/v2/Notification/NotificationList-layout.scss +11 -0
  446. package/dist/scss/v2/Notification/NotificationList-theme.scss +31 -0
  447. package/dist/scss/v2/Thread/Thread-layout.scss +47 -0
  448. package/dist/scss/v2/Thread/Thread-theme.scss +82 -0
  449. package/dist/scss/v2/Tooltip/Tooltip-layout.scss +30 -0
  450. package/dist/scss/v2/Tooltip/Tooltip-theme.scss +36 -0
  451. package/dist/scss/v2/TypingIndicator/TypingIndicator-layout.scss +27 -0
  452. package/dist/scss/v2/TypingIndicator/TypingIndicator-theme.scss +68 -0
  453. package/dist/scss/v2/_base.scss +29 -0
  454. package/dist/scss/v2/_global-layout-variables.scss +65 -0
  455. package/dist/scss/v2/_global-theme-variables.scss +166 -0
  456. package/dist/scss/v2/_palette-variables.scss +55 -0
  457. package/dist/scss/v2/_utils.scss +188 -0
  458. package/dist/scss/v2/common/CTAButton/CTAButton-layout.scss +4 -0
  459. package/dist/scss/v2/common/CTAButton/CTAButton-theme.scss +42 -0
  460. package/dist/scss/v2/common/CircleFAButton/CircleFAButton-layout.scss +14 -0
  461. package/dist/scss/v2/common/CircleFAButton/CircleFAButton-theme.scss +35 -0
  462. package/dist/scss/v2/index.layout.scss +31 -0
  463. package/dist/scss/v2/index.scss +36 -0
  464. package/dist/scss/{vendor → v2/vendor}/emoji-mart.scss +27 -8
  465. package/dist/stories/add-message.stories.d.ts +0 -1
  466. package/dist/stories/add-message.stories.d.ts.map +1 -1
  467. package/dist/stories/add-message.stories.js +0 -1
  468. package/dist/stories/edit-message.stories.d.ts +0 -1
  469. package/dist/stories/edit-message.stories.d.ts.map +1 -1
  470. package/dist/stories/edit-message.stories.js +0 -1
  471. package/dist/stories/hello.stories.d.ts +0 -1
  472. package/dist/stories/hello.stories.d.ts.map +1 -1
  473. package/dist/stories/hello.stories.js +0 -1
  474. package/dist/stories/jump-to-message.stories.d.ts +0 -1
  475. package/dist/stories/jump-to-message.stories.d.ts.map +1 -1
  476. package/dist/stories/jump-to-message.stories.js +0 -1
  477. package/dist/stories/mark-read.stories.d.ts +0 -1
  478. package/dist/stories/mark-read.stories.d.ts.map +1 -1
  479. package/dist/stories/mark-read.stories.js +0 -1
  480. package/dist/stories/message-status-readby-tooltip.stories.d.ts +0 -1
  481. package/dist/stories/message-status-readby-tooltip.stories.d.ts.map +1 -1
  482. package/dist/stories/message-status-readby-tooltip.stories.js +0 -1
  483. package/dist/stories/navigate-long-message-lists.stories.d.ts +0 -2
  484. package/dist/stories/navigate-long-message-lists.stories.d.ts.map +1 -1
  485. package/dist/stories/navigate-long-message-lists.stories.js +1 -11
  486. package/dist/stories/toggle-message-actions.stories.d.ts +0 -1
  487. package/dist/stories/toggle-message-actions.stories.d.ts.map +1 -1
  488. package/dist/stories/toggle-message-actions.stories.js +0 -1
  489. package/dist/stories/utils.d.ts.map +1 -1
  490. package/dist/stories/utils.js +2 -1
  491. package/dist/types/types.d.ts +7 -0
  492. package/dist/types/types.d.ts.map +1 -1
  493. package/dist/utils.d.ts +2 -2
  494. package/dist/utils.d.ts.map +1 -1
  495. package/dist/utils.js +4 -4
  496. package/dist/version.d.ts +1 -1
  497. package/dist/version.d.ts.map +1 -1
  498. package/dist/version.js +1 -1
  499. package/package.json +12 -7
  500. package/dist/components/Gallery/ModalWrapper.d.ts +0 -14
  501. package/dist/components/Gallery/ModalWrapper.d.ts.map +0 -1
  502. package/dist/components/Gallery/ModalWrapper.js +0 -8
  503. package/dist/components/Message/MessageCommerce.d.ts +0 -10
  504. package/dist/components/Message/MessageCommerce.d.ts.map +0 -1
  505. package/dist/components/Message/MessageCommerce.js +0 -64
  506. package/dist/components/Message/MessageLivestream.d.ts +0 -16
  507. package/dist/components/Message/MessageLivestream.d.ts.map +0 -1
  508. package/dist/components/Message/MessageLivestream.js +0 -164
  509. package/dist/components/Message/MessageTeam.d.ts +0 -11
  510. package/dist/components/Message/MessageTeam.d.ts.map +0 -1
  511. package/dist/components/Message/MessageTeam.js +0 -110
  512. package/dist/components/Message/hooks/useBreakpoint.d.ts +0 -6
  513. package/dist/components/Message/hooks/useBreakpoint.d.ts.map +0 -1
  514. package/dist/components/Message/hooks/useBreakpoint.js +0 -18
  515. package/dist/components/Message/hooks/useMobilePress.d.ts +0 -5
  516. package/dist/components/Message/hooks/useMobilePress.d.ts.map +0 -1
  517. package/dist/components/Message/hooks/useMobilePress.js +0 -33
  518. package/dist/scss/vendor/mml-react.scss +0 -1749
  519. package/dist/scss/vendor/react-file-utils.scss +0 -378
  520. package/dist/scss/vendor/react-image-gallery.scss +0 -224
@@ -9,64 +9,50 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import React, { Suspense, useMemo } from 'react';
13
- import { getStrippedEmojiData } from '../Channel/emojiData';
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { Suspense } from 'react';
24
+ import clsx from 'clsx';
14
25
  import { useEmojiContext } from '../../context/EmojiContext';
15
26
  import { useMessageContext } from '../../context/MessageContext';
27
+ import { useProcessReactions } from './hooks/useProcessReactions';
16
28
  var UnMemoizedReactionsList = function (props) {
17
- var additionalEmojiProps = props.additionalEmojiProps, onClick = props.onClick, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, propReactions = props.reactions, _a = props.reverse, reverse = _a === void 0 ? false : _a;
29
+ var onClick = props.onClick, _a = props.reverse, reverse = _a === void 0 ? false : _a, rest = __rest(props, ["onClick", "reverse"]);
18
30
  var _b = useEmojiContext('ReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
19
- var _c = useMessageContext('ReactionsList'), message = _c.message, onReactionListClick = _c.onReactionListClick;
20
- var _d = emojiConfig || {}, defaultMinimalEmojis = _d.defaultMinimalEmojis, fullEmojiData = _d.emojiData, emojiSetDef = _d.emojiSetDef;
21
- var reactions = propReactions || message.latest_reactions || [];
22
- var reactionCounts = propReactionCounts || message.reaction_counts || {};
23
- var reactionOptions = propReactionOptions || defaultMinimalEmojis;
24
- var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
25
- var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
26
- if (!reactions.length)
31
+ var onReactionListClick = useMessageContext('ReactionsList').onReactionListClick;
32
+ var _c = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _c.additionalEmojiProps, emojiData = _c.emojiData, getEmojiByReactionType = _c.getEmojiByReactionType, iHaveReactedWithReaction = _c.iHaveReactedWithReaction, latestReactions = _c.latestReactions, latestReactionTypes = _c.latestReactionTypes, reactionCounts = _c.reactionCounts, supportedReactionsArePresent = _c.supportedReactionsArePresent, totalReactionCount = _c.totalReactionCount;
33
+ if (!latestReactions.length)
27
34
  return null;
28
- var getTotalReactionCount = function () {
29
- return Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0);
30
- };
31
- var getCurrentMessageReactionTypes = function () {
32
- var reactionTypes = [];
33
- reactions.forEach(function (_a) {
34
- var type = _a.type;
35
- if (reactionTypes.indexOf(type) === -1) {
36
- reactionTypes.push(type);
37
- }
38
- });
39
- return reactionTypes;
40
- };
41
- var getEmojiByReactionType = function (type) {
42
- var reactionEmoji = reactionOptions.find(function (option) { return option.id === type; });
43
- return reactionEmoji;
44
- };
45
- var getSupportedReactionMap = function () {
46
- var reactionMap = {};
47
- reactionOptions.forEach(function (_a) {
48
- var id = _a.id;
49
- return (reactionMap[id] = true);
50
- });
51
- return reactionMap;
52
- };
53
- var messageReactionTypes = getCurrentMessageReactionTypes();
54
- var supportedReactionMap = getSupportedReactionMap();
55
- var supportedReactionsArePresent = messageReactionTypes.some(function (type) { return supportedReactionMap[type]; });
56
35
  if (!supportedReactionsArePresent)
57
36
  return null;
58
- return (React.createElement("div", { "aria-label": 'Reaction list', className: "str-chat__reaction-list " + (reverse ? 'str-chat__reaction-list--reverse' : ''), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyPress: onClick || onReactionListClick, role: 'figure' },
59
- React.createElement("ul", null,
60
- messageReactionTypes.map(function (reactionType) {
37
+ return (React.createElement("div", { "aria-label": 'Reaction list', className: clsx('str-chat__reaction-list str-chat__message-reactions-container', {
38
+ 'str-chat__reaction-list--reverse': reverse,
39
+ }), "data-testid": 'reaction-list', onClick: onClick || onReactionListClick, onKeyUp: onClick || onReactionListClick, role: 'figure' },
40
+ React.createElement("ul", { className: 'str-chat__message-reactions' },
41
+ latestReactionTypes.map(function (reactionType) {
61
42
  var emojiObject = getEmojiByReactionType(reactionType);
62
- return emojiObject ? (React.createElement("li", { key: emojiObject.id },
63
- React.createElement("button", { "aria-label": "Reactions: " + reactionType },
43
+ var isOwnReaction = iHaveReactedWithReaction(reactionType);
44
+ return emojiObject ? (React.createElement("li", { className: clsx('str-chat__message-reaction', {
45
+ 'str-chat__message-reaction-own': isOwnReaction,
46
+ }), key: emojiObject.id },
47
+ React.createElement("button", { "aria-label": "Reactions: ".concat(reactionType) },
64
48
  React.createElement(Suspense, { fallback: null },
65
- React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
66
- "\u00A0"))) : null;
49
+ React.createElement("span", { className: 'str-chat__message-reaction-emoji' },
50
+ React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 16 }, additionalEmojiProps)))),
51
+ "\u00A0",
52
+ React.createElement("span", { className: 'str-chat__message-reaction-count', "data-testclass": 'reaction-list-reaction-count' }, reactionCounts[reactionType])))) : null;
67
53
  }),
68
54
  React.createElement("li", null,
69
- React.createElement("span", { className: 'str-chat__reaction-list--counter' }, getTotalReactionCount())))));
55
+ React.createElement("span", { className: 'str-chat__reaction-list--counter' }, totalReactionCount)))));
70
56
  };
71
57
  /**
72
58
  * Component that displays a list of reactions on a message.
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
- import { ReactionEmoji } from '../Channel/emojiData';
3
2
  import type { NimbleEmojiProps } from 'emoji-mart';
4
3
  import type { ReactionResponse } from 'stream-chat';
5
4
  import type { DefaultStreamChatGenerics } from '../../types/types';
5
+ import type { ReactionEmoji } from '../Channel/emojiData';
6
6
  export declare type SimpleReactionsListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
7
7
  /** Additional props to be passed to the [NimbleEmoji](https://github.com/missive/emoji-mart/blob/master/src/components/emoji/nimble-emoji.js) component from `emoji-mart` */
8
8
  additionalEmojiProps?: Partial<NimbleEmojiProps>;
9
9
  /** Function that adds/removes a reaction on a message (overrides the function stored in `MessageContext`) */
10
10
  handleReaction?: (reactionType: string, event: React.BaseSyntheticEvent) => Promise<void>;
11
+ /** An array of the own reaction objects to distinguish own reactions visually */
12
+ own_reactions?: ReactionResponse<StreamChatGenerics>[];
11
13
  /** An object that keeps track of the count of each type of reaction on a message */
12
14
  reaction_counts?: {
13
15
  [key: string]: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAwB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK3E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AA+HF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
1
+ {"version":3,"file":"SimpleReactionsList.d.ts","sourceRoot":"","sources":["../../../src/components/Reactions/SimpleReactionsList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAOlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,wBAAwB,CAClC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,6KAA6K;IAC7K,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,6GAA6G;IAC7G,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,iFAAiF;IACjF,aAAa,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACvD,oFAAoF;IACpF,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,8DAA8D;IAC9D,SAAS,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;CACpD,CAAC;AA+FF,eAAO,MAAM,mBAAmB,+JAES,CAAC"}
@@ -9,26 +9,35 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import React, { Suspense, useMemo, useState } from 'react';
13
- import { getStrippedEmojiData } from '../Channel/emojiData';
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { Suspense, useState } from 'react';
24
+ import clsx from 'clsx';
14
25
  import { useEmojiContext } from '../../context/EmojiContext';
15
26
  import { useMessageContext } from '../../context/MessageContext';
27
+ import { useProcessReactions } from './hooks/useProcessReactions';
16
28
  var UnMemoizedSimpleReactionsList = function (props) {
17
- var _a = props.additionalEmojiProps, additionalEmojiProps = _a === void 0 ? {} : _a, propHandleReaction = props.handleReaction, propReactionCounts = props.reaction_counts, propReactionOptions = props.reactionOptions, propReactions = props.reactions;
18
- var _b = useEmojiContext('SimpleReactionsList'), Emoji = _b.Emoji, emojiConfig = _b.emojiConfig;
19
- var _c = useMessageContext('SimpleReactionsList'), contextHandleReaction = _c.handleReaction, message = _c.message;
20
- var _d = emojiConfig || {}, defaultMinimalEmojis = _d.defaultMinimalEmojis, fullEmojiData = _d.emojiData, emojiSetDef = _d.emojiSetDef;
21
- var _e = useState(undefined), tooltipReactionType = _e[0], setTooltipReactionType = _e[1];
29
+ var propHandleReaction = props.handleReaction, rest = __rest(props, ["handleReaction"]);
30
+ var _a = useEmojiContext('SimpleReactionsList'), Emoji = _a.Emoji, emojiConfig = _a.emojiConfig;
31
+ var contextHandleReaction = useMessageContext('SimpleReactionsList').handleReaction;
32
+ var _b = useProcessReactions(__assign({ emojiConfig: emojiConfig }, rest)), additionalEmojiProps = _b.additionalEmojiProps, emojiData = _b.emojiData, getEmojiByReactionType = _b.getEmojiByReactionType, iHaveReactedWithReaction = _b.iHaveReactedWithReaction, latestReactions = _b.latestReactions, latestReactionTypes = _b.latestReactionTypes, supportedReactionsArePresent = _b.supportedReactionsArePresent, totalReactionCount = _b.totalReactionCount;
33
+ var _c = useState(undefined), tooltipReactionType = _c[0], setTooltipReactionType = _c[1];
22
34
  var handleReaction = propHandleReaction || contextHandleReaction;
23
- var reactions = propReactions || message.latest_reactions || [];
24
- var reactionCounts = propReactionCounts || message.reaction_counts || {};
25
- var reactionOptions = propReactionOptions || defaultMinimalEmojis;
26
- var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
27
- var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
28
- if (!reactions.length)
35
+ if (!latestReactions.length)
36
+ return null;
37
+ if (!supportedReactionsArePresent)
29
38
  return null;
30
39
  var getUsersPerReactionType = function (type) {
31
- return reactions
40
+ return latestReactions
32
41
  .map(function (reaction) {
33
42
  var _a, _b;
34
43
  if (reaction.type === type) {
@@ -38,49 +47,23 @@ var UnMemoizedSimpleReactionsList = function (props) {
38
47
  })
39
48
  .filter(Boolean);
40
49
  };
41
- var getTotalReactionCount = function () {
42
- return Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0);
43
- };
44
- var getCurrentMessageReactionTypes = function () {
45
- var reactionTypes = [];
46
- reactions.forEach(function (_a) {
47
- var type = _a.type;
48
- if (reactionTypes.indexOf(type) === -1) {
49
- reactionTypes.push(type);
50
- }
51
- });
52
- return reactionTypes;
53
- };
54
- var getEmojiByReactionType = function (type) {
55
- var reactionEmoji = reactionOptions.find(function (option) { return option.id === type; });
56
- return reactionEmoji;
57
- };
58
- var getSupportedReactionMap = function () {
59
- var reactionMap = {};
60
- reactionOptions.forEach(function (_a) {
61
- var id = _a.id;
62
- return (reactionMap[id] = true);
63
- });
64
- return reactionMap;
65
- };
66
- var messageReactionTypes = getCurrentMessageReactionTypes();
67
- var supportedReactionMap = getSupportedReactionMap();
68
- var supportedReactionsArePresent = messageReactionTypes.some(function (type) { return supportedReactionMap[type]; });
69
- if (!supportedReactionsArePresent)
70
- return null;
71
- return (React.createElement("ul", { className: 'str-chat__simple-reactions-list', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
72
- messageReactionTypes.map(function (reactionType, i) {
73
- var _a;
74
- var emojiObject = getEmojiByReactionType(reactionType);
75
- return emojiObject ? (React.createElement("li", { className: 'str-chat__simple-reactions-list-item', key: emojiObject.id + "-" + i, onClick: function (event) { return handleReaction(reactionType, event); }, onKeyPress: function (event) { return handleReaction(reactionType, event); } },
76
- React.createElement("span", { onMouseEnter: function () { return setTooltipReactionType(reactionType); } },
77
- React.createElement(Suspense, { fallback: null },
78
- React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, (reactionsAreCustom ? additionalEmojiProps : emojiSetDef)))),
79
- "\u00A0"),
80
- tooltipReactionType === emojiObject.id && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip' },
81
- React.createElement("div", { className: 'arrow' }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
82
- _a.join(', '))))) : null;
83
- }),
84
- React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, getTotalReactionCount())));
50
+ return (React.createElement("div", { className: 'str-chat__message-reactions-container' },
51
+ React.createElement("ul", { className: 'str-chat__simple-reactions-list str-chat__message-reactions', "data-testid": 'simple-reaction-list', onMouseLeave: function () { return setTooltipReactionType(undefined); } },
52
+ latestReactionTypes.map(function (reactionType, i) {
53
+ var _a;
54
+ var emojiObject = getEmojiByReactionType(reactionType);
55
+ var isOwnReaction = iHaveReactedWithReaction(reactionType);
56
+ return emojiObject ? (React.createElement("li", { className: clsx('str-chat__simple-reactions-list-item', {
57
+ 'str-chat__message-reaction-own': isOwnReaction,
58
+ }), key: "".concat(emojiObject.id, "-").concat(i), onClick: function (event) { return handleReaction(reactionType, event); }, onKeyUp: function (event) { return handleReaction(reactionType, event); } },
59
+ React.createElement("span", { onMouseEnter: function () { return setTooltipReactionType(reactionType); } },
60
+ React.createElement(Suspense, { fallback: null },
61
+ React.createElement(Emoji, __assign({ data: emojiData, emoji: emojiObject, size: 13 }, additionalEmojiProps))),
62
+ "\u00A0"),
63
+ tooltipReactionType === emojiObject.id && (React.createElement("div", { className: 'str-chat__simple-reactions-list-tooltip str-chat__tooltip' },
64
+ React.createElement("div", { className: 'arrow' }), (_a = getUsersPerReactionType(tooltipReactionType)) === null || _a === void 0 ? void 0 :
65
+ _a.join(', '))))) : null;
66
+ }),
67
+ React.createElement("li", { className: 'str-chat__simple-reactions-list-item--last-number' }, totalReactionCount))));
85
68
  };
86
69
  export var SimpleReactionsList = React.memo(UnMemoizedSimpleReactionsList);
@@ -0,0 +1,21 @@
1
+ import { ReactionEmoji } from '../../Channel/emojiData';
2
+ import type { EmojiContextValue } from '../../../context/EmojiContext';
3
+ import type { ReactionsListProps } from '../ReactionsList';
4
+ import type { DefaultStreamChatGenerics } from '../../../types/types';
5
+ declare type SharedReactionListProps = 'additionalEmojiProps' | 'own_reactions' | 'reaction_counts' | 'reactionOptions' | 'reactions';
6
+ declare type UseProcessReactionsParams = Pick<ReactionsListProps, SharedReactionListProps> & Pick<EmojiContextValue, 'emojiConfig'>;
7
+ export declare const useProcessReactions: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(params: UseProcessReactionsParams) => {
8
+ additionalEmojiProps: import("../../../context").EmojiSetDef | Partial<import("emoji-mart").NimbleEmojiProps>;
9
+ emojiData: import("emoji-mart").Data;
10
+ getEmojiByReactionType: (type: string) => ReactionEmoji | undefined;
11
+ iHaveReactedWithReaction: (reactionType: string) => import("stream-chat").ReactionResponse<DefaultStreamChatGenerics> | undefined;
12
+ latestReactions: import("stream-chat").ReactionResponse<DefaultStreamChatGenerics>[];
13
+ latestReactionTypes: string[];
14
+ reactionCounts: {
15
+ [key: string]: number;
16
+ };
17
+ supportedReactionsArePresent: boolean;
18
+ totalReactionCount: number;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=useProcessReactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProcessReactions.d.ts","sourceRoot":"","sources":["../../../../src/components/Reactions/hooks/useProcessReactions.tsx"],"names":[],"mappings":"AACA,OAAO,EAAwB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEtE,aAAK,uBAAuB,GACxB,sBAAsB,GACtB,eAAe,GACf,iBAAiB,GACjB,iBAAiB,GACjB,WAAW,CAAC;AAEhB,aAAK,yBAAyB,GAAG,IAAI,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,GAChF,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;AAEzC,eAAO,MAAM,mBAAmB,6FAGtB,yBAAyB;;;mCAyBxB,MAAM,KAAG,aAAa,GAAG,SAAS;6CAL1B,MAAM;;;;;;;;CA2DxB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { useCallback, useMemo } from 'react';
2
+ import { getStrippedEmojiData } from '../../Channel/emojiData';
3
+ import { useMessageContext } from '../../../context';
4
+ export var useProcessReactions = function (params) {
5
+ var _a = params.additionalEmojiProps, additionalEmojiProps = _a === void 0 ? {} : _a, emojiConfig = params.emojiConfig, propOwnReactions = params.own_reactions, propReactionCounts = params.reaction_counts, propReactionOptions = params.reactionOptions, propReactions = params.reactions;
6
+ var message = useMessageContext('ReactionsList').message;
7
+ var _b = emojiConfig || {}, defaultMinimalEmojis = _b.defaultMinimalEmojis, fullEmojiData = _b.emojiData, emojiSetDef = _b.emojiSetDef;
8
+ var latestReactions = propReactions || message.latest_reactions || [];
9
+ var ownReactions = propOwnReactions || (message === null || message === void 0 ? void 0 : message.own_reactions) || [];
10
+ var reactionCounts = propReactionCounts || message.reaction_counts || {};
11
+ var reactionOptions = propReactionOptions || defaultMinimalEmojis;
12
+ var reactionsAreCustom = !!(propReactionOptions === null || propReactionOptions === void 0 ? void 0 : propReactionOptions.length);
13
+ var iHaveReactedWithReaction = useCallback(function (reactionType) { return ownReactions.find(function (reaction) { return reaction.type === reactionType; }); }, [ownReactions]);
14
+ var getEmojiByReactionType = useCallback(function (type) {
15
+ return reactionOptions.find(function (option) { return option.id === type; });
16
+ }, [reactionOptions]);
17
+ var emojiData = useMemo(function () { return (reactionsAreCustom ? fullEmojiData : getStrippedEmojiData(fullEmojiData)); }, [fullEmojiData, reactionsAreCustom]);
18
+ var latestReactionTypes = useMemo(function () {
19
+ return latestReactions.reduce(function (reactionTypes, _a) {
20
+ var type = _a.type;
21
+ if (reactionTypes.indexOf(type) === -1) {
22
+ reactionTypes.push(type);
23
+ }
24
+ return reactionTypes;
25
+ }, []);
26
+ }, [latestReactions]);
27
+ var supportedReactionMap = useMemo(function () {
28
+ return reactionOptions.reduce(function (acc, _a) {
29
+ var id = _a.id;
30
+ acc[id] = true;
31
+ return acc;
32
+ }, {});
33
+ }, [reactionOptions]);
34
+ var supportedReactionsArePresent = useMemo(function () { return latestReactionTypes.some(function (type) { return supportedReactionMap[type]; }); }, [latestReactionTypes, supportedReactionMap]);
35
+ var totalReactionCount = useMemo(function () {
36
+ return supportedReactionsArePresent
37
+ ? Object.values(reactionCounts).reduce(function (total, count) { return total + count; }, 0)
38
+ : 0;
39
+ }, [reactionCounts, supportedReactionsArePresent]);
40
+ return {
41
+ additionalEmojiProps: reactionsAreCustom ? additionalEmojiProps : emojiSetDef,
42
+ emojiData: emojiData,
43
+ getEmojiByReactionType: getEmojiByReactionType,
44
+ iHaveReactedWithReaction: iHaveReactedWithReaction,
45
+ latestReactions: latestReactions,
46
+ latestReactionTypes: latestReactionTypes,
47
+ reactionCounts: reactionCounts,
48
+ supportedReactionsArePresent: supportedReactionsArePresent,
49
+ totalReactionCount: totalReactionCount,
50
+ };
51
+ };
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
- import type { MessageActionsArray, MessageProps, MessageUIComponentProps } from '../Message';
3
2
  import { MessageInputProps } from '../MessageInput';
4
3
  import { MessageListProps, VirtualizedMessageListProps } from '../MessageList';
5
- import { StreamMessage } from '../../context';
4
+ import type { MessageProps, MessageUIComponentProps } from '../Message/types';
5
+ import type { MessageActionsArray } from '../Message/utils';
6
6
  import type { CustomTrigger, DefaultStreamChatGenerics } from '../../types/types';
7
7
  export declare type ThreadProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger> = {
8
8
  /** Additional props for `MessageInput` component: [available props](https://getstream.io/chat/docs/sdk/react/message-input-components/message_input/#props) */
@@ -32,8 +32,4 @@ export declare type ThreadProps<StreamChatGenerics extends DefaultStreamChatGene
32
32
  * The Thread component renders a parent Message with a list of replies
33
33
  */
34
34
  export declare const Thread: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, V extends CustomTrigger = CustomTrigger>(props: ThreadProps<StreamChatGenerics, V>) => JSX.Element | null;
35
- export declare type ThreadHeaderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
36
- closeThread: (event: React.BaseSyntheticEvent) => void;
37
- thread: StreamMessage<StreamChatGenerics>;
38
- };
39
35
  //# sourceMappingURL=Thread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/Thread.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAgB,iBAAiB,EAAqB,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAEL,gBAAgB,EAEhB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAEL,aAAa,EAMd,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAElF,oBAAY,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,CAAC,SAAS,aAAa,GAAG,aAAa,IACrC;IACF,+JAA+J;IAC/J,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACvE,oJAAoJ;IACpJ,0BAA0B,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAClE,oKAAoK;IACpK,4BAA4B,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAChE,mKAAmK;IACnK,qCAAqC,CAAC,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;IACxF,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gKAAgK;IAChK,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gQAAgQ;IAChQ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,mHAAmH;IACnH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3E,mKAAmK;IACnK,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,8LAYlB,CAAC;AAEF,oBAAY,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC3C,CAAC"}
1
+ {"version":3,"file":"Thread.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/Thread.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAGL,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,gBAAgB,EAEhB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAWxB,OAAO,KAAK,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAElF,oBAAY,WAAW,CACrB,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,EAChF,CAAC,SAAS,aAAa,GAAG,aAAa,IACrC;IACF,+JAA+J;IAC/J,2BAA2B,CAAC,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACvE,oJAAoJ;IACpJ,0BAA0B,CAAC,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAClE,oKAAoK;IACpK,4BAA4B,CAAC,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAChE,mKAAmK;IACnK,qCAAqC,CAAC,EAAE,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;IACxF,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gKAAgK;IAChK,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gQAAgQ;IAChQ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,mHAAmH;IACnH,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3E,mKAAmK;IACnK,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,mGAAmG;IACnG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,8LAYlB,CAAC"}
@@ -9,47 +9,13 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
- return new (P || (P = Promise))(function (resolve, reject) {
15
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
- step((generator = generator.apply(thisArg, _arguments || [])).next());
19
- });
20
- };
21
- var __generator = (this && this.__generator) || function (thisArg, body) {
22
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
- function verb(n) { return function (v) { return step([n, v]); }; }
25
- function step(op) {
26
- if (f) throw new TypeError("Generator is already executing.");
27
- while (_) try {
28
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
- if (y = 0, t) op = [op[0] & 2, t.value];
30
- switch (op[0]) {
31
- case 0: case 1: t = op; break;
32
- case 4: _.label++; return { value: op[1], done: false };
33
- case 5: _.label++; y = op[1]; op = [0]; continue;
34
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
- default:
36
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
- if (t[2]) _.ops.pop();
41
- _.trys.pop(); continue;
42
- }
43
- op = body.call(thisArg, _);
44
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
- }
47
- };
48
- import React, { useEffect, useRef } from 'react';
49
- import { FixedHeightMessage, Message, MESSAGE_ACTIONS } from '../Message';
50
- import { MessageInput, MessageInputSmall } from '../MessageInput';
12
+ import React, { useEffect } from 'react';
13
+ import { MESSAGE_ACTIONS } from '../Message';
14
+ import { MessageInput, MessageInputFlat, MessageInputSmall, } from '../MessageInput';
51
15
  import { MessageList, VirtualizedMessageList, } from '../MessageList';
52
- import { useChannelActionContext, useChannelStateContext, useChatContext, useComponentContext, useTranslationContext, } from '../../context';
16
+ import { ThreadHeader as DefaultThreadHeader } from './ThreadHeader';
17
+ import { ThreadHead as DefaultThreadHead } from '../Thread/ThreadHead';
18
+ import { useChannelActionContext, useChannelStateContext, useChatContext, useComponentContext, } from '../../context';
53
19
  /**
54
20
  * The Thread component renders a parent Message with a list of replies
55
21
  */
@@ -58,65 +24,31 @@ export var Thread = function (props) {
58
24
  if (!thread || (channelConfig === null || channelConfig === void 0 ? void 0 : channelConfig.replies) === false)
59
25
  return null;
60
26
  // The wrapper ensures a key variable is set and the component recreates on thread switch
61
- return React.createElement(ThreadInner, __assign({}, props, { key: "thread-" + thread.id + "-" + (channel === null || channel === void 0 ? void 0 : channel.cid) }));
62
- };
63
- var DefaultThreadHeader = function (props) {
64
- var closeThread = props.closeThread, thread = props.thread;
65
- var t = useTranslationContext('Thread').t;
66
- var getReplyCount = function () {
67
- if (!thread.reply_count)
68
- return '';
69
- return t('replyCount', { count: thread.reply_count });
70
- };
71
- return (React.createElement("div", { className: 'str-chat__thread-header' },
72
- React.createElement("div", { className: 'str-chat__thread-header-details' },
73
- React.createElement("strong", null, t('Thread')),
74
- React.createElement("small", null, getReplyCount())),
75
- React.createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
76
- React.createElement("svg", { height: '10', width: '10', xmlns: 'http://www.w3.org/2000/svg' },
77
- React.createElement("path", { d: 'M9.916 1.027L8.973.084 5 4.058 1.027.084l-.943.943L4.058 5 .084 8.973l.943.943L5 5.942l3.973 3.974.943-.943L5.942 5z', fillRule: 'evenodd' })))));
78
- };
79
- var DefaultThreadStart = function () {
80
- var t = useTranslationContext('Thread').t;
81
- return React.createElement("div", { className: 'str-chat__thread-start' }, t('Start of a new thread'));
27
+ return React.createElement(ThreadInner, __assign({}, props, { key: "thread-".concat(thread.id, "-").concat(channel === null || channel === void 0 ? void 0 : channel.cid) }));
82
28
  };
83
29
  var ThreadInner = function (props) {
84
- var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _a = props.autoFocus, autoFocus = _a === void 0 ? true : _a, _b = props.enableDateSeparator, enableDateSeparator = _b === void 0 ? false : _b, _c = props.fullWidth, fullWidth = _c === void 0 ? false : _c, PropInput = props.Input, PropMessage = props.Message, _d = props.messageActions, messageActions = _d === void 0 ? Object.keys(MESSAGE_ACTIONS) : _d, virtualized = props.virtualized;
85
- var _e = useChannelStateContext('Thread'), thread = _e.thread, threadHasMore = _e.threadHasMore, threadLoadingMore = _e.threadLoadingMore, threadMessages = _e.threadMessages;
86
- var _f = useChannelActionContext('Thread'), closeThread = _f.closeThread, loadMoreThread = _f.loadMoreThread, sendMessage = _f.sendMessage;
87
- var customClasses = useChatContext('Thread').customClasses;
88
- var _g = useComponentContext('Thread'), ContextInput = _g.ThreadInput, ContextMessage = _g.Message, _h = _g.ThreadHeader, ThreadHeader = _h === void 0 ? DefaultThreadHeader : _h, _j = _g.ThreadStart, ThreadStart = _j === void 0 ? DefaultThreadStart : _j, _k = _g.VirtualMessage, VirtualMessage = _k === void 0 ? FixedHeightMessage : _k;
89
- var messageList = useRef(null);
90
- var ThreadInput = PropInput || (additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) || ContextInput || MessageInputSmall;
30
+ var _a, _b;
31
+ var additionalMessageInputProps = props.additionalMessageInputProps, additionalMessageListProps = props.additionalMessageListProps, additionalParentMessageProps = props.additionalParentMessageProps, additionalVirtualizedMessageListProps = props.additionalVirtualizedMessageListProps, _c = props.autoFocus, autoFocus = _c === void 0 ? true : _c, _d = props.enableDateSeparator, enableDateSeparator = _d === void 0 ? false : _d, _e = props.fullWidth, fullWidth = _e === void 0 ? false : _e, PropInput = props.Input, PropMessage = props.Message, _f = props.messageActions, messageActions = _f === void 0 ? Object.keys(MESSAGE_ACTIONS) : _f, virtualized = props.virtualized;
32
+ var _g = useChannelStateContext('Thread'), thread = _g.thread, threadHasMore = _g.threadHasMore, threadLoadingMore = _g.threadLoadingMore, threadMessages = _g.threadMessages, threadSuppressAutoscroll = _g.threadSuppressAutoscroll;
33
+ var _h = useChannelActionContext('Thread'), closeThread = _h.closeThread, loadMoreThread = _h.loadMoreThread;
34
+ var _j = useChatContext('Thread'), customClasses = _j.customClasses, themeVersion = _j.themeVersion;
35
+ var _k = useComponentContext('Thread'), ContextInput = _k.ThreadInput, ContextMessage = _k.Message, _l = _k.ThreadHead, ThreadHead = _l === void 0 ? DefaultThreadHead : _l, _m = _k.ThreadHeader, ThreadHeader = _m === void 0 ? DefaultThreadHeader : _m, VirtualMessage = _k.VirtualMessage;
36
+ var ThreadInput = (_b = (_a = PropInput !== null && PropInput !== void 0 ? PropInput : additionalMessageInputProps === null || additionalMessageInputProps === void 0 ? void 0 : additionalMessageInputProps.Input) !== null && _a !== void 0 ? _a : ContextInput) !== null && _b !== void 0 ? _b : (themeVersion === '2' ? MessageInputFlat : MessageInputSmall);
91
37
  var ThreadMessage = PropMessage || (additionalMessageListProps === null || additionalMessageListProps === void 0 ? void 0 : additionalMessageListProps.Message);
92
- var FallbackMessage = virtualized ? VirtualMessage : ContextMessage;
38
+ var FallbackMessage = virtualized && VirtualMessage ? VirtualMessage : ContextMessage;
39
+ var MessageUIComponent = ThreadMessage || FallbackMessage;
93
40
  var ThreadMessageList = virtualized ? VirtualizedMessageList : MessageList;
94
41
  useEffect(function () {
95
42
  if ((thread === null || thread === void 0 ? void 0 : thread.id) && (thread === null || thread === void 0 ? void 0 : thread.reply_count)) {
96
43
  loadMoreThread();
97
44
  }
98
45
  }, []);
99
- var threadSubmitHandler = function (message, _, customMessageData) { return __awaiter(void 0, void 0, void 0, function () {
100
- return __generator(this, function (_a) {
101
- switch (_a.label) {
102
- case 0: return [4 /*yield*/, sendMessage(message, customMessageData)];
103
- case 1:
104
- _a.sent();
105
- if (messageList.current) {
106
- messageList.current.scrollTop = messageList.current.scrollHeight;
107
- }
108
- return [2 /*return*/];
109
- }
110
- });
111
- }); };
112
46
  if (!thread)
113
47
  return null;
114
- var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread';
115
- return (React.createElement("div", { className: threadClass + " " + (fullWidth ? 'str-chat__thread--full' : '') },
48
+ var threadClass = (customClasses === null || customClasses === void 0 ? void 0 : customClasses.thread) || 'str-chat__thread-container str-chat__thread';
49
+ var head = (React.createElement(ThreadHead, __assign({ key: thread.id, message: thread, Message: MessageUIComponent }, additionalParentMessageProps)));
50
+ return (React.createElement("div", { className: "".concat(threadClass, " ").concat(fullWidth ? 'str-chat__thread--full' : '') },
116
51
  React.createElement(ThreadHeader, { closeThread: closeThread, thread: thread }),
117
- React.createElement("div", { className: 'str-chat__thread-list', ref: messageList },
118
- React.createElement(Message, __assign({ initialMessage: true, message: thread, Message: ThreadMessage || FallbackMessage, threadList: true }, additionalParentMessageProps)),
119
- React.createElement(ThreadStart, null),
120
- React.createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: ThreadMessage || FallbackMessage, messageActions: messageActions, messages: threadMessages || [], threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps)))),
121
- React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, overrideSubmitHandler: threadSubmitHandler, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
52
+ React.createElement(ThreadMessageList, __assign({ disableDateSeparator: !enableDateSeparator, hasMore: threadHasMore, head: head, loadingMore: threadLoadingMore, loadMore: loadMoreThread, Message: MessageUIComponent, messageActions: messageActions, messages: threadMessages || [], suppressAutoscroll: threadSuppressAutoscroll, threadList: true }, (virtualized ? additionalVirtualizedMessageListProps : additionalMessageListProps))),
53
+ React.createElement(MessageInput, __assign({ focus: autoFocus, Input: ThreadInput, parent: thread, publishTypingEvent: false }, additionalMessageInputProps))));
122
54
  };
@@ -0,0 +1,4 @@
1
+ import { MessageProps } from '../Message';
2
+ import type { DefaultStreamChatGenerics } from '../../types/types';
3
+ export declare const ThreadHead: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: MessageProps<StreamChatGenerics, import("../../types/types").CustomTrigger>) => JSX.Element;
4
+ //# sourceMappingURL=ThreadHead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadHead.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadHead.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,YAAY,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,eAAO,MAAM,UAAU,uLActB,CAAC"}
@@ -0,0 +1,21 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import { Message } from '../Message';
14
+ import { ThreadStart as DefaultThreadStart } from './ThreadStart';
15
+ import { useComponentContext } from '../../context';
16
+ export var ThreadHead = function (props) {
17
+ var _a = useComponentContext('ThreadHead').ThreadStart, ThreadStart = _a === void 0 ? DefaultThreadStart : _a;
18
+ return (React.createElement("div", { className: 'str-chat__parent-message-li' },
19
+ React.createElement(Message, __assign({ initialMessage: true, threadList: true }, props)),
20
+ React.createElement(ThreadStart, null)));
21
+ };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { ChannelPreviewInfoParams } from '../ChannelPreview/hooks/useChannelPreviewInfo';
3
+ import { StreamMessage } from '../../context/ChannelStateContext';
4
+ import type { DefaultStreamChatGenerics } from '../../types/types';
5
+ export declare type ThreadHeaderProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
6
+ /** Callback for closing the thread */
7
+ closeThread: (event: React.BaseSyntheticEvent) => void;
8
+ /** The thread parent message */
9
+ thread: StreamMessage<StreamChatGenerics>;
10
+ };
11
+ export declare const ThreadHeader: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(props: ThreadHeaderProps<StreamChatGenerics> & Pick<ChannelPreviewInfoParams<StreamChatGenerics>, "overrideImage" | "overrideTitle">) => JSX.Element;
12
+ //# sourceMappingURL=ThreadHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadHeader.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,wBAAwB,EAEzB,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,aAAa,EAA0B,MAAM,mCAAmC,CAAC;AAG1F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,iBAAiB,CAC3B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E;IACF,sCAAsC;IACtC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,kBAAkB,KAAK,IAAI,CAAC;IACvD,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,YAAY,yOAgCxB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { useChannelPreviewInfo, } from '../ChannelPreview/hooks/useChannelPreviewInfo';
3
+ import { CloseIcon } from './icons';
4
+ import { useChannelStateContext } from '../../context/ChannelStateContext';
5
+ import { useTranslationContext } from '../../context/TranslationContext';
6
+ export var ThreadHeader = function (props) {
7
+ var closeThread = props.closeThread, overrideImage = props.overrideImage, overrideTitle = props.overrideTitle;
8
+ var t = useTranslationContext('ThreadHeader').t;
9
+ var channel = useChannelStateContext('').channel;
10
+ var displayTitle = useChannelPreviewInfo({
11
+ channel: channel,
12
+ overrideImage: overrideImage,
13
+ overrideTitle: overrideTitle,
14
+ }).displayTitle;
15
+ return (React.createElement("div", { className: 'str-chat__thread-header' },
16
+ React.createElement("div", { className: 'str-chat__thread-header-details' },
17
+ React.createElement("div", { className: 'str-chat__thread-header-title' }, t('Thread')),
18
+ React.createElement("div", { className: 'str-chat__thread-header-subtitle' }, displayTitle)),
19
+ React.createElement("button", { "aria-label": 'Close thread', className: 'str-chat__square-button str-chat__close-thread-button', "data-testid": 'close-button', onClick: function (event) { return closeThread(event); } },
20
+ React.createElement(CloseIcon, null))));
21
+ };
@@ -0,0 +1,2 @@
1
+ export declare const ThreadStart: () => JSX.Element | null;
2
+ //# sourceMappingURL=ThreadStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreadStart.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/ThreadStart.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,0BAWvB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { useChannelStateContext } from '../../context/ChannelStateContext';
3
+ import { useTranslationContext } from '../../context/TranslationContext';
4
+ export var ThreadStart = function () {
5
+ var thread = useChannelStateContext('ThreadStart').thread;
6
+ var t = useTranslationContext('ThreadStart').t;
7
+ if (!(thread === null || thread === void 0 ? void 0 : thread.reply_count))
8
+ return null;
9
+ return (React.createElement("div", { className: 'str-chat__thread-start' }, t('replyCount', { count: thread.reply_count })));
10
+ };
@@ -0,0 +1,4 @@
1
+ export declare const CloseIcon: ({ title }: {
2
+ title?: string | undefined;
3
+ }) => JSX.Element;
4
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/Thread/icons.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;iBAiBrB,CAAC"}