stream-chat-react-native-core 3.10.2 → 4.0.0-beta.1

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 (623) hide show
  1. package/lib/commonjs/components/Attachment/Card.js +18 -15
  2. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Gallery.js +8 -15
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +3 -3
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  8. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  9. package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  10. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  11. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  12. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  13. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  14. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  15. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  16. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  17. package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -9
  18. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  19. package/lib/commonjs/components/Channel/Channel.js +293 -208
  20. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  21. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
  22. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  23. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  24. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  25. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  26. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  27. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  28. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  29. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  30. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  31. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  32. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  33. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  34. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  35. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  36. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  37. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  38. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  39. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  40. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  41. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
  42. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  43. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -2
  44. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  45. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  46. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  47. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  48. package/lib/commonjs/components/Message/Message.js +144 -857
  49. package/lib/commonjs/components/Message/Message.js.map +1 -1
  50. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
  51. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  52. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +4 -2
  53. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  54. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +24 -16
  55. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  56. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  57. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  58. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
  59. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  60. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
  61. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  62. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +19 -20
  63. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  64. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  65. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  66. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
  67. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  68. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +30 -11
  69. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  70. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
  71. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  72. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +294 -0
  73. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  74. package/lib/commonjs/components/Message/hooks/useMessageActions.js +559 -0
  75. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
  76. package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
  77. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  78. package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
  79. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
  80. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +2 -2
  81. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  82. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +2 -2
  83. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  84. package/lib/commonjs/components/MessageInput/InputButtons.js +16 -21
  85. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  86. package/lib/commonjs/components/MessageInput/MessageInput.js +90 -62
  87. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  88. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  89. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  90. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  91. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  92. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
  93. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
  94. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
  95. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
  96. package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
  97. package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
  98. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
  99. package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
  100. package/lib/commonjs/components/MessageList/MessageList.js +75 -42
  101. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  102. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +16 -3
  103. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  104. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
  105. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  106. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
  107. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  108. package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
  109. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
  110. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
  111. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  112. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +83 -70
  113. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  114. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
  115. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  116. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -0
  117. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  118. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  119. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  120. package/lib/commonjs/components/Thread/Thread.js +13 -4
  121. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  122. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +9 -1
  123. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  124. package/lib/commonjs/components/docs/ListProps.md +1 -1
  125. package/lib/commonjs/components/index.js +107 -55
  126. package/lib/commonjs/components/index.js.map +1 -1
  127. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  128. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  129. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  130. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  131. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  132. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  133. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  134. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
  135. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
  136. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  137. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  138. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +112 -78
  139. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  140. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  141. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  142. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  143. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  144. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  145. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  146. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  147. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +31 -24
  148. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  149. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  150. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  151. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  152. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  153. package/lib/commonjs/contexts/themeContext/utils/theme.js +25 -9
  154. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  155. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  156. package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
  157. package/lib/commonjs/emoji-data/compiled.js +0 -315
  158. package/lib/commonjs/emoji-data/compiled.js.map +1 -1
  159. package/lib/commonjs/emoji-data/emojiNames.js +0 -105
  160. package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
  161. package/lib/commonjs/emoji-data/emojis.js +0 -175
  162. package/lib/commonjs/emoji-data/emojis.js.map +1 -1
  163. package/lib/commonjs/i18n/en.json +9 -3
  164. package/lib/commonjs/i18n/fr.json +9 -3
  165. package/lib/commonjs/i18n/hi.json +9 -3
  166. package/lib/commonjs/i18n/it.json +9 -3
  167. package/lib/commonjs/i18n/ja.json +9 -0
  168. package/lib/commonjs/i18n/ko.json +9 -0
  169. package/lib/commonjs/i18n/nl.json +9 -3
  170. package/lib/commonjs/i18n/ru.json +9 -3
  171. package/lib/commonjs/i18n/tr.json +10 -4
  172. package/lib/commonjs/icons/Pin.js +42 -0
  173. package/lib/commonjs/icons/Pin.js.map +1 -0
  174. package/lib/commonjs/icons/PinHeader.js +38 -0
  175. package/lib/commonjs/icons/PinHeader.js.map +1 -0
  176. package/lib/commonjs/icons/Unpin.js +38 -0
  177. package/lib/commonjs/icons/Unpin.js.map +1 -0
  178. package/lib/commonjs/icons/index.js +39 -0
  179. package/lib/commonjs/icons/index.js.map +1 -1
  180. package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
  181. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  182. package/lib/commonjs/mock-builders/generator/channel.js +1 -0
  183. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  184. package/lib/commonjs/mock-builders/mock.js +2 -2
  185. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  186. package/lib/commonjs/native.js +1 -7
  187. package/lib/commonjs/native.js.map +1 -1
  188. package/lib/commonjs/utils/date.js +13 -0
  189. package/lib/commonjs/utils/date.js.map +1 -0
  190. package/lib/commonjs/utils/utils.js +9 -7
  191. package/lib/commonjs/utils/utils.js.map +1 -1
  192. package/lib/commonjs/version.json +1 -1
  193. package/lib/module/components/Attachment/Card.js +18 -15
  194. package/lib/module/components/Attachment/Card.js.map +1 -1
  195. package/lib/module/components/Attachment/Gallery.js +8 -15
  196. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  197. package/lib/module/components/Attachment/Giphy.js +3 -3
  198. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  199. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  200. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  201. package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  202. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  203. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  204. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  205. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  206. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  207. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  208. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  209. package/lib/module/components/Avatar/GroupAvatar.js +3 -9
  210. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  211. package/lib/module/components/Channel/Channel.js +293 -208
  212. package/lib/module/components/Channel/Channel.js.map +1 -1
  213. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
  214. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  215. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  216. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  217. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  218. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  219. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  220. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  221. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  222. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  223. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  224. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  225. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  226. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  227. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  228. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  229. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  230. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  231. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  232. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  233. package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
  234. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  235. package/lib/module/components/ImageGallery/ImageGallery.js +1 -2
  236. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  237. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  238. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  239. package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  240. package/lib/module/components/Message/Message.js +144 -857
  241. package/lib/module/components/Message/Message.js.map +1 -1
  242. package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
  243. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  244. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +4 -2
  245. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  246. package/lib/module/components/Message/MessageSimple/MessageFooter.js +24 -16
  247. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  248. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  249. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  250. package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
  251. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  252. package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
  253. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  254. package/lib/module/components/Message/MessageSimple/MessageStatus.js +19 -20
  255. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  256. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  257. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  258. package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
  259. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  260. package/lib/module/components/Message/MessageSimple/utils/renderText.js +30 -11
  261. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  262. package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
  263. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  264. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +294 -0
  265. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  266. package/lib/module/components/Message/hooks/useMessageActions.js +559 -0
  267. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
  268. package/lib/module/components/Message/utils/messageActions.js +17 -15
  269. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  270. package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
  271. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
  272. package/lib/module/components/MessageInput/FileUploadPreview.js +2 -2
  273. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  274. package/lib/module/components/MessageInput/ImageUploadPreview.js +2 -2
  275. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  276. package/lib/module/components/MessageInput/InputButtons.js +16 -21
  277. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  278. package/lib/module/components/MessageInput/MessageInput.js +90 -62
  279. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  280. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  281. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  282. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  283. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  284. package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
  285. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
  286. package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
  287. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
  288. package/lib/module/components/MessageList/DateHeader.js +2 -2
  289. package/lib/module/components/MessageList/DateHeader.js.map +1 -1
  290. package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
  291. package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
  292. package/lib/module/components/MessageList/MessageList.js +75 -42
  293. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  294. package/lib/module/components/MessageList/hooks/useMessageList.js +16 -3
  295. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  296. package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
  297. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  298. package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
  299. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  300. package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
  301. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
  302. package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
  303. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  304. package/lib/module/components/MessageOverlay/MessageOverlay.js +83 -70
  305. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  306. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
  307. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  308. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -0
  309. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  310. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  311. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  312. package/lib/module/components/Thread/Thread.js +13 -4
  313. package/lib/module/components/Thread/Thread.js.map +1 -1
  314. package/lib/module/components/Thread/components/ThreadFooterComponent.js +9 -1
  315. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  316. package/lib/module/components/docs/ListProps.md +1 -1
  317. package/lib/module/components/index.js +107 -55
  318. package/lib/module/components/index.js.map +1 -1
  319. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  320. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  321. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  322. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  323. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  324. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  325. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  326. package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
  327. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
  328. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  329. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  330. package/lib/module/contexts/messageInputContext/MessageInputContext.js +112 -78
  331. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  332. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  333. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  334. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  335. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  336. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  337. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  338. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  339. package/lib/module/contexts/overlayContext/OverlayProvider.js +31 -24
  340. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  341. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  342. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  343. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  344. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  345. package/lib/module/contexts/themeContext/utils/theme.js +25 -9
  346. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  347. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  348. package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
  349. package/lib/module/emoji-data/compiled.js +0 -315
  350. package/lib/module/emoji-data/compiled.js.map +1 -1
  351. package/lib/module/emoji-data/emojiNames.js +0 -105
  352. package/lib/module/emoji-data/emojiNames.js.map +1 -1
  353. package/lib/module/emoji-data/emojis.js +0 -175
  354. package/lib/module/emoji-data/emojis.js.map +1 -1
  355. package/lib/module/i18n/en.json +9 -3
  356. package/lib/module/i18n/fr.json +9 -3
  357. package/lib/module/i18n/hi.json +9 -3
  358. package/lib/module/i18n/it.json +9 -3
  359. package/lib/module/i18n/ja.json +9 -0
  360. package/lib/module/i18n/ko.json +9 -0
  361. package/lib/module/i18n/nl.json +9 -3
  362. package/lib/module/i18n/ru.json +9 -3
  363. package/lib/module/i18n/tr.json +10 -4
  364. package/lib/module/icons/Pin.js +42 -0
  365. package/lib/module/icons/Pin.js.map +1 -0
  366. package/lib/module/icons/PinHeader.js +38 -0
  367. package/lib/module/icons/PinHeader.js.map +1 -0
  368. package/lib/module/icons/Unpin.js +38 -0
  369. package/lib/module/icons/Unpin.js.map +1 -0
  370. package/lib/module/icons/index.js +39 -0
  371. package/lib/module/icons/index.js.map +1 -1
  372. package/lib/module/mock-builders/api/sendMessage.js +4 -1
  373. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  374. package/lib/module/mock-builders/generator/channel.js +1 -0
  375. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  376. package/lib/module/mock-builders/mock.js +2 -2
  377. package/lib/module/mock-builders/mock.js.map +1 -1
  378. package/lib/module/native.js +1 -7
  379. package/lib/module/native.js.map +1 -1
  380. package/lib/module/utils/date.js +13 -0
  381. package/lib/module/utils/date.js.map +1 -0
  382. package/lib/module/utils/utils.js +9 -7
  383. package/lib/module/utils/utils.js.map +1 -1
  384. package/lib/module/version.json +1 -1
  385. package/lib/typescript/components/Attachment/Card.d.ts +2 -0
  386. package/lib/typescript/components/Attachment/Gallery.d.ts +3 -2
  387. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
  388. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
  389. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
  390. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
  391. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +22 -0
  392. package/lib/typescript/components/Channel/Channel.d.ts +11 -10
  393. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  394. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
  395. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
  396. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
  397. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
  398. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
  399. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -0
  400. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  401. package/lib/typescript/components/Message/Message.d.ts +3 -2
  402. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  403. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
  404. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  405. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
  406. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
  407. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
  408. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +1 -0
  409. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  410. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
  411. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
  412. package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
  413. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
  414. package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
  415. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  416. package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
  417. package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
  418. package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
  419. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
  420. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
  421. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
  422. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
  423. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
  424. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
  425. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
  426. package/lib/typescript/components/index.d.ts +11 -7
  427. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
  428. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
  429. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
  430. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
  431. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
  432. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
  433. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +15 -6
  434. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  435. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +8 -11
  436. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +15 -106
  437. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +10 -3
  438. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
  439. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +15 -14
  440. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +24 -8
  441. package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
  442. package/lib/typescript/i18n/en.json +9 -3
  443. package/lib/typescript/i18n/fr.json +9 -3
  444. package/lib/typescript/i18n/hi.json +9 -3
  445. package/lib/typescript/i18n/it.json +9 -3
  446. package/lib/typescript/i18n/ja.json +9 -0
  447. package/lib/typescript/i18n/ko.json +9 -0
  448. package/lib/typescript/i18n/nl.json +9 -3
  449. package/lib/typescript/i18n/ru.json +9 -3
  450. package/lib/typescript/i18n/tr.json +10 -4
  451. package/lib/typescript/icons/Pin.d.ts +3 -0
  452. package/lib/typescript/icons/PinHeader.d.ts +3 -0
  453. package/lib/typescript/icons/Unpin.d.ts +3 -0
  454. package/lib/typescript/icons/index.d.ts +3 -0
  455. package/lib/typescript/native.d.ts +1 -9
  456. package/lib/typescript/utils/Streami18n.d.ts +9 -6
  457. package/lib/typescript/utils/date.d.ts +2 -0
  458. package/lib/typescript/utils/utils.d.ts +8 -10
  459. package/package.json +5 -3
  460. package/src/components/Attachment/Card.tsx +5 -1
  461. package/src/components/Attachment/Gallery.tsx +5 -10
  462. package/src/components/Attachment/Giphy.tsx +3 -3
  463. package/src/components/Attachment/__tests__/Attachment.test.js +13 -6
  464. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +41 -27
  465. package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +2 -56
  466. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
  467. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +154 -0
  468. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +213 -0
  469. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +0 -4
  470. package/src/components/Avatar/GroupAvatar.tsx +0 -19
  471. package/src/components/Avatar/__tests__/Avatar.test.js +0 -28
  472. package/src/components/Channel/Channel.tsx +225 -176
  473. package/src/components/Channel/__tests__/Channel.test.js +25 -20
  474. package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
  475. package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
  476. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
  477. package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
  478. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +53 -0
  479. package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +1 -1
  480. package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +4 -1
  481. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +16 -4
  482. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -1
  483. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +6 -0
  484. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -1
  485. package/src/components/Chat/__tests__/Chat.test.js +6 -2
  486. package/src/components/Chat/hooks/useIsOnline.ts +8 -5
  487. package/src/components/ImageGallery/ImageGallery.tsx +3 -2
  488. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +4 -5
  489. package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
  490. package/src/components/Message/Message.tsx +140 -579
  491. package/src/components/Message/MessageSimple/MessageContent.tsx +21 -22
  492. package/src/components/Message/MessageSimple/MessageDeleted.tsx +5 -2
  493. package/src/components/Message/MessageSimple/MessageFooter.tsx +36 -17
  494. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
  495. package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
  496. package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
  497. package/src/components/Message/MessageSimple/MessageStatus.tsx +10 -29
  498. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
  499. package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
  500. package/src/components/Message/MessageSimple/__tests__/Message.test.js +0 -1
  501. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +32 -22
  502. package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
  503. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
  504. package/src/components/Message/MessageSimple/utils/renderText.tsx +11 -0
  505. package/src/components/Message/hooks/useCreateMessageContext.ts +0 -5
  506. package/src/components/Message/hooks/useMessageActionHandlers.ts +163 -0
  507. package/src/components/Message/hooks/useMessageActions.tsx +381 -0
  508. package/src/components/Message/utils/messageActions.ts +64 -38
  509. package/src/components/MessageInput/CooldownTimer.tsx +66 -0
  510. package/src/components/MessageInput/FileUploadPreview.tsx +2 -2
  511. package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
  512. package/src/components/MessageInput/InputButtons.tsx +4 -10
  513. package/src/components/MessageInput/MessageInput.tsx +59 -31
  514. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
  515. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +1 -1
  516. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +29 -29
  517. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +12 -12
  518. package/src/components/MessageInput/__tests__/MessageInput.test.js +8 -16
  519. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +6061 -2789
  520. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
  521. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1167 -282
  522. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
  523. package/src/components/MessageInput/hooks/useCooldown.ts +60 -0
  524. package/src/components/MessageInput/hooks/useCountdown.ts +47 -0
  525. package/src/components/MessageList/DateHeader.tsx +2 -2
  526. package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
  527. package/src/components/MessageList/MessageList.tsx +60 -36
  528. package/src/components/MessageList/__tests__/MessageList.test.js +231 -106
  529. package/src/components/MessageList/hooks/useMessageList.ts +14 -2
  530. package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
  531. package/src/components/MessageList/utils/getGroupStyles.ts +13 -7
  532. package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +57 -89
  533. package/src/components/MessageOverlay/MessageActionListItem.tsx +111 -0
  534. package/src/components/MessageOverlay/MessageOverlay.tsx +242 -205
  535. package/src/components/MessageOverlay/OverlayBackdrop.tsx +17 -0
  536. package/src/components/MessageOverlay/OverlayReactionList.tsx +1 -1
  537. package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +43 -0
  538. package/src/components/Thread/Thread.tsx +8 -0
  539. package/src/components/Thread/__tests__/Thread.test.js +28 -101
  540. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
  541. package/src/components/Thread/components/ThreadFooterComponent.tsx +13 -1
  542. package/src/components/docs/ListProps.md +1 -1
  543. package/src/components/index.ts +11 -7
  544. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +33 -0
  545. package/src/contexts/channelContext/ChannelContext.tsx +27 -30
  546. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  547. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +287 -0
  548. package/src/contexts/channelsStateContext/useChannelState.ts +206 -0
  549. package/src/contexts/messageContext/MessageContext.tsx +1 -8
  550. package/src/contexts/messageInputContext/MessageInputContext.tsx +56 -18
  551. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
  552. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +12 -12
  553. package/src/contexts/messagesContext/MessagesContext.tsx +28 -129
  554. package/src/contexts/overlayContext/OverlayContext.tsx +10 -4
  555. package/src/contexts/overlayContext/OverlayProvider.tsx +21 -20
  556. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
  557. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +27 -48
  558. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +0 -1
  559. package/src/contexts/themeContext/utils/theme.ts +48 -16
  560. package/src/contexts/translationContext/TranslationContext.tsx +1 -1
  561. package/src/contexts/utils/getDisplayName.ts +2 -1
  562. package/src/emoji-data/compiled.ts +1830 -9609
  563. package/src/emoji-data/emojiNames.ts +0 -140
  564. package/src/emoji-data/emojis.ts +0 -210
  565. package/src/i18n/en.json +9 -3
  566. package/src/i18n/fr.json +9 -3
  567. package/src/i18n/hi.json +9 -3
  568. package/src/i18n/it.json +9 -3
  569. package/src/i18n/ja.json +9 -0
  570. package/src/i18n/ko.json +9 -0
  571. package/src/i18n/nl.json +9 -3
  572. package/src/i18n/ru.json +9 -3
  573. package/src/i18n/tr.json +10 -4
  574. package/src/icons/Pin.tsx +17 -0
  575. package/src/icons/PinHeader.tsx +12 -0
  576. package/src/icons/Unpin.tsx +12 -0
  577. package/src/icons/index.ts +3 -0
  578. package/src/mock-builders/api/sendMessage.js +3 -2
  579. package/src/mock-builders/generator/channel.js +18 -0
  580. package/src/mock-builders/mock.js +2 -2
  581. package/src/native.ts +1 -13
  582. package/src/utils/date.ts +4 -0
  583. package/src/utils/utils.ts +14 -12
  584. package/src/version.json +1 -1
  585. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
  586. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  587. package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  588. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
  589. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  590. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
  591. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  592. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
  593. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  594. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
  595. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  596. package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
  597. package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
  598. package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  599. package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  600. package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
  601. package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  602. package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
  603. package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  604. package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
  605. package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  606. package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
  607. package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  608. package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
  609. package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
  610. package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
  611. package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
  612. package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
  613. package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
  614. package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
  615. package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
  616. package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
  617. package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
  618. package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
  619. package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
  620. package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
  621. package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
  622. package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
  623. package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
