stream-chat-react-native-core 3.10.1 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 -851
  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 +42 -14
  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 -851
  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 +42 -14
  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 +25 -3
  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
@@ -106,9 +106,7 @@ export type MessageContentPropsWithContext<
106
106
  | 'MessageReplies'
107
107
  | 'MessageStatus'
108
108
  | 'onPressInMessage'
109
- | 'quotedRepliesEnabled'
110
109
  | 'Reply'
111
- | 'threadRepliesEnabled'
112
110
  > &
113
111
  Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {
114
112
  setMessageContentWidth: React.Dispatch<React.SetStateAction<number>>;
@@ -154,18 +152,16 @@ const MessageContentWithContext = <
154
152
  onPressIn,
155
153
  otherAttachments,
156
154
  preventPress,
157
- quotedRepliesEnabled,
158
155
  Reply,
159
156
  setMessageContentWidth,
160
157
  showMessageStatus,
161
158
  tDateTimeParser,
162
159
  threadList,
163
- threadRepliesEnabled,
164
160
  } = props;
165
161
 
166
162
  const {
167
163
  theme: {
168
- colors: { accent_red, blue_alice, grey_gainsboro, grey_whisper, transparent },
164
+ colors: { accent_red, blue_alice, grey_gainsboro, grey_whisper, transparent, white },
169
165
  messageSimple: {
170
166
  content: {
171
167
  container: { borderRadiusL, borderRadiusS, ...container },
@@ -213,7 +209,9 @@ const MessageContentWithContext = <
213
209
 
214
210
  const noBorder = (onlyEmojis && !message.quoted_message) || !!otherAttachments.length;
215
211
 
216
- if (message.deleted_at) {
212
+ const isMessageTypeDeleted = message.type === 'deleted';
213
+
214
+ if (isMessageTypeDeleted) {
217
215
  return (
218
216
  <MessageDeleted
219
217
  formattedDate={getDateText(formatDate)}
@@ -234,7 +232,7 @@ const MessageContentWithContext = <
234
232
  : grey_gainsboro
235
233
  : blue_alice
236
234
  : alignment === 'left' || error
237
- ? transparent
235
+ ? white
238
236
  : grey_gainsboro;
239
237
 
240
238
  const repliesCurveColor = isMyMessage && !error ? backgroundColor : grey_whisper;
@@ -267,6 +265,7 @@ const MessageContentWithContext = <
267
265
  });
268
266
  }
269
267
  }}
268
+ testID='message-content'
270
269
  {...additionalTouchableProps}
271
270
  /**
272
271
  * Border radii are useful for the case of error message types only.
@@ -283,7 +282,7 @@ const MessageContentWithContext = <
283
282
  <MessageHeader
284
283
  alignment={alignment}
285
284
  formattedDate={getDateText(formatDate)}
286
- isDeleted={!!message.deleted_at}
285
+ isDeleted={!!isMessageTypeDeleted}
287
286
  lastGroupMessage={lastGroupMessage}
288
287
  members={members}
289
288
  message={message}
@@ -293,7 +292,7 @@ const MessageContentWithContext = <
293
292
  />
294
293
  )}
295
294
  <View onLayout={onLayout} style={wrapper}>
296
- {hasThreadReplies && !threadList && threadRepliesEnabled && !noBorder && (
295
+ {hasThreadReplies && !threadList && !noBorder && (
297
296
  <View
298
297
  style={[
299
298
  styles.replyBorder,
@@ -333,8 +332,7 @@ const MessageContentWithContext = <
333
332
  switch (messageContentType) {
334
333
  case 'quoted_reply':
335
334
  return (
336
- message.quoted_message &&
337
- quotedRepliesEnabled && (
335
+ message.quoted_message && (
338
336
  <View
339
337
  key={`quoted_reply_${messageContentOrderIndex}`}
340
338
  style={[styles.replyContainer, replyContainer]}
@@ -374,10 +372,8 @@ const MessageContentWithContext = <
374
372
  </View>
375
373
  )}
376
374
  </View>
377
- {threadRepliesEnabled && (
378
- <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />
379
- )}
380
- <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!message.deleted_at} />
375
+ <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />
376
+ <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!isMessageTypeDeleted} />
381
377
  </TouchableOpacity>
382
378
  );
383
379
  };
@@ -448,18 +444,25 @@ const areEqual = <
448
444
  prevGroupStyles?.[0] === nextGroupStyles?.[0];
449
445
  if (!groupStylesEqual) return false;
450
446
 
447
+ const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
448
+ const isNextMessageTypeDeleted = nextMessage.type === 'deleted';
449
+
451
450
  const messageEqual =
452
- prevMessage.deleted_at === nextMessage.deleted_at &&
451
+ isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&
453
452
  prevMessage.reply_count === nextMessage.reply_count &&
454
453
  prevMessage.status === nextMessage.status &&
455
454
  prevMessage.type === nextMessage.type &&
456
- prevMessage.text === nextMessage.text;
455
+ prevMessage.text === nextMessage.text &&
456
+ prevMessage.pinned === nextMessage.pinned;
457
457
 
458
458
  if (!messageEqual) return false;
459
459
 
460
+ const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';
461
+ const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';
462
+
460
463
  const quotedMessageEqual =
461
464
  prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&
462
- prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;
465
+ isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;
463
466
 
464
467
  if (!quotedMessageEqual) return false;
465
468
 
@@ -566,9 +569,7 @@ export const MessageContent = <
566
569
  MessageHeader,
567
570
  MessageReplies,
568
571
  MessageStatus,
569
- quotedRepliesEnabled,
570
572
  Reply,
571
- threadRepliesEnabled,
572
573
  } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
573
574
  const { t, tDateTimeParser } = useTranslationContext();
574
575
 
@@ -602,13 +603,11 @@ export const MessageContent = <
602
603
  onPressIn,
603
604
  otherAttachments,
604
605
  preventPress,
605
- quotedRepliesEnabled,
606
606
  Reply,
607
607
  showMessageStatus,
608
608
  t,
609
609
  tDateTimeParser,
610
610
  threadList,
611
- threadRepliesEnabled,
612
611
  }}
613
612
  {...props}
614
613
  />
@@ -160,13 +160,16 @@ const areEqual = <
160
160
 
161
161
  const alignmentEqual = prevAlignment === nextAlignment;
162
162
  if (!alignmentEqual) return false;
163
+ const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
164
+ const isNextMessageTypeDeleted = nextMessage.type === 'deleted';
163
165
 
164
166
  const messageEqual =
165
- prevMessage.deleted_at === nextMessage.deleted_at &&
167
+ isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&
166
168
  prevMessage.reply_count === nextMessage.reply_count &&
167
169
  prevMessage.status === nextMessage.status &&
168
170
  prevMessage.type === nextMessage.type &&
169
- prevMessage.text === nextMessage.text;
171
+ prevMessage.text === nextMessage.text &&
172
+ prevMessage.pinned === nextMessage.pinned;
170
173
  if (!messageEqual) return false;
171
174
 
172
175
  const formattedDateEqual = prevFormattedDate === nextFormattedDate;
@@ -55,7 +55,10 @@ type MessageFooterPropsWithContext<
55
55
  | 'showMessageStatus'
56
56
  | 'lastGroupMessage'
57
57
  > &
58
- Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageStatus'> &
58
+ Pick<
59
+ MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
60
+ 'deletedMessagesVisibilityType' | 'MessageStatus'
61
+ > &
59
62
  MessageFooterComponentProps;
60
63
 
61
64
  const MessageFooterWithContext = <
@@ -71,6 +74,7 @@ const MessageFooterWithContext = <
71
74
  ) => {
72
75
  const {
73
76
  alignment,
77
+ deletedMessagesVisibilityType,
74
78
  formattedDate,
75
79
  isDeleted,
76
80
  lastGroupMessage,
@@ -94,19 +98,24 @@ const MessageFooterWithContext = <
94
98
  if (isDeleted) {
95
99
  return (
96
100
  <View style={metaContainer} testID='message-deleted'>
97
- <Eye pathFill={isDeleted ? undefined : grey} {...eyeIcon} />
98
- <Text
99
- style={[
100
- {
101
- color: grey,
102
- textAlign: alignment,
103
- },
104
- metaText,
105
- deletedMetaText,
106
- ]}
107
- >
108
- {t('Only visible to you')}
109
- </Text>
101
+ {deletedMessagesVisibilityType === 'sender' && (
102
+ <>
103
+ <Eye pathFill={isDeleted ? undefined : grey} {...eyeIcon} />
104
+ <Text
105
+ style={[
106
+ {
107
+ color: grey,
108
+ textAlign: alignment,
109
+ },
110
+ metaText,
111
+ deletedMetaText,
112
+ ]}
113
+ testID='only-visible-to-you'
114
+ >
115
+ {t('Only visible to you')}
116
+ </Text>
117
+ </>
118
+ )}
110
119
  <Text
111
120
  style={[
112
121
  {
@@ -194,12 +203,20 @@ const areEqual = <
194
203
  const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;
195
204
  if (!lastGroupMessageEqual) return false;
196
205
 
206
+ const deletedMessagesVisibilityTypeEqual =
207
+ prevProps.deletedMessagesVisibilityType === nextProps.deletedMessagesVisibilityType;
208
+ if (!deletedMessagesVisibilityTypeEqual) return false;
209
+
210
+ const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
211
+ const isNextMessageTypeDeleted = nextMessage.type === 'deleted';
212
+
197
213
  const messageEqual =
198
- prevMessage.deleted_at === nextMessage.deleted_at &&
214
+ isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&
199
215
  prevMessage.reply_count === nextMessage.reply_count &&
200
216
  prevMessage.status === nextMessage.status &&
201
217
  prevMessage.type === nextMessage.type &&
202
- prevMessage.text === nextMessage.text;
218
+ prevMessage.text === nextMessage.text &&
219
+ prevMessage.pinned === nextMessage.pinned;
203
220
  if (!messageEqual) return false;
204
221
 
205
222
  const otherAttachmentsEqual =
@@ -253,12 +270,14 @@ export const MessageFooter = <
253
270
  const { alignment, lastGroupMessage, members, message, otherAttachments, showMessageStatus } =
254
271
  useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
255
272
 
256
- const { MessageStatus } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
273
+ const { deletedMessagesVisibilityType, MessageStatus } =
274
+ useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
257
275
 
258
276
  return (
259
277
  <MemoizedMessageFooter
260
278
  {...{
261
279
  alignment,
280
+ deletedMessagesVisibilityType,
262
281
  lastGroupMessage,
263
282
  members,
264
283
  message,
@@ -0,0 +1,150 @@
1
+ import React from 'react';
2
+ import { StyleSheet, Text, View } from 'react-native';
3
+ import { PinHeader } from '../../../icons';
4
+
5
+ import {
6
+ MessageContextValue,
7
+ useMessageContext,
8
+ } from '../../../contexts/messageContext/MessageContext';
9
+ import { useTheme } from '../../../contexts/themeContext/ThemeContext';
10
+ import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
11
+
12
+ const styles = StyleSheet.create({
13
+ container: {
14
+ display: 'flex',
15
+ flexDirection: 'row',
16
+ marginBottom: 8,
17
+ marginLeft: 30,
18
+ marginTop: 5,
19
+ },
20
+ label: {},
21
+ });
22
+
23
+ import type {
24
+ DefaultAttachmentType,
25
+ DefaultChannelType,
26
+ DefaultCommandType,
27
+ DefaultEventType,
28
+ DefaultMessageType,
29
+ DefaultReactionType,
30
+ DefaultUserType,
31
+ UnknownType,
32
+ } from '../../../types/types';
33
+ import { useChatContext } from '../../../contexts/chatContext/ChatContext';
34
+
35
+ export type MessagePinnedHeaderPropsWithContext<
36
+ At extends UnknownType = DefaultAttachmentType,
37
+ Ch extends UnknownType = DefaultChannelType,
38
+ Co extends string = DefaultCommandType,
39
+ Ev extends UnknownType = DefaultEventType,
40
+ Me extends UnknownType = DefaultMessageType,
41
+ Re extends UnknownType = DefaultReactionType,
42
+ Us extends DefaultUserType = DefaultUserType,
43
+ > = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'alignment' | 'message'>;
44
+
45
+ const MessagePinnedHeaderWithContext = <
46
+ At extends UnknownType = DefaultAttachmentType,
47
+ Ch extends UnknownType = DefaultChannelType,
48
+ Co extends string = DefaultCommandType,
49
+ Ev extends UnknownType = DefaultEventType,
50
+ Me extends UnknownType = DefaultMessageType,
51
+ Re extends UnknownType = DefaultReactionType,
52
+ Us extends DefaultUserType = DefaultUserType,
53
+ >(
54
+ props: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
55
+ ) => {
56
+ const { alignment, message } = props;
57
+ const {
58
+ theme: {
59
+ colors: { grey },
60
+ messageSimple: { pinnedHeader },
61
+ },
62
+ } = useTheme();
63
+ const { container, label } = pinnedHeader;
64
+ const { t } = useTranslationContext();
65
+ const { client } = useChatContext();
66
+ return (
67
+ <View
68
+ style={[
69
+ styles.container,
70
+ {
71
+ justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
72
+ },
73
+ container,
74
+ ]}
75
+ testID='message-pinned'
76
+ >
77
+ <PinHeader pathFill={grey} />
78
+ <Text style={[{ color: grey }, styles.label, label]}>
79
+ Pinned by{' '}
80
+ {message?.pinned_by?.id === client?.user?.id ? t('You') : message?.pinned_by?.name}
81
+ </Text>
82
+ </View>
83
+ );
84
+ };
85
+
86
+ const areEqual = <
87
+ At extends UnknownType = DefaultAttachmentType,
88
+ Ch extends UnknownType = DefaultChannelType,
89
+ Co extends string = DefaultCommandType,
90
+ Ev extends UnknownType = DefaultEventType,
91
+ Me extends UnknownType = DefaultMessageType,
92
+ Re extends UnknownType = DefaultReactionType,
93
+ Us extends UnknownType = DefaultUserType,
94
+ >(
95
+ prevProps: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
96
+ nextProps: MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
97
+ ) => {
98
+ const { message: prevMessage } = prevProps;
99
+ const { message: nextMessage } = nextProps;
100
+ const messageEqual =
101
+ prevMessage.deleted_at === nextMessage.deleted_at &&
102
+ prevMessage.status === nextMessage.status &&
103
+ prevMessage.type === nextMessage.type &&
104
+ prevMessage.text === nextMessage.text &&
105
+ prevMessage.pinned === nextMessage.pinned;
106
+ if (!messageEqual) return false;
107
+ return true;
108
+ };
109
+
110
+ const MemoizedMessagePinnedHeader = React.memo(
111
+ MessagePinnedHeaderWithContext,
112
+ areEqual,
113
+ ) as typeof MessagePinnedHeaderWithContext;
114
+
115
+ export type MessagePinnedHeaderProps<
116
+ At extends UnknownType = DefaultAttachmentType,
117
+ Ch extends UnknownType = DefaultChannelType,
118
+ Co extends string = DefaultCommandType,
119
+ Ev extends UnknownType = DefaultEventType,
120
+ Me extends UnknownType = DefaultMessageType,
121
+ Re extends UnknownType = DefaultReactionType,
122
+ Us extends DefaultUserType = DefaultUserType,
123
+ > = Partial<MessagePinnedHeaderPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;
124
+
125
+ export const MessagePinnedHeader = <
126
+ At extends UnknownType = DefaultAttachmentType,
127
+ Ch extends UnknownType = DefaultChannelType,
128
+ Co extends string = DefaultCommandType,
129
+ Ev extends UnknownType = DefaultEventType,
130
+ Me extends UnknownType = DefaultMessageType,
131
+ Re extends UnknownType = DefaultReactionType,
132
+ Us extends DefaultUserType = DefaultUserType,
133
+ >(
134
+ props: MessagePinnedHeaderProps<At, Ch, Co, Ev, Me, Re, Us>,
135
+ ) => {
136
+ const { alignment, lastGroupMessage, message } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
137
+
138
+ return (
139
+ <MemoizedMessagePinnedHeader
140
+ {...{
141
+ alignment,
142
+ lastGroupMessage,
143
+ message,
144
+ }}
145
+ {...props}
146
+ />
147
+ );
148
+ };
149
+
150
+ MessagePinnedHeader.displayName = 'MessagePinnedHeader{messageSimple{pinned}}';
@@ -220,12 +220,14 @@ const areEqual = <
220
220
  const {
221
221
  message: prevMessage,
222
222
  noBorder: prevNoBorder,
223
+ onOpenThread: prevOnOpenThread,
223
224
  t: prevT,
224
225
  threadList: prevThreadList,
225
226
  } = prevProps;
226
227
  const {
227
228
  message: nextMessage,
228
229
  noBorder: nextNoBorder,
230
+ onOpenThread: nextOnOpenThread,
229
231
  t: nextT,
230
232
  threadList: nextThreadList,
231
233
  } = nextProps;
@@ -242,6 +244,9 @@ const areEqual = <
242
244
  const tEqual = prevT === nextT;
243
245
  if (!tEqual) return false;
244
246
 
247
+ const onOpenThreadEqual = prevOnOpenThread === nextOnOpenThread;
248
+ if (!onOpenThreadEqual) return false;
249
+
245
250
  return true;
246
251
  };
247
252
 
@@ -43,7 +43,11 @@ export type MessageSimplePropsWithContext<
43
43
  > &
44
44
  Pick<
45
45
  MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,
46
- 'enableMessageGroupingByUser' | 'MessageAvatar' | 'MessageContent' | 'ReactionList'
46
+ | 'enableMessageGroupingByUser'
47
+ | 'MessageAvatar'
48
+ | 'MessageContent'
49
+ | 'MessagePinnedHeader'
50
+ | 'ReactionList'
47
51
  >;
48
52
 
49
53
  const MessageSimpleWithContext = <
@@ -66,6 +70,7 @@ const MessageSimpleWithContext = <
66
70
  message,
67
71
  MessageAvatar,
68
72
  MessageContent,
73
+ MessagePinnedHeader,
69
74
  ReactionList,
70
75
  } = props;
71
76
 
@@ -85,26 +90,29 @@ const MessageSimpleWithContext = <
85
90
  const showReactions = hasReactions && ReactionList;
86
91
 
87
92
  return (
88
- <View
89
- style={[
90
- styles.container,
91
- {
92
- justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
93
- marginBottom: hasMarginBottom
94
- ? isVeryLastMessage && enableMessageGroupingByUser
95
- ? 30
96
- : 8
97
- : 0,
98
- marginTop: showReactions ? 2 : 0,
99
- },
100
- container,
101
- ]}
102
- testID='message-simple-wrapper'
103
- >
104
- {alignment === 'left' && <MessageAvatar />}
105
- <MessageContent setMessageContentWidth={setMessageContentWidth} />
106
- {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}
107
- </View>
93
+ <>
94
+ {message.pinned && <MessagePinnedHeader />}
95
+ <View
96
+ style={[
97
+ styles.container,
98
+ {
99
+ justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end',
100
+ marginBottom: hasMarginBottom
101
+ ? isVeryLastMessage && enableMessageGroupingByUser
102
+ ? 30
103
+ : 8
104
+ : 0,
105
+ marginTop: showReactions ? 2 : 0,
106
+ },
107
+ container,
108
+ ]}
109
+ testID='message-simple-wrapper'
110
+ >
111
+ {alignment === 'left' && <MessageAvatar />}
112
+ <MessageContent setMessageContentWidth={setMessageContentWidth} />
113
+ {showReactions && <ReactionList messageContentWidth={messageContentWidth} />}
114
+ </View>
115
+ </>
108
116
  );
109
117
  };
110
118
 
@@ -142,16 +150,23 @@ const areEqual = <
142
150
  const groupStylesEqual = JSON.stringify(prevGroupStyles) === JSON.stringify(nextGroupStyles);
143
151
  if (!groupStylesEqual) return false;
144
152
 
153
+ const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
154
+ const isNextMessageTypeDeleted = nextMessage.type === 'deleted';
155
+
145
156
  const messageEqual =
146
- prevMessage.deleted_at === nextMessage.deleted_at &&
157
+ isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&
147
158
  prevMessage.status === nextMessage.status &&
148
159
  prevMessage.type === nextMessage.type &&
149
- prevMessage.text === nextMessage.text;
160
+ prevMessage.text === nextMessage.text &&
161
+ prevMessage.pinned === nextMessage.pinned;
150
162
  if (!messageEqual) return false;
151
163
 
164
+ const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';
165
+ const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';
166
+
152
167
  const quotedMessageEqual =
153
168
  prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&
154
- prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;
169
+ isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;
155
170
 
156
171
  if (!quotedMessageEqual) return false;
157
172
 
@@ -216,8 +231,13 @@ export const MessageSimple = <
216
231
  ) => {
217
232
  const { alignment, channel, groupStyles, hasReactions, message } =
218
233
  useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
219
- const { enableMessageGroupingByUser, MessageAvatar, MessageContent, ReactionList } =
220
- useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
234
+ const {
235
+ enableMessageGroupingByUser,
236
+ MessageAvatar,
237
+ MessageContent,
238
+ MessagePinnedHeader,
239
+ ReactionList,
240
+ } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
221
241
 
222
242
  return (
223
243
  <MemoizedMessageSimple<At, Ch, Co, Ev, Me, Re, Us>
@@ -230,6 +250,7 @@ export const MessageSimple = <
230
250
  message,
231
251
  MessageAvatar,
232
252
  MessageContent,
253
+ MessagePinnedHeader,
233
254
  ReactionList,
234
255
  }}
235
256
  {...props}
@@ -45,10 +45,7 @@ export type MessageStatusPropsWithContext<
45
45
  Me extends UnknownType = DefaultMessageType,
46
46
  Re extends UnknownType = DefaultReactionType,
47
47
  Us extends DefaultUserType = DefaultUserType,
48
- > = Pick<
49
- MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
50
- 'message' | 'readEventsEnabled' | 'threadList'
51
- >;
48
+ > = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'message' | 'threadList'>;
52
49
 
53
50
  const MessageStatusWithContext = <
54
51
  At extends UnknownType = DefaultAttachmentType,
@@ -61,11 +58,11 @@ const MessageStatusWithContext = <
61
58
  >(
62
59
  props: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
63
60
  ) => {
64
- const { message, readEventsEnabled, threadList } = props;
61
+ const { message, threadList } = props;
65
62
 
66
63
  const {
67
64
  theme: {
68
- colors: { accent_blue },
65
+ colors: { accent_blue, grey_dark },
69
66
  messageSimple: {
70
67
  status: { checkAllIcon, checkIcon, readByCount, statusContainer, timeIcon },
71
68
  },
@@ -80,11 +77,7 @@ const MessageStatusWithContext = <
80
77
  );
81
78
  }
82
79
 
83
- if (
84
- isMessageWithStylesReadByAndDateSeparator(message) &&
85
- !threadList &&
86
- readEventsEnabled !== false
87
- ) {
80
+ if (isMessageWithStylesReadByAndDateSeparator(message) && !threadList) {
88
81
  return (
89
82
  <View style={[styles.statusContainer, statusContainer]}>
90
83
  {typeof message.readBy === 'number' ? (
@@ -98,7 +91,7 @@ const MessageStatusWithContext = <
98
91
  {typeof message.readBy === 'number' || message.readBy === true ? (
99
92
  <CheckAll pathFill={accent_blue} {...checkAllIcon} />
100
93
  ) : (
101
- <Check {...checkIcon} />
94
+ <Check pathFill={grey_dark} {...checkIcon} />
102
95
  )}
103
96
  </View>
104
97
  );
@@ -107,7 +100,7 @@ const MessageStatusWithContext = <
107
100
  if (message.status === 'received' && message.type !== 'ephemeral' && !threadList) {
108
101
  return (
109
102
  <View style={[styles.statusContainer, statusContainer]} testID='delivered-container'>
110
- <Check {...checkIcon} />
103
+ <Check pathFill={grey_dark} {...checkIcon} />
111
104
  </View>
112
105
  );
113
106
  }
@@ -127,23 +120,12 @@ const areEqual = <
127
120
  prevProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
128
121
  nextProps: MessageStatusPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
129
122
  ) => {
130
- const {
131
- message: prevMessage,
132
- readEventsEnabled: prevReadEventsEnabled,
133
- threadList: prevThreadList,
134
- } = prevProps;
135
- const {
136
- message: nextMessage,
137
- readEventsEnabled: nextReadEventsEnabled,
138
- threadList: nextThreadList,
139
- } = nextProps;
123
+ const { message: prevMessage, threadList: prevThreadList } = prevProps;
124
+ const { message: nextMessage, threadList: nextThreadList } = nextProps;
140
125
 
141
126
  const threadListEqual = prevThreadList === nextThreadList;
142
127
  if (!threadListEqual) return false;
143
128
 
144
- const readEventsEnabledEqual = prevReadEventsEnabled === nextReadEventsEnabled;
145
- if (!readEventsEnabledEqual) return false;
146
-
147
129
  const messageEqual =
148
130
  prevMessage.status === nextMessage.status &&
149
131
  prevMessage.type === nextMessage.type &&
@@ -180,10 +162,9 @@ export const MessageStatus = <
180
162
  >(
181
163
  props: MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>,
182
164
  ) => {
183
- const { message, readEventsEnabled, threadList } =
184
- useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
165
+ const { message, threadList } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
185
166
 
186
- return <MemoizedMessageStatus {...{ message, readEventsEnabled, threadList }} {...props} />;
167
+ return <MemoizedMessageStatus {...{ message, threadList }} {...props} />;
187
168
  };
188
169
 
189
170
  MessageStatus.displayName = 'MessageStatus{messageSimple{status}}';