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 +1 @@
1
- {"version":3,"sources":["MessageContent.tsx"],"names":["styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignContent","justifyContent","leftAlignItems","alignItems","replyBorder","borderLeftWidth","bottom","position","replyContainer","flexDirection","paddingHorizontal","paddingTop","rightAlignContent","rightAlignItems","MessageContentWithContext","props","additionalTouchableProps","alignment","Attachment","disabled","FileAttachmentGroup","formatDate","Gallery","groupStyles","hasReactions","isMyMessage","lastGroupMessage","members","message","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageReplies","MessageStatus","onLongPress","onlyEmojis","onPress","onPressIn","otherAttachments","preventPress","quotedRepliesEnabled","Reply","setMessageContentWidth","showMessageStatus","tDateTimeParser","threadList","threadRepliesEnabled","theme","colors","accent_red","blue_alice","grey_gainsboro","grey_whisper","transparent","messageSimple","content","container","borderRadiusL","borderRadiusS","errorContainer","errorIcon","errorIconContainer","wrapper","reactionList","radius","reactionSize","getDateText","formatter","created_at","parserOutput","format","onLayout","width","nativeEvent","layout","error","type","status","groupStyle","toLowerCase","hasThreadReplies","reply_count","noBorder","quoted_message","length","deleted_at","backgroundColor","repliesCurveColor","event","emitter","borderColor","height","left","undefined","right","borderBottomLeftRadius","borderBottomRightRadius","map","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","id","actions","absoluteFill","areEqual","prevProps","nextProps","prevGoToMessage","goToMessage","prevGroupStyles","prevHasReactions","prevLastGroupMessage","prevMembers","prevMessage","prevMessageContentOrder","prevOnlyEmojis","prevOtherAttachments","prevT","t","prevTDateTimeParser","nextGoToMessage","nextGroupStyles","nextHasReactions","nextLastGroupMessage","nextMembers","nextMessage","nextMessageContentOrder","nextOnlyEmojis","nextOtherAttachments","nextT","nextTDateTimeParser","hasReactionsEqual","lastGroupMessageEqual","goToMessageChangedAndMatters","quoted_message_id","onlyEmojisEqual","otherAttachmentsEqual","membersEqual","Object","keys","groupStylesEqual","messageEqual","text","quotedMessageEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","messageContentOrderEqual","tEqual","tDateTimeParserEqual","MemoizedMessageContent","React","memo","MessageContent","lastReceivedId","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { MessageTextContainer } from './MessageTextContainer';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport { Error } from '../../../icons';\nimport { vw } from '../../../utils/utils';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignContent: {\n justifyContent: 'flex-start',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n replyBorder: {\n borderLeftWidth: 1,\n bottom: 0,\n position: 'absolute',\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n rightAlignContent: {\n justifyContent: 'flex-end',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\nexport type MessageContentPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'disabled'\n | 'goToMessage'\n | 'groupStyles'\n | 'hasReactions'\n | 'isMyMessage'\n | 'lastGroupMessage'\n | 'members'\n | 'message'\n | 'messageContentOrder'\n | 'onLongPress'\n | 'onlyEmojis'\n | 'onPress'\n | 'onPressIn'\n | 'otherAttachments'\n | 'preventPress'\n | 'showMessageStatus'\n | 'threadList'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'FileAttachmentGroup'\n | 'formatDate'\n | 'Gallery'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageDeleted'\n | 'MessageReplies'\n | 'MessageStatus'\n | 'onPressInMessage'\n | 'quotedRepliesEnabled'\n | 'Reply'\n | 'threadRepliesEnabled'\n > &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n setMessageContentWidth: React.Dispatch<React.SetStateAction<number>>;\n };\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nconst MessageContentWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n quotedRepliesEnabled,\n Reply,\n setMessageContentWidth,\n showMessageStatus,\n tDateTimeParser,\n threadList,\n threadRepliesEnabled,\n } = props;\n\n const {\n theme: {\n colors: { accent_red, blue_alice, grey_gainsboro, grey_whisper, transparent },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS, ...container },\n containerInner,\n errorContainer,\n errorIcon,\n errorIconContainer,\n replyBorder,\n replyContainer,\n wrapper,\n },\n reactionList: { radius, reactionSize },\n },\n },\n } = useTheme();\n\n const getDateText = (formatter?: (date: TDateTimeParserInput) => string) => {\n if (!message.created_at) return '';\n\n if (formatter) {\n return formatter(message.created_at);\n }\n\n const parserOutput = tDateTimeParser(message.created_at);\n\n if (isDayOrMoment(parserOutput)) {\n return parserOutput.format('LT');\n }\n return message.created_at;\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = ({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setMessageContentWidth(width);\n };\n\n const error = message.type === 'error' || message.status === 'failed';\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const noBorder = (onlyEmojis && !message.quoted_message) || !!otherAttachments.length;\n\n if (message.deleted_at) {\n return (\n <MessageDeleted\n formattedDate={getDateText(formatDate)}\n groupStyle={groupStyle}\n noBorder={noBorder}\n onLayout={onLayout}\n />\n );\n }\n\n const backgroundColor =\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left' || error\n ? transparent\n : grey_gainsboro;\n\n const repliesCurveColor = isMyMessage && !error ? backgroundColor : grey_whisper;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={disabled || preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n {...additionalTouchableProps}\n /**\n * Border radii are useful for the case of error message types only.\n * Otherwise background is transparent, so border radius is not really visible.\n */\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n { paddingTop: hasReactions ? reactionSize / 2 + radius : 2 },\n error ? errorContainer : {},\n container,\n ]}\n >\n {MessageHeader && (\n <MessageHeader\n alignment={alignment}\n formattedDate={getDateText(formatDate)}\n isDeleted={!!message.deleted_at}\n lastGroupMessage={lastGroupMessage}\n members={members}\n message={message}\n MessageStatus={MessageStatus}\n otherAttachments={otherAttachments}\n showMessageStatus={showMessageStatus}\n />\n )}\n <View onLayout={onLayout} style={wrapper}>\n {hasThreadReplies && !threadList && threadRepliesEnabled && !noBorder && (\n <View\n style={[\n styles.replyBorder,\n {\n borderColor: repliesCurveColor,\n height: borderRadiusL,\n left: alignment === 'left' ? 0 : undefined,\n right: alignment === 'right' ? 0 : undefined,\n },\n replyBorder,\n ]}\n />\n )}\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' || groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' || groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: isMyMessage && !error ? backgroundColor : grey_whisper,\n },\n noBorder ? { borderWidth: 0 } : {},\n containerInner,\n ]}\n testID='message-content-wrapper'\n >\n {messageContentOrder.map((messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message &&\n quotedRepliesEnabled && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply styles={{ messageContainer: { maxWidth: vw(60) } }} />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments.map((attachment, attachmentIndex) => (\n <Attachment attachment={attachment} key={`${message.id}-${attachmentIndex}`} />\n ));\n case 'files':\n return (\n <FileAttachmentGroup\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n );\n case 'gallery':\n return <Gallery key={`gallery_${messageContentOrderIndex}`} />;\n case 'text':\n default:\n return otherAttachments.length && otherAttachments[0].actions ? null : (\n <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>\n key={`message_text_container_${messageContentOrderIndex}`}\n />\n );\n }\n })}\n </View>\n {error && (\n <View style={StyleSheet.absoluteFill} testID='message-error'>\n <View style={errorIconContainer}>\n <Error pathFill={accent_red} {...errorIcon} />\n </View>\n </View>\n )}\n </View>\n {threadRepliesEnabled && (\n <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />\n )}\n <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!message.deleted_at} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n messageContentOrder: prevMessageContentOrder,\n onlyEmojis: prevOnlyEmojis,\n otherAttachments: prevOtherAttachments,\n t: prevT,\n tDateTimeParser: prevTDateTimeParser,\n } = prevProps;\n const {\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n messageContentOrder: nextMessageContentOrder,\n onlyEmojis: nextOnlyEmojis,\n otherAttachments: nextOtherAttachments,\n t: nextT,\n tDateTimeParser: nextTDateTimeParser,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length &&\n prevGroupStyles?.[0] === nextGroupStyles?.[0];\n if (!groupStylesEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n\n if (!messageEqual) return false;\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n prevMessage.quoted_message?.deleted_at === nextMessage.quoted_message?.deleted_at;\n\n if (!quotedMessageEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const messageContentOrderEqual =\n prevMessageContentOrder.length === nextMessageContentOrder.length &&\n prevMessageContentOrder.every(\n (messageContentType, index) => messageContentType === nextMessageContentOrder[index],\n );\n if (!messageContentOrderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const tDateTimeParserEqual = prevTDateTimeParser === nextTDateTimeParser;\n if (!tDateTimeParserEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageContent = React.memo(\n MessageContentWithContext,\n areEqual,\n) as typeof MessageContentWithContext;\n\nexport type MessageContentProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<\n Omit<MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'setMessageContentWidth'>\n> &\n Pick<MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'setMessageContentWidth'>;\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nexport const MessageContent = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageContentProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n disabled,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n showMessageStatus,\n threadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTouchableProps,\n Attachment,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n quotedRepliesEnabled,\n Reply,\n threadRepliesEnabled,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MemoizedMessageContent<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n quotedRepliesEnabled,\n Reply,\n showMessageStatus,\n t,\n tDateTimeParser,\n threadList,\n threadRepliesEnabled,\n }}\n {...props}\n />\n );\n};\n\nMessageContent.displayName = 'MessageContent{messageSimple{content}}';\n"]}
1
+ {"version":3,"sources":["MessageContent.tsx"],"names":["styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignContent","justifyContent","leftAlignItems","alignItems","replyBorder","borderLeftWidth","bottom","position","replyContainer","flexDirection","paddingHorizontal","paddingTop","rightAlignContent","rightAlignItems","MessageContentWithContext","props","additionalTouchableProps","alignment","Attachment","disabled","FileAttachmentGroup","formatDate","Gallery","groupStyles","hasReactions","isMyMessage","lastGroupMessage","members","message","messageContentOrder","MessageDeleted","MessageFooter","MessageHeader","MessageReplies","MessageStatus","onLongPress","onlyEmojis","onPress","onPressIn","otherAttachments","preventPress","Reply","setMessageContentWidth","showMessageStatus","tDateTimeParser","threadList","theme","colors","accent_red","blue_alice","grey_gainsboro","grey_whisper","transparent","white","messageSimple","content","container","borderRadiusL","borderRadiusS","errorContainer","errorIcon","errorIconContainer","wrapper","reactionList","radius","reactionSize","getDateText","formatter","created_at","parserOutput","format","onLayout","width","nativeEvent","layout","error","type","status","groupStyle","toLowerCase","hasThreadReplies","reply_count","noBorder","quoted_message","length","isMessageTypeDeleted","backgroundColor","repliesCurveColor","event","emitter","borderColor","height","left","undefined","right","borderBottomLeftRadius","borderBottomRightRadius","map","messageContentType","messageContentOrderIndex","messageContainer","maxWidth","attachment","attachmentIndex","id","actions","absoluteFill","areEqual","prevProps","nextProps","prevGoToMessage","goToMessage","prevGroupStyles","prevHasReactions","prevLastGroupMessage","prevMembers","prevMessage","prevMessageContentOrder","prevOnlyEmojis","prevOtherAttachments","prevT","t","prevTDateTimeParser","nextGoToMessage","nextGroupStyles","nextHasReactions","nextLastGroupMessage","nextMembers","nextMessage","nextMessageContentOrder","nextOnlyEmojis","nextOtherAttachments","nextT","nextTDateTimeParser","hasReactionsEqual","lastGroupMessageEqual","goToMessageChangedAndMatters","quoted_message_id","onlyEmojisEqual","otherAttachmentsEqual","membersEqual","Object","keys","groupStylesEqual","isPrevMessageTypeDeleted","isNextMessageTypeDeleted","messageEqual","text","pinned","isPrevQuotedMessageTypeDeleted","isNextQuotedMessageTypeDeleted","quotedMessageEqual","prevAttachments","attachments","nextAttachments","attachmentsEqual","Array","isArray","every","index","image_url","og_scrape_url","thumb_url","latestReactionsEqual","latest_reactions","messageContentOrderEqual","tEqual","tDateTimeParserEqual","MemoizedMessageContent","React","memo","MessageContent","lastReceivedId","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, TouchableOpacity, View } from 'react-native';\n\nimport { MessageTextContainer } from './MessageTextContainer';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n isDayOrMoment,\n TDateTimeParserInput,\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport { Error } from '../../../icons';\nimport { vw } from '../../../utils/utils';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignContent: {\n justifyContent: 'flex-start',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n replyBorder: {\n borderLeftWidth: 1,\n bottom: 0,\n position: 'absolute',\n },\n replyContainer: {\n flexDirection: 'row',\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n rightAlignContent: {\n justifyContent: 'flex-end',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\nexport type MessageContentPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'disabled'\n | 'goToMessage'\n | 'groupStyles'\n | 'hasReactions'\n | 'isMyMessage'\n | 'lastGroupMessage'\n | 'members'\n | 'message'\n | 'messageContentOrder'\n | 'onLongPress'\n | 'onlyEmojis'\n | 'onPress'\n | 'onPressIn'\n | 'otherAttachments'\n | 'preventPress'\n | 'showMessageStatus'\n | 'threadList'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'additionalTouchableProps'\n | 'Attachment'\n | 'FileAttachmentGroup'\n | 'formatDate'\n | 'Gallery'\n | 'MessageFooter'\n | 'MessageHeader'\n | 'MessageDeleted'\n | 'MessageReplies'\n | 'MessageStatus'\n | 'onPressInMessage'\n | 'Reply'\n > &\n Pick<TranslationContextValue, 't' | 'tDateTimeParser'> & {\n setMessageContentWidth: React.Dispatch<React.SetStateAction<number>>;\n };\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nconst MessageContentWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n setMessageContentWidth,\n showMessageStatus,\n tDateTimeParser,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { accent_red, blue_alice, grey_gainsboro, grey_whisper, transparent, white },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS, ...container },\n containerInner,\n errorContainer,\n errorIcon,\n errorIconContainer,\n replyBorder,\n replyContainer,\n wrapper,\n },\n reactionList: { radius, reactionSize },\n },\n },\n } = useTheme();\n\n const getDateText = (formatter?: (date: TDateTimeParserInput) => string) => {\n if (!message.created_at) return '';\n\n if (formatter) {\n return formatter(message.created_at);\n }\n\n const parserOutput = tDateTimeParser(message.created_at);\n\n if (isDayOrMoment(parserOutput)) {\n return parserOutput.format('LT');\n }\n return message.created_at;\n };\n\n const onLayout: (event: LayoutChangeEvent) => void = ({\n nativeEvent: {\n layout: { width },\n },\n }) => {\n setMessageContentWidth(width);\n };\n\n const error = message.type === 'error' || message.status === 'failed';\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n\n const hasThreadReplies = !!message?.reply_count;\n\n const noBorder = (onlyEmojis && !message.quoted_message) || !!otherAttachments.length;\n\n const isMessageTypeDeleted = message.type === 'deleted';\n\n if (isMessageTypeDeleted) {\n return (\n <MessageDeleted\n formattedDate={getDateText(formatDate)}\n groupStyle={groupStyle}\n noBorder={noBorder}\n onLayout={onLayout}\n />\n );\n }\n\n const backgroundColor =\n onlyEmojis && !message.quoted_message\n ? transparent\n : otherAttachments.length\n ? otherAttachments[0].type === 'giphy'\n ? !message.quoted_message\n ? transparent\n : grey_gainsboro\n : blue_alice\n : alignment === 'left' || error\n ? white\n : grey_gainsboro;\n\n const repliesCurveColor = isMyMessage && !error ? backgroundColor : grey_whisper;\n\n return (\n <TouchableOpacity\n activeOpacity={0.7}\n disabled={disabled || preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'messageContent',\n event,\n });\n }\n }}\n testID='message-content'\n {...additionalTouchableProps}\n /**\n * Border radii are useful for the case of error message types only.\n * Otherwise background is transparent, so border radius is not really visible.\n */\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n { paddingTop: hasReactions ? reactionSize / 2 + radius : 2 },\n error ? errorContainer : {},\n container,\n ]}\n >\n {MessageHeader && (\n <MessageHeader\n alignment={alignment}\n formattedDate={getDateText(formatDate)}\n isDeleted={!!isMessageTypeDeleted}\n lastGroupMessage={lastGroupMessage}\n members={members}\n message={message}\n MessageStatus={MessageStatus}\n otherAttachments={otherAttachments}\n showMessageStatus={showMessageStatus}\n />\n )}\n <View onLayout={onLayout} style={wrapper}>\n {hasThreadReplies && !threadList && !noBorder && (\n <View\n style={[\n styles.replyBorder,\n {\n borderColor: repliesCurveColor,\n height: borderRadiusL,\n left: alignment === 'left' ? 0 : undefined,\n right: alignment === 'right' ? 0 : undefined,\n },\n replyBorder,\n ]}\n />\n )}\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor,\n borderBottomLeftRadius:\n (groupStyle === 'left_bottom' || groupStyle === 'left_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n (groupStyle === 'right_bottom' || groupStyle === 'right_single') &&\n (!hasThreadReplies || threadList)\n ? borderRadiusS\n : borderRadiusL,\n borderColor: isMyMessage && !error ? backgroundColor : grey_whisper,\n },\n noBorder ? { borderWidth: 0 } : {},\n containerInner,\n ]}\n testID='message-content-wrapper'\n >\n {messageContentOrder.map((messageContentType, messageContentOrderIndex) => {\n switch (messageContentType) {\n case 'quoted_reply':\n return (\n message.quoted_message && (\n <View\n key={`quoted_reply_${messageContentOrderIndex}`}\n style={[styles.replyContainer, replyContainer]}\n >\n <Reply styles={{ messageContainer: { maxWidth: vw(60) } }} />\n </View>\n )\n );\n case 'attachments':\n return otherAttachments.map((attachment, attachmentIndex) => (\n <Attachment attachment={attachment} key={`${message.id}-${attachmentIndex}`} />\n ));\n case 'files':\n return (\n <FileAttachmentGroup\n key={`file_attachment_group_${messageContentOrderIndex}`}\n messageId={message.id}\n />\n );\n case 'gallery':\n return <Gallery key={`gallery_${messageContentOrderIndex}`} />;\n case 'text':\n default:\n return otherAttachments.length && otherAttachments[0].actions ? null : (\n <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>\n key={`message_text_container_${messageContentOrderIndex}`}\n />\n );\n }\n })}\n </View>\n {error && (\n <View style={StyleSheet.absoluteFill} testID='message-error'>\n <View style={errorIconContainer}>\n <Error pathFill={accent_red} {...errorIcon} />\n </View>\n </View>\n )}\n </View>\n <MessageReplies noBorder={noBorder} repliesCurveColor={repliesCurveColor} />\n <MessageFooter formattedDate={getDateText(formatDate)} isDeleted={!!isMessageTypeDeleted} />\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n goToMessage: prevGoToMessage,\n groupStyles: prevGroupStyles,\n hasReactions: prevHasReactions,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n messageContentOrder: prevMessageContentOrder,\n onlyEmojis: prevOnlyEmojis,\n otherAttachments: prevOtherAttachments,\n t: prevT,\n tDateTimeParser: prevTDateTimeParser,\n } = prevProps;\n const {\n goToMessage: nextGoToMessage,\n groupStyles: nextGroupStyles,\n hasReactions: nextHasReactions,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n messageContentOrder: nextMessageContentOrder,\n onlyEmojis: nextOnlyEmojis,\n otherAttachments: nextOtherAttachments,\n t: nextT,\n tDateTimeParser: nextTDateTimeParser,\n } = nextProps;\n\n const hasReactionsEqual = prevHasReactions === nextHasReactions;\n if (!hasReactionsEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const goToMessageChangedAndMatters =\n nextMessage.quoted_message_id && prevGoToMessage !== nextGoToMessage;\n\n if (goToMessageChangedAndMatters) return false;\n\n const onlyEmojisEqual = prevOnlyEmojis === nextOnlyEmojis;\n if (!onlyEmojisEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length &&\n prevGroupStyles?.[0] === nextGroupStyles?.[0];\n if (!groupStylesEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\n\n if (!messageEqual) return false;\n\n const isPrevQuotedMessageTypeDeleted = prevMessage.quoted_message?.type === 'deleted';\n const isNextQuotedMessageTypeDeleted = nextMessage.quoted_message?.type === 'deleted';\n\n const quotedMessageEqual =\n prevMessage.quoted_message?.id === nextMessage.quoted_message?.id &&\n isPrevQuotedMessageTypeDeleted === isNextQuotedMessageTypeDeleted;\n\n if (!quotedMessageEqual) return false;\n\n const prevAttachments = prevMessage.attachments;\n const nextAttachments = nextMessage.attachments;\n const attachmentsEqual =\n Array.isArray(prevAttachments) && Array.isArray(nextAttachments)\n ? prevAttachments.length === nextAttachments.length &&\n prevAttachments.every(\n (attachment, index) =>\n attachment.image_url === nextAttachments[index].image_url &&\n attachment.og_scrape_url === nextAttachments[index].og_scrape_url &&\n attachment.thumb_url === nextAttachments[index].thumb_url,\n )\n : prevAttachments === nextAttachments;\n if (!attachmentsEqual) return false;\n\n const latestReactionsEqual =\n Array.isArray(prevMessage.latest_reactions) && Array.isArray(nextMessage.latest_reactions)\n ? prevMessage.latest_reactions.length === nextMessage.latest_reactions.length &&\n prevMessage.latest_reactions.every(\n ({ type }, index) => type === nextMessage.latest_reactions?.[index].type,\n )\n : prevMessage.latest_reactions === nextMessage.latest_reactions;\n if (!latestReactionsEqual) return false;\n\n const messageContentOrderEqual =\n prevMessageContentOrder.length === nextMessageContentOrder.length &&\n prevMessageContentOrder.every(\n (messageContentType, index) => messageContentType === nextMessageContentOrder[index],\n );\n if (!messageContentOrderEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const tDateTimeParserEqual = prevTDateTimeParser === nextTDateTimeParser;\n if (!tDateTimeParserEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageContent = React.memo(\n MessageContentWithContext,\n areEqual,\n) as typeof MessageContentWithContext;\n\nexport type MessageContentProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Partial<\n Omit<MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'setMessageContentWidth'>\n> &\n Pick<MessageContentPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>, 'setMessageContentWidth'>;\n\n/**\n * Child of MessageSimple that displays a message's content\n */\nexport const MessageContent = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageContentProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n disabled,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n showMessageStatus,\n threadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTouchableProps,\n Attachment,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n Reply,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { t, tDateTimeParser } = useTranslationContext();\n\n return (\n <MemoizedMessageContent<At, Ch, Co, Ev, Me, Re, Us>\n {...{\n additionalTouchableProps,\n alignment,\n Attachment,\n disabled,\n FileAttachmentGroup,\n formatDate,\n Gallery,\n goToMessage,\n groupStyles,\n hasReactions,\n isMyMessage,\n lastGroupMessage,\n lastReceivedId,\n members,\n message,\n messageContentOrder,\n MessageDeleted,\n MessageFooter,\n MessageHeader,\n MessageReplies,\n MessageStatus,\n onLongPress,\n onlyEmojis,\n onPress,\n onPressIn,\n otherAttachments,\n preventPress,\n Reply,\n showMessageStatus,\n t,\n tDateTimeParser,\n threadList,\n }}\n {...props}\n />\n );\n};\n\nMessageContent.displayName = 'MessageContent{messageSimple{content}}';\n"]}
@@ -125,7 +125,9 @@ var areEqual = function areEqual(prevProps, nextProps) {
125
125
  nextMessage = nextProps.message;
126
126
  var alignmentEqual = prevAlignment === nextAlignment;
127
127
  if (!alignmentEqual) return false;
128
- var messageEqual = prevMessage.deleted_at === nextMessage.deleted_at && prevMessage.reply_count === nextMessage.reply_count && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text;
128
+ var isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
129
+ var isNextMessageTypeDeleted = nextMessage.type === 'deleted';
130
+ var messageEqual = isPrevMessageTypeDeleted === isNextMessageTypeDeleted && prevMessage.reply_count === nextMessage.reply_count && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text && prevMessage.pinned === nextMessage.pinned;
129
131
  if (!messageEqual) return false;
130
132
  var formattedDateEqual = prevFormattedDate === nextFormattedDate;
131
133
  if (!formattedDateEqual) return false;
@@ -154,7 +156,7 @@ var MessageDeleted = function MessageDeleted(props) {
154
156
  __self: _this,
155
157
  __source: {
156
158
  fileName: _jsxFileName,
157
- lineNumber: 215,
159
+ lineNumber: 218,
158
160
  columnNumber: 5
159
161
  }
160
162
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["MessageDeleted.tsx"],"names":["styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignItems","alignItems","rightAlignItems","MessageDeletedWithContext","props","alignment","formattedDate","groupStyle","message","MessageFooter","noBorder","onLayout","t","theme","colors","grey","grey_whisper","messageSimple","content","container","borderRadiusL","borderRadiusS","deletedContainer","deletedContainerInner","deletedText","backgroundColor","borderBottomLeftRadius","borderBottomRightRadius","borderColor","em","color","text","areEqual","prevProps","nextProps","prevAlignment","prevFormattedDate","prevMessage","nextAlignment","nextFormattedDate","nextMessage","alignmentEqual","messageEqual","deleted_at","reply_count","status","type","formattedDateEqual","MemoizedMessageDeleted","React","memo","MessageDeleted","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native';\nimport merge from 'lodash/merge';\n\nimport { MessageTextContainer } from './MessageTextContainer';\n\nimport {\n Alignment,\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type { MessageFooterProps } from './MessageFooter';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\ntype MessageDeletedComponentProps = {\n formattedDate: string | Date;\n groupStyle: string;\n noBorder: boolean;\n onLayout: (event: LayoutChangeEvent) => void;\n};\n\ntype MessageDeletedPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'alignment' | 'message'> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageFooter'> &\n Pick<TranslationContextValue, 't'> &\n MessageDeletedComponentProps;\n\nconst MessageDeletedWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, formattedDate, groupStyle, message, MessageFooter, noBorder, onLayout, t } =\n props;\n\n const {\n theme: {\n colors: { grey, grey_whisper },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n deletedContainer,\n deletedContainerInner,\n deletedText,\n },\n },\n },\n } = useTheme();\n\n return (\n <View\n onLayout={onLayout}\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n deletedContainer,\n ]}\n >\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor: grey_whisper,\n borderBottomLeftRadius:\n groupStyle === 'left_bottom' || groupStyle === 'left_single'\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n groupStyle === 'right_bottom' || groupStyle === 'right_single'\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n noBorder ? { borderWidth: 0 } : {},\n deletedContainerInner,\n ]}\n testID='message-content-wrapper'\n >\n <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>\n markdownStyles={merge({ em: { color: grey } }, deletedText)}\n message={{ ...message, text: `_${t('Message deleted')}_` }}\n />\n </View>\n <MessageFooter formattedDate={formattedDate} isDeleted />\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment: prevAlignment,\n formattedDate: prevFormattedDate,\n message: prevMessage,\n } = prevProps;\n const {\n alignment: nextAlignment,\n formattedDate: nextFormattedDate,\n message: nextMessage,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n if (!messageEqual) return false;\n\n const formattedDateEqual = prevFormattedDate === nextFormattedDate;\n if (!formattedDateEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageDeleted = React.memo(\n MessageDeletedWithContext,\n areEqual,\n) as typeof MessageDeletedWithContext;\n\nexport type MessageDeletedProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = MessageDeletedComponentProps & {\n alignment?: Alignment;\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n MessageFooter?: React.ComponentType<MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>>;\n};\n\nexport const MessageDeleted = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageDeletedProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, message } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { MessageFooter } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessageDeleted\n {...{\n alignment,\n message,\n MessageFooter,\n t,\n }}\n {...props}\n />\n );\n};\n\nMessageDeleted.displayName = 'MessageDeleted{messageSimple{content}}';\n"]}
1
+ {"version":3,"sources":["MessageDeleted.tsx"],"names":["styles","StyleSheet","create","containerInner","borderTopLeftRadius","borderTopRightRadius","borderWidth","overflow","leftAlignItems","alignItems","rightAlignItems","MessageDeletedWithContext","props","alignment","formattedDate","groupStyle","message","MessageFooter","noBorder","onLayout","t","theme","colors","grey","grey_whisper","messageSimple","content","container","borderRadiusL","borderRadiusS","deletedContainer","deletedContainerInner","deletedText","backgroundColor","borderBottomLeftRadius","borderBottomRightRadius","borderColor","em","color","text","areEqual","prevProps","nextProps","prevAlignment","prevFormattedDate","prevMessage","nextAlignment","nextFormattedDate","nextMessage","alignmentEqual","isPrevMessageTypeDeleted","type","isNextMessageTypeDeleted","messageEqual","reply_count","status","pinned","formattedDateEqual","MemoizedMessageDeleted","React","memo","MessageDeleted","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, StyleSheet, View } from 'react-native';\nimport merge from 'lodash/merge';\n\nimport { MessageTextContainer } from './MessageTextContainer';\n\nimport {\n Alignment,\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../../contexts/translationContext/TranslationContext';\n\nimport type { MessageFooterProps } from './MessageFooter';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\nconst styles = StyleSheet.create({\n containerInner: {\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n },\n leftAlignItems: {\n alignItems: 'flex-start',\n },\n rightAlignItems: {\n alignItems: 'flex-end',\n },\n});\n\ntype MessageDeletedComponentProps = {\n formattedDate: string | Date;\n groupStyle: string;\n noBorder: boolean;\n onLayout: (event: LayoutChangeEvent) => void;\n};\n\ntype MessageDeletedPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'alignment' | 'message'> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageFooter'> &\n Pick<TranslationContextValue, 't'> &\n MessageDeletedComponentProps;\n\nconst MessageDeletedWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, formattedDate, groupStyle, message, MessageFooter, noBorder, onLayout, t } =\n props;\n\n const {\n theme: {\n colors: { grey, grey_whisper },\n messageSimple: {\n content: {\n container: { borderRadiusL, borderRadiusS },\n deletedContainer,\n deletedContainerInner,\n deletedText,\n },\n },\n },\n } = useTheme();\n\n return (\n <View\n onLayout={onLayout}\n style={[\n alignment === 'left' ? styles.leftAlignItems : styles.rightAlignItems,\n deletedContainer,\n ]}\n >\n <View\n style={[\n styles.containerInner,\n {\n backgroundColor: grey_whisper,\n borderBottomLeftRadius:\n groupStyle === 'left_bottom' || groupStyle === 'left_single'\n ? borderRadiusS\n : borderRadiusL,\n borderBottomRightRadius:\n groupStyle === 'right_bottom' || groupStyle === 'right_single'\n ? borderRadiusS\n : borderRadiusL,\n borderColor: grey_whisper,\n },\n noBorder ? { borderWidth: 0 } : {},\n deletedContainerInner,\n ]}\n testID='message-content-wrapper'\n >\n <MessageTextContainer<At, Ch, Co, Ev, Me, Re, Us>\n markdownStyles={merge({ em: { color: grey } }, deletedText)}\n message={{ ...message, text: `_${t('Message deleted')}_` }}\n />\n </View>\n <MessageFooter formattedDate={formattedDate} isDeleted />\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageDeletedPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment: prevAlignment,\n formattedDate: prevFormattedDate,\n message: prevMessage,\n } = prevProps;\n const {\n alignment: nextAlignment,\n formattedDate: nextFormattedDate,\n message: nextMessage,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\n if (!messageEqual) return false;\n\n const formattedDateEqual = prevFormattedDate === nextFormattedDate;\n if (!formattedDateEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageDeleted = React.memo(\n MessageDeletedWithContext,\n areEqual,\n) as typeof MessageDeletedWithContext;\n\nexport type MessageDeletedProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = MessageDeletedComponentProps & {\n alignment?: Alignment;\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n MessageFooter?: React.ComponentType<MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>>;\n};\n\nexport const MessageDeleted = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageDeletedProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, message } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { MessageFooter } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { t } = useTranslationContext();\n\n return (\n <MemoizedMessageDeleted\n {...{\n alignment,\n message,\n MessageFooter,\n t,\n }}\n {...props}\n />\n );\n};\n\nMessageDeleted.displayName = 'MessageDeleted{messageSimple{content}}';\n"]}
@@ -28,6 +28,7 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
28
28
  var _message$user;
29
29
 
30
30
  var alignment = props.alignment,
31
+ deletedMessagesVisibilityType = props.deletedMessagesVisibilityType,
31
32
  formattedDate = props.formattedDate,
32
33
  isDeleted = props.isDeleted,
33
34
  lastGroupMessage = props.lastGroupMessage,
@@ -57,30 +58,31 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
57
58
  __self: _this,
58
59
  __source: {
59
60
  fileName: _jsxFileName,
60
- lineNumber: 96,
61
+ lineNumber: 100,
61
62
  columnNumber: 7
62
63
  }
63
- }, _react["default"].createElement(_icons.Eye, (0, _extends2["default"])({
64
+ }, deletedMessagesVisibilityType === 'sender' && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_icons.Eye, (0, _extends2["default"])({
64
65
  pathFill: isDeleted ? undefined : grey
65
66
  }, eyeIcon, {
66
67
  __self: _this,
67
68
  __source: {
68
69
  fileName: _jsxFileName,
69
- lineNumber: 97,
70
- columnNumber: 9
70
+ lineNumber: 103,
71
+ columnNumber: 13
71
72
  }
72
73
  })), _react["default"].createElement(_reactNative.Text, {
73
74
  style: [{
74
75
  color: grey,
75
76
  textAlign: alignment
76
77
  }, metaText, deletedMetaText],
78
+ testID: "only-visible-to-you",
77
79
  __self: _this,
78
80
  __source: {
79
81
  fileName: _jsxFileName,
80
- lineNumber: 98,
81
- columnNumber: 9
82
+ lineNumber: 104,
83
+ columnNumber: 13
82
84
  }
83
- }, t('Only visible to you')), _react["default"].createElement(_reactNative.Text, {
85
+ }, t('Only visible to you'))), _react["default"].createElement(_reactNative.Text, {
84
86
  style: [{
85
87
  color: grey,
86
88
  textAlign: alignment
@@ -88,7 +90,7 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
88
90
  __self: _this,
89
91
  __source: {
90
92
  fileName: _jsxFileName,
91
- lineNumber: 110,
93
+ lineNumber: 119,
92
94
  columnNumber: 9
93
95
  }
94
96
  }, formattedDate));
@@ -104,14 +106,14 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
104
106
  __self: _this,
105
107
  __source: {
106
108
  fileName: _jsxFileName,
107
- lineNumber: 130,
109
+ lineNumber: 139,
108
110
  columnNumber: 5
109
111
  }
110
112
  }, otherAttachments.length && otherAttachments[0].actions ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_icons.Eye, (0, _extends2["default"])({}, eyeIcon, {
111
113
  __self: _this,
112
114
  __source: {
113
115
  fileName: _jsxFileName,
114
- lineNumber: 133,
116
+ lineNumber: 142,
115
117
  columnNumber: 11
116
118
  }
117
119
  })), _react["default"].createElement(_reactNative.Text, {
@@ -122,7 +124,7 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
122
124
  __self: _this,
123
125
  __source: {
124
126
  fileName: _jsxFileName,
125
- lineNumber: 134,
127
+ lineNumber: 143,
126
128
  columnNumber: 11
127
129
  }
128
130
  }, t('Only visible to you'))) : null, Object.keys(members).length > 2 && alignment === 'left' && (_message$user = message.user) != null && _message$user.name ? _react["default"].createElement(_reactNative.Text, {
@@ -132,14 +134,14 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
132
134
  __self: _this,
133
135
  __source: {
134
136
  fileName: _jsxFileName,
135
- lineNumber: 149,
137
+ lineNumber: 158,
136
138
  columnNumber: 9
137
139
  }
138
140
  }, message.user.name) : null, showMessageStatus && _react["default"].createElement(MessageStatus, {
139
141
  __self: _this,
140
142
  __source: {
141
143
  fileName: _jsxFileName,
142
- lineNumber: 151,
144
+ lineNumber: 160,
143
145
  columnNumber: 29
144
146
  }
145
147
  }), _react["default"].createElement(_reactNative.Text, {
@@ -150,7 +152,7 @@ var MessageFooterWithContext = function MessageFooterWithContext(props) {
150
152
  __self: _this,
151
153
  __source: {
152
154
  fileName: _jsxFileName,
153
- lineNumber: 152,
155
+ lineNumber: 161,
154
156
  columnNumber: 7
155
157
  }
156
158
  }, formattedDate));
