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
@@ -1,12 +1,9 @@
1
1
  import { Emoji } from '../emoji-data/compiled';
2
2
  import type React from 'react';
3
3
  import type { DebouncedFunc } from 'lodash';
4
- import type { Channel, StreamChat } from 'stream-chat';
5
- import type { CommandsItemProps } from '../components/AutoCompleteInput/CommandsItem';
6
- import type { EmojisItemProps } from '../components/AutoCompleteInput/EmojisItem';
7
- import type { MentionsItemProps } from '../components/AutoCompleteInput/MentionsItem';
4
+ import type { Channel, CommandResponse, StreamChat } from 'stream-chat';
8
5
  import type { MentionAllAppUsersQuery } from '../contexts/messageInputContext/MessageInputContext';
9
- import type { SuggestionCommand, SuggestionUser } from '../contexts/suggestionsContext/SuggestionsContext';
6
+ import type { SuggestionCommand, SuggestionComponentType, SuggestionUser } from '../contexts/suggestionsContext/SuggestionsContext';
10
7
  import type { IconProps } from '../icons/utils/base';
11
8
  import type { DefaultAttachmentType, DefaultChannelType, DefaultCommandType, DefaultEventType, DefaultMessageType, DefaultReactionType, DefaultUserType, UnknownType } from '../types/types';