@@ -45,6 +45,7 @@ import { MessageAvatar as MessageAvatarDefault } from '../Message/MessageSimple/
45
45
  import { MessageContent as MessageContentDefault } from '../Message/MessageSimple/MessageContent';
46
46
  import { MessageDeleted as MessageDeletedDefault } from '../Message/MessageSimple/MessageDeleted';
47
47
  import { MessageFooter as MessageFooterDefault } from '../Message/MessageSimple/MessageFooter';
48
+ import { MessagePinnedHeader as MessagePinnedHeaderDefault } from '../Message/MessageSimple/MessagePinnedHeader';
48
49
  import { MessageReplies as MessageRepliesDefault } from '../Message/MessageSimple/MessageReplies';
49
50
  import { MessageRepliesAvatars as MessageRepliesAvatarsDefault } from '../Message/MessageSimple/MessageRepliesAvatars';
50
51
  import { MessageSimple as MessageSimpleDefault } from '../Message/MessageSimple/MessageSimple';
@@ -52,11 +53,13 @@ import { MessageStatus as MessageStatusDefault } from '../Message/MessageSimple/
52
53
  import { ReactionList as ReactionListDefault } from '../Message/MessageSimple/ReactionList';
53
54
  import { AttachButton as AttachButtonDefault } from '../MessageInput/AttachButton';
