stream-chat-react-native-core 3.10.2 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/lib/commonjs/components/Attachment/Card.js +18 -15
  2. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/Gallery.js +8 -15
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +3 -3
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  8. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  9. package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  10. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  11. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  12. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  13. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  14. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  15. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  16. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  17. package/lib/commonjs/components/Avatar/GroupAvatar.js +3 -9
  18. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  19. package/lib/commonjs/components/Channel/Channel.js +293 -208
  20. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  21. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
  22. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  23. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  24. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  25. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  26. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  27. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  28. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  29. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  30. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  31. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  32. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  33. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  34. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  35. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  36. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  37. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  38. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  39. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  40. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  41. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
  42. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  43. package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -2
  44. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  45. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  46. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  47. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  48. package/lib/commonjs/components/Message/Message.js +144 -857
  49. package/lib/commonjs/components/Message/Message.js.map +1 -1
  50. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
  51. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  52. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +4 -2
  53. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  54. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +24 -16
  55. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  56. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  57. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  58. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
  59. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  60. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
  61. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  62. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +19 -20
  63. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  64. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  65. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  66. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
  67. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  68. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +30 -11
  69. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  70. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
  71. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  72. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +294 -0
  73. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  74. package/lib/commonjs/components/Message/hooks/useMessageActions.js +559 -0
  75. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
  76. package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
  77. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  78. package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
  79. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
  80. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +2 -2
  81. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  82. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +2 -2
  83. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  84. package/lib/commonjs/components/MessageInput/InputButtons.js +16 -21
  85. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  86. package/lib/commonjs/components/MessageInput/MessageInput.js +90 -62
  87. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  88. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  89. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  90. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  91. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  92. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
  93. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
  94. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
  95. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
  96. package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
  97. package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
  98. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
  99. package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
  100. package/lib/commonjs/components/MessageList/MessageList.js +75 -42
  101. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  102. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +16 -3
  103. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  104. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
  105. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  106. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
  107. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  108. package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
  109. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
  110. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
  111. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  112. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +83 -70
  113. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  114. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
  115. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  116. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -0
  117. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  118. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  119. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  120. package/lib/commonjs/components/Thread/Thread.js +13 -4
  121. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  122. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +9 -1
  123. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  124. package/lib/commonjs/components/docs/ListProps.md +1 -1
  125. package/lib/commonjs/components/index.js +107 -55
  126. package/lib/commonjs/components/index.js.map +1 -1
  127. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  128. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  129. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  130. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  131. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  132. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  133. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  134. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
  135. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
  136. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  137. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  138. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +112 -78
  139. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  140. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  141. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  142. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  143. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  144. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  145. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  146. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  147. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +31 -24
  148. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  149. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  150. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  151. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  152. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  153. package/lib/commonjs/contexts/themeContext/utils/theme.js +25 -9
  154. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  155. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  156. package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
  157. package/lib/commonjs/emoji-data/compiled.js +0 -315
  158. package/lib/commonjs/emoji-data/compiled.js.map +1 -1
  159. package/lib/commonjs/emoji-data/emojiNames.js +0 -105
  160. package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
  161. package/lib/commonjs/emoji-data/emojis.js +0 -175
  162. package/lib/commonjs/emoji-data/emojis.js.map +1 -1
  163. package/lib/commonjs/i18n/en.json +9 -3
  164. package/lib/commonjs/i18n/fr.json +9 -3
  165. package/lib/commonjs/i18n/hi.json +9 -3
  166. package/lib/commonjs/i18n/it.json +9 -3
  167. package/lib/commonjs/i18n/ja.json +9 -0
  168. package/lib/commonjs/i18n/ko.json +9 -0
  169. package/lib/commonjs/i18n/nl.json +9 -3
  170. package/lib/commonjs/i18n/ru.json +9 -3
  171. package/lib/commonjs/i18n/tr.json +10 -4
  172. package/lib/commonjs/icons/Pin.js +42 -0
  173. package/lib/commonjs/icons/Pin.js.map +1 -0
  174. package/lib/commonjs/icons/PinHeader.js +38 -0
  175. package/lib/commonjs/icons/PinHeader.js.map +1 -0
  176. package/lib/commonjs/icons/Unpin.js +38 -0
  177. package/lib/commonjs/icons/Unpin.js.map +1 -0
  178. package/lib/commonjs/icons/index.js +39 -0
  179. package/lib/commonjs/icons/index.js.map +1 -1
  180. package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
  181. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  182. package/lib/commonjs/mock-builders/generator/channel.js +1 -0
  183. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  184. package/lib/commonjs/mock-builders/mock.js +2 -2
  185. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  186. package/lib/commonjs/native.js +1 -7
  187. package/lib/commonjs/native.js.map +1 -1
  188. package/lib/commonjs/utils/date.js +13 -0
  189. package/lib/commonjs/utils/date.js.map +1 -0
  190. package/lib/commonjs/utils/utils.js +9 -7
  191. package/lib/commonjs/utils/utils.js.map +1 -1
  192. package/lib/commonjs/version.json +1 -1
  193. package/lib/module/components/Attachment/Card.js +18 -15
  194. package/lib/module/components/Attachment/Card.js.map +1 -1
  195. package/lib/module/components/Attachment/Gallery.js +8 -15
  196. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  197. package/lib/module/components/Attachment/Giphy.js +3 -3
  198. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  199. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  200. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  201. package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  202. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  203. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  204. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  205. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  206. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  207. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  208. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  209. package/lib/module/components/Avatar/GroupAvatar.js +3 -9
  210. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  211. package/lib/module/components/Channel/Channel.js +293 -208
  212. package/lib/module/components/Channel/Channel.js.map +1 -1
  213. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
  214. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  215. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  216. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  217. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  218. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  219. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  220. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  221. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -0
  222. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  223. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +2 -1
  224. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  225. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +32 -20
  226. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  227. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +8 -7
  228. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  229. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  230. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  231. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  232. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  233. package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
  234. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  235. package/lib/module/components/ImageGallery/ImageGallery.js +1 -2
  236. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  237. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  238. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  239. package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  240. package/lib/module/components/Message/Message.js +144 -857
  241. package/lib/module/components/Message/Message.js.map +1 -1
  242. package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
  243. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  244. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +4 -2
  245. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  246. package/lib/module/components/Message/MessageSimple/MessageFooter.js +24 -16
  247. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  248. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  249. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  250. package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
  251. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  252. package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
  253. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  254. package/lib/module/components/Message/MessageSimple/MessageStatus.js +19 -20
  255. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  256. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  257. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  258. package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
  259. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  260. package/lib/module/components/Message/MessageSimple/utils/renderText.js +30 -11
  261. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  262. package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
  263. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  264. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +294 -0
  265. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  266. package/lib/module/components/Message/hooks/useMessageActions.js +559 -0
  267. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
  268. package/lib/module/components/Message/utils/messageActions.js +17 -15
  269. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  270. package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
  271. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
  272. package/lib/module/components/MessageInput/FileUploadPreview.js +2 -2
  273. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  274. package/lib/module/components/MessageInput/ImageUploadPreview.js +2 -2
  275. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  276. package/lib/module/components/MessageInput/InputButtons.js +16 -21
  277. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  278. package/lib/module/components/MessageInput/MessageInput.js +90 -62
  279. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  280. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  281. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  282. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -0
  283. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  284. package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
  285. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
  286. package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
  287. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
  288. package/lib/module/components/MessageList/DateHeader.js +2 -2
  289. package/lib/module/components/MessageList/DateHeader.js.map +1 -1
  290. package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
  291. package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
  292. package/lib/module/components/MessageList/MessageList.js +75 -42
  293. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  294. package/lib/module/components/MessageList/hooks/useMessageList.js +16 -3
  295. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  296. package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
  297. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  298. package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
  299. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  300. package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
  301. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
  302. package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
  303. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  304. package/lib/module/components/MessageOverlay/MessageOverlay.js +83 -70
  305. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  306. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
  307. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  308. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -0
  309. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  310. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  311. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  312. package/lib/module/components/Thread/Thread.js +13 -4
  313. package/lib/module/components/Thread/Thread.js.map +1 -1
  314. package/lib/module/components/Thread/components/ThreadFooterComponent.js +9 -1
  315. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  316. package/lib/module/components/docs/ListProps.md +1 -1
  317. package/lib/module/components/index.js +107 -55
  318. package/lib/module/components/index.js.map +1 -1
  319. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  320. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  321. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  322. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  323. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  324. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  325. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  326. package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
  327. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
  328. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  329. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  330. package/lib/module/contexts/messageInputContext/MessageInputContext.js +112 -78
  331. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  332. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  333. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  334. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  335. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  336. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  337. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  338. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  339. package/lib/module/contexts/overlayContext/OverlayProvider.js +31 -24
  340. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  341. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  342. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  343. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +19 -32
  344. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  345. package/lib/module/contexts/themeContext/utils/theme.js +25 -9
  346. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  347. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  348. package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
  349. package/lib/module/emoji-data/compiled.js +0 -315
  350. package/lib/module/emoji-data/compiled.js.map +1 -1
  351. package/lib/module/emoji-data/emojiNames.js +0 -105
  352. package/lib/module/emoji-data/emojiNames.js.map +1 -1
  353. package/lib/module/emoji-data/emojis.js +0 -175
  354. package/lib/module/emoji-data/emojis.js.map +1 -1
  355. package/lib/module/i18n/en.json +9 -3
  356. package/lib/module/i18n/fr.json +9 -3
  357. package/lib/module/i18n/hi.json +9 -3
  358. package/lib/module/i18n/it.json +9 -3
  359. package/lib/module/i18n/ja.json +9 -0
  360. package/lib/module/i18n/ko.json +9 -0
  361. package/lib/module/i18n/nl.json +9 -3
  362. package/lib/module/i18n/ru.json +9 -3
  363. package/lib/module/i18n/tr.json +10 -4
  364. package/lib/module/icons/Pin.js +42 -0
  365. package/lib/module/icons/Pin.js.map +1 -0
  366. package/lib/module/icons/PinHeader.js +38 -0
  367. package/lib/module/icons/PinHeader.js.map +1 -0
  368. package/lib/module/icons/Unpin.js +38 -0
  369. package/lib/module/icons/Unpin.js.map +1 -0
  370. package/lib/module/icons/index.js +39 -0
  371. package/lib/module/icons/index.js.map +1 -1
  372. package/lib/module/mock-builders/api/sendMessage.js +4 -1
  373. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  374. package/lib/module/mock-builders/generator/channel.js +1 -0
  375. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  376. package/lib/module/mock-builders/mock.js +2 -2
  377. package/lib/module/mock-builders/mock.js.map +1 -1
  378. package/lib/module/native.js +1 -7
  379. package/lib/module/native.js.map +1 -1
  380. package/lib/module/utils/date.js +13 -0
  381. package/lib/module/utils/date.js.map +1 -0
  382. package/lib/module/utils/utils.js +9 -7
  383. package/lib/module/utils/utils.js.map +1 -1
  384. package/lib/module/version.json +1 -1
  385. package/lib/typescript/components/Attachment/Card.d.ts +2 -0
  386. package/lib/typescript/components/Attachment/Gallery.d.ts +3 -2
  387. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
  388. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
  389. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
  390. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
  391. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +22 -0
  392. package/lib/typescript/components/Channel/Channel.d.ts +11 -10
  393. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  394. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
  395. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
  396. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
  397. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +1 -1
  398. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
  399. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +1 -0
  400. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  401. package/lib/typescript/components/Message/Message.d.ts +3 -2
  402. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  403. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
  404. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  405. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
  406. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
  407. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
  408. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +1 -0
  409. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  410. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
  411. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
  412. package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
  413. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
  414. package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
  415. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  416. package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
  417. package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
  418. package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
  419. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
  420. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
  421. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
  422. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
  423. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
  424. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
  425. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
  426. package/lib/typescript/components/index.d.ts +11 -7
  427. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
  428. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
  429. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -1
  430. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
  431. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
  432. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
  433. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +15 -6
  434. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +1 -1
  435. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +8 -11
  436. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +15 -106
  437. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +10 -3
  438. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
  439. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +15 -14
  440. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +24 -8
  441. package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
  442. package/lib/typescript/i18n/en.json +9 -3
  443. package/lib/typescript/i18n/fr.json +9 -3
  444. package/lib/typescript/i18n/hi.json +9 -3
  445. package/lib/typescript/i18n/it.json +9 -3
  446. package/lib/typescript/i18n/ja.json +9 -0
  447. package/lib/typescript/i18n/ko.json +9 -0
  448. package/lib/typescript/i18n/nl.json +9 -3
  449. package/lib/typescript/i18n/ru.json +9 -3
  450. package/lib/typescript/i18n/tr.json +10 -4
  451. package/lib/typescript/icons/Pin.d.ts +3 -0
  452. package/lib/typescript/icons/PinHeader.d.ts +3 -0
  453. package/lib/typescript/icons/Unpin.d.ts +3 -0
  454. package/lib/typescript/icons/index.d.ts +3 -0
  455. package/lib/typescript/native.d.ts +1 -9
  456. package/lib/typescript/utils/Streami18n.d.ts +9 -6
  457. package/lib/typescript/utils/date.d.ts +2 -0
  458. package/lib/typescript/utils/utils.d.ts +8 -10
  459. package/package.json +5 -3
  460. package/src/components/Attachment/Card.tsx +5 -1
  461. package/src/components/Attachment/Gallery.tsx +5 -10
  462. package/src/components/Attachment/Giphy.tsx +3 -3
  463. package/src/components/Attachment/__tests__/Attachment.test.js +13 -6
  464. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +41 -27
  465. package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +2 -56
  466. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
  467. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +154 -0
  468. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +213 -0
  469. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +0 -4
  470. package/src/components/Avatar/GroupAvatar.tsx +0 -19
  471. package/src/components/Avatar/__tests__/Avatar.test.js +0 -28
  472. package/src/components/Channel/Channel.tsx +225 -176
  473. package/src/components/Channel/__tests__/Channel.test.js +25 -20
  474. package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
  475. package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
  476. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
  477. package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
  478. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +53 -0
  479. package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +1 -1
  480. package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +4 -1
  481. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +16 -4
  482. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -1
  483. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +6 -0
  484. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +2 -1
  485. package/src/components/Chat/__tests__/Chat.test.js +6 -2
  486. package/src/components/Chat/hooks/useIsOnline.ts +8 -5
  487. package/src/components/ImageGallery/ImageGallery.tsx +3 -2
  488. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +4 -5
  489. package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
  490. package/src/components/Message/Message.tsx +140 -579
  491. package/src/components/Message/MessageSimple/MessageContent.tsx +21 -22
  492. package/src/components/Message/MessageSimple/MessageDeleted.tsx +5 -2
  493. package/src/components/Message/MessageSimple/MessageFooter.tsx +36 -17
  494. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
  495. package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
  496. package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
  497. package/src/components/Message/MessageSimple/MessageStatus.tsx +10 -29
  498. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
  499. package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
  500. package/src/components/Message/MessageSimple/__tests__/Message.test.js +0 -1
  501. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +32 -22
  502. package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
  503. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
  504. package/src/components/Message/MessageSimple/utils/renderText.tsx +11 -0
  505. package/src/components/Message/hooks/useCreateMessageContext.ts +0 -5
  506. package/src/components/Message/hooks/useMessageActionHandlers.ts +163 -0
  507. package/src/components/Message/hooks/useMessageActions.tsx +381 -0
  508. package/src/components/Message/utils/messageActions.ts +64 -38
  509. package/src/components/MessageInput/CooldownTimer.tsx +66 -0
  510. package/src/components/MessageInput/FileUploadPreview.tsx +2 -2
  511. package/src/components/MessageInput/ImageUploadPreview.tsx +2 -2
  512. package/src/components/MessageInput/InputButtons.tsx +4 -10
  513. package/src/components/MessageInput/MessageInput.tsx +59 -31
  514. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
  515. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +1 -1
  516. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +29 -29
  517. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +12 -12
  518. package/src/components/MessageInput/__tests__/MessageInput.test.js +8 -16
  519. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +6061 -2789
  520. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
  521. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1167 -282
  522. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
  523. package/src/components/MessageInput/hooks/useCooldown.ts +60 -0
  524. package/src/components/MessageInput/hooks/useCountdown.ts +47 -0
  525. package/src/components/MessageList/DateHeader.tsx +2 -2
  526. package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
  527. package/src/components/MessageList/MessageList.tsx +60 -36
  528. package/src/components/MessageList/__tests__/MessageList.test.js +231 -106
  529. package/src/components/MessageList/hooks/useMessageList.ts +14 -2
  530. package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
  531. package/src/components/MessageList/utils/getGroupStyles.ts +13 -7
  532. package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +57 -89
  533. package/src/components/MessageOverlay/MessageActionListItem.tsx +111 -0
  534. package/src/components/MessageOverlay/MessageOverlay.tsx +242 -205
  535. package/src/components/MessageOverlay/OverlayBackdrop.tsx +17 -0
  536. package/src/components/MessageOverlay/OverlayReactionList.tsx +1 -1
  537. package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +43 -0
  538. package/src/components/Thread/Thread.tsx +8 -0
  539. package/src/components/Thread/__tests__/Thread.test.js +28 -101
  540. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
  541. package/src/components/Thread/components/ThreadFooterComponent.tsx +13 -1
  542. package/src/components/docs/ListProps.md +1 -1
  543. package/src/components/index.ts +11 -7
  544. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +33 -0
  545. package/src/contexts/channelContext/ChannelContext.tsx +27 -30
  546. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -1
  547. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +287 -0
  548. package/src/contexts/channelsStateContext/useChannelState.ts +206 -0
  549. package/src/contexts/messageContext/MessageContext.tsx +1 -8
  550. package/src/contexts/messageInputContext/MessageInputContext.tsx +56 -18
  551. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +7 -3
  552. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +12 -12
  553. package/src/contexts/messagesContext/MessagesContext.tsx +28 -129
  554. package/src/contexts/overlayContext/OverlayContext.tsx +10 -4
  555. package/src/contexts/overlayContext/OverlayProvider.tsx +21 -20
  556. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
  557. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +27 -48
  558. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +0 -1
  559. package/src/contexts/themeContext/utils/theme.ts +48 -16
  560. package/src/contexts/translationContext/TranslationContext.tsx +1 -1
  561. package/src/contexts/utils/getDisplayName.ts +2 -1
  562. package/src/emoji-data/compiled.ts +1830 -9609
  563. package/src/emoji-data/emojiNames.ts +0 -140
  564. package/src/emoji-data/emojis.ts +0 -210
  565. package/src/i18n/en.json +9 -3
  566. package/src/i18n/fr.json +9 -3
  567. package/src/i18n/hi.json +9 -3
  568. package/src/i18n/it.json +9 -3
  569. package/src/i18n/ja.json +9 -0
  570. package/src/i18n/ko.json +9 -0
  571. package/src/i18n/nl.json +9 -3
  572. package/src/i18n/ru.json +9 -3
  573. package/src/i18n/tr.json +10 -4
  574. package/src/icons/Pin.tsx +17 -0
  575. package/src/icons/PinHeader.tsx +12 -0
  576. package/src/icons/Unpin.tsx +12 -0
  577. package/src/icons/index.ts +3 -0
  578. package/src/mock-builders/api/sendMessage.js +3 -2
  579. package/src/mock-builders/generator/channel.js +18 -0
  580. package/src/mock-builders/mock.js +2 -2
  581. package/src/native.ts +1 -13
  582. package/src/utils/date.ts +4 -0
  583. package/src/utils/utils.ts +14 -12
  584. package/src/version.json +1 -1
  585. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
  586. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  587. package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  588. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
  589. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  590. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
  591. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  592. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
  593. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  594. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
  595. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  596. package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
  597. package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
  598. package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  599. package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  600. package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
  601. package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  602. package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
  603. package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  604. package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
  605. package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  606. package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
  607. package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  608. package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
  609. package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
  610. package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
  611. package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
  612. package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
  613. package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
  614. package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
  615. package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
  616. package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
  617. package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
  618. package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
  619. package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
  620. package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
  621. package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
  622. package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
  623. package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
