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
@@ -1,34 +1,22 @@
1
1
  import React from 'react';
2
- import { View } from 'react-native';
3
- import { cleanup, render, waitFor } from '@testing-library/react-native';
2
+ import { act, cleanup, render, waitFor } from '@testing-library/react-native';
4
3
 
5
4
  import { MessageList } from '../MessageList';
6
5
 
7
6
  import { Channel } from '../../Channel/Channel';
8
7
  import { Chat } from '../../Chat/Chat';
9
8
 
10
- import { ChatContext, ChatProvider } from '../../../contexts/chatContext/ChatContext';
11
-
12
9
  import { getOrCreateChannelApi } from '../../../mock-builders/api/getOrCreateChannel';
13
10
  import { useMockedApis } from '../../../mock-builders/api/useMockedApis';
14
11
  import dispatchMessageNewEvent from '../../../mock-builders/event/messageNew';
15
12
  import dispatchTypingEvent from '../../../mock-builders/event/typing';
16
13
  import { generateChannel } from '../../../mock-builders/generator/channel';
17
14
  import { generateMember } from '../../../mock-builders/generator/member';
18
- import { generateMessage, generateStaticMessage } from '../../../mock-builders/generator/message';
19
- import { generateStaticUser, generateUser } from '../../../mock-builders/generator/user';
15
+ import { generateMessage } from '../../../mock-builders/generator/message';
16
+ import { generateUser } from '../../../mock-builders/generator/user';
20
17
  import { getTestClientWithUser } from '../../../mock-builders/mock';
21
- import { ImageGalleryProvider } from '../../../contexts/imageGalleryContext/ImageGalleryContext';
22
-
23
- function MockedFlatList(props) {
24
- if (!props.data.length && props.ListEmptyComponent) return props.ListEmptyComponent();
25
-
26
- const items = props.data.map((item, index) => {
27
- const key = props.keyExtractor(item, index);
28
- return <View key={key}>{props.renderItem({ index, item })}</View>;
29
- });
30
- return <View testID={props.testID}>{items}</View>;
31
- }
18
+ import { OverlayProvider } from '../../../contexts/overlayContext/OverlayProvider';
19
+ import { registerNativeHandlers } from '../../../native';
32
20
 