54
55
  import { CommandsButton as CommandsButtonDefault } from '../MessageInput/CommandsButton';
56
+ import { CooldownTimer as CooldownTimerDefault } from '../MessageInput/CooldownTimer';
55
57
  import { FileUploadPreview as FileUploadPreviewDefault } from '../MessageInput/FileUploadPreview';
56
58
  import { ImageUploadPreview as ImageUploadPreviewDefault } from '../MessageInput/ImageUploadPreview';
57
59
  import { InputButtons as InputButtonsDefault } from '../MessageInput/InputButtons';
58
60
  import { MoreOptionsButton as MoreOptionsButtonDefault } from '../MessageInput/MoreOptionsButton';
59
61
  import { SendButton as SendButtonDefault } from '../MessageInput/SendButton';
62
+ import { SendMessageDisallowedIndicator as SendMessageDisallowedIndicatorDefault } from '../MessageInput/SendMessageDisallowedIndicator';
60
63
  import { ShowThreadMessageInChannelButton as ShowThreadMessageInChannelButtonDefault } from '../MessageInput/ShowThreadMessageInChannelButton';
61
64
  import { UploadProgressIndicator as UploadProgressIndicatorDefault } from '../MessageInput/UploadProgressIndicator';
62
65
  import { DateHeader as DateHeaderDefault } from '../MessageList/DateHeader';
@@ -69,20 +72,18 @@ import { TypingIndicator as TypingIndicatorDefault } from '../MessageList/Typing
69
72
  import { TypingIndicatorContainer as TypingIndicatorContainerDefault } from '../MessageList/TypingIndicatorContainer';
70
73
  import { OverlayReactionList as OverlayReactionListDefault } from '../MessageOverlay/OverlayReactionList';
71
74
  import { Reply as ReplyDefault } from '../Reply/Reply';