@@ -57,6 +57,7 @@ export type MessageTextContainerPropsWithContext<
57
57
  Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'markdownRules' | 'MessageText'> & {
58
58
  markdownStyles?: MarkdownStyle;
59
59
  messageOverlay?: boolean;
60
+ messageTextNumberOfLines?: number;
60
61
  styles?: Partial<{
61
62
  textContainer: StyleProp<ViewStyle>;
62
63
  }>;
@@ -81,6 +82,7 @@ const MessageTextContainerWithContext = <
81
82
  message,
82
83
  messageOverlay,
83
84
  MessageText,
85
+ messageTextNumberOfLines,
84
86
  onLongPress,
85
87
  onlyEmojis,
86
88
  onPress,
@@ -121,6 +123,7 @@ const MessageTextContainerWithContext = <
121
123
  },
122
124
  message,
123
125
  messageOverlay,
126
+ messageTextNumberOfLines,
124
127
  onLongPress,
125
128
  onlyEmojis,
126
129
  onPress,
@@ -192,6 +195,7 @@ export const MessageTextContainer = <
192
195
  const { message, onLongPress, onlyEmojis, onPress, preventPress } =
193
196
  useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
194
197
  const { markdownRules, MessageText } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
198
+ const { messageTextNumberOfLines } = props;
195
199
 
