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
@@ -16,7 +16,6 @@ import Animated, {
16
16
  import {
17
17
  PanGestureHandler,
18
18
  PanGestureHandlerGestureEvent,
19
- ScrollView,
20
19
  State,
21
20
  TapGestureHandler,
22
21
  } from 'react-native-gesture-handler';
@@ -24,7 +23,7 @@ import {
24
23
  import { OverlayReactionList as OverlayReactionListDefault } from './OverlayReactionList';
25
24
 
26
25
  import { MessageTextContainer } from '../Message/MessageSimple/MessageTextContainer';
27
- import { MessageActions as DefaultMessageActions } from '../MessageOverlay/MessageActions';
26
+ import { MessageActionList as DefaultMessageActionList } from './MessageActionList';
28
27
  import { OverlayReactions as DefaultOverlayReactions } from '../MessageOverlay/OverlayReactions';
29
28
 
30
29
  import {
@@ -35,6 +34,7 @@ import {
35
34
  import { MessagesProvider } from '../../contexts/messagesContext/MessagesContext';
36
35
  import {
37
36
  OverlayContextValue,
37
+ OverlayProviderProps,
38
38
  useOverlayContext,
39
39
  } from '../../contexts/overlayContext/OverlayContext';
40
40
  import { mergeThemes, ThemeProvider, useTheme } from '../../contexts/themeContext/ThemeContext';
@@ -84,6 +84,7 @@ const styles = StyleSheet.create({
84
84
 
85
85
  const screenHeight = vh(100);
86
86
  const halfScreenHeight = vh(50);
87
+ const DefaultMessageTextNumberOfLines = 5;
87
88
 
88
89
  export type MessageOverlayPropsWithContext<
89
90
  At extends UnknownType = DefaultAttachmentType,
@@ -95,11 +96,25 @@ export type MessageOverlayPropsWithContext<
95
96
  Us extends DefaultUserType = DefaultUserType,
96
97
  > = Pick<
97
98
  MessageOverlayContextValue<At, Ch, Co, Ev, Me, Re, Us>,
98
- 'MessageActions' | 'OverlayReactionList' | 'OverlayReactions' | 'reset'
99
+ | 'MessageActionList'
100
+ | 'MessageActionListItem'
101
+ | 'OverlayReactionList'
102
+ | 'OverlayReactions'
103
+ | 'reset'
99
104
  > &
100
105
  Omit<MessageOverlayData<At, Ch, Co, Ev, Me, Re, Us>, 'supportedReactions'> &
101
- Pick<OverlayContextValue, 'overlay' | 'setOverlay'> & {
102
- overlayOpacity: Animated.SharedValue<number>;
106
+ Pick<OverlayContextValue, 'overlay' | 'setOverlay'> &
107
+ Pick<
108
+ OverlayProviderProps<At, Ch, Co, Ev, Me, Re, Us>,
109
+ | 'error'
110
+ | 'isMyMessage'
111
+ | 'isThreadMessage'
112
+ | 'message'
113
+ | 'messageReactions'
114
+ | 'messageTextNumberOfLines'
115
+ | 'overlayOpacity'
116
+ > & {
117
+ showScreen?: Animated.SharedValue<number>;
103
118
  visible?: boolean;
104
119
  };
105
120
 
@@ -116,6 +131,7 @@ const MessageOverlayWithContext = <
116
131
  ) => {
117
132
  const {
118
133
  alignment,
134
+ ownCapabilities,
119
135
  clientId,
120
136
  files,
121
137
  groupStyles,
@@ -123,9 +139,11 @@ const MessageOverlayWithContext = <
123
139
  images,
124
140
  message,
125
141
  messageActions,
126
- MessageActions = DefaultMessageActions,
142
+ MessageActionList = DefaultMessageActionList,
143
+ MessageActionListItem,
127
144
  messageContext,
128
145
  messageReactionTitle,
146
+ messageTextNumberOfLines = DefaultMessageTextNumberOfLines,
129
147
  messagesContext,
130
148
  onlyEmojis,
131
149
  otherAttachments,
@@ -137,15 +155,27 @@ const MessageOverlayWithContext = <
137
155
  setOverlay,
138
156
  threadList,
139
157
  visible,
158
+ isMyMessage,
159
+ messageReactions,
160
+ error,
161
+ isThreadMessage,
140
162
  } = props;
141
163
 
164
+ const messageActionProps = {
165
+ error,
166
+ isMyMessage,
167
+ isThreadMessage,
168
+ message,
169
+ messageReactions,
170
+ };
171
+
142
172
  const { theme } = useTheme();
143
173
 
144
174
  const myMessageTheme = messagesContext?.myMessageTheme;
145
175
  const wrapMessageInTheme = clientId === message?.user?.id && !!myMessageTheme;
146
176
 
147
177
  const [myMessageThemeString, setMyMessageThemeString] = useState(JSON.stringify(myMessageTheme));
148
- const [reactionListHeight, setReactionListHeight] = useState(0);
178
+ const [, setReactionListHeight] = useState(0);
149
179
 
150
180
  useEffect(() => {
151
181
  if (myMessageTheme) {
@@ -167,6 +197,7 @@ const MessageOverlayWithContext = <
167
197
  replyContainer,
168
198
  },
169
199
  },
200
+ overlay: { container: containerStyle, padding: overlayPadding },
170
201
  } = wrapMessageInTheme ? modifiedTheme : theme;
171
202
 
172
203
  const messageHeight = useSharedValue(0);
@@ -311,7 +342,7 @@ const MessageOverlayWithContext = <
311
342
  <ThemeProvider mergedStyle={wrapMessageInTheme ? modifiedTheme : theme}>
312
343
  <Animated.View
313
344
  pointerEvents={visible ? 'auto' : 'none'}
314
- style={StyleSheet.absoluteFillObject}
345
+ style={[StyleSheet.absoluteFillObject, containerStyle]}
315
346
  >
316
347
  <PanGestureHandler
317
348
  enabled={overlay === 'message'}
@@ -321,206 +352,201 @@ const MessageOverlayWithContext = <
321
352
  >
322
353
  <Animated.View style={[StyleSheet.absoluteFillObject]}>
323
354
  <SafeAreaView style={styles.flex}>
324
- <ScrollView
325
- alwaysBounceVertical={false}
326
- contentContainerStyle={[
327
- styles.center,
328
- {
329
- paddingTop: reactionListHeight,
330
- },
331
- ]}
332
- showsVerticalScrollIndicator={false}
333
- style={[styles.flex, styles.scrollView]}
355
+ <TapGestureHandler
356
+ maxDist={32}
357
+ onHandlerStateChange={({ nativeEvent: { state } }) => {
358
+ if (state === State.END) {
359
+ setOverlay('none');
360
+ }
361
+ }}
334
362
  >
335
- <TapGestureHandler
336
- maxDist={32}
337
- onHandlerStateChange={({ nativeEvent: { state } }) => {
338
- if (state === State.END) {
339
- setOverlay('none');
340
- }
341
- }}
342
- >
343
- <Animated.View style={[styles.flex, panStyle]}>
344
- {message && (
345
- <View
346
- style={[
347
- styles.center,
348
- styles.overlayPadding,
349
- alignment === 'left' ? styles.alignStart : styles.alignEnd,
350
- ]}
363
+ <Animated.View style={[styles.flex, panStyle]}>
364
+ {message && (
365
+ <View
366
+ style={[
367
+ styles.center,
368
+ styles.overlayPadding,
369
+ { padding: overlayPadding },
370
+ alignment === 'left' ? styles.alignStart : styles.alignEnd,
371
+ ]}
372
+ >
373
+ {handleReaction && ownCapabilities?.sendReaction ? (
374
+ <OverlayReactionList
375
+ messageLayout={messageLayout}
376
+ ownReactionTypes={
377
+ message?.own_reactions?.map((reaction) => reaction.type) || []
378
+ }
379
+ setReactionListHeight={setReactionListHeight}
380
+ showScreen={showScreen}
381
+ />
382
+ ) : null}
383
+ <Animated.View
384
+ onLayout={({
385
+ nativeEvent: {
386
+ layout: { height: layoutHeight, width: layoutWidth, x, y },
387
+ },
388
+ }) => {
389
+ messageLayout.value = {
390
+ x: alignment === 'left' ? x + layoutWidth : x,
391
+ y,
392
+ };
393
+ messageWidth.value = layoutWidth;
394
+ messageHeight.value = layoutHeight;
395
+ }}
396
+ style={[styles.alignEnd, styles.row, showScreenStyle]}
351
397
  >
352
- {handleReaction ? (
353
- <OverlayReactionList
354
- messageLayout={messageLayout}
355
- ownReactionTypes={
356
- message?.own_reactions?.map((reaction) => reaction.type) || []
357
- }
358
- setReactionListHeight={setReactionListHeight}
359
- showScreen={showScreen}
360
- />
361
- ) : null}
362
- <Animated.View
363
- onLayout={({
364
- nativeEvent: {
365
- layout: { height: layoutHeight, width: layoutWidth, x, y },
398
+ {alignment === 'left' && MessageAvatar && (
399
+ <MessageAvatar {...{ alignment, message, showAvatar: true }} />
400
+ )}
401
+ <View
402
+ style={[
403
+ styles.containerInner,
404
+ {
405
+ backgroundColor:
406
+ onlyEmojis && !message.quoted_message
407
+ ? transparent
408
+ : otherAttachments?.length
409
+ ? otherAttachments[0].type === 'giphy'
410
+ ? !message.quoted_message
411
+ ? transparent
412
+ : grey_gainsboro
413
+ : blue_alice
414
+ : alignment === 'left'
415
+ ? white_smoke
416
+ : grey_gainsboro,
417
+ borderBottomLeftRadius:
418
+ (groupStyle === 'left_bottom' ||
419
+ groupStyle === 'left_single') &&
420
+ (!hasThreadReplies || threadList)
421
+ ? borderRadiusS
422
+ : borderRadiusL,
423
+ borderBottomRightRadius:
424
+ (groupStyle === 'right_bottom' ||
425
+ groupStyle === 'right_single') &&
426
+ (!hasThreadReplies || threadList)
427
+ ? borderRadiusS
428
+ : borderRadiusL,
429
+ borderColor: grey_whisper,
366
430
  },
367
- }) => {
368
- messageLayout.value = {
369
- x: alignment === 'left' ? x + layoutWidth : x,
370
- y,
371
- };
372
- messageWidth.value = layoutWidth;
373
- messageHeight.value = layoutHeight;
374
- }}
375
- style={[styles.alignEnd, styles.row, showScreenStyle]}
431
+ (onlyEmojis && !message.quoted_message) || otherAttachments?.length
432
+ ? { borderWidth: 0 }
433
+ : {},
434
+ containerInner,
435
+ ]}
376
436
  >
377
- {alignment === 'left' && MessageAvatar && (
378
- <MessageAvatar {...{ alignment, message, showAvatar: true }} />
379
- )}
380
- <View
381
- style={[
382
- styles.containerInner,
383
- {
384
- backgroundColor:
385
- onlyEmojis && !message.quoted_message
386
- ? transparent
387
- : otherAttachments?.length
388
- ? otherAttachments[0].type === 'giphy'
389
- ? !message.quoted_message
390
- ? transparent
391
- : grey_gainsboro
392
- : blue_alice
393
- : alignment === 'left'
394
- ? white_smoke
395
- : grey_gainsboro,
396
- borderBottomLeftRadius:
397
- (groupStyle === 'left_bottom' ||
398
- groupStyle === 'left_single') &&
399
- (!hasThreadReplies || threadList)
400
- ? borderRadiusS
401
- : borderRadiusL,
402
- borderBottomRightRadius:
403
- (groupStyle === 'right_bottom' ||
404
- groupStyle === 'right_single') &&
405
- (!hasThreadReplies || threadList)
406
- ? borderRadiusS
407
- : borderRadiusL,
408
- borderColor: grey_whisper,
409
- },
410
- (onlyEmojis && !message.quoted_message) ||
411
- otherAttachments?.length
412
- ? { borderWidth: 0 }
413
- : {},
414
- containerInner,
415
- ]}
416
- >
417
- {messagesContext?.messageContentOrder?.map(
418
- (messageContentType, messageContentOrderIndex) => {
419
- switch (messageContentType) {
420
- case 'quoted_reply':
421
- return (
422
- messagesContext?.quotedRepliesEnabled &&
423
- message.quoted_message &&
424
- Reply && (
425
- <View
426
- key={`quoted_reply_${messageContentOrderIndex}`}
427
- style={[styles.replyContainer, replyContainer]}
428
- >
429
- <Reply
430
- quotedMessage={
431
- message.quoted_message as ReplyProps<
432
- At,
433
- Ch,
434
- Co,
435
- Ev,
436
- Me,
437
- Re,
438
- Us
439
- >['quotedMessage']
440
- }
441
- styles={{
442
- messageContainer: {
443
- maxWidth: vw(60),
444
- },
445
- }}
446
- />
447
- </View>
448
- )
449
- );
450
- case 'attachments':
451
- return otherAttachments?.map(
452
- (attachment, attachmentIndex) =>
453
- Attachment && (
454
- <Attachment
455
- attachment={attachment}
456
- key={`${message.id}-${attachmentIndex}`}
457
- />
458
- ),
459
- );
460
- case 'files':
461
- return (
462
- FileAttachmentGroup && (
463
- <FileAttachmentGroup
464
- files={files}
465
- key={`file_attachment_group_${messageContentOrderIndex}`}
466
- messageId={message.id}
437
+ {messagesContext?.messageContentOrder?.map(
438
+ (messageContentType, messageContentOrderIndex) => {
439
+ switch (messageContentType) {
440
+ case 'quoted_reply':
441
+ return (
442
+ message.quoted_message &&
443
+ Reply && (
444
+ <View
445
+ key={`quoted_reply_${messageContentOrderIndex}`}
446
+ style={[styles.replyContainer, replyContainer]}
447
+ >
448
+ <Reply
449
+ quotedMessage={
450
+ message.quoted_message as ReplyProps<
451
+ At,
452
+ Ch,
453
+ Co,
454
+ Ev,
455
+ Me,
456
+ Re,
457
+ Us
458
+ >['quotedMessage']
459
+ }
460
+ styles={{
461
+ messageContainer: {
462
+ maxWidth: vw(60),
463
+ },
464
+ }}
467
465
  />
468
- )
469
- );
470
- case 'gallery':
471
- return (
472
- Gallery && (
473
- <Gallery
474
- alignment={alignment}
475
- groupStyles={groupStyles}
476
- hasThreadReplies={!!message?.reply_count}
477
- images={images}
478
- key={`gallery_${messageContentOrderIndex}`}
479
- messageId={message.id}
480
- messageText={message.text}
481
- threadList={threadList}
466
+ </View>
467
+ )
468
+ );
469
+ case 'attachments':
470
+ return otherAttachments?.map(
471
+ (attachment, attachmentIndex) =>
472
+ Attachment && (
473
+ <Attachment
474
+ attachment={attachment}
475
+ key={`${message.id}-${attachmentIndex}`}
482
476
  />
483
- )
484
- );
485
- case 'text':
486
- default:
487
- return otherAttachments?.length &&
488
- otherAttachments[0].actions ? null : (
489
- <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>
490
- key={`message_text_container_${messageContentOrderIndex}`}
491
- message={message}
492
- messageOverlay
493
- onlyEmojis={onlyEmojis}
477
+ ),
478
+ );
479
+ case 'files':
480
+ return (
481
+ FileAttachmentGroup && (
482
+ <FileAttachmentGroup
483
+ files={files}
484
+ key={`file_attachment_group_${messageContentOrderIndex}`}
485
+ messageId={message.id}
486
+ />
487
+ )
488
+ );
489
+ case 'gallery':
490
+ return (
491
+ Gallery && (
492
+ <Gallery
493
+ alignment={alignment}
494
+ groupStyles={groupStyles}
495
+ hasThreadReplies={!!message?.reply_count}
496
+ images={images}
497
+ key={`gallery_${messageContentOrderIndex}`}
498
+ messageId={message.id}
499
+ messageText={message.text}
500
+ threadList={threadList}
494
501
  />
495
- );
496
- }
497
- },
498
- )}
499
- </View>
500
- </Animated.View>
501
- {messageActions && <MessageActions showScreen={showScreen} />}
502
- {!!messageReactionTitle &&
503
- message.latest_reactions &&
504
- message.latest_reactions.length > 0 ? (
505
- <OverlayReactions
506
- alignment={alignment}
507
- reactions={message.latest_reactions.map((reaction) => ({
508
- alignment:
509
- clientId && clientId === reaction.user?.id ? 'right' : 'left',
510
- image: reaction?.user?.image,
511
- name: reaction?.user?.name || reaction.user_id || '',
512
- type: reaction.type,
513
- }))}
514
- showScreen={showScreen}
515
- supportedReactions={messagesContext?.supportedReactions}
516
- title={messageReactionTitle}
517
- />
518
- ) : null}
519
- </View>
520
- )}
521
- </Animated.View>
522
- </TapGestureHandler>
523
- </ScrollView>
502
+ )
503
+ );
504
+ case 'text':
505
+ default:
506
+ return otherAttachments?.length &&
507
+ otherAttachments[0].actions ? null : (
508
+ <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>
509
+ key={`message_text_container_${messageContentOrderIndex}`}
510
+ message={message}
511
+ messageOverlay
512
+ messageTextNumberOfLines={messageTextNumberOfLines}
513
+ onlyEmojis={onlyEmojis}
514
+ />
515
+ );
516
+ }
517
+ },
518
+ )}
519
+ </View>
520
+ </Animated.View>
521
+ {messageActions && (
522
+ <MessageActionList
523
+ MessageActionListItem={MessageActionListItem}
524
+ showScreen={showScreen}
525
+ {...messageActionProps}
526
+ />
527
+ )}
528
+ {!!messageReactionTitle &&
529
+ message.latest_reactions &&
530
+ message.latest_reactions.length > 0 ? (
531
+ <OverlayReactions
532
+ alignment={alignment}
533
+ reactions={message.latest_reactions.map((reaction) => ({
534
+ alignment:
535
+ clientId && clientId === reaction.user?.id ? 'right' : 'left',
536
+ id: reaction?.user?.id || '',
537
+ image: reaction?.user?.image,
538
+ name: reaction?.user?.name || reaction.user_id || '',
539
+ type: reaction.type,
540
+ }))}
541
+ showScreen={showScreen}
542
+ supportedReactions={messagesContext?.supportedReactions}
543
+ title={messageReactionTitle}
544
+ />
545
+ ) : null}
546
+ </View>
547
+ )}
548
+ </Animated.View>
549
+ </TapGestureHandler>
524
550
  </SafeAreaView>
525
551
  </Animated.View>
526
552
  </PanGestureHandler>
@@ -591,7 +617,11 @@ export type MessageOverlayProps<
591
617
  Re extends UnknownType = DefaultReactionType,
592
618
  Us extends DefaultUserType = DefaultUserType,
593
619
  > = Partial<Omit<MessageOverlayPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'overlayOpacity'>> &
594
- Pick<MessageOverlayPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'overlayOpacity'>;
620
+ Pick<MessageOverlayPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'overlayOpacity'> &
621
+ Pick<
622
+ MessageOverlayPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
623
+ 'isMyMessage' | 'error' | 'isThreadMessage' | 'messageReactions'
624
+ >;
595
625
 
596
626
  /**
597
627
  * MessageOverlay - A high level component which implements all the logic required for a message overlay
@@ -607,12 +637,19 @@ export const MessageOverlay = <
607
637
  >(
608
638
  props: MessageOverlayProps<At, Ch, Co, Ev, Me, Re, Us>,
609
639
  ) => {
610
- const { data, MessageActions, OverlayReactionList, OverlayReactions, reset } =
611
- useMessageOverlayContext<At, Ch, Co, Ev, Me, Re, Us>();
640
+ const {
641
+ data,
642
+ MessageActionList,
643
+ MessageActionListItem,
644
+ OverlayReactionList,
645
+ OverlayReactions,
646
+ reset,
647
+ } = useMessageOverlayContext<At, Ch, Co, Ev, Me, Re, Us>();
612
648
  const { overlay, setOverlay } = useOverlayContext();
613
649
 
614
650
  const componentProps = {
615
- MessageActions: props.MessageActions || MessageActions,
651
+ MessageActionList: props.MessageActionList || MessageActionList,
652
+ MessageActionListItem: props.MessageActionListItem || MessageActionListItem,
616
653
  OverlayReactionList:
617
654
  props.OverlayReactionList || OverlayReactionList || data?.OverlayReactionList,
618
655
  OverlayReactions: props.OverlayReactions || OverlayReactions,
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { StyleProp, View, ViewStyle } from 'react-native';
3
+ import { useTheme } from '../../contexts/themeContext/ThemeContext';
4
+
5
+ type OverlayBackdropProps = {
6
+ style?: StyleProp<ViewStyle>;
7
+ };
8
+
9
+ export const OverlayBackdrop = (props: OverlayBackdropProps): JSX.Element => {
10
+ const { style = {} } = props;
11
+ const {
12
+ theme: {
13
+ colors: { overlay },
14
+ },
15
+ } = useTheme();
16
+ return <View style={[{ backgroundColor: overlay }, style]} />;
17
+ };
@@ -372,7 +372,7 @@ const OverlayReactionListWithContext = <
372
372
  const numberOfReactions = supportedReactions.length;
373
373
 
374
374
  return (
375
- <View style={StyleSheet.absoluteFill}>
375
+ <View style={StyleSheet.absoluteFill} testID='overlay-reaction-list'>
376
376
  <Animated.View
377
377
  onLayout={({ nativeEvent: { layout } }) => {
378
378
  reactionBubbleWidth.value = layout.width;
@@ -0,0 +1,43 @@
1
+ import type { ViewStyle } from 'react-native';
2
+ import type { TapGestureHandlerStateChangeEvent } from 'react-native-gesture-handler';
3
+ import {
4
+ runOnJS,
5
+ useAnimatedGestureHandler,
6
+ useAnimatedStyle,
7
+ useSharedValue,
8
+ } from 'react-native-reanimated';
9
+ import type { MessageActionListItemProps } from '../MessageActionListItem';
10
+
11
+ export const useMessageActionAnimation = ({
12
+ action,
13
+ activeOpacity = 0.2,
14
+ }: Pick<MessageActionListItemProps, 'action'> & {
15
+ activeOpacity?: number;
16
+ }) => {
17
+ const opacity = useSharedValue(1);
18
+
19
+ const onTap = useAnimatedGestureHandler<TapGestureHandlerStateChangeEvent>(
20
+ {
21
+ onEnd: () => {
22
+ runOnJS(action)();
23
+ },
24
+ onFinish: () => {
25
+ opacity.value = 1;
26
+ },
27
+ onStart: () => {
28
+ opacity.value = activeOpacity;
29
+ },
30
+ },
31
+ [action],
32
+ );
33
+
34
+ const animatedStyle = useAnimatedStyle<ViewStyle>(() => ({
35
+ opacity: opacity.value,
36
+ }));
37
+
38
+ return {
39
+ animatedStyle,
40
+ onTap,
41
+ opacity,
42
+ };
43
+ };
@@ -6,6 +6,7 @@ import {
6
6
  MessageInput as DefaultMessageInput,
7
7
  MessageInputProps,
8
8
  } from '../MessageInput/MessageInput';
9
+ import { useChannelContext } from '../../contexts/channelContext/ChannelContext';
9
10
  import { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';
10
11
  import {
11
12
  MessagesContextValue,
@@ -163,10 +164,17 @@ export const Thread = <
163
164
  props: ThreadProps<At, Ch, Co, Ev, Me, Re, Us>,
164
165
  ) => {
165
166
  const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();
167
+ const { threadList } = useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
166
168
  const { MessageList } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
167
169
  const { closeThread, loadMoreThread, reloadThread, thread } =
168
170
  useThreadContext<At, Ch, Co, Ev, Me, Re, Us>();
169
171
 
172
+ if (thread?.id && !threadList) {
173
+ throw new Error(
174
+ 'Please add a threadList prop to your Channel component when rendering a thread list. Check our Channel documentation for more info: https://getstream.io/chat/docs/sdk/reactnative/core-components/channel/#threadlist',
175
+ );
176
+ }
177
+
170
178
  return (
171
179
  <ThreadWithContext<At, Ch, Co, Ev, Me, Re, Us>
172
180
  {...{