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
@@ -7,7 +7,7 @@ import type { TouchableOpacityProps } from 'react-native';
7
7
  import type { ChannelState, MessageResponse } from 'stream-chat';
8
8
 
9
9
  import type { Alignment } from '../messageContext/MessageContext';
10
- import type { MessageAction } from '../messageOverlayContext/MessageOverlayContext';
10
+ import type { MessageActionType } from '../../components/MessageOverlay/MessageActionListItem';
11
11
  import type { SuggestionCommand } from '../suggestionsContext/SuggestionsContext';
12
12
  import type { DeepPartial } from '../themeContext/ThemeContext';
13
13
  import type { Theme } from '../themeContext/utils/theme';
@@ -29,12 +29,14 @@ import type { MessageAvatarProps } from '../../components/Message/MessageSimple/
29
29
  import type { MessageContentProps } from '../../components/Message/MessageSimple/MessageContent';
30
30
  import type { MessageDeletedProps } from '../../components/Message/MessageSimple/MessageDeleted';
31
31
  import type { MessageFooterProps } from '../../components/Message/MessageSimple/MessageFooter';
32
+ import type { MessagePinnedHeaderProps } from 'src/components/Message/MessageSimple/MessagePinnedHeader';
32
33
  import type { MessageRepliesProps } from '../../components/Message/MessageSimple/MessageReplies';
33
34
  import type { MessageRepliesAvatarsProps } from '../../components/Message/MessageSimple/MessageRepliesAvatars';
34
35
  import type { MessageStatusProps } from '../../components/Message/MessageSimple/MessageStatus';
35
36
  import type { MessageSimpleProps } from '../../components/Message/MessageSimple/MessageSimple';
36
37
  import type { MessageTextProps } from '../../components/Message/MessageSimple/MessageTextContainer';
37
38
  import type { MarkdownRules } from '../../components/Message/MessageSimple/utils/renderText';
39
+ import type { MessageActionsParams } from '../../components/Message/utils/messageActions';
38
40
  import type { DateHeaderProps } from '../../components/MessageList/DateHeader';
39
41
  import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
40
42
  import type { InlineDateSeparatorProps } from '../../components/MessageList/InlineDateSeparator';
@@ -57,13 +59,6 @@ import type {
57
59
  } from '../../types/types';
58
60
  import type { ReactionData } from '../../utils/utils';
59
61
 
60
- export type MessagesConfig = {
61
- mutesEnabled?: boolean;
62
- quotedRepliesEnabled?: boolean;
63
- reactionsEnabled?: boolean;
64
- threadRepliesEnabled?: boolean;
65
- };
66
-
67
62
  export type MessageContentType = 'attachments' | 'files' | 'gallery' | 'quoted_reply' | 'text';
68
63
 
69
64
  export type MessagesContextValue<
@@ -74,7 +69,7 @@ export type MessagesContextValue<
74
69
  Me extends UnknownType = DefaultMessageType,
75
70
  Re extends UnknownType = DefaultReactionType,
76
71
  Us extends UnknownType = DefaultUserType,