196
200
  return (
197
201
  <MemoizedMessageTextContainer
@@ -199,6 +203,7 @@ export const MessageTextContainer = <
199
203
  markdownRules,
200
204
  message,
201
205
  MessageText,
206
+ messageTextNumberOfLines,
202
207
  onLongPress,
203
208
  onlyEmojis,
204
209
  onPress,
@@ -1,12 +1,6 @@
1
- import React, { useEffect } from 'react';
2
- import { StyleSheet, TouchableOpacity, useWindowDimensions, View, ViewStyle } from 'react-native';
3
- import Animated, {
4
- useAnimatedStyle,
5
- useSharedValue,
6
- withDelay,
7
- withSequence,
8
- withTiming,
9
- } from 'react-native-reanimated';
1
+ import React from 'react';
2
+ import { StyleSheet, TouchableOpacity, useWindowDimensions, View } from 'react-native';
3
+
10
4
  import Svg, { Circle } from 'react-native-svg';
11
5
 
12
6
  import {
@@ -14,7 +8,10 @@ import {
14
8
  Reactions,
15
9
  useMessageContext,
16
10
  } from '../../../contexts/messageContext/MessageContext';
17
- import { useMessagesContext } from '../../../contexts/messagesContext/MessagesContext';
11
+ import {
12
+ MessagesContextValue,
13
+ useMessagesContext,
14
+ } from '../../../contexts/messagesContext/MessagesContext';
18
15
  import { useTheme } from '../../../contexts/themeContext/ThemeContext';
19
16
 
20
17
  import { Unknown } from '../../../icons/Unknown';
@@ -64,36 +61,10 @@ const Icon: React.FC<
64
61
  const ReactionIcon =
65
62
  supportedReactions.find((reaction) => reaction.type === type)?.Icon || Unknown;
66
63
 
67
- const scale = useSharedValue(0);
68
-
69
- const showReaction = () => {
70
- 'worklet';
71
- scale.value = withSequence(
72
- withDelay(250, withTiming(0.5, { duration: 100 })),
73
- withTiming(1.5, { duration: 400 }),
74
- withTiming(1, { duration: 500 }),
75
- );
76
- };
77
-
78
- useEffect(() => {
79
- showReaction();
80
- }, []);
81
-
82
- const animatedStyle = useAnimatedStyle<ViewStyle>(
83
- () => ({
84
- transform: [
85
- {
86
- scale: scale.value,
87
- },
88
- ],
89
- }),
90
- [],
91
- );
92
-
93
64
  return (
94
- <Animated.View style={animatedStyle}>
65
+ <View>
95
66
  <ReactionIcon height={size} pathFill={pathFill} style={style} width={size} />
96
- </Animated.View>
67
+ </View>
97
68
  );
98
69
  };
99
70
 
@@ -108,21 +79,23 @@ export type ReactionListPropsWithContext<
108
79
  > = Pick<
109
80
  MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,
110
81
  | 'alignment'
82
+ | 'message'
111
83
  | 'onLongPress'
112
84
  | 'onPress'
113
85
  | 'onPressIn'
114
86
  | 'preventPress'
115
87
  | 'reactions'
116
88
  | 'showMessageOverlay'
117
- > & {
118
- messageContentWidth: number;
119
- supportedReactions: ReactionData[];
120
- fill?: string;
121
- radius?: number; // not recommended to change this
122
- reactionSize?: number;
123
- stroke?: string;
124
- strokeSize?: number; // not recommended to change this
125
- };
89
+ > &
90
+ Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'targetedMessage'> & {
91
+ messageContentWidth: number;
92
+ supportedReactions: ReactionData[];
93
+ fill?: string;
94
+ radius?: number; // not recommended to change this
95
+ reactionSize?: number;
96
+ stroke?: string;
97
+ strokeSize?: number; // not recommended to change this
98
+ };
126
99
 
127
100
  const ReactionListWithContext = <
128
101
  At extends UnknownType = DefaultAttachmentType,
@@ -138,6 +111,7 @@ const ReactionListWithContext = <
138
111
  const {
139
112
  alignment,
140
113
  fill: propFill,
114
+ message,
141
115
  messageContentWidth,
142
116
  onLongPress,
143
117
  onPress,
@@ -150,11 +124,20 @@ const ReactionListWithContext = <
150
124
  stroke: propStroke,
151
125
  strokeSize: propStrokeSize,
152
126
  supportedReactions,
127
+ targetedMessage,
153
128
  } = props;
154
129
 
155
130
  const {
156
131
  theme: {
157
- colors: { accent_blue, grey, grey_gainsboro, grey_whisper, white },
132
+ colors: {
133
+ accent_blue,
134
+ grey,
135
+ grey_gainsboro,
136
+ grey_whisper,
137
+ targetedMessageBackground,
138
+ white,
139
+ white_snow,
140
+ },
158
141
  messageSimple: {
159
142
  avatarWrapper: { leftAlign, spacer },
160
143
  reactionList: {
@@ -171,8 +154,6 @@ const ReactionListWithContext = <
171
154
  },
172
155
  } = useTheme();
173
156
 
174
- const opacity = useSharedValue(0);
175
-
176
157
  const width = useWindowDimensions().width;
177
158
 
178
159
  const supportedReactionTypes = supportedReactions.map(
@@ -182,22 +163,6 @@ const ReactionListWithContext = <
182
163
  supportedReactionTypes.includes(reaction.type),
183
164
  );
184
165
 
185
- const showReactions = (show: boolean) => {
186
- 'worklet';
187
- opacity.value = show ? withDelay(250, withTiming(1, { duration: 500 })) : 0;
188
- };
189
-
190
- useEffect(() => {
191
- showReactions(hasSupportedReactions && messageContentWidth !== 0);
192
- }, [hasSupportedReactions, messageContentWidth]);
193
-
194
- const animatedStyle = useAnimatedStyle<ViewStyle>(
195
- () => ({
196
- opacity: opacity.value,
197
- }),
198
- [],
199
- );
200
-
201
166
  if (!hasSupportedReactions || messageContentWidth === 0) {
202
167
  return null;
203
168
  }
@@ -206,7 +171,8 @@ const ReactionListWithContext = <
206
171
  const fill = propFill || alignmentLeft ? grey_gainsboro : grey_whisper;
207
172
  const radius = propRadius || themeRadius;
208
173
  const reactionSize = propReactionSize || themeReactionSize;
209
- const stroke = propStroke || white;
174
+ const highlighted = message.pinned || targetedMessage === message.id;
175
+ const stroke = propStroke || (highlighted ? targetedMessageBackground : white_snow);
210
176
  const strokeSize = propStrokeSize || themeStrokeSize;
211
177
 
212
178
  const x1 = alignmentLeft
@@ -271,20 +237,20 @@ const ReactionListWithContext = <
271
237
  testID='reaction-list'
272
238
  >
273
239
  {reactions.length ? (
274
- <Animated.View style={[StyleSheet.absoluteFill, animatedStyle]}>
240
+ <View style={[StyleSheet.absoluteFill]}>
275
241
  <Svg>
276
242
  <Circle cx={x1} cy={y1} fill={stroke} r={radius + strokeSize * 3} />
277
243
  <Circle cx={x2} cy={y2} fill={stroke} r={radius * 2 + strokeSize * 3} />
278
244
  <Circle cx={x1} cy={y1} fill={fill} r={radius + strokeSize} />
279
245
  <Circle cx={x2} cy={y2} fill={fill} r={radius * 2 + strokeSize} />
280
- <Circle cx={x1} cy={y1} fill={alignmentLeft ? fill : stroke} r={radius} />
281
- <Circle cx={x2} cy={y2} fill={alignmentLeft ? fill : stroke} r={radius * 2} />
246
+ <Circle cx={x1} cy={y1} fill={alignmentLeft ? fill : white} r={radius} />
247
+ <Circle cx={x2} cy={y2} fill={alignmentLeft ? fill : white} r={radius * 2} />
282
248
  </Svg>
283
249
  <View
284
250
  style={[
285
251
  styles.reactionBubbleBackground,
286
252
  {
287
- backgroundColor: alignmentLeft ? fill : stroke,
253
+ backgroundColor: alignmentLeft ? fill : white,
288
254
  borderColor: fill,
289
255
  borderRadius: reactionSize,
290
256
  borderWidth: strokeSize,
@@ -297,14 +263,14 @@ const ReactionListWithContext = <
297
263
  />
298
264
  <View style={[StyleSheet.absoluteFill]}>
299
265
  <Svg>
300
- <Circle cx={x2} cy={y2} fill={alignmentLeft ? fill : stroke} r={radius * 2} />
266
+ <Circle cx={x2} cy={y2} fill={alignmentLeft ? fill : white} r={radius * 2} />
301
267
  </Svg>
302
268
  </View>
303
269
  <View
304
270
  style={[
305
271
  styles.reactionBubble,
306
272
  {
307
- backgroundColor: alignmentLeft ? fill : stroke,
273
+ backgroundColor: alignmentLeft ? fill : white,
308
274
  borderRadius: reactionSize - strokeSize * 2,
309
275
  height: reactionSize - strokeSize * 2,
310
276
  left: left + strokeSize,
@@ -325,7 +291,7 @@ const ReactionListWithContext = <
325
291
  />
326
292
  ))}
327
293
  </View>
328
- </Animated.View>
294
+ </View>
329
295
  ) : null}
330
296
  </TouchableOpacity>
331
297
  );
@@ -343,12 +309,30 @@ const areEqual = <
343
309
  prevProps: ReactionListPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
344
310
  nextProps: ReactionListPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,
345
311
  ) => {
346
- const { messageContentWidth: prevMessageContentWidth, reactions: prevReactions } = prevProps;
347
- const { messageContentWidth: nextMessageContentWidth, reactions: nextReactions } = nextProps;
312
+ const {
313
+ message: prevMessage,
314
+ messageContentWidth: prevMessageContentWidth,
315
+ reactions: prevReactions,
316
+ targetedMessage: prevTargetedMessage,
317
+ } = prevProps;
318
+ const {
319
+ message: nextMessage,
320
+ messageContentWidth: nextMessageContentWidth,
321
+ reactions: nextReactions,
322
+ targetedMessage: nextTargetedMessage,
323
+ } = nextProps;
348
324
 
349
325
  const messageContentWidthEqual = prevMessageContentWidth === nextMessageContentWidth;
350
326
  if (!messageContentWidthEqual) return false;
351
327
 
328
+ const messagePinnedEqual = prevMessage.pinned === nextMessage.pinned;
329
+
330
+ if (!messagePinnedEqual) return false;
331
+
332
+ const targetedMessageEqual = prevTargetedMessage === nextTargetedMessage;
333
+
334
+ if (!targetedMessageEqual) return false;
335
+
352
336
  const reactionsEqual =
353
337
  prevReactions.length === nextReactions.length &&
354
338
  prevReactions.every(
@@ -393,6 +377,7 @@ export const ReactionList = <
393
377
  ) => {
394
378
  const {
395
379
  alignment,
380
+ message,
396
381
  onLongPress,
397
382
  onPress,
398
383
  onPressIn,
@@ -400,12 +385,13 @@ export const ReactionList = <
400
385
  reactions,
401
386
  showMessageOverlay,
402
387
  } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();
403
- const { supportedReactions } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
388
+ const { supportedReactions, targetedMessage } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();
404
389
 
405
390
  return (
406
391
  <MemoizedReactionList
407
392
  {...{
408
393
  alignment,
394
+ message,
409
395
  onLongPress,
410
396
  onPress,
411
397
  onPressIn,
@@ -413,6 +399,7 @@ export const ReactionList = <
413
399
  reactions,
414
400
  showMessageOverlay,
415
401
  supportedReactions,
402
+ targetedMessage,
416
403
  }}
417
404
  {...props}
418
405
  />
@@ -70,7 +70,6 @@ describe('Message', () => {
70
70
  const onLongPressMessage = jest.fn();
71
71
 
72
72
  const { getByTestId } = renderMessage({
73
- animatedLongPress: false,
74
73
  message,
75
74
  onLongPressMessage,
76
75
  });
@@ -8,6 +8,8 @@ import { MessageContent } from '../../MessageSimple/MessageContent';
8
8
  import { Chat } from '../../../Chat/Chat';
9
9
  import { Channel } from '../../../Channel/Channel';
10
10
 
11
+ import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
12
+
11
13
  import { getOrCreateChannelApi } from '../../../../mock-builders/api/getOrCreateChannel';
12
14
  import { useMockedApis } from '../../../../mock-builders/api/useMockedApis';
13
15
  import { generateChannel } from '../../../../mock-builders/generator/channel';
@@ -38,11 +40,13 @@ describe('MessageContent', () => {
38
40
 
39
41
  renderMessage = (options) =>
40
42
  render(
41
- <Chat client={chatClient}>
42
- <Channel channel={channel}>
43
- <Message groupStyles={['bottom']} {...options} />
44
- </Channel>
45
- </Chat>,
43
+ <ChannelsStateProvider>
44
+ <Chat client={chatClient}>
45
+ <Channel channel={channel}>
46
+ <Message groupStyles={['bottom']} {...options} />
47
+ </Channel>
48
+ </Chat>
49
+ </ChannelsStateProvider>,
46
50
  );
47
51
  });
48
52
 
@@ -90,12 +94,12 @@ describe('MessageContent', () => {
90
94
  });
91
95
  });
92
96
 
93
- it('renders a message deleted message when `message.deleted_at` exists', async () => {
97
+ it('renders a message deleted message when `message.type` is `deleted`', async () => {
94
98
  const user = generateUser();
95
99
  const message = generateMessage({ user });
96
100
 
97
101
  const { getByTestId } = renderMessage({
98
- message: { ...message, deleted_at: true },
102
+ message: { ...message, type: 'deleted' },
99
103
  });
100
104
 
101
105
  await waitFor(() => {
@@ -111,11 +115,13 @@ describe('MessageContent', () => {
111
115
  const ContextMessageHeader = (props) => <View {...props} testID='message-header' />;
112
116
 
113
117
  const { getByTestId } = render(
114
- <Chat client={chatClient}>
115
- <Channel channel={channel} MessageHeader={ContextMessageHeader}>
116
- <Message groupStyles={['bottom']} message={message} />
117
- </Channel>
118
- </Chat>,
118
+ <ChannelsStateProvider>
119
+ <Chat client={chatClient}>
120
+ <Channel channel={channel} MessageHeader={ContextMessageHeader}>
121
+ <Message groupStyles={['bottom']} message={message} />
122
+ </Channel>
123
+ </Chat>
124
+ </ChannelsStateProvider>,
119
125
  );
120
126
 
121
127
  await waitFor(() => {
@@ -131,11 +137,13 @@ describe('MessageContent', () => {
131
137
  const ContextMessageFooter = (props) => <View {...props} testID='message-footer' />;
132
138
 
133
139
  const { getByTestId } = render(
134
- <Chat client={chatClient}>
135
- <Channel channel={channel} MessageFooter={ContextMessageFooter}>
136
- <Message groupStyles={['bottom']} message={message} />
137
- </Channel>
138
- </Chat>,
140
+ <ChannelsStateProvider>
141
+ <Chat client={chatClient}>
142
+ <Channel channel={channel} MessageFooter={ContextMessageFooter}>
143
+ <Message groupStyles={['bottom']} message={message} />
144
+ </Channel>
145
+ </Chat>
146
+ </ChannelsStateProvider>,
139
147
  );
140
148
 
141
149
  await waitFor(() => {
@@ -227,11 +235,13 @@ describe('MessageContent', () => {
227
235
  };
228
236
 
229
237
  const { getByTestId } = render(
230
- <Chat client={chatClient}>
231
- <Channel channel={channel} MessageContent={MessageContentWithMockedMessageContentWidth}>
232
- <Message groupStyles={['bottom']} message={message} reactionsEnabled />
233
- </Channel>
234
- </Chat>,
238
+ <ChannelsStateProvider>
239
+ <Chat client={chatClient}>
240
+ <Channel channel={channel} MessageContent={MessageContentWithMockedMessageContentWidth}>
241
+ <Message groupStyles={['bottom']} message={message} reactionsEnabled />
242
+ </Channel>
243
+ </Chat>
244
+ </ChannelsStateProvider>,
235
245
  );
236
246
 
237
247
  await waitFor(() => {
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { cleanup, render, waitFor } from '@testing-library/react-native';
3
+
4
+ import { MessagePinnedHeader } from '../MessagePinnedHeader';
5
+
6
+ import { ThemeProvider } from '../../../../contexts/themeContext/ThemeContext';
7
+ import { defaultTheme } from '../../../../contexts/themeContext/utils/theme';
8
+ import {
9
+ generateMessage,
10
+ generateStaticMessage,
11
+ } from '../../../../mock-builders/generator/message';
12
+ import { generateStaticUser } from '../../../../mock-builders/generator/user';
13
+
14
+ afterEach(cleanup);
15
+
16
+ describe('MessagePinnedHeader', () => {
17
+ it('should render message pinned', async () => {
18
+ const staticUser = generateStaticUser(0);
19
+ const message = generateMessage({
20
+ user: { ...staticUser, image: undefined },
21
+ });
22
+ const { getByTestId, rerender, toJSON } = render(
23
+ <ThemeProvider style={defaultTheme}>
24
+ <MessagePinnedHeader alignment='right' message={message} />
25
+ </ThemeProvider>,
26
+ );
27
+
28
+ await waitFor(() => {
29
+ expect(getByTestId('message-pinned')).toBeTruthy();
30
+ });
31
+
32
+ rerender(
33
+ <ThemeProvider style={defaultTheme}>
34
+ <MessagePinnedHeader alignment='right' message={message} />
35
+ </ThemeProvider>,
36
+ );
37
+
38
+ const staticMessage = generateStaticMessage('hi', {
39
+ user: staticUser,
40
+ });
41
+
42
+ rerender(
43
+ <ThemeProvider style={defaultTheme}>
44
+ <MessagePinnedHeader alignment='left' message={staticMessage} />
45
+ </ThemeProvider>,
46
+ );
47
+
48
+ await waitFor(() => {
49
+ expect(getByTestId('message-pinned')).toBeTruthy();
50
+ expect(toJSON()).toMatchSnapshot();
51
+ });
52
+ });
53
+ });
@@ -0,0 +1,80 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`MessagePinnedHeader should render message pinned 1`] = `
4
+ <View
5
+ style={
6
+ Array [
7
+ Object {
8
+ "display": "flex",
9
+ "flexDirection": "row",
10
+ "marginBottom": 8,
11
+ "marginLeft": 30,
12
+ "marginTop": 5,
13
+ },
14
+ Object {
15
+ "justifyContent": "flex-start",
16
+ },
17
+ Object {},
18
+ ]
19
+ }
20
+ testID="message-pinned"
21
+ >
22
+ <RNSVGSvgView
23
+ align="xMidYMid"
24
+ bbHeight={24}
25
+ bbWidth={24}
26
+ focusable={false}
27
+ height={24}
28
+ meetOrSlice={0}
29
+ minX={0}
30
+ minY={0}
31
+ pathFill="#7A7A7A"
32
+ style={
33
+ Array [
34
+ Object {
35
+ "backgroundColor": "transparent",
36
+ "borderWidth": 0,
37
+ },
38
+ Object {
39
+ "flex": 0,
40
+ "height": 24,
41
+ "width": 24,
42
+ },
43
+ ]
44
+ }
45
+ vbHeight={24}
46
+ vbWidth={24}
47
+ width={24}
48
+ >
49
+ <RNSVGGroup>
50
+ <RNSVGPath
51
+ clipRule={0}
52
+ d="M10.694 1.52908C10.5304 1.36544 10.2937 1.2982 10.0685 1.35137C9.84327 1.40454 9.6616 1.57053 9.5884 1.79006L9.16613 3.05694L6.72027 5.50284C5.12809 5.14216 3.59999 5.79028 2.19557 7.1947C1.93481 7.45543 1.93481 7.87823 2.19557 8.13896L4.55625 10.4997L3.1399 11.916C2.87915 12.1768 2.87915 12.5995 3.1399 12.8603C3.40065 13.1211 3.82342 13.1211 4.08417 12.8603L5.50051 11.4439L7.8612 13.8046C8.12193 14.0654 8.54473 14.0654 8.80547 13.8046C10.2099 12.4002 10.858 10.8721 10.4973 9.2799L12.9432 6.83403L14.2101 6.41173C14.4296 6.33855 14.5956 6.15692 14.6488 5.9317C14.7019 5.70648 14.6347 5.46979 14.4711 5.30616L10.694 1.52908ZM10.3832 3.62876L10.5137 3.23728L12.7629 5.4865L12.3714 5.617C12.2731 5.64977 12.1837 5.705 12.1104 5.7783L9.2776 8.6111C9.09873 8.78996 9.03633 9.05443 9.11627 9.29436C9.43453 10.249 9.2382 11.2566 8.31287 12.3678L3.6324 7.6873C4.74353 6.76196 5.7511 6.56564 6.7058 6.8839C6.94573 6.96383 7.2102 6.90143 7.38906 6.72256L10.2219 3.88975C10.2951 3.81646 10.3504 3.7271 10.3832 3.62876Z"
53
+ fill={4286216826}
54
+ fillRule={0}
55
+ propList={
56
+ Array [
57
+ "fill",
58
+ "fillRule",
59
+ ]
60
+ }
61
+ />
62
+ </RNSVGGroup>
63
+ </RNSVGSvgView>
64
+ <Text
65
+ style={
66
+ Array [
67
+ Object {
68
+ "color": "#7A7A7A",
69
+ },
70
+ Object {},
71
+ Object {},
72
+ ]
73
+ }
74
+ >
75
+ Pinned by
76
+
77
+ You
78
+ </Text>
79
+ </View>
80
+ `;
@@ -88,6 +88,7 @@ export type RenderTextParams<
88
88
  markdownRules?: MarkdownRules;
89
89
  markdownStyles?: MarkdownStyle;
90
90
  messageOverlay?: boolean;
91
+ messageTextNumberOfLines?: number;
91
92
  onLink?: (url: string) => Promise<void>;
92
93
  onlyEmojis?: boolean;
93
94
  };
@@ -109,6 +110,7 @@ export const renderText = <
109
110
  markdownStyles,
110
111
  message,
111
112
  messageOverlay,
113
+ messageTextNumberOfLines,
112
114
  onLink: onLinkParams,
113
115
  onLongPress: onLongPressParam,
114
116
  onlyEmojis,
@@ -137,6 +139,7 @@ export const renderText = <
137
139
  }
138
140
 
139
141
  newText = newText.replace(/[<&"'>]/g, '\\$&');
142
+
140
143
  const styles: MarkdownStyle = {
141
144
  ...defaultMarkdownStyles,
142
145
  ...markdownStyles,
@@ -202,6 +205,12 @@ export const renderText = <
202
205
  );
203
206
  };
204
207
 
208
+ const paragraphText: ReactNodeOutput = (node, output, { ...state }) => (
209
+ <Text key={state.key} numberOfLines={messageTextNumberOfLines} style={styles.paragraph}>
210
+ {output(node.content, state)}
211
+ </Text>
212
+ );
213
+
205
214
  const mentionedUsers = Array.isArray(mentioned_users)
206
215
  ? mentioned_users.reduce((acc, cur) => {
207
216
  const userName = cur.name || cur.id || '';
@@ -286,6 +295,8 @@ export const renderText = <
286
295
  const customRules = {
287
296
  link: { react },
288
297
  list: { react: customListAtLevel('top') },
298
+ // Truncate long text content in the message overlay
299
+ paragraph: messageTextNumberOfLines ? { react: paragraphText } : {},
289
300
  // we have no react rendering support for reflinks
290
301
  reflink: { match: () => null },
291
302
  sublist: { react: customListAtLevel('sub') },
@@ -25,7 +25,6 @@ export const useCreateMessageContext = <
25
25
  >({
26
26
  actionsEnabled,
27
27
  alignment,
28
- canModifyMessage,
29
28
  channel,
30
29
  disabled,
31
30
  files,
@@ -55,7 +54,6 @@ export const useCreateMessageContext = <
55
54
  otherAttachments,
56
55
  preventPress,
57
56
  reactions,
58
- readEventsEnabled,
59
57
  showAvatar,
60
58
  showMessageOverlay,
61
59
  showMessageStatus,
@@ -78,7 +76,6 @@ export const useCreateMessageContext = <
78
76
  () => ({
79
77
  actionsEnabled,
80
78
  alignment,
81
- canModifyMessage,
82
79
  channel,
83
80
  disabled,
84
81
  files,
@@ -108,7 +105,6 @@ export const useCreateMessageContext = <
108
105
  otherAttachments,
109
106
  preventPress,
110
107
  reactions,
111
- readEventsEnabled,
112
108
  showAvatar,
113
109
  showMessageOverlay,
114
110
  showMessageStatus,
@@ -127,7 +123,6 @@ export const useCreateMessageContext = <
127
123
  membersValue,
128
124
  messageValue,
129
125
  reactionsValue,
130
- readEventsEnabled,
131
126
  showAvatar,
132
127
  showMessageStatus,
133
128
  threadList,