12
9
  export declare type ReactionData = {
@@ -37,28 +34,27 @@ export declare const isMentionTrigger: (trigger: Trigger) => trigger is "@";
37
34
  export declare type Trigger = '/' | '@' | ':';
38
35
  export declare type TriggerSettings<Co extends string = DefaultCommandType, Us extends UnknownType = DefaultUserType> = {
39
36
  '/'?: {
40
- component: string | React.ComponentType<Partial<CommandsItemProps<Co>>>;
41
- dataProvider: (query: SuggestionCommand<Co>['name'], text: string, onReady?: (data: SuggestionCommand<Co>[], q: SuggestionCommand<Co>['name']) => void, options?: {
37
+ dataProvider: (query: CommandResponse<Co>['name'], text: string, onReady?: (data: CommandResponse<Co>[], q: CommandResponse<Co>['name']) => void, options?: {
42
38
  limit?: number;
43
39
  }) => SuggestionCommand<Co>[];
44
- output: (entity: SuggestionCommand<Co>) => {
40
+ output: (entity: CommandResponse<Co>) => {
45
41
  caretPosition: string;
46
42
  key: string;
47
43
  text: string;
48
44
  };
45
+ type: SuggestionComponentType;
49
46
  };
50
47
  ':'?: {
51
- component: string | React.ComponentType<Partial<EmojisItemProps>>;
52
48
  dataProvider: (query: Emoji['name'], _: string, onReady?: (data: Emoji[], q: Emoji['name']) => void) => Emoji[];
53
49
  output: (entity: Emoji) => {
54
50
  caretPosition: string;
55
51
  key: string;
56
52
  text: string;
57
53
  };
54
+ type: SuggestionComponentType;
58
55
  };
59
56
  '@'?: {
60
57
  callback: (item: SuggestionUser<Us>) => void;
61
- component: string | React.ComponentType<Partial<MentionsItemProps<Us>>>;
62
58
  dataProvider: (query: SuggestionUser<Us>['name'], _: string, onReady?: (data: SuggestionUser<Us>[], q: SuggestionUser<Us>['name']) => void, options?: {
63
59
  limit?: number;
64
60
  mentionAllAppUsersEnabled?: boolean;
@@ -69,6 +65,7 @@ export declare type TriggerSettings<Co extends string = DefaultCommandType, Us e
69
65
  key: string;
70
66
  text: string;
71
67
  };
68
+ type: SuggestionComponentType;
72
69
  };
73
70
  };
74
71
  export declare type ACITriggerSettingsParams<At extends UnknownType = DefaultAttachmentType, Ch extends UnknownType = DefaultChannelType, Co extends string = DefaultCommandType, Ev extends UnknownType = DefaultEventType, Me extends UnknownType = DefaultMessageType, Re extends UnknownType = DefaultReactionType, Us extends UnknownType = DefaultUserType> = {
@@ -101,3 +98,4 @@ export declare const vw: (percentageWidth: number, rounded?: boolean) => number;
101
98
  export declare const vh: (percentageHeight: number, rounded?: boolean) => number;
102
99
  export declare const generateRandomId: (a?: string) => string;
103
100
  export declare const emojiRegex: RegExp;
101
+ export declare const urlRegex: RegExp;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "3.10.2",
4
+ "version": "4.0.0-beta.1",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -77,10 +77,11 @@
77
77
  "i18next": "20.2.4",
78
78
  "lodash-es": "4.17.21",
79
79
  "metro-react-native-babel-preset": "0.66.0",
80
+ "mime-types": "^2.1.34",
80
81
  "path": "0.12.7",
81
82
  "react-art": "^17.0.2",
82
83
  "react-native-markdown-package": "1.8.1",
83
- "stream-chat": "~3.13.1"
84
+ "stream-chat": "^4.4.3"
84
85
  },
85
86
  "peerDependencies": {
86
87
  "react": "*",
@@ -135,6 +136,7 @@
135
136
  "react-dom": "17.0.2",
136
137
  "react-native": "0.64.1",
137
138
  "react-native-builder-bob": "0.18.1",
139
+ "react-native-fs": "2.18.0",
138
140
  "react-native-gesture-handler": "1.10.3",
139
141
  "react-native-reanimated": "2.1.0",
140
142
  "react-native-svg": "12.1.1",
@@ -142,7 +144,7 @@
142
144
  "react-native-web": "0.15.0",
143
145
  "react-styleguidist": "11.1.6",
144
146
  "react-test-renderer": "17.0.2",
145
- "typescript": "4.2.4",
147
+ "typescript": "4.4.3",
146
148
  "uuid": "8.3.2",
147
149
  "webpack": "4.44.2"
148
150
  }
@@ -105,6 +105,8 @@ export type CardPropsWithContext<
105
105
  MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
106
106
  'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'
107
107
  > & {
108
+ channelId: string | undefined;
109
+ messageId: string | undefined;
108
110
  styles?: Partial<{
109
111
  authorName: StyleProp<TextStyle>;
110
112
  authorNameContainer: StyleProp<ViewStyle>;
@@ -318,7 +320,7 @@ export const Card = <
318
320
  >(
319
321
  props: CardProps<At, Ch, Co, Ev, Me, Re, Us>,
320
322
  ) => {
321
- const { onLongPress, onPress, onPressIn, preventPress } =
323
+ const { message, onLongPress, onPress, onPressIn, preventPress } =
322
324
  useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
323
325
  const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =
324
326
  useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
@@ -330,6 +332,8 @@ export const Card = <
330
332
  CardCover,
331
333
  CardFooter,
332
334
  CardHeader,
335
+ channelId: message.cid,
336
+ messageId: message.id,
333
337
  onLongPress,
334
338
  onPress,
335
339
  onPressIn,
@@ -115,7 +115,9 @@ export type GalleryPropsWithContext<
115
115
  MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
116
116
  'additionalTouchableProps' | 'legacyImageViewerSwipeBehaviour'
117
117
  > &
118
- Pick<OverlayContextValue, 'setBlurType' | 'setOverlay'> & {
118
+ Pick<OverlayContextValue, 'setOverlay'> & {
119
+ channelId: string | undefined;
120
+ hasThreadReplies?: boolean;
119
121
  /**
120
122
  * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.
121
123
  * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f
@@ -129,7 +131,6 @@ export type GalleryPropsWithContext<
129
131
  * TODO[major]: remove messageId and messageText
130
132
  * TODO: Fix circular dependencies of imports
131
133
  */
132
- hasThreadReplies?: boolean;
133
134
  message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;
134
135
  messageId?: string;
135
136
  messageText?: string;
@@ -160,7 +161,6 @@ const GalleryWithContext = <
160
161
  onPress,
161
162
  onPressIn,
162
163
  preventPress,
163
- setBlurType,
164
164
  setImage,
165
165
  setImages,
166
166
  setOverlay,
@@ -170,7 +170,6 @@ const GalleryWithContext = <
170
170
  const {
171
171
  theme: {
172
172
  colors: { overlay },
173
- imageGallery: { blurType },
174
173
  messageSimple: {
175
174
  gallery: {
176
175
  galleryContainer,
@@ -245,11 +244,9 @@ const GalleryWithContext = <
245
244
  if (!legacyImageViewerSwipeBehaviour && message) {
246
245
  setImages([message]);
247
246
  setImage({ messageId: messageId || message.id, url });
248
- setBlurType(blurType);
249
247
  setOverlay('gallery');
250
248
  } else if (legacyImageViewerSwipeBehaviour) {
251
249
  setImage({ messageId: messageId || message?.id, url });
252
- setBlurType(blurType);
253
250
  setOverlay('gallery');
254
251
  }
255
252
  };
@@ -439,7 +436,6 @@ export const Gallery = <
439
436
  onPress: propOnPress,
440
437
  onPressIn: propOnPressIn,
441
438
  preventPress: propPreventPress,
442
- setBlurType: propSetBlurType,
443
439
  setImage: propSetImage,
444
440
  setOverlay: propSetOverlay,
445
441
  threadList: propThreadList,
@@ -461,7 +457,7 @@ export const Gallery = <
461
457
  additionalTouchableProps: contextAdditionalTouchableProps,
462
458
  legacyImageViewerSwipeBehaviour,
463
459
  } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
464
- const { setBlurType: contextSetBlurType, setOverlay: contextSetOverlay } = useOverlayContext();
460
+ const { setOverlay: contextSetOverlay } = useOverlayContext();
465
461
 
466
462
  const images = propImages || contextImages;
467
463
 
@@ -475,7 +471,6 @@ export const Gallery = <
475
471
  const onPress = propOnPress || contextOnPress;
476
472
  const preventPress =
477
473
  typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;
478
- const setBlurType = propSetBlurType || contextSetBlurType;
479
474
  const setImage = propSetImage || contextSetImage;
480
475
  const setOverlay = propSetOverlay || contextSetOverlay;
481
476
  const threadList = propThreadList || contextThreadList;
@@ -485,6 +480,7 @@ export const Gallery = <
485
480
  {...{
486
481
  additionalTouchableProps,
487
482
  alignment,
483
+ channelId: message.cid,
488
484
  groupStyles,
489
485
  hasThreadReplies: hasThreadReplies || !!message?.reply_count,
490
486
  images,
@@ -496,7 +492,6 @@ export const Gallery = <
496
492
  onPress,
497
493
  onPressIn,
498
494
  preventPress,
499
- setBlurType,
500
495
  setImage,
501
496
  setImages,
502
497
  setOverlay,
@@ -143,7 +143,7 @@ const GiphyWithContext = <
143
143
 
144
144
  const {
145
145
  theme: {
146
- colors: { accent_blue, black, border, grey, overlay_dark, white },
146
+ colors: { accent_blue, black, border, grey, overlay, white },
147
147
  messageSimple: {
148
148
  giphy: {
149
149
  cancel,
@@ -183,7 +183,7 @@ const GiphyWithContext = <
183
183
  style={[styles.giphy, giphy]}
184
184
  />
185
185
  <View style={[styles.giphyMask, giphyMask]}>
186
- <View style={[styles.giphyContainer, { backgroundColor: overlay_dark }, giphyContainer]}>
186
+ <View style={[styles.giphyContainer, { backgroundColor: overlay }, giphyContainer]}>
187
187
  <Lightning height={16} pathFill={white} width={16} />
188
188
  <Text style={[styles.giphyText, { color: white }, giphyText]}>
189
189
  {type?.toUpperCase()}
@@ -273,7 +273,7 @@ const GiphyWithContext = <
273
273
  style={[styles.giphy, giphy]}
274
274
  />
275
275
  <View style={[styles.giphyMask, giphyMask]}>
276
- <View style={[styles.giphyContainer, { backgroundColor: overlay_dark }, giphyContainer]}>
276
+ <View style={[styles.giphyContainer, { backgroundColor: overlay }, giphyContainer]}>
277
277
  <Lightning height={16} pathFill={white} width={16} />
278
278
  <Text style={[styles.giphyText, { color: white }, giphyText]}>
279
279
  {type?.toUpperCase()}
@@ -14,12 +14,19 @@ import {
14
14
  generateImageAttachment,
15
15
  generateImgurAttachment,
16
16
  } from '../../../mock-builders/generator/attachment';
17
-
18
- const getAttachmentComponent = (props) => (
19
- <ThemeProvider>
20
- <Attachment {...props} />;
21
- </ThemeProvider>
22
- );
17
+ import { generateMessage } from '../../../mock-builders/generator/message';
18
+ import { MessageProvider } from '../../../contexts/messageContext/MessageContext';
19
+
20
+ const getAttachmentComponent = (props) => {
21
+ const message = generateMessage();
22
+ return (
23
+ <ThemeProvider>
24
+ <MessageProvider value={{ message }}>
25
+ <Attachment {...props} />
26
+ </MessageProvider>
27
+ </ThemeProvider>
28
+ );
29
+ };
23
30
  const getActionComponent = (props) => (
24
31
  <ThemeProvider>
25
32
  <AttachmentActions {...props} />;
@@ -1,14 +1,12 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { StyleSheet, TextInput } from 'react-native';
2
+ import { StyleSheet, TextInput, TextInputProps } from 'react-native';
3
3
  import throttle from 'lodash/throttle';
4
4
 
5
- import { CommandsHeader } from './CommandsHeader';
6
- import { EmojisHeader } from './EmojisHeader';
7
-
8
5
  import {
9
6
  ChannelContextValue,
10
7
  useChannelContext,
11
8
  } from '../../contexts/channelContext/ChannelContext';
9
+ import type { Emoji } from '../../emoji-data/compiled';
12
10
  import {
13
11
  MessageInputContextValue,
14
12
  useMessageInputContext,
@@ -30,9 +28,6 @@ import {
30
28
  } from '../../contexts/translationContext/TranslationContext';
31
29
  import { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';
32
30
 
33
- import type { TextInputProps } from 'react-native';
34
-
35
- import type { Emoji } from '../../emoji-data/compiled';
36
31
  import type {
37
32
  DefaultAttachmentType,
38
33
  DefaultChannelType,
@@ -90,7 +85,13 @@ type AutoCompleteInputPropsWithContext<
90
85
  SuggestionsContextValue<Co, Us>,
91
86
  'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'
92
87
  > &
93
- Pick<TranslationContextValue, 't'>;
88
+ Pick<TranslationContextValue, 't'> & {
89
+ /**
90
+ * This is currently passed in from MessageInput to avoid rerenders
91
+ * that would happen if we put this in the MessageInputContext
92
+ */
93
+ cooldownActive?: boolean;
94
+ };
94
95
 
95
96
  export type AutoCompleteInputProps<
96
97
  At extends UnknownType = DefaultAttachmentType,
@@ -117,6 +118,7 @@ const AutoCompleteInputWithContext = <
117
118
  additionalTextInputProps,
118
119
  autoCompleteSuggestionsLimit,
119
120
  closeSuggestions,
121
+ cooldownActive = false,
120
122
  giphyActive,
121
123
  giphyEnabled,
122
124
  maxMessageLength,
@@ -161,15 +163,8 @@ const AutoCompleteInputWithContext = <
161
163
  const triggerSetting = triggerSettings[trigger];
162
164
  if (triggerSetting) {
163
165
  isTrackingStarted.current = true;
164
- const { component: Component } = triggerSetting;
165
- openSuggestions(
166
- typeof Component === 'string' ? Component : <Component />,
167
- trigger === ':' ? (
168
- <EmojisHeader title='' />
169
- ) : trigger === '/' ? (
170
- <CommandsHeader />
171
- ) : undefined,
172
- );
166
+ const { type } = triggerSetting;
167
+ openSuggestions(type);
173
168
  }
174
169
  };
175
170
 
@@ -196,6 +191,7 @@ const AutoCompleteInputWithContext = <
196
191
  updateSuggestionsContext({
197
192
  data,
198
193
  onSelect: (item) => onSelectSuggestion({ item, trigger }),
194
+ queryText: query,
199
195
  });
200
196
  }
201
197
  },
@@ -220,6 +216,7 @@ const AutoCompleteInputWithContext = <
220
216
  updateSuggestionsContext({
221
217
  data,
222
218
  onSelect: (item) => onSelectSuggestion({ item, trigger }),
219
+ queryText: query,
223
220
  });
224
221
  },
225
222
  {
@@ -235,13 +232,11 @@ const AutoCompleteInputWithContext = <
235
232
  return;
236
233
  }
237
234
 
238
- updateSuggestionsContext(
239
- {
240
- data,
241
- onSelect: (item) => onSelectSuggestion({ item, trigger }),
242
- },
243
- <EmojisHeader title={query} />,
244
- );
235
+ updateSuggestionsContext({
236
+ data,
237
+ onSelect: (item) => onSelectSuggestion({ item, trigger }),
238
+ queryText: query,
239
+ });
245
240
  });
246
241
  }
247
242
  }
@@ -408,6 +403,12 @@ const AutoCompleteInputWithContext = <
408
403
  }
409
404
  };
410
405
 
406
+ const placeholderText = giphyActive
407
+ ? t('Search GIFs')
408
+ : cooldownActive
409
+ ? t('Slow mode ON')
410
+ : t('Send a message');
411
+
411
412
  const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {
412
413
  leading: false,
413
414
  });
@@ -434,7 +435,7 @@ const AutoCompleteInputWithContext = <
434
435
  }
435
436
  }}
436
437
  onSelectionChange={handleSelectionChange}
437
- placeholder={giphyActive ? t('Search GIFs') : t('Send a message')}
438
+ placeholder={placeholderText}
438
439
  placeholderTextColor={grey}
439
440
  ref={setInputBoxRef}
440
441
  style={[
@@ -470,8 +471,18 @@ const areEqual = <
470
471
  prevProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
471
472
  nextProps: AutoCompleteInputPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
472
473
  ) => {
473
- const { giphyActive: prevGiphyActive, t: prevT, text: prevText } = prevProps;
474
- const { giphyActive: nextGiphyActive, t: nextT, text: nextText } = nextProps;
474
+ const {
475
+ cooldownActive: prevCooldownActive,
476
+ giphyActive: prevGiphyActive,
477
+ t: prevT,
478
+ text: prevText,
479
+ } = prevProps;
480
+ const {
481
+ cooldownActive: nextCooldownActive,
482
+ giphyActive: nextGiphyActive,
483
+ t: nextT,
484
+ text: nextText,
485
+ } = nextProps;
475
486
 
476
487
  const giphyActiveEqual = prevGiphyActive === nextGiphyActive;
477
488
  if (!giphyActiveEqual) return false;
@@ -482,6 +493,9 @@ const areEqual = <
482
493
  const textEqual = prevText === nextText;
483
494
  if (!textEqual) return false;
484
495
 
496
+ const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;
497
+ if (!cooldownActiveEqual) return false;
498
+
485
499
  return true;
486
500
  };
487
501
 
@@ -1,22 +1,12 @@
1
1
  import React from 'react';
2
- import { StyleSheet, Text, View } from 'react-native';
2
+ import { StyleSheet, View } from 'react-native';
3
3
 
4
4
  import { useTheme } from '../../contexts/themeContext/ThemeContext';
5
5
  import { Flag, GiphyIcon, Imgur, Lightning, Mute, Sound, UserAdd, UserDelete } from '../../icons';
6
-
7
6
  import type { SuggestionCommand } from '../../contexts/suggestionsContext/SuggestionsContext';
8
7
  import type { DefaultCommandType } from '../../types/types';
9
8
 
10
9
  const styles = StyleSheet.create({
11
- args: {
12
- fontSize: 14,
13
- },
14
- container: {
15
- alignItems: 'center',
16
- flexDirection: 'row',
17
- paddingHorizontal: 16,
18
- paddingVertical: 8,
19
- },
20
10
  iconContainer: {
21
11
  alignItems: 'center',
22
12
  borderRadius: 12,
@@ -25,14 +15,9 @@ const styles = StyleSheet.create({
25
15
  marginRight: 8,
26
16
  width: 24,
27
17
  },
28
- title: {
29
- fontSize: 14,
30
- fontWeight: 'bold',
31
- paddingRight: 8,
32
- },
33
18
  });
34
19
 
35
- const Icon = <Co extends string = DefaultCommandType>({
20
+ export const AutoCompleteSuggestionCommandIcon = <Co extends string = DefaultCommandType>({
36
21
  name,
37
22
  }: {
38
23
  name: SuggestionCommand<Co>['name'];
@@ -98,42 +83,3 @@ const Icon = <Co extends string = DefaultCommandType>({
98
83
  );
99
84
  }
100
85
  };
101
-
102
- export type CommandsItemProps<Co extends string = DefaultCommandType> = {
103
- /**
104
- * A CommandResponse of suggested CommandTypes with these properties
105
- *
106
- * - args: Arguments which can be passed to the command
107
- * - name: Name of the command
108
- */
109
- item: SuggestionCommand<Co>;
110
- };
111
-
112
- export const CommandsItem = <Co extends string = DefaultCommandType>({
113
- item: { args, name },
114
- }: CommandsItemProps<Co>) => {
115
- const {
116
- theme: {
117
- colors: { black, grey },
118
- messageInput: {
119
- suggestions: {
120
- command: { args: argsStyle, container, title },
121
- },
122
- },
123
- },
124
- } = useTheme();
125
-
126
- return (
127
- <View style={[styles.container, container]}>
128
- <Icon name={name} />
129
- <Text style={[styles.title, { color: black }, title]} testID='commands-item-title'>
130
- {(name || '').replace(/^\w/, (char) => char.toUpperCase())}
131
- </Text>
132
- <Text style={[styles.args, { color: grey }, argsStyle]} testID='commands-item-args'>
133
- {`/${name} ${args}`}
134
- </Text>
135
- </View>
136
- );
137
- };
138
-
139
- CommandsItem.displayName = 'CommandsItem{messageInput{suggestions{command}}}';
@@ -0,0 +1,109 @@
1
+ import React from 'react';
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+
4
+ import { useTheme } from '../../contexts/themeContext/ThemeContext';
5
+ import { useTranslationContext } from '../../contexts/translationContext/TranslationContext';
6
+
7
+ import type { DefaultCommandType, DefaultUserType, UnknownType } from '../../types/types';
8
+ import { Lightning } from '../../icons/Lightning';
9
+ import { Smile } from '../../icons/Smile';
10
+ import type { SuggestionsContextValue } from '../../contexts/suggestionsContext/SuggestionsContext';
11
+
12
+ export type AutoCompleteSuggestionHeaderPropsWithContext<
13
+ Co extends string = DefaultCommandType,
14
+ Us extends UnknownType = DefaultUserType,
15
+ > = Pick<SuggestionsContextValue<Co, Us>, 'triggerType' | 'queryText'>;
16
+
17
+ const styles = StyleSheet.create({
18
+ container: {
19
+ alignItems: 'center',
20
+ flexDirection: 'row',
21
+ padding: 8,
22
+ },
23
+ title: {
24
+ fontSize: 14,
25
+ paddingLeft: 8,
26
+ },
27
+ });
28
+
29
+ const AutoCompleteSuggestionHeaderWithContext = <
30
+ Co extends string = DefaultCommandType,
31
+ Us extends DefaultUserType = DefaultUserType,
32
+ >({
33
+ queryText,
34
+ triggerType,
35
+ }: AutoCompleteSuggestionHeaderPropsWithContext<Co, Us>) => {
36
+ const { t } = useTranslationContext();
37
+ const {
38
+ theme: {
39
+ colors: { accent_blue, grey },
40
+ messageInput: {
41
+ suggestions: {
42
+ header: { container, title },
43
+ },
44
+ },
45
+ },
46
+ } = useTheme();
47
+
48
+ if (triggerType === 'command') {
49
+ return (
50
+ <View style={[styles.container, container]}>
51
+ <Lightning pathFill={accent_blue} />
52
+ <Text style={[styles.title, { color: grey }, title]} testID='commands-header-title'>
53
+ {t('Instant Commands')}
54
+ </Text>
55
+ </View>
56
+ );
57
+ } else if (triggerType === 'emoji') {
58
+ return (
59
+ <View style={[styles.container, container]}>
60
+ <Smile pathFill={accent_blue} />
61
+ <Text style={[styles.title, { color: grey }, title]} testID='emojis-header-title'>
62
+ {t('Emoji matching') + ' "' + queryText + '"'}
63
+ </Text>
64
+ </View>
65
+ );
66
+ } else if (triggerType === 'mention') {
67
+ return null;
68
+ } else {
69
+ return null;
70
+ }
71
+ };
72
+
73
+ const areEqual = <
74
+ Co extends string = DefaultCommandType,
75
+ Us extends DefaultUserType = DefaultUserType,
76
+ >(
77
+ prevProps: AutoCompleteSuggestionHeaderPropsWithContext<Co, Us>,
78
+ nextProps: AutoCompleteSuggestionHeaderPropsWithContext<Co, Us>,
79
+ ) => {
80
+ const { queryText: prevQueryText, triggerType: prevType } = prevProps;
81
+ const { queryText: nextQueryText, triggerType: nextType } = nextProps;
82
+
83
+ const typeEqual = prevType === nextType;
84
+ if (!typeEqual) return false;
85
+
86
+ const valueEqual = prevQueryText === nextQueryText;
87
+ if (!valueEqual) return false;
88
+ return true;
89
+ };
90
+
91
+ const MemoizedAutoCompleteSuggestionHeader = React.memo(
92
+ AutoCompleteSuggestionHeaderWithContext,
93
+ areEqual,
94
+ ) as typeof AutoCompleteSuggestionHeaderWithContext;
95
+
96
+ export type AutoCompleteSuggestionHeaderProps<
97
+ Co extends string = DefaultCommandType,
98
+ Us extends DefaultUserType = DefaultUserType,
99
+ > = AutoCompleteSuggestionHeaderPropsWithContext<Co, Us>;
100
+
101
+ export const AutoCompleteSuggestionHeader = <
102
+ Co extends string = DefaultCommandType,
103
+ Us extends DefaultUserType = DefaultUserType,
104
+ >(
105
+ props: AutoCompleteSuggestionHeaderProps<Co, Us>,
106
+ ) => <MemoizedAutoCompleteSuggestionHeader {...props} />;
107
+
108
+ AutoCompleteSuggestionHeader.displayName =
109
+ 'AutoCompleteSuggestionHeader{messageInput{suggestions{Header}}}';