@@ -179,7 +181,11 @@ var areEqual = function areEqual(prevProps, nextProps) {
179
181
  if (!membersEqual) return false;
180
182
  var lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;
181
183
  if (!lastGroupMessageEqual) return false;
182
- var messageEqual = prevMessage.deleted_at === nextMessage.deleted_at && prevMessage.reply_count === nextMessage.reply_count && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text;
184
+ var deletedMessagesVisibilityTypeEqual = prevProps.deletedMessagesVisibilityType === nextProps.deletedMessagesVisibilityType;
185
+ if (!deletedMessagesVisibilityTypeEqual) return false;
186
+ var isPrevMessageTypeDeleted = prevMessage.type === 'deleted';
187
+ var isNextMessageTypeDeleted = nextMessage.type === 'deleted';
188
+ var messageEqual = isPrevMessageTypeDeleted === isNextMessageTypeDeleted && prevMessage.reply_count === nextMessage.reply_count && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text && prevMessage.pinned === nextMessage.pinned;
183
189
  if (!messageEqual) return false;
184
190
  var otherAttachmentsEqual = prevOtherAttachments.length === nextOtherAttachments.length && (prevOtherAttachments == null ? void 0 : (_prevOtherAttachments = prevOtherAttachments[0]) == null ? void 0 : (_prevOtherAttachments2 = _prevOtherAttachments.actions) == null ? void 0 : _prevOtherAttachments2.length) === (nextOtherAttachments == null ? void 0 : (_nextOtherAttachments = nextOtherAttachments[0]) == null ? void 0 : (_nextOtherAttachments2 = _nextOtherAttachments.actions) == null ? void 0 : _nextOtherAttachments2.length);
185
191
  if (!otherAttachmentsEqual) return false;
@@ -202,10 +208,12 @@ var MessageFooter = function MessageFooter(props) {
202
208
  showMessageStatus = _useMessageContext.showMessageStatus;
203
209
 
204
210
  var _useMessagesContext = (0, _MessagesContext.useMessagesContext)(),
211
+ deletedMessagesVisibilityType = _useMessagesContext.deletedMessagesVisibilityType,
205
212
  MessageStatus = _useMessagesContext.MessageStatus;
206
213
 
207
214
  return _react["default"].createElement(MemoizedMessageFooter, (0, _extends2["default"])({
208
215
  alignment: alignment,
216
+ deletedMessagesVisibilityType: deletedMessagesVisibilityType,
209
217
  lastGroupMessage: lastGroupMessage,
210
218
  members: members,
211
219
  message: message,
@@ -216,7 +224,7 @@ var MessageFooter = function MessageFooter(props) {
216
224
  __self: _this,
217
225
  __source: {
218
226
  fileName: _jsxFileName,
219
- lineNumber: 259,
227
+ lineNumber: 277,
220
228
  columnNumber: 5
221
229
  }
222
230
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["MessageFooter.tsx"],"names":["MessageFooterWithContext","props","alignment","formattedDate","isDeleted","lastGroupMessage","members","message","MessageStatus","otherAttachments","showMessageStatus","theme","grey","colors","messageSimple","content","deletedMetaText","eyeIcon","messageUser","metaContainer","metaText","t","undefined","color","textAlign","length","actions","Object","keys","user","name","areEqual","prevProps","nextProps","prevAlignment","prevFormattedDate","prevLastGroupMessage","prevMembers","prevMessage","prevOtherAttachments","prevShowMessageStatus","nextAlignment","nextFormattedDate","nextLastGroupMessage","nextMembers","nextMessage","nextOtherAttachments","nextShowMessageStatus","alignmentEqual","membersEqual","lastGroupMessageEqual","messageEqual","deleted_at","reply_count","status","type","text","otherAttachmentsEqual","showMessageStatusEqual","formattedDateEqual","MemoizedMessageFooter","React","memo","MessageFooter"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Text, View } from 'react-native';\n\nimport {\n Alignment,\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Eye } from '../../../icons';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { MessageStatusProps } from './MessageStatus';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\ntype MessageFooterComponentProps = {\n formattedDate: string | Date;\n isDeleted?: boolean;\n};\n\ntype MessageFooterPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'members'\n | 'message'\n | 'otherAttachments'\n | 'showMessageStatus'\n | 'lastGroupMessage'\n> &\n Pick<MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'MessageStatus'> &\n MessageFooterComponentProps;\n\nconst MessageFooterWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n formattedDate,\n isDeleted,\n lastGroupMessage,\n members,\n message,\n MessageStatus,\n otherAttachments,\n showMessageStatus,\n } = props;\n\n const {\n theme: {\n colors: { grey },\n messageSimple: {\n content: { deletedMetaText, eyeIcon, messageUser, metaContainer, metaText },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n if (isDeleted) {\n return (\n <View style={metaContainer} testID='message-deleted'>\n <Eye pathFill={isDeleted ? undefined : grey} {...eyeIcon} />\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n deletedMetaText,\n ]}\n >\n {t('Only visible to you')}\n </Text>\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n ]}\n >\n {formattedDate}\n </Text>\n </View>\n );\n }\n\n if (lastGroupMessage === false) {\n return null;\n }\n\n return (\n <View style={metaContainer} testID='message-status-time'>\n {otherAttachments.length && otherAttachments[0].actions ? (\n <>\n <Eye {...eyeIcon} />\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n deletedMetaText,\n ]}\n >\n {t('Only visible to you')}\n </Text>\n </>\n ) : null}\n {Object.keys(members).length > 2 && alignment === 'left' && message.user?.name ? (\n <Text style={[{ color: grey }, messageUser]}>{message.user.name}</Text>\n ) : null}\n {showMessageStatus && <MessageStatus />}\n <Text style={[{ color: grey, textAlign: alignment }, metaText]}>{formattedDate}</Text>\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment: prevAlignment,\n formattedDate: prevFormattedDate,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n otherAttachments: prevOtherAttachments,\n showMessageStatus: prevShowMessageStatus,\n } = prevProps;\n const {\n alignment: nextAlignment,\n formattedDate: nextFormattedDate,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n otherAttachments: nextOtherAttachments,\n showMessageStatus: nextShowMessageStatus,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const messageEqual =\n prevMessage.deleted_at === nextMessage.deleted_at &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text;\n if (!messageEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const showMessageStatusEqual = prevShowMessageStatus === nextShowMessageStatus;\n if (!showMessageStatusEqual) return false;\n\n const formattedDateEqual = prevFormattedDate === nextFormattedDate;\n if (!formattedDateEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageFooter = React.memo(\n MessageFooterWithContext,\n areEqual,\n) as typeof MessageFooterWithContext;\n\nexport type MessageFooterProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Partial<Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'members'>> &\n MessageFooterComponentProps & {\n alignment?: Alignment;\n lastGroupMessage?: boolean;\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n MessageStatus?: React.ComponentType<MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>>;\n otherAttachments?: Attachment<At>[];\n showMessageStatus?: boolean;\n };\n\nexport const MessageFooter = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, lastGroupMessage, members, message, otherAttachments, showMessageStatus } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { MessageStatus } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageFooter\n {...{\n alignment,\n lastGroupMessage,\n members,\n message,\n MessageStatus,\n otherAttachments,\n showMessageStatus,\n }}\n {...props}\n />\n );\n};\n"]}
1
+ {"version":3,"sources":["MessageFooter.tsx"],"names":["MessageFooterWithContext","props","alignment","deletedMessagesVisibilityType","formattedDate","isDeleted","lastGroupMessage","members","message","MessageStatus","otherAttachments","showMessageStatus","theme","grey","colors","messageSimple","content","deletedMetaText","eyeIcon","messageUser","metaContainer","metaText","t","undefined","color","textAlign","length","actions","Object","keys","user","name","areEqual","prevProps","nextProps","prevAlignment","prevFormattedDate","prevLastGroupMessage","prevMembers","prevMessage","prevOtherAttachments","prevShowMessageStatus","nextAlignment","nextFormattedDate","nextLastGroupMessage","nextMembers","nextMessage","nextOtherAttachments","nextShowMessageStatus","alignmentEqual","membersEqual","lastGroupMessageEqual","deletedMessagesVisibilityTypeEqual","isPrevMessageTypeDeleted","type","isNextMessageTypeDeleted","messageEqual","reply_count","status","text","pinned","otherAttachmentsEqual","showMessageStatusEqual","formattedDateEqual","MemoizedMessageFooter","React","memo","MessageFooter"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;;AAKA;;AAKA;;AACA;;AACA;;;;;AAgDA,IAAMA,wBAAwB,GAAG,SAA3BA,wBAA2B,CAS/BC,KAT+B,EAU5B;AAAA;;AACH,MACEC,SADF,GAWID,KAXJ,CACEC,SADF;AAAA,MAEEC,6BAFF,GAWIF,KAXJ,CAEEE,6BAFF;AAAA,MAGEC,aAHF,GAWIH,KAXJ,CAGEG,aAHF;AAAA,MAIEC,SAJF,GAWIJ,KAXJ,CAIEI,SAJF;AAAA,MAKEC,gBALF,GAWIL,KAXJ,CAKEK,gBALF;AAAA,MAMEC,OANF,GAWIN,KAXJ,CAMEM,OANF;AAAA,MAOEC,OAPF,GAWIP,KAXJ,CAOEO,OAPF;AAAA,MAQEC,aARF,GAWIR,KAXJ,CAQEQ,aARF;AAAA,MASEC,gBATF,GAWIT,KAXJ,CASES,gBATF;AAAA,MAUEC,iBAVF,GAWIV,KAXJ,CAUEU,iBAVF;;AAaA,kBAOI,6BAPJ;AAAA,kCACEC,KADF;AAAA,MAEcC,IAFd,mBAEIC,MAFJ,CAEcD,IAFd;AAAA,8CAGIE,aAHJ,CAIMC,OAJN;AAAA,MAIiBC,eAJjB,yBAIiBA,eAJjB;AAAA,MAIkCC,OAJlC,yBAIkCA,OAJlC;AAAA,MAI2CC,WAJ3C,yBAI2CA,WAJ3C;AAAA,MAIwDC,aAJxD,yBAIwDA,aAJxD;AAAA,MAIuEC,QAJvE,yBAIuEA,QAJvE;;AAQA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AAEA,MAAIjB,SAAJ,EAAe;AACb,WACE,gCAAC,iBAAD;AAAM,MAAA,KAAK,EAAEe,aAAb;AAA4B,MAAA,MAAM,EAAC,iBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OACGjB,6BAA6B,KAAK,QAAlC,IACC,kEACE,gCAAC,UAAD;AAAK,MAAA,QAAQ,EAAEE,SAAS,GAAGkB,SAAH,GAAeV;AAAvC,OAAiDK,OAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OADF,EAEE,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL;AACEM,QAAAA,KAAK,EAAEX,IADT;AAEEY,QAAAA,SAAS,EAAEvB;AAFb,OADK,EAKLmB,QALK,EAMLJ,eANK,CADT;AASE,MAAA,MAAM,EAAC,qBATT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAWGK,CAAC,CAAC,qBAAD,CAXJ,CAFF,CAFJ,EAmBE,gCAAC,iBAAD;AACE,MAAA,KAAK,EAAE,CACL;AACEE,QAAAA,KAAK,EAAEX,IADT;AAEEY,QAAAA,SAAS,EAAEvB;AAFb,OADK,EAKLmB,QALK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OASGjB,aATH,CAnBF,CADF;AAiCD;;AAED,MAAIE,gBAAgB,KAAK,KAAzB,EAAgC;AAC9B,WAAO,IAAP;AACD;;AAED,SACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEc,aAAb;AAA4B,IAAA,MAAM,EAAC,qBAAnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGV,gBAAgB,CAACgB,MAAjB,IAA2BhB,gBAAgB,CAAC,CAAD,CAAhB,CAAoBiB,OAA/C,GACC,kEACE,gCAAC,UAAD,gCAAST,OAAT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF,EAEE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL;AACEM,MAAAA,KAAK,EAAEX,IADT;AAEEY,MAAAA,SAAS,EAAEvB;AAFb,KADK,EAKLmB,QALK,EAMLJ,eANK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAUGK,CAAC,CAAC,qBAAD,CAVJ,CAFF,CADD,GAgBG,IAjBN,EAkBGM,MAAM,CAACC,IAAP,CAAYtB,OAAZ,EAAqBmB,MAArB,GAA8B,CAA9B,IAAmCxB,SAAS,KAAK,MAAjD,qBAA2DM,OAAO,CAACsB,IAAnE,aAA2D,cAAcC,IAAzE,GACC,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC;AAAEP,MAAAA,KAAK,EAAEX;AAAT,KAAD,EAAkBM,WAAlB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA8CX,OAAO,CAACsB,IAAR,CAAaC,IAA3D,CADD,GAEG,IApBN,EAqBGpB,iBAAiB,IAAI,gCAAC,aAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IArBxB,EAsBE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC;AAAEa,MAAAA,KAAK,EAAEX,IAAT;AAAeY,MAAAA,SAAS,EAAEvB;AAA1B,KAAD,EAAwCmB,QAAxC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAiEjB,aAAjE,CAtBF,CADF;AA0BD,CApGD;;AAsGA,IAAM4B,QAAQ,GAAG,SAAXA,QAAW,CASfC,SATe,EAUfC,SAVe,EAWZ;AAAA;;AACH,MACaC,aADb,GAQIF,SARJ,CACE/B,SADF;AAAA,MAEiBkC,iBAFjB,GAQIH,SARJ,CAEE7B,aAFF;AAAA,MAGoBiC,oBAHpB,GAQIJ,SARJ,CAGE3B,gBAHF;AAAA,MAIWgC,WAJX,GAQIL,SARJ,CAIE1B,OAJF;AAAA,MAKWgC,WALX,GAQIN,SARJ,CAKEzB,OALF;AAAA,MAMoBgC,oBANpB,GAQIP,SARJ,CAMEvB,gBANF;AAAA,MAOqB+B,qBAPrB,GAQIR,SARJ,CAOEtB,iBAPF;AASA,MACa+B,aADb,GAQIR,SARJ,CACEhC,SADF;AAAA,MAEiByC,iBAFjB,GAQIT,SARJ,CAEE9B,aAFF;AAAA,MAGoBwC,oBAHpB,GAQIV,SARJ,CAGE5B,gBAHF;AAAA,MAIWuC,WAJX,GAQIX,SARJ,CAIE3B,OAJF;AAAA,MAKWuC,WALX,GAQIZ,SARJ,CAKE1B,OALF;AAAA,MAMoBuC,oBANpB,GAQIb,SARJ,CAMExB,gBANF;AAAA,MAOqBsC,qBAPrB,GAQId,SARJ,CAOEvB,iBAPF;AAUA,MAAMsC,cAAc,GAAGd,aAAa,KAAKO,aAAzC;AACA,MAAI,CAACO,cAAL,EAAqB,OAAO,KAAP;AAErB,MAAMC,YAAY,GAAGtB,MAAM,CAACC,IAAP,CAAYS,WAAZ,EAAyBZ,MAAzB,KAAoCE,MAAM,CAACC,IAAP,CAAYgB,WAAZ,EAAyBnB,MAAlF;AACA,MAAI,CAACwB,YAAL,EAAmB,OAAO,KAAP;AAEnB,MAAMC,qBAAqB,GAAGd,oBAAoB,KAAKO,oBAAvD;AACA,MAAI,CAACO,qBAAL,EAA4B,OAAO,KAAP;AAE5B,MAAMC,kCAAkC,GACtCnB,SAAS,CAAC9B,6BAAV,KAA4C+B,SAAS,CAAC/B,6BADxD;AAEA,MAAI,CAACiD,kCAAL,EAAyC,OAAO,KAAP;AAEzC,MAAMC,wBAAwB,GAAGd,WAAW,CAACe,IAAZ,KAAqB,SAAtD;AACA,MAAMC,wBAAwB,GAAGT,WAAW,CAACQ,IAAZ,KAAqB,SAAtD;AAEA,MAAME,YAAY,GAChBH,wBAAwB,KAAKE,wBAA7B,IACAhB,WAAW,CAACkB,WAAZ,KAA4BX,WAAW,CAACW,WADxC,IAEAlB,WAAW,CAACmB,MAAZ,KAAuBZ,WAAW,CAACY,MAFnC,IAGAnB,WAAW,CAACe,IAAZ,KAAqBR,WAAW,CAACQ,IAHjC,IAIAf,WAAW,CAACoB,IAAZ,KAAqBb,WAAW,CAACa,IAJjC,IAKApB,WAAW,CAACqB,MAAZ,KAAuBd,WAAW,CAACc,MANrC;AAOA,MAAI,CAACJ,YAAL,EAAmB,OAAO,KAAP;AAEnB,MAAMK,qBAAqB,GACzBrB,oBAAoB,CAACd,MAArB,KAAgCqB,oBAAoB,CAACrB,MAArD,IACA,CAAAc,oBAAoB,QAApB,qCAAAA,oBAAoB,CAAG,CAAH,CAApB,qEAA2Bb,OAA3B,4CAAoCD,MAApC,OAA+CqB,oBAA/C,6CAA+CA,oBAAoB,CAAG,CAAH,CAAnE,+CAA+C,sBAA2BpB,OAA1E,qBAA+C,uBAAoCD,MAAnF,CAFF;AAGA,MAAI,CAACmC,qBAAL,EAA4B,OAAO,KAAP;AAE5B,MAAMC,sBAAsB,GAAGrB,qBAAqB,KAAKO,qBAAzD;AACA,MAAI,CAACc,sBAAL,EAA6B,OAAO,KAAP;AAE7B,MAAMC,kBAAkB,GAAG3B,iBAAiB,KAAKO,iBAAjD;AACA,MAAI,CAACoB,kBAAL,EAAyB,OAAO,KAAP;AAEzB,SAAO,IAAP;AACD,CApED;;AAsEA,IAAMC,qBAAqB,GAAGC,kBAAMC,IAAN,CAC5BlE,wBAD4B,EAE5BgC,QAF4B,CAA9B;;AAuBO,IAAMmC,aAAa,GAAG,SAAhBA,aAAgB,CAS3BlE,KAT2B,EAUxB;AACH,2BACE,wCADF;AAAA,MAAQC,SAAR,sBAAQA,SAAR;AAAA,MAAmBI,gBAAnB,sBAAmBA,gBAAnB;AAAA,MAAqCC,OAArC,sBAAqCA,OAArC;AAAA,MAA8CC,OAA9C,sBAA8CA,OAA9C;AAAA,MAAuDE,gBAAvD,sBAAuDA,gBAAvD;AAAA,MAAyEC,iBAAzE,sBAAyEA,iBAAzE;;AAGA,4BACE,0CADF;AAAA,MAAQR,6BAAR,uBAAQA,6BAAR;AAAA,MAAuCM,aAAvC,uBAAuCA,aAAvC;;AAGA,SACE,gCAAC,qBAAD;AAEIP,IAAAA,SAAS,EAATA,SAFJ;AAGIC,IAAAA,6BAA6B,EAA7BA,6BAHJ;AAIIG,IAAAA,gBAAgB,EAAhBA,gBAJJ;AAKIC,IAAAA,OAAO,EAAPA,OALJ;AAMIC,IAAAA,OAAO,EAAPA,OANJ;AAOIC,IAAAA,aAAa,EAAbA,aAPJ;AAQIC,IAAAA,gBAAgB,EAAhBA,gBARJ;AASIC,IAAAA,iBAAiB,EAAjBA;AATJ,KAWMV,KAXN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAeD,CAhCM","sourcesContent":["import React from 'react';\nimport { Text, View } from 'react-native';\n\nimport {\n Alignment,\n MessageContextValue,\n useMessageContext,\n} from '../../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../../contexts/messagesContext/MessagesContext';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Eye } from '../../../icons';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { MessageStatusProps } from './MessageStatus';\n\nimport type { MessageType } from '../../MessageList/hooks/useMessageList';\n\nimport type { ChannelContextValue } from '../../../contexts/channelContext/ChannelContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../../types/types';\n\ntype MessageFooterComponentProps = {\n formattedDate: string | Date;\n isDeleted?: boolean;\n};\n\ntype MessageFooterPropsWithContext<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n> = Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'members'\n | 'message'\n | 'otherAttachments'\n | 'showMessageStatus'\n | 'lastGroupMessage'\n> &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'deletedMessagesVisibilityType' | 'MessageStatus'\n > &\n MessageFooterComponentProps;\n\nconst MessageFooterWithContext = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n props: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment,\n deletedMessagesVisibilityType,\n formattedDate,\n isDeleted,\n lastGroupMessage,\n members,\n message,\n MessageStatus,\n otherAttachments,\n showMessageStatus,\n } = props;\n\n const {\n theme: {\n colors: { grey },\n messageSimple: {\n content: { deletedMetaText, eyeIcon, messageUser, metaContainer, metaText },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n if (isDeleted) {\n return (\n <View style={metaContainer} testID='message-deleted'>\n {deletedMessagesVisibilityType === 'sender' && (\n <>\n <Eye pathFill={isDeleted ? undefined : grey} {...eyeIcon} />\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n deletedMetaText,\n ]}\n testID='only-visible-to-you'\n >\n {t('Only visible to you')}\n </Text>\n </>\n )}\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n ]}\n >\n {formattedDate}\n </Text>\n </View>\n );\n }\n\n if (lastGroupMessage === false) {\n return null;\n }\n\n return (\n <View style={metaContainer} testID='message-status-time'>\n {otherAttachments.length && otherAttachments[0].actions ? (\n <>\n <Eye {...eyeIcon} />\n <Text\n style={[\n {\n color: grey,\n textAlign: alignment,\n },\n metaText,\n deletedMetaText,\n ]}\n >\n {t('Only visible to you')}\n </Text>\n </>\n ) : null}\n {Object.keys(members).length > 2 && alignment === 'left' && message.user?.name ? (\n <Text style={[{ color: grey }, messageUser]}>{message.user.name}</Text>\n ) : null}\n {showMessageStatus && <MessageStatus />}\n <Text style={[{ color: grey, textAlign: alignment }, metaText]}>{formattedDate}</Text>\n </View>\n );\n};\n\nconst areEqual = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends UnknownType = DefaultUserType,\n>(\n prevProps: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: MessageFooterPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n alignment: prevAlignment,\n formattedDate: prevFormattedDate,\n lastGroupMessage: prevLastGroupMessage,\n members: prevMembers,\n message: prevMessage,\n otherAttachments: prevOtherAttachments,\n showMessageStatus: prevShowMessageStatus,\n } = prevProps;\n const {\n alignment: nextAlignment,\n formattedDate: nextFormattedDate,\n lastGroupMessage: nextLastGroupMessage,\n members: nextMembers,\n message: nextMessage,\n otherAttachments: nextOtherAttachments,\n showMessageStatus: nextShowMessageStatus,\n } = nextProps;\n\n const alignmentEqual = prevAlignment === nextAlignment;\n if (!alignmentEqual) return false;\n\n const membersEqual = Object.keys(prevMembers).length === Object.keys(nextMembers).length;\n if (!membersEqual) return false;\n\n const lastGroupMessageEqual = prevLastGroupMessage === nextLastGroupMessage;\n if (!lastGroupMessageEqual) return false;\n\n const deletedMessagesVisibilityTypeEqual =\n prevProps.deletedMessagesVisibilityType === nextProps.deletedMessagesVisibilityType;\n if (!deletedMessagesVisibilityTypeEqual) return false;\n\n const isPrevMessageTypeDeleted = prevMessage.type === 'deleted';\n const isNextMessageTypeDeleted = nextMessage.type === 'deleted';\n\n const messageEqual =\n isPrevMessageTypeDeleted === isNextMessageTypeDeleted &&\n prevMessage.reply_count === nextMessage.reply_count &&\n prevMessage.status === nextMessage.status &&\n prevMessage.type === nextMessage.type &&\n prevMessage.text === nextMessage.text &&\n prevMessage.pinned === nextMessage.pinned;\n if (!messageEqual) return false;\n\n const otherAttachmentsEqual =\n prevOtherAttachments.length === nextOtherAttachments.length &&\n prevOtherAttachments?.[0]?.actions?.length === nextOtherAttachments?.[0]?.actions?.length;\n if (!otherAttachmentsEqual) return false;\n\n const showMessageStatusEqual = prevShowMessageStatus === nextShowMessageStatus;\n if (!showMessageStatusEqual) return false;\n\n const formattedDateEqual = prevFormattedDate === nextFormattedDate;\n if (!formattedDateEqual) return false;\n\n return true;\n};\n\nconst MemoizedMessageFooter = React.memo(\n MessageFooterWithContext,\n areEqual,\n) as typeof MessageFooterWithContext;\n\nexport type MessageFooterProps<\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n> = Partial<Pick<ChannelContextValue<At, Ch, Co, Ev, Me, Re, Us>, 'members'>> &\n MessageFooterComponentProps & {\n alignment?: Alignment;\n lastGroupMessage?: boolean;\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n MessageStatus?: React.ComponentType<MessageStatusProps<At, Ch, Co, Ev, Me, Re, Us>>;\n otherAttachments?: Attachment<At>[];\n showMessageStatus?: boolean;\n };\n\nexport const MessageFooter = <\n At extends UnknownType = DefaultAttachmentType,\n Ch extends UnknownType = DefaultChannelType,\n Co extends string = DefaultCommandType,\n Ev extends UnknownType = DefaultEventType,\n Me extends UnknownType = DefaultMessageType,\n Re extends UnknownType = DefaultReactionType,\n Us extends DefaultUserType = DefaultUserType,\n>(\n props: MessageFooterProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const { alignment, lastGroupMessage, members, message, otherAttachments, showMessageStatus } =\n useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n const { deletedMessagesVisibilityType, MessageStatus } =\n useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n\n return (\n <MemoizedMessageFooter\n {...{\n alignment,\n deletedMessagesVisibilityType,\n lastGroupMessage,\n members,\n message,\n MessageStatus,\n otherAttachments,\n showMessageStatus,\n }}\n {...props}\n />\n );\n};\n"]}
@@ -0,0 +1,122 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MessagePinnedHeader = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _reactNative = require("react-native");
13
+
14
+ var _icons = require("../../../icons");
15
+
16
+ var _MessageContext = require("../../../contexts/messageContext/MessageContext");
17
+
18
+ var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
19
+
20
+ var _TranslationContext = require("../../../contexts/translationContext/TranslationContext");
21
+
22
+ var _ChatContext = require("../../../contexts/chatContext/ChatContext");
23
+
24
+ var _this = this,
25
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx";
26
+
27
+ var styles = _reactNative.StyleSheet.create({
28
+ container: {
29
+ display: 'flex',
30
+ flexDirection: 'row',
31
+ marginBottom: 8,
32
+ marginLeft: 30,
33
+ marginTop: 5
34
+ },
35
+ label: {}
36
+ });
37
+
38
+ var MessagePinnedHeaderWithContext = function MessagePinnedHeaderWithContext(props) {
39
+ var _message$pinned_by, _client$user, _message$pinned_by2;
40
+
41
+ var alignment = props.alignment,
42
+ message = props.message;
43
+
44
+ var _useTheme = (0, _ThemeContext.useTheme)(),
45
+ _useTheme$theme = _useTheme.theme,
46
+ grey = _useTheme$theme.colors.grey,
47
+ pinnedHeader = _useTheme$theme.messageSimple.pinnedHeader;
48
+
49
+ var container = pinnedHeader.container,
50
+ label = pinnedHeader.label;
51
+
52
+ var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
53
+ t = _useTranslationContex.t;
54
+
55
+ var _useChatContext = (0, _ChatContext.useChatContext)(),
56
+ client = _useChatContext.client;
57
+
58
+ return _react["default"].createElement(_reactNative.View, {
59
+ style: [styles.container, {
60
+ justifyContent: alignment === 'left' ? 'flex-start' : 'flex-end'
61
+ }, container],
62
+ testID: "message-pinned",
63
+ __self: _this,
64
+ __source: {
65
+ fileName: _jsxFileName,
66
+ lineNumber: 67,
67
+ columnNumber: 5
68
+ }
69
+ }, _react["default"].createElement(_icons.PinHeader, {
70
+ pathFill: grey,
71
+ __self: _this,
72
+ __source: {
73
+ fileName: _jsxFileName,
74
+ lineNumber: 77,
75
+ columnNumber: 7
76
+ }
77
+ }), _react["default"].createElement(_reactNative.Text, {
78
+ style: [{
79
+ color: grey
80
+ }, styles.label, label],
81
+ __self: _this,
82
+ __source: {
83
+ fileName: _jsxFileName,
84
+ lineNumber: 78,
85
+ columnNumber: 7
86
+ }
87
+ }, "Pinned by", ' ', (message == null ? void 0 : (_message$pinned_by = message.pinned_by) == null ? void 0 : _message$pinned_by.id) === (client == null ? void 0 : (_client$user = client.user) == null ? void 0 : _client$user.id) ? t('You') : message == null ? void 0 : (_message$pinned_by2 = message.pinned_by) == null ? void 0 : _message$pinned_by2.name));
88
+ };
89
+
90
+ var areEqual = function areEqual(prevProps, nextProps) {
91
+ var prevMessage = prevProps.message;
92
+ var nextMessage = nextProps.message;
93
+ var messageEqual = prevMessage.deleted_at === nextMessage.deleted_at && prevMessage.status === nextMessage.status && prevMessage.type === nextMessage.type && prevMessage.text === nextMessage.text && prevMessage.pinned === nextMessage.pinned;
94
+ if (!messageEqual) return false;
95
+ return true;
96
+ };
97
+
98
+ var MemoizedMessagePinnedHeader = _react["default"].memo(MessagePinnedHeaderWithContext, areEqual);
99
+
100
+ var MessagePinnedHeader = function MessagePinnedHeader(props) {
101
+ var _useMessageContext = (0, _MessageContext.useMessageContext)(),
102
+ alignment = _useMessageContext.alignment,
103
+ lastGroupMessage = _useMessageContext.lastGroupMessage,
104
+ message = _useMessageContext.message;
105
+
106
+ return _react["default"].createElement(MemoizedMessagePinnedHeader, (0, _extends2["default"])({
107
+ alignment: alignment,
108
+ lastGroupMessage: lastGroupMessage,
109
+ message: message
110
+ }, props, {
111
+ __self: _this,
112
+ __source: {
113
+ fileName: _jsxFileName,
114
+ lineNumber: 139,
115
+ columnNumber: 5
116
+ }
117
+ }));
118
+ };
119
+
120
+ exports.MessagePinnedHeader = MessagePinnedHeader;
121
+ MessagePinnedHeader.displayName = 'MessagePinnedHeader{messageSimple{pinned}}';
122
+ //# sourceMappingURL=MessagePinnedHeader.js.map