77
- > = MessagesConfig & {
72
+ > = {
78
73
  /**
79
74
  * UI component for Attachment.
80
75
  * Defaults to: [Attachment](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Attachment/Attachment.tsx)
@@ -95,9 +90,12 @@ export type MessagesContextValue<
95
90
  * Defaults to: [DateHeader](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/MessageList/DateHeader.tsx)
96
91
  **/
97
92
  DateHeader: React.ComponentType<DateHeaderProps>;
93
+
98
94
  /** Should keyboard be dismissed when messaged is touched */
99
95
  dismissKeyboardOnMessageTouch: boolean;
96
+
100
97
  enableMessageGroupingByUser: boolean;
98
+
101
99
  /**
102
100
  * UI component to display File type attachment.
103
101
  * Defaults to: [FileAttachment](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Attachment/FileAttachment.tsx)
@@ -124,6 +122,7 @@ export type MessagesContextValue<
124
122
  * Defaults to: [Giphy](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/Attachment/Giphy.tsx)
125
123
  */
126
124
  Giphy: React.ComponentType<GiphyProps<At, Ch, Co, Ev, Me, Re, Us>>;
125
+
127
126
  /**
128
127
  * When true, messageList will be scrolled at first unread message, when opened.
129
128
  */
@@ -161,10 +160,15 @@ export type MessagesContextValue<
161
160
  */
162
161
  MessageFooter: React.ComponentType<MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>>;
163
162
  MessageList: React.ComponentType<MessageListProps<At, Ch, Co, Ev, Me, Re, Us>>;
163
+ /**
164
+ * Custom message pinned component
165
+ */
166
+ MessagePinnedHeader: React.ComponentType<MessagePinnedHeaderProps<At, Ch, Co, Ev, Me, Re, Us>>;
164
167
  /**
165
168
  * UI component for MessageReplies
166
169
  * Defaults to: [MessageReplies](https://github.com/GetStream/stream-chat-react-native/blob/master/src/components/MessageSimple/MessageReplies.tsx)
167
170
  */
171
+
168
172
  MessageReplies: React.ComponentType<MessageRepliesProps<At, Ch, Co, Ev, Me, Re, Us>>;
169
173
  /**
170
174
  * UI Component for MessageRepliesAvatars
@@ -245,16 +249,6 @@ export type MessagesContextValue<
245
249
  * @overrideType Object
246
250
  */
247
251
  additionalTouchableProps?: Omit<TouchableOpacityProps, 'style'>;
248
- /**
249
- * When false, pop-out animation will be disabled for message bubble, onLongPress
250
- */
251
- animatedLongPress?: boolean;
252
- /**
253
- * Full override of the block user button in the Message Actions
254
- *
255
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
256
- */
257
- blockUser?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
258
252
  /**
259
253
  * Custom UI component to override default cover (between Header and Footer) of Card component.
260
254
  * Accepts the same props as Card component.
@@ -270,31 +264,18 @@ export type MessagesContextValue<
270
264
  * Accepts the same props as Card component.
271
265
  */
272
266
  CardHeader?: React.ComponentType<CardProps<At, Ch, Co, Ev, Me, Re, Us>>;
273
- /**
274
- * Full override of the copy message button in the Message Actions
275
- *
276
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
277
- */
278
- copyMessage?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
267
+
279
268
  /**
280
269
  * Full override of the delete message button in the Message Actions
281
270
  *
282
271
  * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
283
272
  */
284
- deleteMessage?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
273
+
274
+ /** Control if the deleted message is visible to both the send and reciever, either of them or none */
275
+ deletedMessagesVisibilityType?: 'always' | 'never' | 'receiver' | 'sender';
276
+
285
277
  disableTypingIndicator?: boolean;
286
- /**
287
- * Full override of the edit message button in the Message Actions
288
- *
289
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
290
- */
291
- editMessage?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
292
- /**
293
- * Full override of the flag message button in the Message Actions
294
- *
295
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
296
- */
297
- flagMessage?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
278
+
298
279
  /**
299
280
  * Whether messages should be aligned to right or left part of screen.
300
281
  * By default, messages will be received messages will be aligned to left and
@@ -316,6 +297,10 @@ export type MessagesContextValue<
316
297
  handleFlag?: (message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => Promise<void>;
317
298
  /** Handler to access when a mute user action is invoked */
318
299
  handleMute?: (message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => Promise<void>;
300
+ /** Handler to access when a pin/unpin user action is invoked*/
301
+ handlePinMessage?:
302
+ | ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageActionType)
303
+ | null;
319
304
  /** Handler to access when a quoted reply action is invoked */
320
305
  handleQuotedReply?: (message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => Promise<void>;
321
306
  /** Handler to process a reaction */
@@ -380,89 +365,18 @@ export type MessagesContextValue<
380
365
  *
381
366
  * @overrideType Function | Array<Objects>
382
367
  */
383
- messageActions?:
384
- | (MessageAction | null)[]
385
- | (({
386
- blockUser,
387
- canModifyMessage,
388
- copyMessage,
389
- deleteMessage,
390
- dismissOverlay,
391
- editMessage,
392
- error,
393
- flagMessage,
394
- isMyMessage,
395
- isThreadMessage,
396
- message,
397
- messageReactions,
398
- muteUser,
399
- quotedRepliesEnabled,
400
- quotedReply,
401
- retry,
402
- threadRepliesEnabled,
403
- threadReply,
404
- }: {
405
- blockUser: MessageAction | null;
406
- canModifyMessage: boolean;
407
- copyMessage: MessageAction | null;
408
- deleteMessage: MessageAction | null;
409
- dismissOverlay: () => void;
410
- editMessage: MessageAction | null;
411
- error: boolean;
412
- flagMessage: MessageAction | null;
413
- isMyMessage: boolean;
414
- isThreadMessage: boolean;
415
- message: MessageType<At, Ch, Co, Ev, Me, Re, Us>;
416
- messageReactions: boolean;
417
- muteUser: MessageAction | null;
418
- quotedReply: MessageAction | null;
419
- retry: MessageAction | null;
420
- threadReply: MessageAction | null;
421
- quotedRepliesEnabled?: boolean;
422
- threadRepliesEnabled?: boolean;
423
- }) => (MessageAction | null)[] | undefined);
368
+ messageActions?: (param: MessageActionsParams<At, Ch, Co, Ev, Me, Re, Us>) => MessageActionType[];
424
369
  /**
425
370
  * Custom message header component
426
371
  */
427
372
  MessageHeader?: React.ComponentType<MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>>;
428
373
  /** Custom UI component for message text */
429
374
  MessageText?: React.ComponentType<MessageTextProps<At, Ch, Co, Ev, Me, Re, Us>>;
430
- /**
431
- * Full override of the mute user button in the Message Actions
432
- *
433
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
434
- * */
435
- muteUser?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
375
+
436
376
  /**
437
377
  * Theme provided only to messages that are the current users
438
378
  */
439
379
  myMessageTheme?: DeepPartial<Theme>;
440
- /**
441
- * Add double tap handler for message.
442
- *
443
- * ```
444
- * <Channel
445
- * onDoubleTapMessage={({
446
- * actionHandlers: {
447
- * deleteMessage, // () => Promise<void>;
448
- * editMessage, // () => void;
449
- * quotedReply, // () => void;
450
- * resendMessage, // () => Promise<void>;
451
- * showMessageOverlay, // () => void;
452
- * toggleBanUser, // () => Promise<void>;
453
- * toggleMuteUser, // () => Promise<void>;
454
- * toggleReaction, // (reactionType: string) => Promise<void>;
455
- * },
456
- * message // message object on which longPress occured
457
- * }) => {
458
- * // Your custom action
459
- * }}
460
- * />
461
- * ```
462
- */
463
- onDoubleTapMessage?: (
464
- payload: MessageTouchableHandlerPayload<At, Ch, Co, Ev, Me, Re, Us>,
465
- ) => void;
466
380
  /**
467
381
  * Override default handler for onLongPress on message. You have access to payload of that handler as param:
468
382
  *
@@ -546,18 +460,7 @@ export type MessagesContextValue<
546
460
  * ```
547
461
  */
548
462
  onPressMessage?: (payload: MessageTouchableHandlerPayload<At, Ch, Co, Ev, Me, Re, Us>) => void;
549
- /**
550
- * Full override of the quoted reply button in the Message Actions
551
- *
552
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
553
- */
554
- quotedReply?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
555
- /**
556
- * Full override of the resend button in the Message Actions
557
- *
558
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
559
- * */
560
- retry?: ((message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction) | null;
463
+
561
464
  /**
562
465
  * Full override of the reaction function on Message and Message Overlay
563
466
  *
@@ -566,12 +469,8 @@ export type MessagesContextValue<
566
469
  selectReaction?: (
567
470
  message: MessageType<At, Ch, Co, Ev, Me, Re, Us>,
568
471
  ) => (reactionType: string) => Promise<void>;
569
- /**
570
- * Full override of the thread reply button in the Message Actions
571
- *
572
- * Please check [cookbook](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#override-or-intercept-message-actions-edit-delete-reaction-reply-etc) for details.
573
- * */
574
- threadReply?: (message: MessageType<At, Ch, Co, Ev, Me, Re, Us>) => MessageAction;
472
+
473
+ targetedMessage?: string;
575
474
  };
576
475
 
577
476
  export const MessagesContext = React.createContext({} as MessagesContextValue);
@@ -1,4 +1,5 @@
1
1
  import React, { useContext } from 'react';
2
+ import type Animated from 'react-native-reanimated';
2
3
 
3
4
  import { getDisplayName } from '../utils/getDisplayName';
4
5
 
@@ -11,6 +12,7 @@ import type { Theme } from '../themeContext/utils/theme';
11
12
 
12
13
  import type { AttachmentPickerProps } from '../../components/AttachmentPicker/AttachmentPicker';
13
14
  import type { ImageGalleryCustomComponents } from '../../components/ImageGallery/ImageGallery';
15
+ import type { MessageType } from '../../components/MessageList/hooks/useMessageList';
14
16
  import type {
15
17
  DefaultAttachmentType,
16
18
  DefaultChannelType,
@@ -23,13 +25,10 @@ import type {
23
25
  } from '../../types/types';
24
26
  import type { Streami18n } from '../../utils/Streami18n';
25
27
 
26
- export type BlurType = 'light' | 'dark' | undefined;
27
-
28
28
  export type Overlay = 'alert' | 'gallery' | 'message' | 'none';
29
29
 
30
30
  export type OverlayContextValue = {
31
31
  overlay: Overlay;
32
- setBlurType: React.Dispatch<React.SetStateAction<BlurType>>;
33
32
  setOverlay: React.Dispatch<React.SetStateAction<Overlay>>;
34
33
  style?: DeepPartial<Theme>;
35
34
  translucentStatusBar?: boolean;
@@ -62,15 +61,22 @@ export type OverlayProviderProps<
62
61
  Partial<
63
62
  Pick<
64
63
  MessageOverlayContextValue<At, Ch, Co, Ev, Me, Re, Us>,
65
- 'MessageActions' | 'OverlayReactionList' | 'OverlayReactions'
64
+ 'MessageActionList' | 'MessageActionListItem' | 'OverlayReactionList' | 'OverlayReactions'
66
65
  >
67
66
  > &
68
67
  Pick<OverlayContextValue, 'translucentStatusBar'> & {
68
+ overlayOpacity: Animated.SharedValue<number>;
69
69
  closePicker?: (ref: React.RefObject<BottomSheetMethods>) => void;
70
+ error?: boolean | Error;
70
71
  /** https://github.com/GetStream/stream-chat-react-native/wiki/Internationalization-(i18n) */
71
72
  i18nInstance?: Streami18n;
72
73
  imageGalleryGridHandleHeight?: number;
73
74
  imageGalleryGridSnapPoints?: [string | number, string | number];
75
+ isMyMessage?: boolean;
76
+ isThreadMessage?: boolean;
77
+ message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;
78
+ messageReactions?: boolean;
79
+ messageTextNumberOfLines?: number;
74
80
  numberOfImageGalleryGridColumns?: number;
75
81
  openPicker?: (ref: React.RefObject<BottomSheetMethods>) => void;
76
82
  value?: Partial<OverlayContextValue>;
@@ -22,17 +22,18 @@ import { AttachmentPickerError as DefaultAttachmentPickerError } from '../../com
22
22
  import { AttachmentPickerBottomSheetHandle as DefaultAttachmentPickerBottomSheetHandle } from '../../components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle';
23
23
  import { AttachmentPickerErrorImage as DefaultAttachmentPickerErrorImage } from '../../components/AttachmentPicker/components/AttachmentPickerErrorImage';
24
24
  import { CameraSelectorIcon as DefaultCameraSelectorIcon } from '../../components/AttachmentPicker/components/CameraSelectorIcon';
25
+ import { ChannelsStateProvider } from '../../contexts/channelsStateContext/ChannelsStateContext';
25
26
  import { FileSelectorIcon as DefaultFileSelectorIcon } from '../../components/AttachmentPicker/components/FileSelectorIcon';
26
27
  import { ImageOverlaySelectedComponent as DefaultImageOverlaySelectedComponent } from '../../components/AttachmentPicker/components/ImageOverlaySelectedComponent';
27
28
  import { ImageSelectorIcon as DefaultImageSelectorIcon } from '../../components/AttachmentPicker/components/ImageSelectorIcon';
28
29
  import { ImageGallery } from '../../components/ImageGallery/ImageGallery';
29
30
  import { MessageOverlay } from '../../components/MessageOverlay/MessageOverlay';
31
+ import { OverlayBackdrop } from '../../components/MessageOverlay/OverlayBackdrop';
30
32
  import { useStreami18n } from '../../hooks/useStreami18n';
31
- import { BlurView } from '../../native';
32
33
 
33
34
  import type BottomSheet from '@gorhom/bottom-sheet';
34
35
 
35
- import { BlurType, OverlayContext, OverlayProviderProps } from './OverlayContext';
36
+ import { OverlayContext, OverlayProviderProps } from './OverlayContext';
36
37
 
37
38
  import type {
38
39
  DefaultAttachmentType,
@@ -100,12 +101,14 @@ export const OverlayProvider = <
100
101
  imageGalleryGridSnapPoints,
101
102
  ImageOverlaySelectedComponent = DefaultImageOverlaySelectedComponent,
102
103
  ImageSelectorIcon = DefaultImageSelectorIcon,
103
- MessageActions,
104
+ MessageActionList,
105
+ MessageActionListItem,
106
+ messageTextNumberOfLines,
104
107
  numberOfAttachmentImagesToLoadPerCall,
105
108
  numberOfAttachmentPickerImageColumns,
106
109
  numberOfImageGalleryGridColumns,
107
110
  openPicker = (ref) => {
108
- if (ref.current) {
111
+ if (ref.current?.snapTo) {
109
112
  ref.current.snapTo(0);
110
113
  } else {
111
114
  console.warn('bottom and top insets must be set for the image picker to work correctly');
@@ -139,7 +142,6 @@ export const OverlayProvider = <
139
142
  t: (key: string) => key,
140
143
  tDateTimeParser: (input?: string | number | Date) => Dayjs(input),
141
144
  });
142
- const [blurType, setBlurType] = useState<BlurType>();
143
145
  const [overlay, setOverlay] = useState(value?.overlay || 'none');
144
146
 
145
147
  const overlayOpacity = useSharedValue(0);
@@ -151,7 +153,6 @@ export const OverlayProvider = <
151
153
  useEffect(() => {
152
154
  const backAction = () => {
153
155
  if (overlay !== 'none') {
154
- setBlurType(undefined);
155
156
  setOverlay('none');
156
157
  return true;
157
158
  }
@@ -166,7 +167,7 @@ export const OverlayProvider = <
166
167
 
167
168
  useEffect(() => {
168
169
  if (bottomSheetRef.current) {
169
- bottomSheetRef.current.close();
170
+ bottomSheetRef.current.close?.();
170
171
  }
171
172
  cancelAnimation(overlayOpacity);
172
173
  if (overlay !== 'none') {
@@ -200,7 +201,6 @@ export const OverlayProvider = <
200
201
 
201
202
  const overlayContext = {
202
203
  overlay,
203
- setBlurType,
204
204
  setOverlay,
205
205
  style: value?.style,
206
206
  translucentStatusBar,
@@ -214,24 +214,25 @@ export const OverlayProvider = <
214
214
  <MessageOverlayProvider<At, Ch, Co, Ev, Me, Re, Us>>
215
215
  <AttachmentPickerProvider value={attachmentPickerContext}>
216
216
  <ImageGalleryProvider>
217
- {children}
217
+ <ChannelsStateProvider<At, Ch, Co, Ev, Me, Re, Us>>{children}</ChannelsStateProvider>
218
218
  <ThemeProvider style={overlayContext.style}>
219
219
  <Animated.View
220
220
  pointerEvents={overlay === 'none' ? 'none' : 'auto'}
221
221
  style={[StyleSheet.absoluteFill, overlayStyle]}
222
222
  >
223
- <BlurView
224
- blurType={blurType}
225
- style={[StyleSheet.absoluteFill, { height, width }]}
226
- />
223
+ <OverlayBackdrop style={[StyleSheet.absoluteFill, { height, width }]} />
227
224
  </Animated.View>
228
- <MessageOverlay<At, Ch, Co, Ev, Me, Re, Us>
229
- MessageActions={MessageActions}
230
- overlayOpacity={overlayOpacity}
231
- OverlayReactionList={OverlayReactionList}
232
- OverlayReactions={OverlayReactions}
233
- visible={overlay === 'message'}
234
- />
225
+ {overlay === 'message' && (
226
+ <MessageOverlay<At, Ch, Co, Ev, Me, Re, Us>
227
+ MessageActionList={MessageActionList}
228
+ MessageActionListItem={MessageActionListItem}
229
+ messageTextNumberOfLines={messageTextNumberOfLines}
230
+ overlayOpacity={overlayOpacity}
231
+ OverlayReactionList={OverlayReactionList}
232
+ OverlayReactions={OverlayReactions}
233
+ visible={overlay === 'message'}
234
+ />
235
+ )}
235
236
  <ImageGallery<At, Ch, Co, Ev, Me, Re, Us>
236
237
  imageGalleryCustomComponents={imageGalleryCustomComponents}
237
238
  imageGalleryGridHandleHeight={imageGalleryGridHandleHeight}
@@ -0,0 +1,38 @@
1
+ import React, { PropsWithChildren, useContext } from 'react';
2
+
3
+ export const allOwnCapabilities = {
4
+ banChannelMembers: 'ban-channel-members',
5
+ deleteAnyMessage: 'delete-any-message',
6
+ deleteOwnMessage: 'delete-own-message',
7
+ flagMessage: 'flag-message',
8
+ pinMessage: 'pin-message',
9
+ quoteMessage: 'quote-message',
10
+ readEvents: 'read-events',
11
+ sendLinks: 'send-links',
12
+ sendMessage: 'send-message',
13
+ sendReaction: 'send-reaction',
14
+ sendReply: 'send-reply',
15
+ sendTypingEvents: 'send-typing-events',
16
+ updateAnyMessage: 'update-any-message',
17
+ updateOwnMessage: 'update-own-message',
18
+ uploadFile: 'upload-file',
19
+ };
20
+
21
+ export type OwnCapability = keyof typeof allOwnCapabilities;
22
+
23
+ export type OwnCapabilitiesContextValue = Record<OwnCapability, boolean>;
24
+ export const OwnCapabilitiesContext = React.createContext({} as OwnCapabilitiesContextValue);
25
+
26
+ export const OwnCapabilitiesProvider = ({
27
+ children,
28
+ value,
29
+ }: PropsWithChildren<{
30
+ value: OwnCapabilitiesContextValue;
31
+ }>) => (
32
+ <OwnCapabilitiesContext.Provider value={value as unknown as OwnCapabilitiesContextValue}>
33
+ {children}
34
+ </OwnCapabilitiesContext.Provider>
35
+ );
36
+
37
+ export const useOwnCapabilitiesContext = () =>
38
+ useContext(OwnCapabilitiesContext) as unknown as OwnCapabilitiesContextValue;
@@ -1,16 +1,14 @@
1
1
  import React, { PropsWithChildren, useContext, useState } from 'react';
2
-
3
- import { getDisplayName } from '../utils/getDisplayName';
4
-
5
2
  import type { CommandResponse, UserResponse } from 'stream-chat';
6
3
 
7
- import type { Emoji } from '../../emoji-data/compiled';
4
+ import { getDisplayName } from '../utils/getDisplayName';
5
+ import type { AutoCompleteSuggestionHeaderProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionHeader';
6
+ import type { AutoCompleteSuggestionListProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionList';
7
+ import type { AutoCompleteSuggestionItemProps } from '../../components/AutoCompleteInput/AutoCompleteSuggestionItem';
8
8
  import type { DefaultCommandType, DefaultUserType, UnknownType } from '../../types/types';
9
+ import type { Emoji } from '../../emoji-data/compiled';
9
10
 
10
- export type SuggestionComponentType<
11
- Co extends string = DefaultCommandType,
12
- Us extends UnknownType = DefaultUserType,
13
- > = string | React.ReactElement<{ item: Suggestion<Co, Us> }>;
11
+ export type SuggestionComponentType = 'command' | 'emoji' | 'mention';
14
12
 
15
13
  export const isSuggestionCommand = <
16
14
  Co extends string = DefaultCommandType,
@@ -36,10 +34,9 @@ export const isSuggestionUser = <
36
34
  export type Suggestion<
37
35
  Co extends string = DefaultCommandType,
38
36
  Us extends UnknownType = DefaultUserType,
39
- > = SuggestionCommand<Co> | SuggestionUser<Us> | Emoji;
37
+ > = Emoji | SuggestionCommand<Co> | SuggestionUser<Us>;
40
38
 
41
39
  export type SuggestionCommand<Co extends string = DefaultCommandType> = CommandResponse<Co>;
42
-
43
40
  export type SuggestionUser<Us extends UnknownType = DefaultUserType> = UserResponse<Us>;
44
41
 
45
42
  export type Suggestions<
@@ -48,41 +45,35 @@ export type Suggestions<
48
45
  > = {
49
46
  data: Suggestion<Co, Us>[];
50
47
  onSelect: (item: Suggestion<Co, Us>) => void;
48
+ queryText?: string;
51
49
  };
52
50
 
53
51
  export type SuggestionsContextValue<
54
52
  Co extends string = DefaultCommandType,
55
53
  Us extends UnknownType = DefaultUserType,
56
54
  > = {
55
+ AutoCompleteSuggestionHeader: React.ComponentType<AutoCompleteSuggestionHeaderProps>;
56
+ AutoCompleteSuggestionItem: React.ComponentType<AutoCompleteSuggestionItemProps<Co, Us>>;
57
+ AutoCompleteSuggestionList: React.ComponentType<AutoCompleteSuggestionListProps<Co, Us>>;
57
58
  /** Override handler for closing suggestions (mentions, command autocomplete etc) */
58
59
  closeSuggestions: () => void;
59
60
  /**
60
61
  * Override handler for opening suggestions (mentions, command autocomplete etc)
61
62
  *
62
63
  * @param component {Component|element} UI Component for suggestion item.
63
- * @param title {string} Title for suggestions box
64
- *
65
64
  * @overrideType Function
66
65
  */
67
- openSuggestions: (
68
- component: SuggestionComponentType<Co, Us>,
69
- title?: React.ReactElement,
70
- ) => Promise<void>;
66
+ openSuggestions: (component: SuggestionComponentType) => Promise<void>;
67
+ suggestions: Suggestions<Co, Us>;
68
+ triggerType: SuggestionComponentType;
71
69
  /**
72
70
  * Override handler for updating suggestions (mentions, command autocomplete etc)
73
71
  *
74
72
  * @param newSuggestions {Component|element} UI Component for suggestion item.
75
- * @param newSuggestionsTitle {string} Title for suggestions box
76
- *
77
73
  * @overrideType Function
78
74
  */
79
- updateSuggestions: (
80
- newSuggestions: Suggestions<Co, Us>,
81
- newSuggestionsTitle?: React.ReactElement,
82
- ) => void;
83
- componentType?: SuggestionComponentType<Co, Us>;
84
- suggestions?: Suggestions<Co, Us>;
85
- suggestionsTitle?: React.ReactElement;
75
+ updateSuggestions: (newSuggestions: Suggestions<Co, Us>) => void;
76
+ queryText?: string;
86
77
  suggestionsViewActive?: boolean;
87
78
  };
88
79
 
@@ -98,46 +89,34 @@ export const SuggestionsProvider = <
98
89
  children,
99
90
  value,
100
91
  }: PropsWithChildren<{ value?: Partial<SuggestionsContextValue<Co, Us>> }>) => {
101
- const [componentType, setComponentType] = useState<SuggestionComponentType<Co, Us>>('');
92
+ const [triggerType, setTriggerType] = useState<SuggestionComponentType | null>(null);
102
93
  const [suggestions, setSuggestions] = useState<Suggestions<Co, Us>>();
103
- const [suggestionsTitle, setSuggestionsTitle] = useState<React.ReactElement>();
104
94
  const [suggestionsViewActive, setSuggestionsViewActive] = useState(false);
105
95
 
106
- const openSuggestions = (
107
- component: SuggestionComponentType<Co, Us>,
108
- title?: React.ReactElement,
109
- ) => {
110
- setComponentType(component);
111
- setSuggestionsTitle(title);
96
+ const openSuggestions = (component: SuggestionComponentType) => {
97
+ setTriggerType(component);
112
98
  setSuggestionsViewActive(true);
113
99
  };
114
100
 
115
- const updateSuggestions = (
116
- newSuggestions: Suggestions<Co, Us>,
117
- newSuggestionsTitle?: React.ReactElement,
118
- ) => {
101
+ const updateSuggestions = (newSuggestions: Suggestions<Co, Us>) => {
119
102
  setSuggestions(newSuggestions);
120
- if (newSuggestionsTitle) {
121
- setSuggestionsTitle(newSuggestionsTitle);
122
- }
123
- setSuggestionsViewActive(!!componentType);
103
+ setSuggestionsViewActive(!!triggerType);
124
104
  };
125
105
 
126
106
  const closeSuggestions = () => {
127
- setComponentType('');
107
+ setTriggerType(null);
128
108
  setSuggestions(undefined);
129
- setSuggestionsTitle(undefined);
130
109
  setSuggestionsViewActive(false);
131
110
  };
132
111
 
133
112
  const suggestionsContext = {
134
- closeSuggestions: value?.closeSuggestions || closeSuggestions,
135
- componentType,
136
- openSuggestions: value?.openSuggestions || openSuggestions,
113
+ ...value,
114
+ closeSuggestions,
115
+ openSuggestions,
137
116
  suggestions,
138
- suggestionsTitle,
139
117
  suggestionsViewActive,
140
- updateSuggestions: value?.updateSuggestions || updateSuggestions,
118
+ triggerType,
119
+ updateSuggestions,
141
120
  };
142
121
 
143
122
  return (
@@ -39,7 +39,6 @@ describe('SuggestionsProvider', () => {
39
39
  await waitFor(() => {
40
40
  expect(context).toBeInstanceOf(Object);
41
41
  expect(context.closeSuggestions).toBeInstanceOf(Function);
42
- expect(typeof context.componentType).toBe('string');
43
42
  expect(context.openSuggestions).toBeInstanceOf(Function);
44
43
  expect(typeof context.suggestionsViewActive).toBe('boolean');
45
44
  expect(context.updateSuggestions).toBeInstanceOf(Function);