75
+ import { AutoCompleteSuggestionList as AutoCompleteSuggestionListDefault } from '../AutoCompleteInput/AutoCompleteSuggestionList';
76
+ import { AutoCompleteSuggestionHeader as AutoCompleteSuggestionHeaderDefault } from '../AutoCompleteInput/AutoCompleteSuggestionHeader';
77
+ import { AutoCompleteSuggestionItem as AutoCompleteSuggestionItemDefault } from '../AutoCompleteInput/AutoCompleteSuggestionItem';
72
78
 
73
- import {
74
- ChannelConfig,
75
- ChannelContextValue,
76
- ChannelProvider,
77
- } from '../../contexts/channelContext/ChannelContext';
79
+ import { ChannelContextValue, ChannelProvider } from '../../contexts/channelContext/ChannelContext';
80
+ import { useChannelState } from '../../contexts/channelsStateContext/useChannelState';
78
81
  import { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';
79
82
  import {
80
- InputConfig,
81
83
  InputMessageInputContextValue,
82
84
  MessageInputProvider,
83
85
  } from '../../contexts/messageInputContext/MessageInputContext';
84
86
  import {
85
- MessagesConfig,
86
87
  MessagesContextValue,
87
88
  MessagesProvider,
88
89
  } from '../../contexts/messagesContext/MessagesContext';
@@ -100,7 +101,7 @@ import {
100
101
  TranslationContextValue,
101
102
  useTranslationContext,
102
103
  } from '../../contexts/translationContext/TranslationContext';
103
- import { TypingContextValue, TypingProvider } from '../../contexts/typingContext/TypingContext';
104
+ import { TypingProvider } from '../../contexts/typingContext/TypingContext';
104
105
  import {
105
106
  LOLReaction,
106
107
  LoveReaction,
@@ -112,6 +113,7 @@ import { FlatList as FlatListDefault } from '../../native';
112
113
  import { generateRandomId, ReactionData } from '../../utils/utils';
113
114
 
114
115
  import type { MessageType } from '../MessageList/hooks/useMessageList';
116
+ import type { UseChannelStateValue } from '../../contexts/channelsStateContext/useChannelState';
115
117
 
116
118
  import type {
117
119
  DefaultAttachmentType,
@@ -123,6 +125,11 @@ import type {
123
125
  DefaultUserType,
124
126
  UnknownType,
125
127
  } from '../../types/types';
128
+ import { useCreateOwnCapabilitiesContext } from './hooks/useCreateOwnCapabilitiesContext';
129
+ import {
130
+ OwnCapabilitiesContextValue,
131
+ OwnCapabilitiesProvider,
132
+ } from '../../contexts/ownCapabilitiesContext/OwnCapabilitiesContext';
126
133
 
127
134
  const styles = StyleSheet.create({
128
135
  selectChannel: { fontWeight: 'bold', padding: 16 },
@@ -182,22 +189,22 @@ export type ChannelPropsWithContext<
182
189
  Me extends UnknownType = DefaultMessageType,
183
190
  Re extends UnknownType = DefaultReactionType,
184
191
  Us extends UnknownType = DefaultUserType,
185
- > = Partial<
186
- Pick<
187
- ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>,
188
- | 'channel'
189
- | 'EmptyStateIndicator'
190
- | 'enableMessageGroupingByUser'
191
- | 'enforceUniqueReaction'
192
- | 'giphyEnabled'
193
- | 'hideStickyDateHeader'
194
- | 'hideDateSeparators'
195
- | 'LoadingIndicator'
196
- | 'maxTimeBetweenGroupedMessages'
197
- | 'NetworkDownIndicator'
198
- | 'StickyHeader'
199
- >
200
- > &
192
+ > = Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'channel'> &
193
+ Partial<
194
+ Pick<
195
+ ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>,
196
+ | 'EmptyStateIndicator'
197
+ | 'enableMessageGroupingByUser'
198
+ | 'enforceUniqueReaction'
199
+ | 'giphyEnabled'
200
+ | 'hideStickyDateHeader'
201
+ | 'hideDateSeparators'
202
+ | 'LoadingIndicator'
203
+ | 'maxTimeBetweenGroupedMessages'
204
+ | 'NetworkDownIndicator'
205
+ | 'StickyHeader'
206
+ >
207
+ > &
201
208
  Pick<ChatContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'client'> &
202
209
  Partial<
203
210
  Omit<
@@ -205,7 +212,12 @@ export type ChannelPropsWithContext<
205
212
  'quotedMessage' | 'editing' | 'clearEditingState' | 'clearQuotedMessageState' | 'sendMessage'
206
213
  >
207
214
  > &
208
- Partial<SuggestionsContextValue<Co, Us>> &
215
+ Partial<
216
+ Pick<
217
+ SuggestionsContextValue<Co, Us>,
218
+ 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem' | 'AutoCompleteSuggestionList'
219
+ >
220
+ > &
209
221
  Pick<TranslationContextValue, 't'> &
210
222
  Partial<
211
223
  Pick<
@@ -213,28 +225,24 @@ export type ChannelPropsWithContext<
213
225
  'messages' | 'loadingMore' | 'loadingMoreRecent'
214
226
  >
215
227
  > &
228
+ UseChannelStateValue<At, Ch, Co, Ev, Me, Re, Us> &
216
229
  Partial<
217
230
  Pick<
218
231
  MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
219
232
  | 'additionalTouchableProps'
220
- | 'animatedLongPress'
221
233
  | 'Attachment'
222
234
  | 'AttachmentActions'
223
- | 'blockUser'
224
235
  | 'Card'
225
236
  | 'CardCover'
226
237
  | 'CardFooter'
227
238
  | 'CardHeader'
228
- | 'copyMessage'
229
239
  | 'DateHeader'
230
- | 'deleteMessage'
240
+ | 'deletedMessagesVisibilityType'
231
241
  | 'disableTypingIndicator'
232
242
  | 'dismissKeyboardOnMessageTouch'
233
- | 'editMessage'
234
243
  | 'FileAttachment'
235
244
  | 'FileAttachmentIcon'
236
245
  | 'FileAttachmentGroup'
237
- | 'flagMessage'
238
246
  | 'FlatList'
239
247
  | 'forceAlignMessages'
240
248
  | 'formatDate'
@@ -246,6 +254,7 @@ export type ChannelPropsWithContext<
246
254
  | 'handleEdit'
247
255
  | 'handleFlag'
248
256
  | 'handleMute'
257
+ | 'handlePinMessage'
249
258
  | 'handleReaction'
250
259
  | 'handleQuotedReply'
251
260
  | 'handleRetry'
@@ -263,27 +272,23 @@ export type ChannelPropsWithContext<
263
272
  | 'MessageFooter'
264
273
  | 'MessageHeader'
265
274
  | 'MessageList'
275
+ | 'MessagePinnedHeader'
266
276
  | 'MessageReplies'
267
277
  | 'MessageRepliesAvatars'
268
278
  | 'MessageSimple'
269
279
  | 'MessageStatus'
270
280
  | 'MessageSystem'
271
281
  | 'MessageText'
272
- | 'muteUser'
273
282
  | 'myMessageTheme'
274
- | 'onDoubleTapMessage'
275
283
  | 'onLongPressMessage'
276
284
  | 'onPressInMessage'
277
285
  | 'onPressMessage'
278
286
  | 'OverlayReactionList'
279
- | 'quotedReply'
280
287
  | 'ReactionList'
281
288
  | 'Reply'
282
- | 'retry'
283
289
  | 'ScrollToBottomButton'
284
290
  | 'selectReaction'
285
291
  | 'supportedReactions'
286
- | 'threadReply'
287
292
  | 'TypingIndicator'
288
293
  | 'TypingIndicatorContainer'
289
294
  | 'UrlPreview'
@@ -292,6 +297,7 @@ export type ChannelPropsWithContext<
292
297
  Partial<
293
298
  Pick<ThreadContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'allowThreadMessagesInChannel' | 'thread'>
294
299
  > & {
300
+ shouldSyncChannel: boolean;
295
301
  /**
296
302
  * Additional props passed to keyboard avoiding view
297
303
  */
@@ -369,15 +375,13 @@ export type ChannelPropsWithContext<
369
375
  LoadingErrorIndicator?: React.ComponentType<LoadingErrorProps>;
370
376
  maxMessageLength?: number;
371
377
  messageId?: string;
372
- mutesEnabled?: boolean;
373
378
  newMessageStateUpdateThrottleInterval?: number;
374
- quotedRepliesEnabled?: boolean;
375
- reactionsEnabled?: boolean;
376
- readEventsEnabled?: boolean;
379
+ overrideOwnCapabilities?: OwnCapabilitiesContextValue;
377
380
  stateUpdateThrottleInterval?: number;
378
- threadRepliesEnabled?: boolean;
379
- typingEventsEnabled?: boolean;
380
- uploadsEnabled?: boolean;
381
+ /**
382
+ * Tells if channel is rendering a thread list
383
+ */
384
+ threadList?: boolean;
381
385
  };
382
386
 
383
387
  const ChannelWithContext = <
@@ -394,15 +398,16 @@ const ChannelWithContext = <
394
398
  const {
395
399
  additionalKeyboardAvoidingViewProps,
396
400
  additionalTextInputProps,
397
- animatedLongPress,
398
401
  additionalTouchableProps,
399
402
  allowThreadMessagesInChannel = true,
400
403
  AttachButton = AttachButtonDefault,
401
404
  Attachment = AttachmentDefault,
402
405
  AttachmentActions = AttachmentActionsDefault,
406
+ AutoCompleteSuggestionHeader = AutoCompleteSuggestionHeaderDefault,
407
+ AutoCompleteSuggestionItem = AutoCompleteSuggestionItemDefault,
408
+ AutoCompleteSuggestionList = AutoCompleteSuggestionListDefault,
403
409
  autoCompleteSuggestionsLimit,
404
410
  autoCompleteTriggerSettings,
405
- blockUser,
406
411
  Card = CardDefault,
407
412
  CardCover,
408
413
  CardFooter,
@@ -410,12 +415,11 @@ const ChannelWithContext = <
410
415
  channel,
411
416
  children,
412
417
  client,
413
- closeSuggestions,
414
418
  CommandsButton = CommandsButtonDefault,
415
419
  compressImageQuality,
416
- copyMessage,
420
+ CooldownTimer = CooldownTimerDefault,
417
421
  DateHeader = DateHeaderDefault,
418
- deleteMessage,
422
+ deletedMessagesVisibilityType = 'always',
419
423
  disableIfFrozenChannel = true,
420
424
  disableKeyboardCompatibleView = false,
421
425
  disableTypingIndicator,
@@ -425,15 +429,13 @@ const ChannelWithContext = <
425
429
  doMarkReadRequest,
426
430
  doSendMessageRequest,
427
431
  doUpdateMessageRequest,
428
- editMessage: editMessageProp,
429
432
  EmptyStateIndicator = EmptyStateIndicatorDefault,
430
433
  enableMessageGroupingByUser = true,
431
434
  enforceUniqueReaction = false,
432
435
  FileAttachment = FileAttachmentDefault,
433
- FileAttachmentIcon = FileIconDefault,
434
436
  FileAttachmentGroup = FileAttachmentGroupDefault,
437
+ FileAttachmentIcon = FileIconDefault,
435
438
  FileUploadPreview = FileUploadPreviewDefault,
436
- flagMessage,
437
439
  FlatList = FlatListDefault,
438
440
  forceAlignMessages,
439
441
  formatDate,
@@ -447,6 +449,7 @@ const ChannelWithContext = <
447
449
  handleEdit,
448
450
  handleFlag,
449
451
  handleMute,
452
+ handlePinMessage,
450
453
  handleQuotedReply,
451
454
  handleReaction,
452
455
  handleRetry,
@@ -466,19 +469,18 @@ const ChannelWithContext = <
466
469
  keyboardBehavior,
467
470
  KeyboardCompatibleView = KeyboardCompatibleViewDefault,
468
471
  keyboardVerticalOffset,
469
- // TODO[major]: switch to false.
470
- legacyImageViewerSwipeBehaviour = true,
472
+ legacyImageViewerSwipeBehaviour = false,
471
473
  LoadingErrorIndicator = LoadingErrorIndicatorDefault,
472
474
  LoadingIndicator = LoadingIndicatorDefault,
473
475
  loadingMore: loadingMoreProp,
474
476
  loadingMoreRecent: loadingMoreRecentProp,
475
477
  markdownRules,
476
- messageId,
477
478
  maxMessageLength: maxMessageLengthProp,
478
479
  maxNumberOfFiles = 10,
479
480
  maxTimeBetweenGroupedMessages,
480
481
  mentionAllAppUsersEnabled = false,
481
482
  mentionAllAppUsersQuery,
483
+ members,
482
484
  Message = MessageDefault,
483
485
  messageActions,
484
486
  MessageAvatar = MessageAvatarDefault,
@@ -487,55 +489,59 @@ const ChannelWithContext = <
487
489
  MessageDeleted = MessageDeletedDefault,
488
490
  MessageFooter = MessageFooterDefault,
489
491
  MessageHeader,
492
+ messageId,
490
493
  MessageList = MessageListDefault,
494
+ MessagePinnedHeader = MessagePinnedHeaderDefault,
491
495
  MessageReplies = MessageRepliesDefault,
492
496
  MessageRepliesAvatars = MessageRepliesAvatarsDefault,
493
- messages: messagesProp,
497
+ messages,
494
498
  MessageSimple = MessageSimpleDefault,
495
499
  MessageStatus = MessageStatusDefault,
496
500
  MessageSystem = MessageSystemDefault,
497
501
  MessageText,
498
502
  MoreOptionsButton = MoreOptionsButtonDefault,
499
- mutesEnabled: mutesEnabledProp,
500
- muteUser,
501
503
  myMessageTheme,
502
504
  newMessageStateUpdateThrottleInterval = defaultThrottleInterval,
503
505
  NetworkDownIndicator = NetworkDownIndicatorDefault,
504
506
  numberOfLines = 5,
505
507
  onChangeText,
506
- onDoubleTapMessage,
507
508
  onLongPressMessage,
508
- onPressMessage,
509
+ overrideOwnCapabilities,
509
510
  onPressInMessage,
510
- openSuggestions,
511
+ onPressMessage,
511
512
  OverlayReactionList = OverlayReactionListDefault,
512
- quotedRepliesEnabled: quotedRepliesEnabledProp,
513
- quotedReply,
514
513
  ReactionList = ReactionListDefault,
515
- reactionsEnabled: reactionsEnabledProp,
516
- readEventsEnabled: readEventsEnabledProp,
514
+ read,
517
515
  Reply = ReplyDefault,
518
- retry,
519
516
  ScrollToBottomButton = ScrollToBottomButtonDefault,
520
517
  selectReaction,
521
518
  SendButton = SendButtonDefault,
519
+ SendMessageDisallowedIndicator = SendMessageDisallowedIndicatorDefault,
522
520
  sendImageAsync = false,
523
521
  setInputRef,
522
+ setMembers,
523
+ setMessages,
524
+ setRead,
525
+ setThreadMessages,
526
+ setTyping,
527
+ setWatcherCount,
528
+ setWatchers,
529
+ shouldSyncChannel,
524
530
  ShowThreadMessageInChannelButton = ShowThreadMessageInChannelButtonDefault,
525
531
  stateUpdateThrottleInterval = defaultThrottleInterval,
526
532
  StickyHeader,
527
533
  supportedReactions = reactionData,
528
534
  t,
529
535
  thread: threadProps,
530
- threadRepliesEnabled: threadRepliesEnabledProp,
531
- threadReply,
532
- typingEventsEnabled: typingEventsEnabledProp,
536
+ threadList,
537
+ threadMessages,
538
+ typing,
533
539
  TypingIndicator = TypingIndicatorDefault,
534
540
  TypingIndicatorContainer = TypingIndicatorContainerDefault,
535
- updateSuggestions,
536
541
  UploadProgressIndicator = UploadProgressIndicatorDefault,
537
- uploadsEnabled: uploadsEnabledProp,
538
542
  UrlPreview = CardDefault,
543
+ watcherCount,
544
+ watchers,
539
545
  } = props;
540
546
 
541
547
  const {
@@ -546,48 +552,30 @@ const ChannelWithContext = <
546
552
  } = useTheme();
547
553
  const [deleted, setDeleted] = useState(false);
548
554
  const [editing, setEditing] = useState<boolean | MessageType<At, Ch, Co, Ev, Me, Re, Us>>(false);
549
- const [error, setError] = useState(false);
555
+ const [error, setError] = useState<Error | boolean>(false);
550
556
  const [hasMore, setHasMore] = useState(true);
551
557
  const [lastRead, setLastRead] =
552
558
  useState<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>['lastRead']>();
553
- const [loading, setLoading] = useState(true);
559
+ const [loading, setLoading] = useState(!channel?.state.messages.length);
554
560
  const [loadingMore, setLoadingMore] = useState(false);
555
561
 
556
562
  const [loadingMoreRecent, setLoadingMoreRecent] = useState(false);
557
- const [messages, setMessages] = useState<
558
- PaginatedMessageListContextValue<At, Ch, Co, Ev, Me, Re, Us>['messages']
559
- >([]);
560
-
561
- const [members, setMembers] = useState<
562
- ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>['members']
563
- >({});
564
563
  const [quotedMessage, setQuotedMessage] =
565
564
  useState<boolean | MessageType<At, Ch, Co, Ev, Me, Re, Us>>(false);
566
- const [read, setRead] = useState<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>['read']>({});
567
565
  const [thread, setThread] = useState<ThreadContextValue<At, Ch, Co, Ev, Me, Re, Us>['thread']>(
568
566
  threadProps || null,
569
567
  );
570
568
  const [threadHasMore, setThreadHasMore] = useState(true);
571
569
  const [threadLoadingMore, setThreadLoadingMore] = useState(false);
572
- const [threadMessages, setThreadMessages] = useState<
573
- ThreadContextValue<At, Ch, Co, Ev, Me, Re, Us>['threadMessages']
574
- >((threadProps?.id && channel?.state?.threads?.[threadProps.id]) || []);
575
- const [typing, setTyping] = useState<TypingContextValue<At, Ch, Co, Ev, Me, Re, Us>['typing']>(
576
- {},
577
- );
578
- const [watcherCount, setWatcherCount] =
579
- useState<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>['watcherCount']>();
580
- const [watchers, setWatchers] = useState<
581
- ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>['watchers']
582
- >({});
570
+
571
+ const [syncingChannel, setSyncingChannel] = useState(false);
583
572
 
584
573
  const { setTargetedMessage, targetedMessage } = useTargetedMessage(messageId);
585
574
 
586
575
  const channelId = channel?.id || '';
587
576
  useEffect(() => {
588
577
  const initChannel = () => {
589
- if (!channel) return;
590
-
578
+ if (!channel || !shouldSyncChannel) return;
591
579
  /**
592
580
  * Loading channel at first unread message requires channel to be initialized in the first place,
593
581
  * since we use read state on channel to decide what offset to load channel at.
@@ -627,7 +615,7 @@ const ChannelWithContext = <
627
615
 
628
616
  const threadPropsExists = !!threadProps;
629
617
  useEffect(() => {
630
- if (threadProps) {
618
+ if (threadProps && shouldSyncChannel) {
631
619
  setThread(threadProps);
632
620
  if (channel && threadProps?.id) {
633
621
  setThreadMessages(channel.state.threads?.[threadProps.id] || []);
@@ -740,7 +728,7 @@ const ChannelWithContext = <
740
728
  ).current;
741
729
 
742
730
  const connectionRecoveredHandler = () => {
743
- if (channel) {
731
+ if (channel && shouldSyncChannel) {
744
732
  copyChannelState();
745
733
  if (thread) {
746
734
  setThreadMessages([...channel.state.threads[thread.id]]);
@@ -749,31 +737,33 @@ const ChannelWithContext = <
749
737
  };
750
738
 
751
739
  const connectionChangedHandler = (event: ConnectionChangeEvent) => {
752
- if (event.online) {
740
+ if (event.online && shouldSyncChannel) {
753
741
  resyncChannel();
754
742
  }
755
743
  };
756
744
 
757
745
  const handleEvent: EventHandler<At, Ch, Co, Ev, Me, Re, Us> = (event) => {
758
- if (thread) {
759
- const updatedThreadMessages =
760
- (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
761
- setThreadMessages(updatedThreadMessages);
762
- }
746
+ if (shouldSyncChannel) {
747
+ if (thread) {
748
+ const updatedThreadMessages =
749
+ (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
750
+ setThreadMessages(updatedThreadMessages);
751
+ }
763
752
 
764
- if (channel && thread && event.message?.id === thread.id) {
765
- const updatedThread = channel.state.formatMessage(event.message);
766
- setThread(updatedThread);
767
- }
753
+ if (channel && thread && event.message?.id === thread.id) {
754
+ const updatedThread = channel.state.formatMessage(event.message);
755
+ setThread(updatedThread);
756
+ }
768
757
 
769
- if (event.type === 'typing.start' || event.type === 'typing.stop') {
770
- copyTypingState();
771
- } else if (event.type === 'message.read') {
772
- copyReadState();
773
- } else if (event.type === 'message.new') {
774
- copyMessagesState();
775
- } else if (channel) {
776
- copyChannelState();
758
+ if (event.type === 'typing.start' || event.type === 'typing.stop') {
759
+ copyTypingState();
760
+ } else if (event.type === 'message.read') {
761
+ copyReadState();
762
+ } else if (event.type === 'message.new') {
763
+ copyMessagesState();
764
+ } else if (channel) {
765
+ copyChannelState();
766
+ }
777
767
  }
778
768
  };
779
769
 
@@ -806,11 +796,12 @@ const ChannelWithContext = <
806
796
  clientSubscriptions.forEach((s) => s.unsubscribe());
807
797
  channelSubscriptions.forEach((s) => s.unsubscribe());
808
798
  };
809
- }, [channelId, connectionRecoveredHandler, handleEvent]);
799
+ }, [channelId, connectionChangedHandler, connectionRecoveredHandler, handleEvent]);
810
800
 
811
801
  const channelQueryCall = async (queryCall: () => void = () => null) => {
812
802
  setError(false);
813
- setLoading(true);
803
+ // Skips setting loading state when there are messages in the channel
804
+ setLoading(!channel?.state.messages.length);
814
805
 
815
806
  try {
816
807
  await queryCall();
@@ -818,7 +809,11 @@ const ChannelWithContext = <
818
809
  setHasMore(true);
819
810
  copyChannelState();
820
811
  } catch (err) {
821
- setError(err);
812
+ if (err instanceof Error) {
813
+ setError(err);
814
+ } else {
815
+ setError(true);
816
+ }
822
817
  setLoading(false);
823
818
  setLastRead(new Date());
824
819
  }
@@ -954,22 +949,33 @@ const ChannelWithContext = <
954
949
  const limit = 50;
955
950
  channel.state.threads[parentID] = [];
956
951
  const queryResponse = await channel.getReplies(parentID, {
957
- limit: 50,
952
+ limit,
958
953
  });
959
954
 
960
955
  const updatedHasMore = queryResponse.messages.length === limit;
961
956
  const updatedThreadMessages = channel.state.threads[parentID] || [];
962
957
  loadMoreThreadFinished(updatedHasMore, updatedThreadMessages);
958
+ const { messages } = await channel.getMessagesById([parentID]);
959
+ const [threadMessage] = messages;
960
+ if (threadMessage) {
961
+ const formattedMessage = channel.state.formatMessage(threadMessage);
962
+ setThread(formattedMessage);
963
+ }
963
964
  } catch (err) {
964
965
  console.warn('Thread loading request failed with error', err);
965
- setError(err);
966
+ if (err instanceof Error) {
967
+ setError(err);
968
+ } else {
969
+ setError(true);
970
+ }
966
971
  setThreadLoadingMore(false);
967
972
  throw err;
968
973
  }
969
974
  };
970
975
 
971
976
  const resyncChannel = async () => {
972
- if (!channel) return;
977
+ if (!channel || syncingChannel) return;
978
+ setSyncingChannel(true);
973
979
 
974
980
  setError(false);
975
981
  try {
@@ -1064,9 +1070,15 @@ const ChannelWithContext = <
1064
1070
  setThreadMessages([...channel.state.threads[thread.id]]);
1065
1071
  }
1066
1072
  } catch (err) {
1067
- setError(err);
1073
+ if (err instanceof Error) {
1074
+ setError(err);
1075
+ } else {
1076
+ setError(true);
1077
+ }
1068
1078
  setLoading(false);
1069
1079
  }
1080
+
1081
+ setSyncingChannel(false);
1070
1082
  };
1071
1083
 
1072
1084
  const reloadChannel = () =>
@@ -1185,24 +1197,6 @@ const ChannelWithContext = <
1185
1197
  */
1186
1198
  const clientChannelConfig = getChannelConfigSafely();
1187
1199
 
1188
- const messagesConfig: MessagesConfig = {
1189
- /**
1190
- * Replace with backend flag once its ready
1191
- */
1192
- mutesEnabled: mutesEnabledProp ?? clientChannelConfig?.mutes ?? true,
1193
- quotedRepliesEnabled: quotedRepliesEnabledProp ?? true,
1194
- reactionsEnabled: reactionsEnabledProp ?? clientChannelConfig?.reactions ?? true,
1195
- threadRepliesEnabled: threadRepliesEnabledProp ?? clientChannelConfig?.replies ?? true,
1196
- };
1197
- const channelConfig: ChannelConfig = {
1198
- readEventsEnabled: readEventsEnabledProp ?? clientChannelConfig?.read_events ?? true,
1199
- typingEventsEnabled: typingEventsEnabledProp ?? clientChannelConfig?.typing_events ?? true,
1200
- };
1201
- const inputConfig: InputConfig = {
1202
- maxMessageLength: maxMessageLengthProp ?? clientChannelConfig?.max_message_length ?? undefined,
1203
- uploadsEnabled: uploadsEnabledProp ?? clientChannelConfig?.uploads ?? true,
1204
- };
1205
-
1206
1200
  /**
1207
1201
  * MESSAGE METHODS
1208
1202
  */
@@ -1334,7 +1328,6 @@ const ChannelWithContext = <
1334
1328
  } else if (channel) {
1335
1329
  messageResponse = await channel.sendMessage(messageData);
1336
1330
  }
1337
-
1338
1331
  if (messageResponse.message) {
1339
1332
  messageResponse.message.status = 'received';
1340
1333
  if (retrying) {
@@ -1432,7 +1425,11 @@ const ChannelWithContext = <
1432
1425
  }
1433
1426
  } catch (err) {
1434
1427
  console.warn('Message pagination request failed with error', err);
1435
- setError(err);
1428
+ if (err instanceof Error) {
1429
+ setError(err);
1430
+ } else {
1431
+ setError(true);
1432
+ }
1436
1433
  setLoadingMore(false);
1437
1434
  throw err;
1438
1435
  }
@@ -1467,7 +1464,11 @@ const ChannelWithContext = <
1467
1464
  }
1468
1465
  } catch (err) {
1469
1466
  console.warn('Message pagination request failed with error', err);
1470
- setError(err);
1467
+ if (err instanceof Error) {
1468
+ setError(err);
1469
+ } else {
1470
+ setError(true);
1471
+ }
1471
1472
  setLoadingMoreRecent(false);
1472
1473
  throw err;
1473
1474
  }
@@ -1606,14 +1607,22 @@ const ChannelWithContext = <
1606
1607
  }
1607
1608
  } catch (err) {
1608
1609
  console.warn('Message pagination request failed with error', err);
1609
- setError(err);
1610
+ if (err instanceof Error) {
1611
+ setError(err);
1612
+ } else {
1613
+ setError(true);
1614
+ }
1610
1615
  setThreadLoadingMore(false);
1611
1616
  throw err;
1612
1617
  }
1613
1618
  };
1614
1619
 
1620
+ const ownCapabilitiesContext = useCreateOwnCapabilitiesContext({
1621
+ channel,
1622
+ overrideCapabilities: overrideOwnCapabilities,
1623
+ });
1624
+
1615
1625
  const channelContext = useCreateChannelContext({
1616
- ...channelConfig,
1617
1626
  channel,
1618
1627
  disabled: !!channel?.data?.frozen && disableIfFrozenChannel,
1619
1628
  EmptyStateIndicator,
@@ -1626,6 +1635,7 @@ const ChannelWithContext = <
1626
1635
  hideDateSeparators,
1627
1636
  hideStickyDateHeader,
1628
1637
  isAdmin,
1638
+ isChannelActive: shouldSyncChannel,
1629
1639
  isModerator,
1630
1640
  isOwner,
1631
1641
  lastRead,
@@ -1643,12 +1653,12 @@ const ChannelWithContext = <
1643
1653
  setTargetedMessage,
1644
1654
  StickyHeader,
1645
1655
  targetedMessage,
1656
+ threadList,
1646
1657
  watcherCount,
1647
1658
  watchers,
1648
1659
  });
1649
1660
 
1650
- const messageInputContext = useCreateInputMessageInputContext({
1651
- ...inputConfig,
1661
+ const inputMessageInputContext = useCreateInputMessageInputContext({
1652
1662
  additionalTextInputProps,
1653
1663
  AttachButton,
1654
1664
  autoCompleteSuggestionsLimit,
@@ -1658,6 +1668,7 @@ const ChannelWithContext = <
1658
1668
  clearQuotedMessageState,
1659
1669
  CommandsButton,
1660
1670
  compressImageQuality,
1671
+ CooldownTimer,
1661
1672
  doDocUploadRequest,
1662
1673
  doImageUploadRequest,
1663
1674
  editing,
@@ -1670,6 +1681,7 @@ const ChannelWithContext = <
1670
1681
  initialValue,
1671
1682
  Input,
1672
1683
  InputButtons,
1684
+ maxMessageLength: maxMessageLengthProp ?? clientChannelConfig?.max_message_length ?? undefined,
1673
1685
  maxNumberOfFiles,
1674
1686
  mentionAllAppUsersEnabled,
1675
1687
  mentionAllAppUsersQuery,
@@ -1680,6 +1692,7 @@ const ChannelWithContext = <
1680
1692
  SendButton,
1681
1693
  sendImageAsync,
1682
1694
  sendMessage,
1695
+ SendMessageDisallowedIndicator,
1683
1696
  setInputRef,
1684
1697
  setQuotedMessageState,
1685
1698
  ShowThreadMessageInChannelButton,
@@ -1694,34 +1707,28 @@ const ChannelWithContext = <
1694
1707
  loadingMoreRecentProp !== undefined ? loadingMoreRecentProp : loadingMoreRecent,
1695
1708
  loadMore,
1696
1709
  loadMoreRecent,
1697
- messages: messagesProp || messages,
1710
+ messages,
1698
1711
  setLoadingMore,
1699
1712
  setLoadingMoreRecent,
1700
1713
  });
1701
1714
 
1702
1715
  const messagesContext = useCreateMessagesContext({
1703
- ...messagesConfig,
1704
1716
  additionalTouchableProps,
1705
- animatedLongPress,
1706
1717
  Attachment,
1707
1718
  AttachmentActions,
1708
- blockUser,
1709
1719
  Card,
1710
1720
  CardCover,
1711
1721
  CardFooter,
1712
1722
  CardHeader,
1713
1723
  channelId,
1714
- copyMessage,
1715
1724
  DateHeader,
1716
- deleteMessage,
1725
+ deletedMessagesVisibilityType,
1717
1726
  disableTypingIndicator,
1718
1727
  dismissKeyboardOnMessageTouch,
1719
- editMessage: editMessageProp,
1720
1728
  enableMessageGroupingByUser,
1721
1729
  FileAttachment,
1722
1730
  FileAttachmentGroup,
1723
1731
  FileAttachmentIcon,
1724
- flagMessage,
1725
1732
  FlatList,
1726
1733
  forceAlignMessages,
1727
1734
  formatDate,
@@ -1733,6 +1740,7 @@ const ChannelWithContext = <
1733
1740
  handleEdit,
1734
1741
  handleFlag,
1735
1742
  handleMute,
1743
+ handlePinMessage,
1736
1744
  handleQuotedReply,
1737
1745
  handleReaction,
1738
1746
  handleRetry,
@@ -1751,41 +1759,38 @@ const ChannelWithContext = <
1751
1759
  MessageFooter,
1752
1760
  MessageHeader,
1753
1761
  MessageList,
1762
+ MessagePinnedHeader,
1754
1763
  MessageReplies,
1755
1764
  MessageRepliesAvatars,
1756
1765
  MessageSimple,
1757
1766
  MessageStatus,
1758
1767
  MessageSystem,
1759
1768
  MessageText,
1760
- muteUser,
1761
1769
  myMessageTheme,
1762
- onDoubleTapMessage,
1763
1770
  onLongPressMessage,
1764
1771
  onPressInMessage,
1765
1772
  onPressMessage,
1766
1773
  OverlayReactionList,
1767
- quotedReply,
1768
1774
  ReactionList,
1769
1775
  removeMessage,
1770
1776
  Reply,
1771
- retry,
1772
1777
  retrySendMessage,
1773
1778
  ScrollToBottomButton,
1774
1779
  selectReaction,
1775
1780
  setEditingState,
1776
1781
  setQuotedMessageState,
1777
1782
  supportedReactions,
1778
- threadReply,
1783
+ targetedMessage,
1779
1784
  TypingIndicator,
1780
1785
  TypingIndicatorContainer,
1781
1786
  updateMessage,
1782
1787
  UrlPreview,
1783
1788
  });
1784
1789
 
1785
- const suggestionsContext: Partial<SuggestionsContextValue<Co, Us>> = {
1786
- closeSuggestions,
1787
- openSuggestions,
1788
- updateSuggestions,
1790
+ const suggestionsContext = {
1791
+ AutoCompleteSuggestionHeader,
1792
+ AutoCompleteSuggestionItem,
1793
+ AutoCompleteSuggestionList,
1789
1794
  };
1790
1795
 
1791
1796
  const threadContext = useCreateThreadContext({
@@ -1828,19 +1833,23 @@ const ChannelWithContext = <
1828
1833
  {...additionalKeyboardAvoidingViewProps}
1829
1834
  >
1830
1835
  <ChannelProvider<At, Ch, Co, Ev, Me, Re, Us> value={channelContext}>
1831
- <TypingProvider<At, Ch, Co, Ev, Me, Re, Us> value={typingContext}>
1832
- <PaginatedMessageListProvider<At, Ch, Co, Ev, Me, Re, Us> value={messageListContext}>
1833
- <MessagesProvider<At, Ch, Co, Ev, Me, Re, Us> value={messagesContext}>
1834
- <ThreadProvider<At, Ch, Co, Ev, Me, Re, Us> value={threadContext}>
1835
- <SuggestionsProvider<Co, Us> value={suggestionsContext}>
1836
- <MessageInputProvider<At, Ch, Co, Ev, Me, Re, Us> value={messageInputContext}>
1837
- <View style={{ height: '100%' }}>{children}</View>
1838
- </MessageInputProvider>
1839
- </SuggestionsProvider>
1840
- </ThreadProvider>
1841
- </MessagesProvider>
1842
- </PaginatedMessageListProvider>
1843
- </TypingProvider>
1836
+ <OwnCapabilitiesProvider value={ownCapabilitiesContext}>
1837
+ <TypingProvider<At, Ch, Co, Ev, Me, Re, Us> value={typingContext}>
1838
+ <PaginatedMessageListProvider<At, Ch, Co, Ev, Me, Re, Us> value={messageListContext}>
1839
+ <MessagesProvider<At, Ch, Co, Ev, Me, Re, Us> value={messagesContext}>
1840
+ <ThreadProvider<At, Ch, Co, Ev, Me, Re, Us> value={threadContext}>
1841
+ <SuggestionsProvider<Co, Us> value={suggestionsContext}>
1842
+ <MessageInputProvider<At, Ch, Co, Ev, Me, Re, Us>
1843
+ value={inputMessageInputContext}
1844
+ >
1845
+ <View style={{ height: '100%' }}>{children}</View>
1846
+ </MessageInputProvider>
1847
+ </SuggestionsProvider>
1848
+ </ThreadProvider>
1849
+ </MessagesProvider>
1850
+ </PaginatedMessageListProvider>
1851
+ </TypingProvider>
1852
+ </OwnCapabilitiesProvider>
1844
1853
  </ChannelProvider>
1845
1854
  </KeyboardCompatibleView>
1846
1855
  );
@@ -1854,7 +1863,8 @@ export type ChannelProps<
1854
1863
  Me extends UnknownType = DefaultMessageType,
1855
1864
  Re extends UnknownType = DefaultReactionType,
1856
1865
  Us extends UnknownType = DefaultUserType,
1857
- > = Partial<ChannelPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;
1866
+ > = Partial<Omit<ChannelPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'channel'>> &
1867
+ Pick<ChannelPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'channel'>;
1858
1868
 
1859
1869
  /**
1860
1870
  *
@@ -1878,6 +1888,28 @@ export const Channel = <
1878
1888
  const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();
1879
1889
  const { t } = useTranslationContext();
1880
1890
 
1891
+ const shouldSyncChannel = props.thread?.id ? !!props.threadList : true;
1892
+
1893
+ const {
1894
+ members,
1895
+ messages,
1896
+ read,
1897
+ setMembers,
1898
+ setMessages,
1899
+ setRead,
1900
+ setThreadMessages,
1901
+ setTyping,
1902
+ setWatcherCount,
1903
+ setWatchers,
1904
+ threadMessages,
1905
+ typing,
1906
+ watcherCount,
1907
+ watchers,
1908
+ } = useChannelState<At, Ch, Co, Ev, Me, Re, Us>(
1909
+ props.channel,
1910
+ props.threadList ? props.thread?.id : undefined,
1911
+ );
1912
+
1881
1913
  return (
1882
1914
  <ChannelWithContext<At, Ch, Co, Ev, Me, Re, Us>
1883
1915
  {...{
@@ -1885,6 +1917,23 @@ export const Channel = <
1885
1917
  t,
1886
1918
  }}
1887
1919
  {...props}
1920
+ shouldSyncChannel={shouldSyncChannel}
1921
+ {...{
1922
+ members,
1923
+ messages: props.messages || messages,
1924
+ read,
1925
+ setMembers,
1926
+ setMessages,
1927
+ setRead,
1928
+ setThreadMessages,
1929
+ setTyping,
1930
+ setWatcherCount,
1931
+ setWatchers,
1932
+ threadMessages,
1933
+ typing,
1934
+ watcherCount,
1935
+ watchers,
1936
+ }}
1888
1937
  />
1889
1938
  );
1890
1939
  };