33
21
  describe('MessageList', () => {
34
22
  afterEach(cleanup);
@@ -44,21 +32,20 @@ describe('MessageList', () => {
44
32
  const chatClient = await getTestClientWithUser({ id: 'testID' });
45
33
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
46
34
  const channel = chatClient.channel('messaging', mockedChannel.id);
47
- await channel.query();
48
- channel.initialized = true;
35
+ await channel.watch();
49
36
 
50
37
  const { getByText, queryAllByTestId } = render(
51
- <Chat client={chatClient}>
52
- <ImageGalleryProvider>
53
- <Channel channel={channel} FlatList={MockedFlatList}>
38
+ <OverlayProvider>
39
+ <Chat client={chatClient}>
40
+ <Channel channel={channel}>
54
41
  <MessageList />
55
42
  </Channel>
56
- </ImageGalleryProvider>
57
- </Chat>,
43
+ </Chat>
44
+ </OverlayProvider>,
58
45
  );
59
46
 
60
47
  const newMessage = generateMessage({ user: user2 });
61
- dispatchMessageNewEvent(chatClient, newMessage, mockedChannel.channel);
48
+ act(() => dispatchMessageNewEvent(chatClient, newMessage, mockedChannel.channel));
62
49
 
63
50
  await waitFor(() => {
64
51
  expect(queryAllByTestId('message-notification')).toHaveLength(0);
@@ -80,31 +67,192 @@ describe('MessageList', () => {
80
67
  const chatClient = await getTestClientWithUser({ id: 'testID' });
81
68
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
82
69
  const channel = chatClient.channel('messaging', mockedChannel.id);
83
- await channel.query();
70
+ await channel.watch();
84
71
 
85
72
  const { getByTestId, queryAllByTestId } = render(
86
- <Chat client={chatClient}>
87
- <ChatContext.Consumer>
88
- {(context) => (
89
- <ChatProvider value={{ ...context, isOnline: true }}>
90
- <ImageGalleryProvider>
91
- <Channel channel={channel} FlatList={MockedFlatList}>
92
- <MessageList />
93
- </Channel>
94
- </ImageGalleryProvider>
95
- </ChatProvider>
96
- )}
97
- </ChatContext.Consumer>
98
- </Chat>,
73
+ <OverlayProvider>
74
+ <Chat client={chatClient}>
75
+ <Channel channel={channel}>
76
+ <MessageList />
77
+ </Channel>
78
+ </Chat>
79
+ </OverlayProvider>,
99
80
  );
100
81
 
82
+ // debug()
101
83
  await waitFor(() => {
102
84
  expect(queryAllByTestId('error-notification')).toHaveLength(0);
103
- expect(queryAllByTestId('typing-indicator')).toHaveLength(0);
104
85
  expect(getByTestId('message-system')).toBeTruthy();
105
86
  });
106
87
  });
107
88
 
89
+ it('should render deleted message in the list when `deleteMessagesVisibilityType` is set to default(always)', async () => {
90
+ const user1 = generateUser();
91
+ const mockedChannel = generateChannel({
92
+ members: [generateMember({ user: user1 })],
93
+ messages: [
94
+ generateMessage({ type: 'deleted', user: user1 }),
95
+ generateMessage({ type: 'system', user: undefined }),
96
+ generateMessage({ user: user1 }),
97
+ ],
98
+ });
99
+
100
+ const chatClient = await getTestClientWithUser({ id: 'testID' });
101
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
102
+ const channel = chatClient.channel('messaging', mockedChannel.id);
103
+ await channel.watch();
104
+
105
+ const { getByTestId, queryAllByTestId, queryByTestId } = render(
106
+ <OverlayProvider>
107
+ <Chat client={chatClient}>
108
+ <Channel channel={channel}>
109
+ <MessageList />
110
+ </Channel>
111
+ </Chat>
112
+ </OverlayProvider>,
113
+ );
114
+
115
+ await waitFor(() => {
116
+ expect(queryAllByTestId('error-notification')).toHaveLength(0);
117
+ expect(getByTestId('message-deleted')).toBeTruthy();
118
+ expect(queryByTestId('only-visible-to-you')).toBeNull();
119
+ });
120
+ });
121
+
122
+ it('should render deleted message in the list when `deleteMessagesVisibilityType` is set to sender', async () => {
123
+ const user1 = generateUser();
124
+ const user2 = generateUser({ id: 'testID' });
125
+ const mockedChannel = generateChannel({
126
+ members: [generateMember({ user: user1 })],
127
+ messages: [
128
+ generateMessage({ type: 'deleted', user: user2 }),
129
+ generateMessage({ type: 'system', user: undefined }),
130
+ generateMessage({ user: user1 }),
131
+ ],
132
+ });
133
+
134
+ const chatClient = await getTestClientWithUser({ id: 'testID' });
135
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
136
+ const channel = chatClient.channel('messaging', mockedChannel.id);
137
+ await channel.watch();
138
+
139
+ const { getByTestId, queryAllByTestId, queryByTestId } = render(
140
+ <OverlayProvider>
141
+ <Chat client={chatClient}>
142
+ <Channel channel={channel} deletedMessagesVisibilityType='sender'>
143
+ <MessageList />
144
+ </Channel>
145
+ </Chat>
146
+ </OverlayProvider>,
147
+ );
148
+
149
+ await waitFor(() => {
150
+ expect(queryAllByTestId('error-notification')).toHaveLength(0);
151
+ expect(queryByTestId('message-deleted')).toBeTruthy();
152
+ expect(getByTestId('only-visible-to-you')).toBeTruthy();
153
+ });
154
+ });
155
+
156
+ it('should render deleted message in the list when `deleteMessagesVisibilityType` is set to receiver', async () => {
157
+ const user1 = generateUser();
158
+ const user2 = generateUser({ id: 'testID' });
159
+ const mockedChannel = generateChannel({
160
+ members: [generateMember({ user: user1 })],
161
+ messages: [
162
+ generateMessage({ user: user2 }),
163
+ generateMessage({ type: 'system', user: undefined }),
164
+ generateMessage({ type: 'deleted', user: user1 }),
165
+ ],
166
+ });
167
+
168
+ const chatClient = await getTestClientWithUser({ id: 'testID' });
169
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
170
+ const channel = chatClient.channel('messaging', mockedChannel.id);
171
+ await channel.watch();
172
+
173
+ const { getByTestId, queryAllByTestId, queryByTestId } = render(
174
+ <OverlayProvider>
175
+ <Chat client={chatClient}>
176
+ <Channel channel={channel} deletedMessagesVisibilityType='receiver'>
177
+ <MessageList />
178
+ </Channel>
179
+ </Chat>
180
+ </OverlayProvider>,
181
+ );
182
+
183
+ await waitFor(() => {
184
+ expect(queryAllByTestId('error-notification')).toHaveLength(0);
185
+ expect(getByTestId('message-deleted')).toBeTruthy();
186
+ expect(queryByTestId('only-visible-to-you')).toBeNull();
187
+ });
188
+ });
189
+
190
+ it('should render deleted message in the list when `deleteMessagesVisibilityType` is set to never', async () => {
191
+ const user1 = generateUser();
192
+ const user2 = generateUser({ id: 'testID' });
193
+ const mockedChannel = generateChannel({
194
+ members: [generateMember({ user: user1 })],
195
+ messages: [
196
+ generateMessage({ user: user2 }),
197
+ generateMessage({ type: 'system', user: undefined }),
198
+ generateMessage({ type: 'deleted', user: user1 }),
199
+ ],
200
+ });
201
+
202
+ const chatClient = await getTestClientWithUser({ id: 'testID' });
203
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
204
+ const channel = chatClient.channel('messaging', mockedChannel.id);
205
+ await channel.watch();
206
+
207
+ const { queryAllByTestId, queryByTestId } = render(
208
+ <OverlayProvider>
209
+ <Chat client={chatClient}>
210
+ <Channel channel={channel} deletedMessagesVisibilityType='never'>
211
+ <MessageList />
212
+ </Channel>
213
+ </Chat>
214
+ </OverlayProvider>,
215
+ );
216
+
217
+ await waitFor(() => {
218
+ expect(queryAllByTestId('error-notification')).toHaveLength(0);
219
+ expect(queryByTestId('message-deleted')).toBeNull();
220
+ expect(queryByTestId('only-visible-to-you')).toBeNull();
221
+ });
222
+ });
223
+
224
+ it('should render deleted message in the list', async () => {
225
+ const user1 = generateUser();
226
+ const mockedChannel = generateChannel({
227
+ members: [generateMember({ user: user1 })],
228
+ messages: [
229
+ generateMessage({ type: 'deleted', user: user1 }),
230
+ generateMessage({ type: 'system', user: undefined }),
231
+ generateMessage({ user: user1 }),
232
+ ],
233
+ });
234
+
235
+ const chatClient = await getTestClientWithUser({ id: 'testID' });
236
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
237
+ const channel = chatClient.channel('messaging', mockedChannel.id);
238
+ await channel.watch();
239
+
240
+ const { getByTestId, queryAllByTestId } = render(
241
+ <OverlayProvider>
242
+ <Chat client={chatClient}>
243
+ <Channel channel={channel}>
244
+ <MessageList />
245
+ </Channel>
246
+ </Chat>
247
+ </OverlayProvider>,
248
+ );
249
+
250
+ await waitFor(() => {
251
+ expect(queryAllByTestId('error-notification')).toHaveLength(0);
252
+ expect(getByTestId('message-deleted')).toBeTruthy();
253
+ });
254
+ });
255
+
108
256
  it('should render the typing indicator when typing object is non empty', async () => {
109
257
  const user1 = generateUser();
110
258
  const mockedChannel = generateChannel({
@@ -115,25 +263,21 @@ describe('MessageList', () => {
115
263
  const chatClient = await getTestClientWithUser({ id: 'testID' });
116
264
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
117
265
  const channel = chatClient.channel('messaging', mockedChannel.id);
118
- await channel.query();
266
+ await channel.watch();
119
267
 
120
268
  const { getByTestId, queryAllByTestId } = render(
121
- <Chat client={chatClient}>
122
- <ChatContext.Consumer>
123
- {(context) => (
124
- <ChatProvider value={{ ...context, isOnline: true }}>
125
- <ImageGalleryProvider>
126
- <Channel channel={channel} FlatList={MockedFlatList}>
127
- <MessageList />
128
- </Channel>
129
- </ImageGalleryProvider>
130
- </ChatProvider>
131
- )}
132
- </ChatContext.Consumer>
133
- </Chat>,
269
+ <OverlayProvider>
270
+ <Chat client={chatClient}>
271
+ <Channel channel={channel}>
272
+ <MessageList />
273
+ </Channel>
274
+ </Chat>
275
+ </OverlayProvider>,
134
276
  );
135
277
 
136
- dispatchTypingEvent(chatClient, user1, mockedChannel.channel);
278
+ act(() => {
279
+ dispatchTypingEvent(chatClient, user1, mockedChannel.channel);
280
+ });
137
281
 
138
282
  await waitFor(() => {
139
283
  expect(queryAllByTestId('message-system')).toHaveLength(0);
@@ -152,16 +296,16 @@ describe('MessageList', () => {
152
296
  const chatClient = await getTestClientWithUser({ id: 'testID' });
153
297
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
154
298
  const channel = chatClient.channel('messaging', mockedChannel.id);
155
- await channel.query();
299
+ await channel.watch();
156
300
 
157
301
  const { getByTestId } = render(
158
- <Chat client={chatClient}>
159
- <ImageGalleryProvider>
160
- <Channel channel={channel} FlatList={MockedFlatList}>
302
+ <OverlayProvider>
303
+ <Chat client={chatClient}>
304
+ <Channel channel={channel}>
161
305
  <MessageList />
162
306
  </Channel>
163
- </ImageGalleryProvider>
164
- </Chat>,
307
+ </Chat>
308
+ </OverlayProvider>,
165
309
  );
166
310
 
167
311
  await waitFor(() => {
@@ -170,6 +314,16 @@ describe('MessageList', () => {
170
314
  });
171
315
 
172
316
  it('should render the is offline error', async () => {
317
+ registerNativeHandlers({
318
+ NetInfo: {
319
+ addEventListener: () => () => null,
320
+ fetch: () =>
321
+ new Promise((resolve) => {
322
+ resolve(false);
323
+ }),
324
+ },
325
+ });
326
+
173
327
  const user1 = generateUser();
174
328
  const mockedChannel = generateChannel({
175
329
  members: [generateMember({ user: user1 })],
@@ -179,22 +333,16 @@ describe('MessageList', () => {
179
333
  const chatClient = await getTestClientWithUser({ id: 'testID' });
180
334
  useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
181
335
  const channel = chatClient.channel('messaging', mockedChannel.id);
182
- await channel.query();
336
+ await channel.watch();
183
337
 
184
338
  const { getByTestId, getByText, queryAllByTestId } = render(
185
- <Chat client={chatClient}>
186
- <ChatContext.Consumer>
187
- {(context) => (
188
- <ChatProvider value={{ ...context, isOnline: false }}>
189
- <ImageGalleryProvider>
190
- <Channel channel={channel}>
191
- <MessageList />
192
- </Channel>
193
- </ImageGalleryProvider>
194
- </ChatProvider>
195
- )}
196
- </ChatContext.Consumer>
197
- </Chat>,
339
+ <OverlayProvider>
340
+ <Chat client={chatClient}>
341
+ <Channel channel={channel}>
342
+ <MessageList />
343
+ </Channel>
344
+ </Chat>
345
+ </OverlayProvider>,
198
346
  );
199
347
 
200
348
  await waitFor(() => {
@@ -203,38 +351,15 @@ describe('MessageList', () => {
203
351
  expect(getByTestId('error-notification')).toBeTruthy();
204
352
  expect(getByText('Reconnecting...')).toBeTruthy();
205
353
  });
206
- });
207
354
 
208
- it('should render the message list and match snapshot', async () => {
209
- const user1 = generateStaticUser(1);
210
- const user2 = generateStaticUser(2);
211
- const mockedChannel = generateChannel({
212
- members: [generateMember({ user: user1 }), generateMember({ user: user1 })],
213
- messages: [
214
- generateStaticMessage('Message1', { user: user1 }, '2020-05-05T14:48:00.000Z'),
215
- generateStaticMessage('Message2', { user: user2 }, '2020-05-05T14:49:00.000Z'),
216
- generateStaticMessage('Message3', { user: user2 }, '2020-05-06T14:50:00.000Z'),
217
- ],
218
- });
219
-
220
- const chatClient = await getTestClientWithUser({ id: 'testID' });
221
- useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
222
- const channel = chatClient.channel('messaging', mockedChannel.id);
223
- await channel.query();
224
-
225
- const { queryAllByTestId, toJSON } = render(
226
- <Chat client={chatClient}>
227
- <ImageGalleryProvider>
228
- <Channel channel={channel} FlatList={MockedFlatList}>
229
- <MessageList />
230
- </Channel>
231
- </ImageGalleryProvider>
232
- </Chat>,
233
- );
234
-
235
- await waitFor(() => {
236
- expect(queryAllByTestId('date-separator')).toHaveLength(2);
237
- expect(toJSON()).toMatchSnapshot();
355
+ registerNativeHandlers({
356
+ NetInfo: {
357
+ addEventListener: () => () => null,
358
+ fetch: () =>
359
+ new Promise((resolve) => {
360
+ resolve(true);
361
+ }),
362
+ },
238
363
  });
239
364
  });
240
365
  });
@@ -24,6 +24,7 @@ import type {
24
24
  } from '../../../types/types';
25
25
 
26
26
  export type UseMessageListParams = {
27
+ deletedMessagesVisibilityType?: 'always' | 'never' | 'receiver' | 'sender';
27
28
  inverted?: boolean;
28
29
  noGroupByUser?: boolean;
29
30
  threadList?: boolean;
@@ -82,7 +83,7 @@ export const useMessageList = <
82
83
  >(
83
84
  params: UseMessageListParams,
84
85
  ) => {
85
- const { inverted, noGroupByUser, threadList } = params;
86
+ const { deletedMessagesVisibilityType, inverted, noGroupByUser, threadList } = params;
86
87
  const { client } = useChatContext<At, Ch, Co, Ev, Me, Re, Us>();
87
88
  const { hideDateSeparators, maxTimeBetweenGroupedMessages, read } =
88
89
  useChannelContext<At, Ch, Co, Ev, Me, Re, Us>();
@@ -112,7 +113,18 @@ export const useMessageList = <
112
113
  const readData = getReadStates(client.userID, messageList, readList);
113
114
 
114
115
  const messagesWithStylesReadByAndDateSeparator = messageList
115
- .filter((msg) => !msg.deleted_at || msg.user?.id === client.userID)
116
+ .filter((msg) => {
117
+ const isMessageTypeDeleted = msg.type === 'deleted';
118
+ if (deletedMessagesVisibilityType === 'sender') {
119
+ return !isMessageTypeDeleted || msg.user?.id === client.userID;
120
+ } else if (deletedMessagesVisibilityType === 'receiver') {
121
+ return !isMessageTypeDeleted || msg.user?.id !== client.userID;
122
+ } else if (deletedMessagesVisibilityType === 'never') {
123
+ return !isMessageTypeDeleted;
124
+ } else {
125
+ return msg;
126
+ }
127
+ })
116
128
  .map((msg) => ({
117
129
  ...msg,
118
130
  dateSeparator: dateSeparators[msg.id] || undefined,
@@ -49,9 +49,10 @@ export const getDateSeparators = <
49
49
  return dateSeparators;
50
50
  }
51
51
 
52
- const messagesWithoutDeleted = messages.filter(
53
- (message) => !message.deleted_at || userId === message.user?.id,
54
- );
52
+ const messagesWithoutDeleted = messages.filter((message) => {
53
+ const isMessageTypeDeleted = message.type === 'deleted';
54
+ return !isMessageTypeDeleted || userId === message.user?.id;
55
+ });
55
56
 
56
57
  for (let i = 0; i < messagesWithoutDeleted.length; i++) {
57
58
  const previousMessage = messagesWithoutDeleted[i - 1];
@@ -58,9 +58,10 @@ export const getGroupStyles = <
58
58
 
59
59
  const messageGroupStyles: { [key: string]: GroupType[] } = {};
60
60
 
61
- const messagesFilteredForNonUser = messages.filter(
62
- (message) => !message.deleted_at || userId === message.user?.id,
63
- );
61
+ const messagesFilteredForNonUser = messages.filter((message) => {
62
+ const isMessageTypeDeleted = message.type === 'deleted';
63
+ return !isMessageTypeDeleted || userId === message.user?.id;
64
+ });
64
65
 
65
66
  for (let i = 0; i < messagesFilteredForNonUser.length; i++) {
66
67
  const previousMessage = messagesFilteredForNonUser[i - 1] as
@@ -72,6 +73,9 @@ export const getGroupStyles = <
72
73
  | undefined;
73
74
  const groupStyles: GroupType[] = [];
74
75
 
76
+ const isPrevMessageTypeDeleted = previousMessage?.type === 'deleted';
77
+ const isNextMessageTypeDeleted = nextMessage?.type === 'deleted';
78
+
75
79
  const userId = message?.user?.id || null;
76
80
 
77
81
  const isTopMessage =
@@ -79,7 +83,7 @@ export const getGroupStyles = <
79
83
  previousMessage.type === 'system' ||
80
84
  userId !== previousMessage?.user?.id ||
81
85
  previousMessage.type === 'error' ||
82
- !!previousMessage.deleted_at ||
86
+ !!isPrevMessageTypeDeleted ||
83
87
  (!hideDateSeparators && dateSeparators[message.id]) ||
84
88
  messageGroupStyles[previousMessage.id]?.includes('bottom');
85
89
 
@@ -88,7 +92,7 @@ export const getGroupStyles = <
88
92
  nextMessage.type === 'system' ||
89
93
  userId !== nextMessage?.user?.id ||
90
94
  nextMessage.type === 'error' ||
91
- !!nextMessage.deleted_at ||
95
+ !!isNextMessageTypeDeleted ||
92
96
  (!hideDateSeparators && dateSeparators[nextMessage.id]) ||
93
97
  (maxTimeBetweenGroupedMessages !== undefined &&
94
98
  nextMessage.created_at.getTime() - message.created_at.getTime() >
@@ -104,12 +108,14 @@ export const getGroupStyles = <
104
108
  /**
105
109
  * Add group styles key for bottom message
106
110
  */
111
+
112
+ const isMessageTypeDeleted = message.type === 'deleted';
107
113
  if (isBottomMessage) {
108
114
  /**
109
115
  * If the bottom message is also the top, or deleted, or an error,
110
116
  * add the key for single message instead of bottom
111
117
  */
112
- if (isTopMessage || message.deleted_at || message.type === 'error') {
118
+ if (isTopMessage || isMessageTypeDeleted || message.type === 'error') {
113
119
  groupStyles.splice(0, groupStyles.length);
114
120
  groupStyles.push('single');
115
121
  } else {
@@ -122,7 +128,7 @@ export const getGroupStyles = <
122
128
  * deleted or an error add the key for single otherwise middle
123
129
  */
124
130
  if (!isTopMessage && !isBottomMessage) {
125
- if (message.deleted_at || message.type === 'error') {
131
+ if (isMessageTypeDeleted || message.type === 'error') {
126
132
  groupStyles.splice(0, groupStyles.length);
127
133
  groupStyles.push('single');
128
134
  } else {