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

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 (1099) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +2 -2
  2. package/lib/commonjs/components/Attachment/Attachment.js.map +1 -1
  3. package/lib/commonjs/components/Attachment/AttachmentActions.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js +18 -15
  5. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachment.js +8 -8
  7. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/FileIcon.js.map +1 -1
  9. package/lib/commonjs/components/Attachment/Gallery.js +97 -113
  10. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  11. package/lib/commonjs/components/Attachment/Giphy.js +112 -148
  12. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  13. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
  14. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
  15. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
  16. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
  17. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
  18. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
  19. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
  20. package/lib/commonjs/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
  21. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
  22. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
  23. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
  24. package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
  25. package/lib/commonjs/components/Attachment/utils/buildGallery/types.js +4 -0
  26. package/lib/commonjs/components/Attachment/utils/buildGallery/types.js.map +1 -0
  27. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js +14 -0
  28. package/lib/commonjs/components/Attachment/utils/getAspectRatio.js.map +1 -0
  29. package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
  30. package/lib/commonjs/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
  31. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +9 -8
  32. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  33. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  34. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  35. package/lib/commonjs/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  36. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  37. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  38. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  39. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  40. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  41. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  42. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  43. package/lib/commonjs/components/Avatar/Avatar.js +13 -7
  44. package/lib/commonjs/components/Avatar/Avatar.js.map +1 -1
  45. package/lib/commonjs/components/Avatar/GroupAvatar.js +10 -10
  46. package/lib/commonjs/components/Avatar/GroupAvatar.js.map +1 -1
  47. package/lib/commonjs/components/Channel/Channel.js +332 -247
  48. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  49. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +5 -5
  50. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  51. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  52. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  53. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  54. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  55. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  56. package/lib/commonjs/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  57. package/lib/commonjs/components/ChannelList/ChannelList.js +6 -6
  58. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  59. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +5 -4
  60. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  61. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
  62. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  63. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +4 -3
  64. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  65. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +17 -17
  66. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js.map +1 -1
  67. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  68. package/lib/commonjs/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  69. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  70. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  71. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  72. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  73. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  74. package/lib/commonjs/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  75. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  76. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  77. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
  78. package/lib/commonjs/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  79. package/lib/commonjs/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  80. package/lib/commonjs/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  81. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
  82. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  83. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +89 -64
  84. package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  85. package/lib/commonjs/components/ChannelList/utils.js +1 -1
  86. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +2 -2
  87. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  88. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +2 -2
  89. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  90. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  91. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +49 -20
  92. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  93. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
  94. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
  95. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  96. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  97. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  98. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  99. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  100. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  101. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  102. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  103. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  104. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  105. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  106. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  107. package/lib/commonjs/components/Chat/hooks/useIsOnline.js +12 -5
  108. package/lib/commonjs/components/Chat/hooks/useIsOnline.js.map +1 -1
  109. package/lib/commonjs/components/ImageGallery/ImageGallery.js +90 -58
  110. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  111. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
  112. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  113. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
  114. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  115. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  116. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  117. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +7 -7
  118. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  119. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +5 -5
  120. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  121. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  122. package/lib/commonjs/components/Indicators/LoadingIndicator.js +9 -9
  123. package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
  124. package/lib/commonjs/components/Message/Message.js +151 -860
  125. package/lib/commonjs/components/Message/Message.js.map +1 -1
  126. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +6 -6
  127. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  128. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +39 -38
  129. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  130. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +8 -6
  131. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  132. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +33 -21
  133. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  134. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  135. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  136. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +5 -1
  137. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  138. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
  139. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  140. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +27 -13
  141. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  142. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +25 -24
  143. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  144. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  145. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  146. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +52 -80
  147. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  148. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js +89 -0
  149. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
  150. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
  151. package/lib/commonjs/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
  152. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +170 -73
  153. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  154. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  155. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  156. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js +1 -5
  157. package/lib/commonjs/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  158. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js +307 -0
  159. package/lib/commonjs/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  160. package/lib/commonjs/components/Message/hooks/useMessageActions.js +563 -0
  161. package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -0
  162. package/lib/commonjs/components/Message/utils/messageActions.js +17 -15
  163. package/lib/commonjs/components/Message/utils/messageActions.js.map +1 -1
  164. package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +1 -1
  165. package/lib/commonjs/components/MessageInput/AttachButton.js +3 -3
  166. package/lib/commonjs/components/MessageInput/AttachButton.js.map +1 -1
  167. package/lib/commonjs/components/MessageInput/CommandsButton.js +3 -3
  168. package/lib/commonjs/components/MessageInput/CommandsButton.js.map +1 -1
  169. package/lib/commonjs/components/MessageInput/CooldownTimer.js +78 -0
  170. package/lib/commonjs/components/MessageInput/CooldownTimer.js.map +1 -0
  171. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +4 -4
  172. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  173. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +9 -9
  174. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  175. package/lib/commonjs/components/MessageInput/InputButtons.js +17 -22
  176. package/lib/commonjs/components/MessageInput/InputButtons.js.map +1 -1
  177. package/lib/commonjs/components/MessageInput/MessageInput.js +93 -65
  178. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  179. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +3 -3
  180. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js.map +1 -1
  181. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  182. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  183. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +4 -3
  184. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  185. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js +63 -0
  186. package/lib/commonjs/components/MessageInput/hooks/useCooldown.js.map +1 -0
  187. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js +57 -0
  188. package/lib/commonjs/components/MessageInput/hooks/useCountdown.js.map +1 -0
  189. package/lib/commonjs/components/MessageList/DateHeader.js +2 -2
  190. package/lib/commonjs/components/MessageList/DateHeader.js.map +1 -1
  191. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +2 -2
  192. package/lib/commonjs/components/MessageList/InlineDateSeparator.js.map +1 -1
  193. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  194. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  195. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  196. package/lib/commonjs/components/MessageList/MessageList.js +77 -44
  197. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  198. package/lib/commonjs/components/MessageList/MessageSystem.js.map +1 -1
  199. package/lib/commonjs/components/MessageList/TypingIndicator.js +5 -5
  200. package/lib/commonjs/components/MessageList/TypingIndicator.js.map +1 -1
  201. package/lib/commonjs/components/MessageList/hooks/useMessageList.js +23 -10
  202. package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
  203. package/lib/commonjs/components/MessageList/hooks/useTypingString.js +2 -2
  204. package/lib/commonjs/components/MessageList/hooks/useTypingString.js.map +1 -1
  205. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js +2 -1
  206. package/lib/commonjs/components/MessageList/utils/getDateSeparators.js.map +1 -1
  207. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js +10 -5
  208. package/lib/commonjs/components/MessageList/utils/getGroupStyles.js.map +1 -1
  209. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js +3 -1
  210. package/lib/commonjs/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  211. package/lib/{module/components/MessageOverlay/MessageActions.js → commonjs/components/MessageOverlay/MessageActionList.js} +33 -85
  212. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -0
  213. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +131 -0
  214. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  215. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +97 -78
  216. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  217. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +38 -0
  218. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  219. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +12 -11
  220. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  221. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +31 -34
  222. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js.map +1 -1
  223. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
  224. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
  225. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  226. package/lib/commonjs/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  227. package/lib/commonjs/components/Reply/Reply.js +25 -19
  228. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  229. package/lib/commonjs/components/Thread/Thread.js +11 -2
  230. package/lib/commonjs/components/Thread/Thread.js.map +1 -1
  231. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +20 -12
  232. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  233. package/lib/commonjs/components/docs/ListProps.md +1 -1
  234. package/lib/commonjs/components/docs/data.js +1 -1
  235. package/lib/commonjs/components/index.js +133 -55
  236. package/lib/commonjs/components/index.js.map +1 -1
  237. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  238. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  239. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
  240. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  241. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  242. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  243. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +2 -2
  244. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  245. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  246. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  247. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js +144 -0
  248. package/lib/commonjs/contexts/channelsStateContext/useChannelState.js.map +1 -0
  249. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  250. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  251. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  252. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  253. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +2 -2
  254. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  255. package/lib/commonjs/contexts/messageContext/MessageContext.js +2 -2
  256. package/lib/commonjs/contexts/messageContext/MessageContext.js.map +1 -1
  257. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +122 -84
  258. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  259. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  260. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  261. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
  262. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  263. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
  264. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  265. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
  266. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
  267. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
  268. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
  269. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  270. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  271. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  272. package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
  273. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +55 -46
  274. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
  275. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  276. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  277. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  278. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  279. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +20 -33
  280. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  281. package/lib/commonjs/contexts/themeContext/ThemeContext.js +2 -2
  282. package/lib/commonjs/contexts/themeContext/ThemeContext.js.map +1 -1
  283. package/lib/commonjs/contexts/themeContext/utils/theme.js +45 -20
  284. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  285. package/lib/commonjs/contexts/threadContext/ThreadContext.js +2 -2
  286. package/lib/commonjs/contexts/threadContext/ThreadContext.js.map +1 -1
  287. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  288. package/lib/commonjs/contexts/translationContext/TranslationContext.js.map +1 -1
  289. package/lib/commonjs/contexts/typingContext/TypingContext.js +2 -2
  290. package/lib/commonjs/contexts/typingContext/TypingContext.js.map +1 -1
  291. package/lib/commonjs/contexts/utils/getDisplayName.js.map +1 -1
  292. package/lib/commonjs/emoji-data/compiled.js +0 -315
  293. package/lib/commonjs/emoji-data/compiled.js.map +1 -1
  294. package/lib/commonjs/emoji-data/emojiNames.js +0 -105
  295. package/lib/commonjs/emoji-data/emojiNames.js.map +1 -1
  296. package/lib/commonjs/emoji-data/emojis.js +0 -175
  297. package/lib/commonjs/emoji-data/emojis.js.map +1 -1
  298. package/lib/commonjs/emoji-data/index.js +2 -2
  299. package/lib/commonjs/emoji-data/index.js.map +1 -1
  300. package/lib/commonjs/hooks/useStreami18n.js.map +1 -1
  301. package/lib/commonjs/i18n/en.json +9 -3
  302. package/lib/commonjs/i18n/fr.json +9 -3
  303. package/lib/commonjs/i18n/hi.json +9 -3
  304. package/lib/commonjs/i18n/it.json +9 -3
  305. package/lib/commonjs/i18n/ja.json +9 -0
  306. package/lib/commonjs/i18n/ko.json +9 -0
  307. package/lib/commonjs/i18n/nl.json +9 -3
  308. package/lib/commonjs/i18n/ru.json +9 -3
  309. package/lib/commonjs/i18n/tr.json +10 -4
  310. package/lib/commonjs/icons/Pin.js +42 -0
  311. package/lib/commonjs/icons/Pin.js.map +1 -0
  312. package/lib/commonjs/icons/PinHeader.js +38 -0
  313. package/lib/commonjs/icons/PinHeader.js.map +1 -0
  314. package/lib/commonjs/icons/Unpin.js +38 -0
  315. package/lib/commonjs/icons/Unpin.js.map +1 -0
  316. package/lib/commonjs/icons/index.js +39 -26
  317. package/lib/commonjs/icons/index.js.map +1 -1
  318. package/lib/commonjs/icons/utils/base.js +1 -1
  319. package/lib/commonjs/index.js +6 -6
  320. package/lib/commonjs/mock-builders/api/error.js +1 -1
  321. package/lib/commonjs/mock-builders/api/sendMessage.js +4 -1
  322. package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
  323. package/lib/commonjs/mock-builders/generator/attachment.js +1 -3
  324. package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
  325. package/lib/commonjs/mock-builders/generator/channel.js +101 -50
  326. package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
  327. package/lib/commonjs/mock-builders/generator/user.js +32 -33
  328. package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
  329. package/lib/commonjs/mock-builders/mock.js +3 -3
  330. package/lib/commonjs/mock-builders/mock.js.map +1 -1
  331. package/lib/commonjs/native.js +1 -7
  332. package/lib/commonjs/native.js.map +1 -1
  333. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js +7 -7
  334. package/lib/commonjs/styleguideComponents/ArgumentsRenderer.js.map +1 -1
  335. package/lib/commonjs/styleguideComponents/JsDoc.js +4 -4
  336. package/lib/commonjs/styleguideComponents/JsDoc.js.map +1 -1
  337. package/lib/commonjs/styleguideComponents/PathlineRenderer.js +7 -7
  338. package/lib/commonjs/styleguideComponents/PathlineRenderer.js.map +1 -1
  339. package/lib/commonjs/styleguideComponents/PropsRenderer.js +25 -25
  340. package/lib/commonjs/styleguideComponents/PropsRenderer.js.map +1 -1
  341. package/lib/commonjs/styleguideComponents/Wrapper.js +1 -1
  342. package/lib/commonjs/styleguideComponents/Wrapper.js.map +1 -1
  343. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  344. package/lib/commonjs/utils/date.js +13 -0
  345. package/lib/commonjs/utils/date.js.map +1 -0
  346. package/lib/commonjs/utils/getResizedImageUrl.js +26 -0
  347. package/lib/commonjs/utils/getResizedImageUrl.js.map +1 -0
  348. package/lib/commonjs/utils/getUrlOfImageAttachment.js +9 -0
  349. package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -0
  350. package/lib/commonjs/utils/utils.js +17 -9
  351. package/lib/commonjs/utils/utils.js.map +1 -1
  352. package/lib/commonjs/version.json +1 -1
  353. package/lib/module/components/Attachment/Attachment.js +2 -2
  354. package/lib/module/components/Attachment/Attachment.js.map +1 -1
  355. package/lib/module/components/Attachment/AttachmentActions.js.map +1 -1
  356. package/lib/module/components/Attachment/Card.js +18 -15
  357. package/lib/module/components/Attachment/Card.js.map +1 -1
  358. package/lib/module/components/Attachment/FileAttachment.js +8 -8
  359. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  360. package/lib/module/components/Attachment/FileIcon.js.map +1 -1
  361. package/lib/module/components/Attachment/Gallery.js +97 -113
  362. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  363. package/lib/module/components/Attachment/Giphy.js +112 -148
  364. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  365. package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js +46 -0
  366. package/lib/module/components/Attachment/utils/buildGallery/buildGallery.js.map +1 -0
  367. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js +88 -0
  368. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.js.map +1 -0
  369. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js +75 -0
  370. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.js.map +1 -0
  371. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js +43 -0
  372. package/lib/module/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.js.map +1 -0
  373. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +30 -0
  374. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -0
  375. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js +49 -0
  376. package/lib/module/components/Attachment/utils/buildGallery/buildThumbnailGrid.js.map +1 -0
  377. package/lib/module/components/Attachment/utils/buildGallery/types.js +4 -0
  378. package/lib/module/components/Attachment/utils/buildGallery/types.js.map +1 -0
  379. package/lib/module/components/Attachment/utils/getAspectRatio.js +14 -0
  380. package/lib/module/components/Attachment/utils/getAspectRatio.js.map +1 -0
  381. package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js +36 -0
  382. package/lib/module/components/Attachment/utils/getGalleryImageBorderRadius.js.map +1 -0
  383. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +9 -8
  384. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  385. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +21 -45
  386. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  387. package/lib/module/components/AutoCompleteInput/{CommandsItem.js → AutoCompleteSuggestionCommandIcon.js} +21 -94
  388. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js.map +1 -0
  389. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +145 -0
  390. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js.map +1 -0
  391. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +248 -0
  392. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -0
  393. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +223 -0
  394. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -0
  395. package/lib/module/components/Avatar/Avatar.js +13 -7
  396. package/lib/module/components/Avatar/Avatar.js.map +1 -1
  397. package/lib/module/components/Avatar/GroupAvatar.js +10 -10
  398. package/lib/module/components/Avatar/GroupAvatar.js.map +1 -1
  399. package/lib/module/components/Channel/Channel.js +332 -247
  400. package/lib/module/components/Channel/Channel.js.map +1 -1
  401. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +5 -5
  402. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  403. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +7 -5
  404. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  405. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +9 -31
  406. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  407. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js +35 -0
  408. package/lib/module/components/Channel/hooks/useCreateOwnCapabilitiesContext.js.map +1 -0
  409. package/lib/module/components/ChannelList/ChannelList.js +6 -6
  410. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  411. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +5 -4
  412. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js.map +1 -1
  413. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +6 -7
  414. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js.map +1 -1
  415. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +4 -3
  416. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js.map +1 -1
  417. package/lib/module/components/ChannelList/ChannelListMessenger.js +17 -17
  418. package/lib/module/components/ChannelList/ChannelListMessenger.js.map +1 -1
  419. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js +2 -2
  420. package/lib/module/components/ChannelList/hooks/listeners/useAddedToChannelNotification.js.map +1 -1
  421. package/lib/module/components/ChannelList/hooks/listeners/useChannelDeleted.js.map +1 -1
  422. package/lib/module/components/ChannelList/hooks/listeners/useChannelHidden.js.map +1 -1
  423. package/lib/module/components/ChannelList/hooks/listeners/useChannelTruncated.js.map +1 -1
  424. package/lib/module/components/ChannelList/hooks/listeners/useChannelUpdated.js.map +1 -1
  425. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js +2 -2
  426. package/lib/module/components/ChannelList/hooks/listeners/useChannelVisible.js.map +1 -1
  427. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js +2 -2
  428. package/lib/module/components/ChannelList/hooks/listeners/useNewMessage.js.map +1 -1
  429. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js +3 -3
  430. package/lib/module/components/ChannelList/hooks/listeners/useNewMessageNotification.js.map +1 -1
  431. package/lib/module/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.js.map +1 -1
  432. package/lib/module/components/ChannelList/hooks/listeners/useUserPresence.js.map +1 -1
  433. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +2 -2
  434. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  435. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +89 -64
  436. package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
  437. package/lib/module/components/ChannelList/utils.js +1 -1
  438. package/lib/module/components/ChannelPreview/ChannelAvatar.js +2 -2
  439. package/lib/module/components/ChannelPreview/ChannelAvatar.js.map +1 -1
  440. package/lib/module/components/ChannelPreview/ChannelPreview.js +2 -2
  441. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  442. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js.map +1 -1
  443. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +49 -20
  444. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  445. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +51 -0
  446. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js.map +1 -0
  447. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +4 -4
  448. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js.map +1 -1
  449. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js.map +1 -1
  450. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +2 -2
  451. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js.map +1 -1
  452. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js +16 -7
  453. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.js.map +1 -1
  454. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  455. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.js.map +1 -1
  456. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +2 -1
  457. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  458. package/lib/module/components/Chat/Chat.js.map +1 -1
  459. package/lib/module/components/Chat/hooks/useIsOnline.js +12 -5
  460. package/lib/module/components/Chat/hooks/useIsOnline.js.map +1 -1
  461. package/lib/module/components/ImageGallery/ImageGallery.js +90 -58
  462. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  463. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +2 -2
  464. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  465. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +12 -12
  466. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  467. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +14 -16
  468. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  469. package/lib/module/components/ImageGallery/components/ImageGrid.js +7 -7
  470. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  471. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +5 -5
  472. package/lib/module/components/ImageGallery/components/ImageGridHandle.js.map +1 -1
  473. package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
  474. package/lib/module/components/Indicators/LoadingIndicator.js +9 -9
  475. package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
  476. package/lib/module/components/Message/Message.js +151 -860
  477. package/lib/module/components/Message/Message.js.map +1 -1
  478. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +6 -6
  479. package/lib/module/components/Message/MessageSimple/MessageAvatar.js.map +1 -1
  480. package/lib/module/components/Message/MessageSimple/MessageContent.js +39 -38
  481. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  482. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +8 -6
  483. package/lib/module/components/Message/MessageSimple/MessageDeleted.js.map +1 -1
  484. package/lib/module/components/Message/MessageSimple/MessageFooter.js +33 -21
  485. package/lib/module/components/Message/MessageSimple/MessageFooter.js.map +1 -1
  486. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +122 -0
  487. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js.map +1 -0
  488. package/lib/module/components/Message/MessageSimple/MessageReplies.js +5 -1
  489. package/lib/module/components/Message/MessageSimple/MessageReplies.js.map +1 -1
  490. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +5 -5
  491. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js.map +1 -1
  492. package/lib/module/components/Message/MessageSimple/MessageSimple.js +27 -13
  493. package/lib/module/components/Message/MessageSimple/MessageSimple.js.map +1 -1
  494. package/lib/module/components/Message/MessageSimple/MessageStatus.js +25 -24
  495. package/lib/module/components/Message/MessageSimple/MessageStatus.js.map +1 -1
  496. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +7 -3
  497. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js.map +1 -1
  498. package/lib/module/components/Message/MessageSimple/ReactionList.js +52 -80
  499. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  500. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js +89 -0
  501. package/lib/module/components/Message/MessageSimple/utils/parseLinks.js.map +1 -0
  502. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js +46 -0
  503. package/lib/module/components/Message/MessageSimple/utils/parseLinks.test.js.map +1 -0
  504. package/lib/module/components/Message/MessageSimple/utils/renderText.js +170 -73
  505. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  506. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +240 -0
  507. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js.map +1 -0
  508. package/lib/module/components/Message/hooks/useCreateMessageContext.js +1 -5
  509. package/lib/module/components/Message/hooks/useCreateMessageContext.js.map +1 -1
  510. package/lib/module/components/Message/hooks/useMessageActionHandlers.js +307 -0
  511. package/lib/module/components/Message/hooks/useMessageActionHandlers.js.map +1 -0
  512. package/lib/module/components/Message/hooks/useMessageActions.js +563 -0
  513. package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -0
  514. package/lib/module/components/Message/utils/messageActions.js +17 -15
  515. package/lib/module/components/Message/utils/messageActions.js.map +1 -1
  516. package/lib/module/components/Message/utils/removeReservedFields.js.map +1 -1
  517. package/lib/module/components/MessageInput/AttachButton.js +3 -3
  518. package/lib/module/components/MessageInput/AttachButton.js.map +1 -1
  519. package/lib/module/components/MessageInput/CommandsButton.js +3 -3
  520. package/lib/module/components/MessageInput/CommandsButton.js.map +1 -1
  521. package/lib/module/components/MessageInput/CooldownTimer.js +78 -0
  522. package/lib/module/components/MessageInput/CooldownTimer.js.map +1 -0
  523. package/lib/module/components/MessageInput/FileUploadPreview.js +4 -4
  524. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  525. package/lib/module/components/MessageInput/ImageUploadPreview.js +9 -9
  526. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  527. package/lib/module/components/MessageInput/InputButtons.js +17 -22
  528. package/lib/module/components/MessageInput/InputButtons.js.map +1 -1
  529. package/lib/module/components/MessageInput/MessageInput.js +93 -65
  530. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  531. package/lib/module/components/MessageInput/MoreOptionsButton.js +3 -3
  532. package/lib/module/components/MessageInput/MoreOptionsButton.js.map +1 -1
  533. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +71 -0
  534. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js.map +1 -0
  535. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +4 -3
  536. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js.map +1 -1
  537. package/lib/module/components/MessageInput/hooks/useCooldown.js +63 -0
  538. package/lib/module/components/MessageInput/hooks/useCooldown.js.map +1 -0
  539. package/lib/module/components/MessageInput/hooks/useCountdown.js +57 -0
  540. package/lib/module/components/MessageInput/hooks/useCountdown.js.map +1 -0
  541. package/lib/module/components/MessageList/DateHeader.js +2 -2
  542. package/lib/module/components/MessageList/DateHeader.js.map +1 -1
  543. package/lib/module/components/MessageList/InlineDateSeparator.js +2 -2
  544. package/lib/module/components/MessageList/InlineDateSeparator.js.map +1 -1
  545. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  546. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  547. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  548. package/lib/module/components/MessageList/MessageList.js +77 -44
  549. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  550. package/lib/module/components/MessageList/MessageSystem.js.map +1 -1
  551. package/lib/module/components/MessageList/TypingIndicator.js +5 -5
  552. package/lib/module/components/MessageList/TypingIndicator.js.map +1 -1
  553. package/lib/module/components/MessageList/hooks/useMessageList.js +23 -10
  554. package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
  555. package/lib/module/components/MessageList/hooks/useTypingString.js +2 -2
  556. package/lib/module/components/MessageList/hooks/useTypingString.js.map +1 -1
  557. package/lib/module/components/MessageList/utils/getDateSeparators.js +2 -1
  558. package/lib/module/components/MessageList/utils/getDateSeparators.js.map +1 -1
  559. package/lib/module/components/MessageList/utils/getGroupStyles.js +10 -5
  560. package/lib/module/components/MessageList/utils/getGroupStyles.js.map +1 -1
  561. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js +3 -1
  562. package/lib/module/components/MessageList/utils/getLastReceivedMessage.js.map +1 -1
  563. package/lib/{commonjs/components/MessageOverlay/MessageActions.js → module/components/MessageOverlay/MessageActionList.js} +33 -85
  564. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -0
  565. package/lib/module/components/MessageOverlay/MessageActionListItem.js +131 -0
  566. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -0
  567. package/lib/module/components/MessageOverlay/MessageOverlay.js +97 -78
  568. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  569. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +38 -0
  570. package/lib/module/components/MessageOverlay/OverlayBackdrop.js.map +1 -0
  571. package/lib/module/components/MessageOverlay/OverlayReactionList.js +12 -11
  572. package/lib/module/components/MessageOverlay/OverlayReactionList.js.map +1 -1
  573. package/lib/module/components/MessageOverlay/OverlayReactions.js +31 -34
  574. package/lib/module/components/MessageOverlay/OverlayReactions.js.map +1 -1
  575. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +41 -0
  576. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js.map +1 -0
  577. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js +37 -0
  578. package/lib/module/components/MessageOverlay/hooks/useMessageActionAnimation.js.map +1 -0
  579. package/lib/module/components/Reply/Reply.js +25 -19
  580. package/lib/module/components/Reply/Reply.js.map +1 -1
  581. package/lib/module/components/Thread/Thread.js +11 -2
  582. package/lib/module/components/Thread/Thread.js.map +1 -1
  583. package/lib/module/components/Thread/components/ThreadFooterComponent.js +20 -12
  584. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  585. package/lib/module/components/docs/ListProps.md +1 -1
  586. package/lib/module/components/docs/data.js +1 -1
  587. package/lib/module/components/index.js +133 -55
  588. package/lib/module/components/index.js.map +1 -1
  589. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +68 -0
  590. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js.map +1 -0
  591. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +2 -2
  592. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js.map +1 -1
  593. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  594. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  595. package/lib/module/contexts/channelsContext/ChannelsContext.js +2 -2
  596. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  597. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +155 -0
  598. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js.map +1 -0
  599. package/lib/module/contexts/channelsStateContext/useChannelState.js +144 -0
  600. package/lib/module/contexts/channelsStateContext/useChannelState.js.map +1 -0
  601. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  602. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  603. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +2 -2
  604. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js.map +1 -1
  605. package/lib/module/contexts/keyboardContext/KeyboardContext.js +2 -2
  606. package/lib/module/contexts/keyboardContext/KeyboardContext.js.map +1 -1
  607. package/lib/module/contexts/messageContext/MessageContext.js +2 -2
  608. package/lib/module/contexts/messageContext/MessageContext.js.map +1 -1
  609. package/lib/module/contexts/messageInputContext/MessageInputContext.js +122 -84
  610. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  611. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +9 -5
  612. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  613. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +10 -3
  614. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  615. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +5 -19
  616. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js.map +1 -1
  617. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js +36 -0
  618. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.js.map +1 -0
  619. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +105 -0
  620. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js.map +1 -0
  621. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  622. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  623. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  624. package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
  625. package/lib/module/contexts/overlayContext/OverlayProvider.js +55 -46
  626. package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
  627. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +61 -0
  628. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js.map +1 -0
  629. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +2 -2
  630. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js.map +1 -1
  631. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +20 -33
  632. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js.map +1 -1
  633. package/lib/module/contexts/themeContext/ThemeContext.js +2 -2
  634. package/lib/module/contexts/themeContext/ThemeContext.js.map +1 -1
  635. package/lib/module/contexts/themeContext/utils/theme.js +45 -20
  636. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  637. package/lib/module/contexts/threadContext/ThreadContext.js +2 -2
  638. package/lib/module/contexts/threadContext/ThreadContext.js.map +1 -1
  639. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  640. package/lib/module/contexts/translationContext/TranslationContext.js.map +1 -1
  641. package/lib/module/contexts/typingContext/TypingContext.js +2 -2
  642. package/lib/module/contexts/typingContext/TypingContext.js.map +1 -1
  643. package/lib/module/contexts/utils/getDisplayName.js.map +1 -1
  644. package/lib/module/emoji-data/compiled.js +0 -315
  645. package/lib/module/emoji-data/compiled.js.map +1 -1
  646. package/lib/module/emoji-data/emojiNames.js +0 -105
  647. package/lib/module/emoji-data/emojiNames.js.map +1 -1
  648. package/lib/module/emoji-data/emojis.js +0 -175
  649. package/lib/module/emoji-data/emojis.js.map +1 -1
  650. package/lib/module/emoji-data/index.js +2 -2
  651. package/lib/module/emoji-data/index.js.map +1 -1
  652. package/lib/module/hooks/useStreami18n.js.map +1 -1
  653. package/lib/module/i18n/en.json +9 -3
  654. package/lib/module/i18n/fr.json +9 -3
  655. package/lib/module/i18n/hi.json +9 -3
  656. package/lib/module/i18n/it.json +9 -3
  657. package/lib/module/i18n/ja.json +9 -0
  658. package/lib/module/i18n/ko.json +9 -0
  659. package/lib/module/i18n/nl.json +9 -3
  660. package/lib/module/i18n/ru.json +9 -3
  661. package/lib/module/i18n/tr.json +10 -4
  662. package/lib/module/icons/Pin.js +42 -0
  663. package/lib/module/icons/Pin.js.map +1 -0
  664. package/lib/module/icons/PinHeader.js +38 -0
  665. package/lib/module/icons/PinHeader.js.map +1 -0
  666. package/lib/module/icons/Unpin.js +38 -0
  667. package/lib/module/icons/Unpin.js.map +1 -0
  668. package/lib/module/icons/index.js +39 -26
  669. package/lib/module/icons/index.js.map +1 -1
  670. package/lib/module/icons/utils/base.js +1 -1
  671. package/lib/module/index.js +6 -6
  672. package/lib/module/mock-builders/api/error.js +1 -1
  673. package/lib/module/mock-builders/api/sendMessage.js +4 -1
  674. package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
  675. package/lib/module/mock-builders/generator/attachment.js +1 -3
  676. package/lib/module/mock-builders/generator/attachment.js.map +1 -1
  677. package/lib/module/mock-builders/generator/channel.js +101 -50
  678. package/lib/module/mock-builders/generator/channel.js.map +1 -1
  679. package/lib/module/mock-builders/generator/user.js +32 -33
  680. package/lib/module/mock-builders/generator/user.js.map +1 -1
  681. package/lib/module/mock-builders/mock.js +3 -3
  682. package/lib/module/mock-builders/mock.js.map +1 -1
  683. package/lib/module/native.js +1 -7
  684. package/lib/module/native.js.map +1 -1
  685. package/lib/module/styleguideComponents/ArgumentsRenderer.js +7 -7
  686. package/lib/module/styleguideComponents/ArgumentsRenderer.js.map +1 -1
  687. package/lib/module/styleguideComponents/JsDoc.js +4 -4
  688. package/lib/module/styleguideComponents/JsDoc.js.map +1 -1
  689. package/lib/module/styleguideComponents/PathlineRenderer.js +7 -7
  690. package/lib/module/styleguideComponents/PathlineRenderer.js.map +1 -1
  691. package/lib/module/styleguideComponents/PropsRenderer.js +25 -25
  692. package/lib/module/styleguideComponents/PropsRenderer.js.map +1 -1
  693. package/lib/module/styleguideComponents/Wrapper.js +1 -1
  694. package/lib/module/styleguideComponents/Wrapper.js.map +1 -1
  695. package/lib/module/utils/Streami18n.js.map +1 -1
  696. package/lib/module/utils/date.js +13 -0
  697. package/lib/module/utils/date.js.map +1 -0
  698. package/lib/module/utils/getResizedImageUrl.js +26 -0
  699. package/lib/module/utils/getResizedImageUrl.js.map +1 -0
  700. package/lib/module/utils/getUrlOfImageAttachment.js +9 -0
  701. package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -0
  702. package/lib/module/utils/utils.js +17 -9
  703. package/lib/module/utils/utils.js.map +1 -1
  704. package/lib/module/version.json +1 -1
  705. package/lib/typescript/components/Attachment/Attachment.d.ts +1 -1
  706. package/lib/typescript/components/Attachment/AttachmentActions.d.ts +1 -1
  707. package/lib/typescript/components/Attachment/Card.d.ts +3 -1
  708. package/lib/typescript/components/Attachment/FileAttachment.d.ts +1 -1
  709. package/lib/typescript/components/Attachment/Gallery.d.ts +4 -6
  710. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  711. package/lib/typescript/components/Attachment/utils/buildGallery/buildGallery.d.ts +23 -0
  712. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.d.ts +7 -0
  713. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.d.ts +7 -0
  714. package/lib/typescript/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.d.ts +7 -0
  715. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnail.d.ts +10 -0
  716. package/lib/typescript/components/Attachment/utils/buildGallery/buildThumbnailGrid.d.ts +137 -0
  717. package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +23 -0
  718. package/lib/typescript/components/Attachment/utils/getAspectRatio.d.ts +9 -0
  719. package/lib/typescript/components/Attachment/utils/getGalleryImageBorderRadius.d.ts +22 -0
  720. package/lib/typescript/components/AutoCompleteInput/AutoCompleteInput.d.ts +7 -1
  721. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.d.ts +4 -0
  722. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionHeader.d.ts +8 -0
  723. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionItem.d.ts +10 -0
  724. package/lib/typescript/components/AutoCompleteInput/AutoCompleteSuggestionList.d.ts +21 -0
  725. package/lib/typescript/components/Channel/Channel.d.ts +13 -12
  726. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  727. package/lib/typescript/components/Channel/hooks/useCreateInputMessageInputContext.d.ts +1 -68
  728. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -126
  729. package/lib/typescript/components/Channel/hooks/useCreateOwnCapabilitiesContext.d.ts +7 -0
  730. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  731. package/lib/typescript/components/ChannelList/hooks/usePaginatedChannels.d.ts +4 -2
  732. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts +2 -2
  733. package/lib/typescript/components/ChannelPreview/ChannelPreviewMessenger.d.ts +2 -2
  734. package/lib/typescript/components/ChannelPreview/ChannelPreviewMutedStatus.d.ts +9 -0
  735. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.d.ts +12 -0
  736. package/lib/typescript/components/Chat/Chat.d.ts +1 -1
  737. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +4 -1
  738. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryImage.d.ts +1 -1
  739. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +1 -1
  740. package/lib/typescript/components/ImageGallery/components/ImageGalleryHeader.d.ts +1 -1
  741. package/lib/typescript/components/ImageGallery/components/ImageGrid.d.ts +1 -1
  742. package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts +1 -1
  743. package/lib/typescript/components/Message/Message.d.ts +4 -3
  744. package/lib/typescript/components/Message/MessageSimple/MessageAvatar.d.ts +1 -1
  745. package/lib/typescript/components/Message/MessageSimple/MessageContent.d.ts +1 -1
  746. package/lib/typescript/components/Message/MessageSimple/MessageDeleted.d.ts +2 -2
  747. package/lib/typescript/components/Message/MessageSimple/MessageFooter.d.ts +2 -2
  748. package/lib/typescript/components/Message/MessageSimple/MessagePinnedHeader.d.ts +8 -0
  749. package/lib/typescript/components/Message/MessageSimple/MessageSimple.d.ts +1 -1
  750. package/lib/typescript/components/Message/MessageSimple/MessageStatus.d.ts +1 -1
  751. package/lib/typescript/components/Message/MessageSimple/MessageTextContainer.d.ts +1 -0
  752. package/lib/typescript/components/Message/MessageSimple/ReactionList.d.ts +2 -1
  753. package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.d.ts +7 -0
  754. package/lib/typescript/components/Message/MessageSimple/utils/parseLinks.test.d.ts +1 -0
  755. package/lib/typescript/components/Message/MessageSimple/utils/renderText.d.ts +18 -3
  756. package/lib/typescript/components/Message/MessageSimple/utils/renderText.test.d.ts +1 -0
  757. package/lib/typescript/components/Message/hooks/useCreateMessageContext.d.ts +1 -1
  758. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +15 -0
  759. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +26 -0
  760. package/lib/typescript/components/Message/utils/messageActions.d.ts +22 -21
  761. package/lib/typescript/components/Message/utils/removeReservedFields.d.ts +1 -1
  762. package/lib/typescript/components/MessageInput/AttachButton.d.ts +1 -1
  763. package/lib/typescript/components/MessageInput/CommandsButton.d.ts +1 -1
  764. package/lib/typescript/components/MessageInput/CooldownTimer.d.ts +10 -0
  765. package/lib/typescript/components/MessageInput/InputButtons.d.ts +1 -1
  766. package/lib/typescript/components/MessageInput/MessageInput.d.ts +1 -1
  767. package/lib/typescript/components/MessageInput/MoreOptionsButton.d.ts +1 -1
  768. package/lib/typescript/components/MessageInput/SendMessageDisallowedIndicator.d.ts +1 -0
  769. package/lib/typescript/components/MessageInput/hooks/useCooldown.d.ts +9 -0
  770. package/lib/typescript/components/MessageInput/hooks/useCountdown.d.ts +8 -0
  771. package/lib/typescript/components/MessageList/MessageList.d.ts +2 -1
  772. package/lib/typescript/components/MessageList/MessageSystem.d.ts +1 -1
  773. package/lib/typescript/components/MessageList/hooks/useMessageList.d.ts +1 -0
  774. package/lib/typescript/components/MessageList/utils/getGroupStyles.d.ts +1 -1
  775. package/lib/typescript/components/MessageOverlay/MessageActionList.d.ts +12 -0
  776. package/lib/typescript/components/MessageOverlay/MessageActionListItem.d.ts +20 -0
  777. package/lib/typescript/components/MessageOverlay/MessageOverlay.d.ts +4 -4
  778. package/lib/typescript/components/MessageOverlay/OverlayBackdrop.d.ts +6 -0
  779. package/lib/typescript/components/MessageOverlay/OverlayReactions.d.ts +3 -1
  780. package/lib/typescript/components/MessageOverlay/OverlayReactionsAvatar.d.ts +7 -0
  781. package/lib/typescript/components/MessageOverlay/hooks/useMessageActionAnimation.d.ts +12 -0
  782. package/lib/typescript/components/Reply/Reply.d.ts +1 -1
  783. package/lib/typescript/components/Thread/Thread.d.ts +2 -2
  784. package/lib/typescript/components/index.d.ts +13 -7
  785. package/lib/typescript/contexts/activeChannelsRefContext/ActiveChannelsRefContext.d.ts +9 -0
  786. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +28 -30
  787. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +13 -5
  788. package/lib/typescript/contexts/channelsStateContext/ChannelsStateContext.d.ts +41 -0
  789. package/lib/typescript/contexts/channelsStateContext/useChannelState.d.ts +20 -0
  790. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +2 -6
  791. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +21 -10
  792. package/lib/typescript/contexts/messageInputContext/hooks/useCreateMessageInputContext.d.ts +3 -3
  793. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +1 -1
  794. package/lib/typescript/contexts/messageOverlayContext/MessageOverlayContext.d.ts +12 -13
  795. package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.d.ts +12 -0
  796. package/lib/typescript/contexts/messageOverlayContext/hooks/useResettableState.test.d.ts +1 -0
  797. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +23 -114
  798. package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +14 -7
  799. package/lib/typescript/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.d.ts +25 -0
  800. package/lib/typescript/contexts/suggestionsContext/SuggestionsContext.d.ts +14 -13
  801. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +41 -16
  802. package/lib/typescript/contexts/utils/getDisplayName.d.ts +2 -2
  803. package/lib/typescript/hooks/useStreami18n.d.ts +1 -1
  804. package/lib/typescript/i18n/en.json +9 -3
  805. package/lib/typescript/i18n/fr.json +9 -3
  806. package/lib/typescript/i18n/hi.json +9 -3
  807. package/lib/typescript/i18n/it.json +9 -3
  808. package/lib/typescript/i18n/ja.json +9 -0
  809. package/lib/typescript/i18n/ko.json +9 -0
  810. package/lib/typescript/i18n/nl.json +9 -3
  811. package/lib/typescript/i18n/ru.json +9 -3
  812. package/lib/typescript/i18n/tr.json +10 -4
  813. package/lib/typescript/icons/{Left.d.ts → Pin.d.ts} +1 -1
  814. package/lib/typescript/icons/PinHeader.d.ts +3 -0
  815. package/lib/typescript/icons/{Right.d.ts → Unpin.d.ts} +1 -1
  816. package/lib/typescript/icons/index.d.ts +3 -2
  817. package/lib/typescript/native.d.ts +1 -9
  818. package/lib/typescript/utils/Streami18n.d.ts +11 -8
  819. package/lib/typescript/utils/date.d.ts +2 -0
  820. package/lib/typescript/utils/getResizedImageUrl.d.ts +19 -0
  821. package/lib/typescript/utils/getUrlOfImageAttachment.d.ts +7 -0
  822. package/lib/typescript/utils/utils.d.ts +14 -11
  823. package/package.json +12 -14
  824. package/src/components/Attachment/Attachment.tsx +3 -3
  825. package/src/components/Attachment/AttachmentActions.tsx +2 -2
  826. package/src/components/Attachment/Card.tsx +8 -5
  827. package/src/components/Attachment/FileAttachment.tsx +3 -4
  828. package/src/components/Attachment/FileIcon.tsx +2 -2
  829. package/src/components/Attachment/Gallery.tsx +164 -193
  830. package/src/components/Attachment/Giphy.tsx +67 -70
  831. package/src/components/Attachment/__tests__/Attachment.test.js +22 -14
  832. package/src/components/Attachment/__tests__/Gallery.test.js +233 -0
  833. package/src/components/Attachment/__tests__/buildGallery.test.js +131 -0
  834. package/src/components/Attachment/utils/buildGallery/buildGallery.ts +75 -0
  835. package/src/components/Attachment/utils/buildGallery/buildGalleryOfSingleImage.ts +95 -0
  836. package/src/components/Attachment/utils/buildGallery/buildGalleryOfThreeImages.ts +99 -0
  837. package/src/components/Attachment/utils/buildGallery/buildGalleryOfTwoImages.ts +64 -0
  838. package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +46 -0
  839. package/src/components/Attachment/utils/buildGallery/buildThumbnailGrid.ts +186 -0
  840. package/src/components/Attachment/utils/buildGallery/types.ts +27 -0
  841. package/src/components/Attachment/utils/getAspectRatio.ts +21 -0
  842. package/src/components/Attachment/utils/getGalleryImageBorderRadius.ts +71 -0
  843. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
  844. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +43 -28
  845. package/src/components/AutoCompleteInput/{CommandsItem.tsx → AutoCompleteSuggestionCommandIcon.tsx} +3 -57
  846. package/src/components/AutoCompleteInput/AutoCompleteSuggestionHeader.tsx +109 -0
  847. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +156 -0
  848. package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +212 -0
  849. package/src/components/AutoCompleteInput/__tests__/AutoCompleteInput.test.js +6 -12
  850. package/src/components/Avatar/Avatar.tsx +7 -10
  851. package/src/components/Avatar/GroupAvatar.tsx +7 -21
  852. package/src/components/Avatar/__tests__/Avatar.test.js +2 -30
  853. package/src/components/Channel/Channel.tsx +288 -232
  854. package/src/components/Channel/__tests__/Channel.test.js +34 -29
  855. package/src/components/Channel/__tests__/ownCapabilities.test.js +376 -0
  856. package/src/components/Channel/hooks/useCreateChannelContext.ts +6 -6
  857. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +4 -3
  858. package/src/components/Channel/hooks/useCreateMessagesContext.ts +9 -30
  859. package/src/components/Channel/hooks/useCreateOwnCapabilitiesContext.ts +54 -0
  860. package/src/components/ChannelList/ChannelList.tsx +8 -9
  861. package/src/components/ChannelList/ChannelListFooterLoadingIndicator.tsx +2 -3
  862. package/src/components/ChannelList/ChannelListHeaderErrorIndicator.tsx +3 -7
  863. package/src/components/ChannelList/ChannelListHeaderNetworkDownIndicator.tsx +5 -2
  864. package/src/components/ChannelList/ChannelListMessenger.tsx +3 -4
  865. package/src/components/ChannelList/__tests__/ChannelList.test.js +73 -13
  866. package/src/components/ChannelList/__tests__/ChannelListMessenger.test.js +11 -12
  867. package/src/components/ChannelList/hooks/listeners/useAddedToChannelNotification.ts +3 -3
  868. package/src/components/ChannelList/hooks/listeners/useChannelDeleted.ts +2 -2
  869. package/src/components/ChannelList/hooks/listeners/useChannelHidden.ts +2 -2
  870. package/src/components/ChannelList/hooks/listeners/useChannelTruncated.ts +2 -2
  871. package/src/components/ChannelList/hooks/listeners/useChannelUpdated.ts +2 -2
  872. package/src/components/ChannelList/hooks/listeners/useChannelVisible.ts +3 -3
  873. package/src/components/ChannelList/hooks/listeners/useNewMessage.ts +2 -3
  874. package/src/components/ChannelList/hooks/listeners/useNewMessageNotification.ts +4 -4
  875. package/src/components/ChannelList/hooks/listeners/useRemovedFromChannelNotification.ts +2 -2
  876. package/src/components/ChannelList/hooks/listeners/useUserPresence.ts +2 -2
  877. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +1 -2
  878. package/src/components/ChannelList/hooks/usePaginatedChannels.ts +86 -44
  879. package/src/components/ChannelPreview/ChannelAvatar.tsx +3 -5
  880. package/src/components/ChannelPreview/ChannelPreview.tsx +3 -3
  881. package/src/components/ChannelPreview/ChannelPreviewMessage.tsx +2 -2
  882. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +27 -11
  883. package/src/components/ChannelPreview/ChannelPreviewMutedStatus.tsx +71 -0
  884. package/src/components/ChannelPreview/ChannelPreviewStatus.tsx +4 -3
  885. package/src/components/ChannelPreview/ChannelPreviewTitle.tsx +2 -2
  886. package/src/components/ChannelPreview/ChannelPreviewUnreadCount.tsx +2 -1
  887. package/src/components/ChannelPreview/__tests__/ChannelPreview.test.js +8 -9
  888. package/src/components/ChannelPreview/__tests__/ChannelPreviewMessenger.test.js +8 -9
  889. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayAvatar.ts +8 -2
  890. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +3 -4
  891. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayPresence.ts +2 -2
  892. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +4 -3
  893. package/src/components/Chat/Chat.tsx +6 -6
  894. package/src/components/Chat/__tests__/Chat.test.js +10 -6
  895. package/src/components/Chat/hooks/useIsOnline.ts +12 -8
  896. package/src/components/ImageGallery/ImageGallery.tsx +83 -49
  897. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +1 -2
  898. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -5
  899. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +5 -7
  900. package/src/components/ImageGallery/components/ImageGrid.tsx +4 -5
  901. package/src/components/ImageGallery/components/ImageGridHandle.tsx +1 -0
  902. package/src/components/Indicators/LoadingErrorIndicator.tsx +1 -1
  903. package/src/components/Indicators/LoadingIndicator.tsx +1 -2
  904. package/src/components/Message/Message.tsx +155 -594
  905. package/src/components/Message/MessageSimple/MessageAvatar.tsx +1 -2
  906. package/src/components/Message/MessageSimple/MessageContent.tsx +23 -25
  907. package/src/components/Message/MessageSimple/MessageDeleted.tsx +8 -6
  908. package/src/components/Message/MessageSimple/MessageFooter.tsx +45 -27
  909. package/src/components/Message/MessageSimple/MessagePinnedHeader.tsx +150 -0
  910. package/src/components/Message/MessageSimple/MessageReplies.tsx +5 -0
  911. package/src/components/Message/MessageSimple/MessageRepliesAvatars.tsx +2 -3
  912. package/src/components/Message/MessageSimple/MessageSimple.tsx +47 -26
  913. package/src/components/Message/MessageSimple/MessageStatus.tsx +19 -34
  914. package/src/components/Message/MessageSimple/MessageTextContainer.tsx +5 -0
  915. package/src/components/Message/MessageSimple/ReactionList.tsx +64 -77
  916. package/src/components/Message/MessageSimple/__tests__/Message.test.js +9 -10
  917. package/src/components/Message/MessageSimple/__tests__/MessageAvatar.test.js +2 -2
  918. package/src/components/Message/MessageSimple/__tests__/MessageContent.test.js +40 -47
  919. package/src/components/Message/MessageSimple/__tests__/MessagePinnedHeader.test.js +53 -0
  920. package/src/components/Message/MessageSimple/__tests__/MessageReplies.test.js +2 -2
  921. package/src/components/Message/MessageSimple/__tests__/MessageStatus.test.js +4 -5
  922. package/src/components/Message/MessageSimple/__tests__/MessageTextContainer.test.js +2 -2
  923. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessageAvatar.test.js.snap +1 -1
  924. package/src/components/Message/MessageSimple/__tests__/__snapshots__/MessagePinnedHeader.test.js.snap +80 -0
  925. package/src/components/Message/MessageSimple/utils/parseLinks.test.ts +100 -0
  926. package/src/components/Message/MessageSimple/utils/parseLinks.ts +95 -0
  927. package/src/components/Message/MessageSimple/utils/renderText.test.tsx +70 -0
  928. package/src/components/Message/MessageSimple/utils/renderText.tsx +98 -58
  929. package/src/components/Message/hooks/useCreateMessageContext.ts +1 -7
  930. package/src/components/Message/hooks/useMessageActionHandlers.ts +172 -0
  931. package/src/components/Message/hooks/useMessageActions.tsx +386 -0
  932. package/src/components/Message/utils/messageActions.ts +64 -38
  933. package/src/components/Message/utils/removeReservedFields.ts +1 -1
  934. package/src/components/MessageInput/AttachButton.tsx +1 -2
  935. package/src/components/MessageInput/CommandsButton.tsx +1 -2
  936. package/src/components/MessageInput/CooldownTimer.tsx +67 -0
  937. package/src/components/MessageInput/FileUploadPreview.tsx +5 -5
  938. package/src/components/MessageInput/ImageUploadPreview.tsx +3 -4
  939. package/src/components/MessageInput/InputButtons.tsx +4 -10
  940. package/src/components/MessageInput/MessageInput.tsx +62 -35
  941. package/src/components/MessageInput/MoreOptionsButton.tsx +1 -2
  942. package/src/components/MessageInput/SendMessageDisallowedIndicator.tsx +47 -0
  943. package/src/components/MessageInput/ShowThreadMessageInChannelButton.tsx +2 -2
  944. package/src/components/MessageInput/__tests__/AttachButton.test.js +2 -2
  945. package/src/components/MessageInput/__tests__/FileUploadPreview.test.js +43 -45
  946. package/src/components/MessageInput/__tests__/ImageUploadPreview.test.js +15 -15
  947. package/src/components/MessageInput/__tests__/MessageInput.test.js +15 -23
  948. package/src/components/MessageInput/__tests__/SendButton.test.js +2 -2
  949. package/src/components/MessageInput/__tests__/UploadProgressIndicator.test.js +2 -2
  950. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +3593 -2889
  951. package/src/components/MessageInput/__tests__/__snapshots__/ImageUploadPreview.test.js.snap +1912 -1572
  952. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +539 -296
  953. package/src/components/MessageInput/__tests__/__snapshots__/UploadProgressIndicator.test.js.snap +4 -4
  954. package/src/components/MessageInput/hooks/useCooldown.ts +62 -0
  955. package/src/components/MessageInput/hooks/useCountdown.ts +48 -0
  956. package/src/components/MessageList/DateHeader.tsx +2 -2
  957. package/src/components/MessageList/InlineDateSeparator.tsx +2 -2
  958. package/src/components/MessageList/MessageList.tsx +63 -39
  959. package/src/components/MessageList/MessageSystem.tsx +2 -2
  960. package/src/components/MessageList/TypingIndicator.tsx +1 -2
  961. package/src/components/MessageList/__tests__/MessageList.test.js +241 -116
  962. package/src/components/MessageList/__tests__/MessageSystem.test.js +3 -3
  963. package/src/components/MessageList/__tests__/ScrollToBottomButton.test.js +3 -3
  964. package/src/components/MessageList/__tests__/TypingIndicator.test.js +5 -6
  965. package/src/components/MessageList/__tests__/__snapshots__/TypingIndicator.test.js.snap +1 -1
  966. package/src/components/MessageList/hooks/useMessageList.ts +19 -9
  967. package/src/components/MessageList/hooks/useTypingString.ts +1 -2
  968. package/src/components/MessageList/utils/getDateSeparators.ts +4 -3
  969. package/src/components/MessageList/utils/getGroupStyles.ts +14 -9
  970. package/src/components/MessageList/utils/getLastReceivedMessage.ts +6 -1
  971. package/src/components/MessageOverlay/{MessageActions.tsx → MessageActionList.tsx} +59 -91
  972. package/src/components/MessageOverlay/MessageActionListItem.tsx +113 -0
  973. package/src/components/MessageOverlay/MessageOverlay.tsx +258 -217
  974. package/src/components/MessageOverlay/OverlayBackdrop.tsx +18 -0
  975. package/src/components/MessageOverlay/OverlayReactionList.tsx +3 -5
  976. package/src/components/MessageOverlay/OverlayReactions.tsx +27 -8
  977. package/src/components/MessageOverlay/OverlayReactionsAvatar.tsx +27 -0
  978. package/src/components/MessageOverlay/hooks/useMessageActionAnimation.tsx +44 -0
  979. package/src/components/Reply/Reply.tsx +25 -15
  980. package/src/components/Thread/Thread.tsx +13 -6
  981. package/src/components/Thread/__tests__/Thread.test.js +38 -113
  982. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1085 -1018
  983. package/src/components/Thread/components/ThreadFooterComponent.tsx +14 -3
  984. package/src/components/docs/ListProps.md +1 -1
  985. package/src/components/index.ts +13 -7
  986. package/src/contexts/activeChannelsRefContext/ActiveChannelsRefContext.tsx +32 -0
  987. package/src/contexts/attachmentPickerContext/AttachmentPickerContext.tsx +1 -2
  988. package/src/contexts/channelContext/ChannelContext.tsx +28 -32
  989. package/src/contexts/channelsContext/ChannelsContext.tsx +18 -7
  990. package/src/contexts/channelsStateContext/ChannelsStateContext.tsx +286 -0
  991. package/src/contexts/channelsStateContext/useChannelState.ts +207 -0
  992. package/src/contexts/chatContext/ChatContext.tsx +1 -2
  993. package/src/contexts/imageGalleryContext/ImageGalleryContext.tsx +1 -2
  994. package/src/contexts/keyboardContext/KeyboardContext.tsx +1 -2
  995. package/src/contexts/messageContext/MessageContext.tsx +2 -10
  996. package/src/contexts/messageInputContext/MessageInputContext.tsx +77 -36
  997. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +9 -7
  998. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +15 -10
  999. package/src/contexts/messageOverlayContext/MessageOverlayContext.tsx +19 -28
  1000. package/src/contexts/messageOverlayContext/hooks/useResettableState.test.tsx +46 -0
  1001. package/src/contexts/messageOverlayContext/hooks/useResettableState.ts +22 -0
  1002. package/src/contexts/messagesContext/MessagesContext.tsx +39 -140
  1003. package/src/contexts/overlayContext/OverlayContext.tsx +19 -11
  1004. package/src/contexts/overlayContext/OverlayProvider.tsx +48 -42
  1005. package/src/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.tsx +38 -0
  1006. package/src/contexts/paginatedMessageListContext/PaginatedMessageListContext.tsx +1 -2
  1007. package/src/contexts/suggestionsContext/SuggestionsContext.tsx +26 -46
  1008. package/src/contexts/suggestionsContext/__tests__/Suggestions.test.js +1 -1
  1009. package/src/contexts/themeContext/ThemeContext.tsx +1 -0
  1010. package/src/contexts/themeContext/utils/theme.ts +84 -35
  1011. package/src/contexts/threadContext/ThreadContext.tsx +1 -2
  1012. package/src/contexts/translationContext/TranslationContext.tsx +3 -3
  1013. package/src/contexts/typingContext/TypingContext.tsx +1 -2
  1014. package/src/contexts/utils/getDisplayName.ts +3 -1
  1015. package/src/emoji-data/compiled.ts +1830 -9609
  1016. package/src/emoji-data/emojiNames.ts +0 -140
  1017. package/src/emoji-data/emojis.ts +0 -210
  1018. package/src/emoji-data/index.js +1 -1
  1019. package/src/hooks/useStreami18n.ts +1 -1
  1020. package/src/i18n/en.json +9 -3
  1021. package/src/i18n/fr.json +9 -3
  1022. package/src/i18n/hi.json +9 -3
  1023. package/src/i18n/it.json +9 -3
  1024. package/src/i18n/ja.json +9 -0
  1025. package/src/i18n/ko.json +9 -0
  1026. package/src/i18n/nl.json +9 -3
  1027. package/src/i18n/ru.json +9 -3
  1028. package/src/i18n/tr.json +10 -4
  1029. package/src/icons/Pin.tsx +17 -0
  1030. package/src/icons/PinHeader.tsx +12 -0
  1031. package/src/icons/Unpin.tsx +12 -0
  1032. package/src/icons/index.ts +3 -2
  1033. package/src/mock-builders/api/sendMessage.js +3 -1
  1034. package/src/mock-builders/generator/attachment.js +0 -2
  1035. package/src/mock-builders/generator/channel.js +101 -46
  1036. package/src/mock-builders/generator/user.js +33 -26
  1037. package/src/mock-builders/mock.js +2 -2
  1038. package/src/native.ts +2 -13
  1039. package/src/styleguideComponents/ArgumentsRenderer.tsx +2 -1
  1040. package/src/styleguideComponents/JsDoc.tsx +3 -1
  1041. package/src/styleguideComponents/PathlineRenderer.tsx +2 -1
  1042. package/src/styleguideComponents/PropsRenderer.tsx +7 -4
  1043. package/src/styleguideComponents/Wrapper.tsx +1 -0
  1044. package/src/utils/Streami18n.ts +3 -3
  1045. package/src/utils/__tests__/Streami18n.test.js +1 -2
  1046. package/src/utils/date.ts +4 -0
  1047. package/src/utils/getResizedImageUrl.ts +43 -0
  1048. package/src/utils/getUrlOfImageAttachment.ts +10 -0
  1049. package/src/utils/utils.ts +23 -16
  1050. package/src/version.json +1 -1
  1051. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js +0 -78
  1052. package/lib/commonjs/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  1053. package/lib/commonjs/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  1054. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js +0 -81
  1055. package/lib/commonjs/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  1056. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js +0 -75
  1057. package/lib/commonjs/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  1058. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js +0 -125
  1059. package/lib/commonjs/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  1060. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js +0 -199
  1061. package/lib/commonjs/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  1062. package/lib/commonjs/components/MessageOverlay/MessageActions.js.map +0 -1
  1063. package/lib/commonjs/icons/Left.js +0 -38
  1064. package/lib/commonjs/icons/Left.js.map +0 -1
  1065. package/lib/commonjs/icons/Right.js +0 -38
  1066. package/lib/commonjs/icons/Right.js.map +0 -1
  1067. package/lib/module/components/AutoCompleteInput/CommandsHeader.js +0 -78
  1068. package/lib/module/components/AutoCompleteInput/CommandsHeader.js.map +0 -1
  1069. package/lib/module/components/AutoCompleteInput/CommandsItem.js.map +0 -1
  1070. package/lib/module/components/AutoCompleteInput/EmojisHeader.js +0 -81
  1071. package/lib/module/components/AutoCompleteInput/EmojisHeader.js.map +0 -1
  1072. package/lib/module/components/AutoCompleteInput/EmojisItem.js +0 -75
  1073. package/lib/module/components/AutoCompleteInput/EmojisItem.js.map +0 -1
  1074. package/lib/module/components/AutoCompleteInput/MentionsItem.js +0 -125
  1075. package/lib/module/components/AutoCompleteInput/MentionsItem.js.map +0 -1
  1076. package/lib/module/components/AutoCompleteInput/SuggestionsList.js +0 -199
  1077. package/lib/module/components/AutoCompleteInput/SuggestionsList.js.map +0 -1
  1078. package/lib/module/components/MessageOverlay/MessageActions.js.map +0 -1
  1079. package/lib/module/icons/Left.js +0 -38
  1080. package/lib/module/icons/Left.js.map +0 -1
  1081. package/lib/module/icons/Right.js +0 -38
  1082. package/lib/module/icons/Right.js.map +0 -1
  1083. package/lib/typescript/components/AutoCompleteInput/CommandsHeader.d.ts +0 -2
  1084. package/lib/typescript/components/AutoCompleteInput/CommandsItem.d.ts +0 -15
  1085. package/lib/typescript/components/AutoCompleteInput/EmojisHeader.d.ts +0 -5
  1086. package/lib/typescript/components/AutoCompleteInput/EmojisItem.d.ts +0 -12
  1087. package/lib/typescript/components/AutoCompleteInput/MentionsItem.d.ts +0 -16
  1088. package/lib/typescript/components/AutoCompleteInput/SuggestionsList.d.ts +0 -13
  1089. package/lib/typescript/components/MessageOverlay/MessageActions.d.ts +0 -11
  1090. package/src/components/AutoCompleteInput/CommandsHeader.tsx +0 -43
  1091. package/src/components/AutoCompleteInput/EmojisHeader.tsx +0 -45
  1092. package/src/components/AutoCompleteInput/EmojisItem.tsx +0 -52
  1093. package/src/components/AutoCompleteInput/MentionsItem.tsx +0 -74
  1094. package/src/components/AutoCompleteInput/SuggestionsList.tsx +0 -138
  1095. package/src/components/AutoCompleteInput/__tests__/CommandsItem.test.js +0 -26
  1096. package/src/components/AutoCompleteInput/__tests__/MentionsItem.test.js +0 -62
  1097. package/src/components/MessageList/__tests__/__snapshots__/MessageList.test.js.snap +0 -936
  1098. package/src/icons/Left.tsx +0 -12
  1099. package/src/icons/Right.tsx +0 -12
@@ -7,18 +7,18 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.Gallery = void 0;
9
9
 
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
11
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
13
 
18
14
  var _react = _interopRequireWildcard(require("react"));
19
15
 
20
16
  var _reactNative = require("react-native");
21
17
 
18
+ var _buildGallery = require("./utils/buildGallery/buildGallery");
19
+
20
+ var _getGalleryImageBorderRadius = require("./utils/getGalleryImageBorderRadius");
21
+
22
22
  var _ImageGalleryContext = require("../../contexts/imageGalleryContext/ImageGalleryContext");
23
23
 
24
24
  var _MessageContext = require("../../contexts/messageContext/MessageContext");
@@ -31,7 +31,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
31
31
 
32
32
  var _utils = require("../../utils/utils");
33
33
 
34
- var _excluded = ["height", "uri"];
34
+ var _excluded = ["uri"];
35
35
 
36
36
  var _this = this,
37
37
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Gallery.tsx";
@@ -41,34 +41,24 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
41
41
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
42
42
 
43
43
  var GalleryImage = function GalleryImage(props) {
44
- var height = props.height,
45
- uri = props.uri,
44
+ var uri = props.uri,
46
45
  rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
47
-
48
- var _useState = (0, _react.useState)(false),
49
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
- error = _useState2[0],
51
- setError = _useState2[1];
52
-
53
46
  return _react["default"].createElement(_reactNative.Image, (0, _extends2["default"])({}, rest, {
54
- onError: function onError() {
55
- return setError(true);
56
- },
57
47
  source: {
58
- uri: uri.includes('&h=%2A') ? error ? uri : uri.replace('h=%2A', "h=" + _reactNative.PixelRatio.getPixelSizeForLayoutSize(Number(height))) : uri
48
+ uri: (0, _utils.makeImageCompatibleUrl)(uri)
59
49
  },
60
50
  testID: "image-attachment-single",
61
51
  __self: _this,
62
52
  __source: {
63
53
  fileName: _jsxFileName,
64
- lineNumber: 54,
54
+ lineNumber: 46,
65
55
  columnNumber: 5
66
56
  }
67
57
  }));
68
58
  };
69
59
 
70
60
  var MemoizedGalleryImage = _react["default"].memo(GalleryImage, function (prevProps, nextProps) {
71
- return prevProps.height === nextProps.height && (0, _utils.getUrlWithoutParams)(prevProps.uri) === (0, _utils.getUrlWithoutParams)(nextProps.uri);
61
+ return (0, _utils.getUrlWithoutParams)(prevProps.uri) === (0, _utils.getUrlWithoutParams)(nextProps.uri);
72
62
  });
73
63
 
74
64
  var styles = _reactNative.StyleSheet.create({
@@ -83,7 +73,6 @@ var styles = _reactNative.StyleSheet.create({
83
73
  overflow: 'hidden'
84
74
  },
85
75
  imageContainer: {
86
- flex: 1,
87
76
  padding: 1
88
77
  },
89
78
  moreImagesContainer: {
@@ -99,8 +88,6 @@ var styles = _reactNative.StyleSheet.create({
99
88
  });
100
89
 
101
90
  var GalleryWithContext = function GalleryWithContext(props) {
102
- var _groupStyles$;
103
-
104
91
  var additionalTouchableProps = props.additionalTouchableProps,
105
92
  alignment = props.alignment,
106
93
  groupStyles = props.groupStyles,
@@ -108,13 +95,10 @@ var GalleryWithContext = function GalleryWithContext(props) {
108
95
  images = props.images,
109
96
  legacyImageViewerSwipeBehaviour = props.legacyImageViewerSwipeBehaviour,
110
97
  message = props.message,
111
- messageId = props.messageId,
112
- messageTextProp = props.messageText,
113
98
  _onLongPress = props.onLongPress,
114
99
  _onPress = props.onPress,
115
100
  _onPressIn = props.onPressIn,
116
101
  preventPress = props.preventPress,
117
- setBlurType = props.setBlurType,
118
102
  setImage = props.setImage,
119
103
  setImages = props.setImages,
120
104
  setOverlay = props.setOverlay,
@@ -123,96 +107,91 @@ var GalleryWithContext = function GalleryWithContext(props) {
123
107
  var _useTheme = (0, _ThemeContext.useTheme)(),
124
108
  _useTheme$theme = _useTheme.theme,
125
109
  overlay = _useTheme$theme.colors.overlay,
126
- blurType = _useTheme$theme.imageGallery.blurType,
127
110
  _useTheme$theme$messa = _useTheme$theme.messageSimple.gallery,
128
111
  galleryContainer = _useTheme$theme$messa.galleryContainer,
129
112
  galleryItemColumn = _useTheme$theme$messa.galleryItemColumn,
130
- halfSize = _useTheme$theme$messa.halfSize,
113
+ gridHeight = _useTheme$theme$messa.gridHeight,
114
+ gridWidth = _useTheme$theme$messa.gridWidth,
131
115
  image = _useTheme$theme$messa.image,
132
116
  imageContainer = _useTheme$theme$messa.imageContainer,
117
+ maxHeight = _useTheme$theme$messa.maxHeight,
118
+ maxWidth = _useTheme$theme$messa.maxWidth,
119
+ minHeight = _useTheme$theme$messa.minHeight,
120
+ minWidth = _useTheme$theme$messa.minWidth,
133
121
  moreImagesContainer = _useTheme$theme$messa.moreImagesContainer,
134
- moreImagesText = _useTheme$theme$messa.moreImagesText,
135
- size = _useTheme$theme$messa.size,
136
- width = _useTheme$theme$messa.width;
122
+ moreImagesText = _useTheme$theme$messa.moreImagesText;
123
+
124
+ var sizeConfig = {
125
+ gridHeight: gridHeight,
126
+ gridWidth: gridWidth,
127
+ maxHeight: maxHeight,
128
+ maxWidth: maxWidth,
129
+ minHeight: minHeight,
130
+ minWidth: minWidth
131
+ };
132
+
133
+ var _useMemo = (0, _react.useMemo)(function () {
134
+ return (0, _buildGallery.buildGallery)({
135
+ images: images,
136
+ sizeConfig: sizeConfig
137
+ });
138
+ }, [images.length]),
139
+ height = _useMemo.height,
140
+ invertedDirections = _useMemo.invertedDirections,
141
+ thumbnailGrid = _useMemo.thumbnailGrid,
142
+ width = _useMemo.width;
137
143
 
138
144
  if (!(images != null && images.length)) return null;
139
- var galleryImages = images.slice(0, 4).reduce(function (returnArray, currentImage, index) {
140
- var attachmentUrl = currentImage.image_url || currentImage.thumb_url;
141
-
142
- if (attachmentUrl) {
143
- var url = (0, _utils.makeImageCompatibleUrl)(attachmentUrl);
144
-
145
- if (images.length <= 2) {
146
- returnArray[0] = [].concat((0, _toConsumableArray2["default"])(returnArray[0] || []), [{
147
- height: size || 200,
148
- url: url
149
- }]);
150
- } else if (images.length === 3) {
151
- if (index === 0) {
152
- returnArray[0] = [{
153
- height: size || 200,
154
- url: url
155
- }];
156
- } else {
157
- returnArray[1] = [].concat((0, _toConsumableArray2["default"])(returnArray[1] || []), [{
158
- height: halfSize || 100,
159
- url: url
160
- }]);
161
- }
162
- } else {
163
- returnArray[index % 2] = [].concat((0, _toConsumableArray2["default"])(returnArray[index % 2] || []), [{
164
- height: halfSize || 100,
165
- url: url
166
- }]);
167
- }
168
- }
169
-
170
- return returnArray;
171
- }, []);
172
- var groupStyle = alignment + "_" + (groupStyles == null ? void 0 : (_groupStyles$ = groupStyles[0]) == null ? void 0 : _groupStyles$.toLowerCase == null ? void 0 : _groupStyles$.toLowerCase());
173
- var messageText = messageTextProp || (message == null ? void 0 : message.text);
145
+ var messageText = message == null ? void 0 : message.text;
146
+ var messageId = message == null ? void 0 : message.id;
147
+ var numOfColumns = thumbnailGrid.length;
174
148
  return _react["default"].createElement(_reactNative.View, {
175
149
  style: [styles.galleryContainer, {
150
+ height: height,
176
151
  width: width
177
- }, galleryContainer],
178
- testID: "image-multiple-container",
152
+ }, galleryContainer, {
153
+ flexDirection: invertedDirections ? 'column' : 'row'
154
+ }],
155
+ testID: "gallery-container",
179
156
  __self: _this,
180
157
  __source: {
181
158
  fileName: _jsxFileName,
182
- lineNumber: 219,
159
+ lineNumber: 197,
183
160
  columnNumber: 5
184
161
  }
185
- }, galleryImages.map(function (column, colIndex) {
162
+ }, thumbnailGrid.map(function (rows, colIndex) {
163
+ var numOfRows = rows.length;
186
164
  return _react["default"].createElement(_reactNative.View, {
187
- key: "gallery-item-column-" + colIndex,
188
- style: [styles.flex, {
189
- flexDirection: images.length === 2 ? 'row' : 'column'
165
+ key: "gallery-" + (invertedDirections ? 'row' : 'column') + "-" + colIndex,
166
+ style: [{
167
+ flexDirection: invertedDirections ? 'row' : 'column'
190
168
  }, galleryItemColumn],
169
+ testID: "gallery-" + (invertedDirections ? 'row' : 'column') + "-" + colIndex,
191
170
  __self: _this,
192
171
  __source: {
193
172
  fileName: _jsxFileName,
194
- lineNumber: 230,
195
- columnNumber: 9
173
+ lineNumber: 214,
174
+ columnNumber: 11
196
175
  }
197
- }, column.map(function (_ref, rowIndex) {
176
+ }, rows.map(function (_ref, rowIndex) {
198
177
  var height = _ref.height,
199
- url = _ref.url;
178
+ resizeMode = _ref.resizeMode,
179
+ url = _ref.url,
180
+ width = _ref.width;
200
181
 
201
182
  var defaultOnPress = function defaultOnPress() {
202
183
  if (!legacyImageViewerSwipeBehaviour && message) {
203
184
  setImages([message]);
204
185
  setImage({
205
- messageId: messageId || message.id,
186
+ messageId: message.id,
206
187
  url: url
207
188
  });
208
- setBlurType(blurType);
209
189
  setOverlay('gallery');
210
190
  } else if (legacyImageViewerSwipeBehaviour) {
211
191
  setImage({
212
- messageId: messageId || (message == null ? void 0 : message.id),
192
+ messageId: message == null ? void 0 : message.id,
213
193
  url: url
214
194
  });
215
- setBlurType(blurType);
216
195
  setOverlay('gallery');
217
196
  }
218
197
  };
@@ -248,51 +227,63 @@ var GalleryWithContext = function GalleryWithContext(props) {
248
227
  }
249
228
  },
250
229
  style: [styles.imageContainer, {
251
- height: height
230
+ height: height,
231
+ width: width
252
232
  }, imageContainer],
253
- testID: "image-multiple"
233
+ testID: "gallery-" + (invertedDirections ? 'row' : 'column') + "-" + colIndex + "-item-" + rowIndex
254
234
  }, additionalTouchableProps, {
255
235
  __self: _this,
256
236
  __source: {
257
237
  fileName: _jsxFileName,
258
- lineNumber: 258,
259
- columnNumber: 15
238
+ lineNumber: 239,
239
+ columnNumber: 17
260
240
  }
261
241
  }), _react["default"].createElement(MemoizedGalleryImage, {
262
- height: height,
263
- resizeMode: "cover",
264
- style: [styles.flex, {
265
- borderBottomLeftRadius: (images.length === 1 || images.length === 2 && rowIndex === 0 || images.length === 3 && colIndex === 0 && rowIndex === 0 || images.length === 4 && colIndex === 0 && rowIndex === 1) && !messageText && (groupStyle !== 'left_bottom' && groupStyle !== 'left_single' || hasThreadReplies && !threadList) ? 14 : 0,
266
- borderBottomRightRadius: (images.length === 1 || colIndex === 1 && (images.length === 2 || rowIndex === 1)) && !messageText && (groupStyle !== 'right_bottom' && groupStyle !== 'right_single' || hasThreadReplies && !threadList) ? 14 : 0,
267
- borderTopLeftRadius: colIndex === 0 && rowIndex === 0 ? 14 : 0,
268
- borderTopRightRadius: (colIndex === 1 || images.length === 1) && rowIndex === 0 || images.length === 3 && colIndex === 0 && rowIndex === 1 || images.length === 2 && rowIndex === 1 ? 14 : 0
269
- }, image],
242
+ resizeMode: resizeMode,
243
+ style: [(0, _getGalleryImageBorderRadius.getGalleryImageBorderRadius)({
244
+ alignment: alignment,
245
+ colIndex: colIndex,
246
+ groupStyles: groupStyles,
247
+ hasThreadReplies: hasThreadReplies,
248
+ height: height,
249
+ invertedDirections: invertedDirections,
250
+ messageText: messageText,
251
+ numOfColumns: numOfColumns,
252
+ numOfRows: numOfRows,
253
+ rowIndex: rowIndex,
254
+ sizeConfig: sizeConfig,
255
+ threadList: threadList,
256
+ width: width
257
+ }), image, {
258
+ height: height - 1,
259
+ width: width - 1
260
+ }],
270
261
  uri: url,
271
262
  __self: _this,
272
263
  __source: {
273
264
  fileName: _jsxFileName,
274
- lineNumber: 298,
275
- columnNumber: 17
265
+ lineNumber: 282,
266
+ columnNumber: 19
276
267
  }
277
- }), colIndex === 1 && rowIndex === 1 && images.length > 3 ? _react["default"].createElement(_reactNative.View, {
268
+ }), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && images.length > 4 ? _react["default"].createElement(_reactNative.View, {
278
269
  style: [_reactNative.StyleSheet.absoluteFillObject, styles.moreImagesContainer, {
279
270
  backgroundColor: overlay
280
271
  }, moreImagesContainer],
281
272
  __self: _this,
282
273
  __source: {
283
274
  fileName: _jsxFileName,
284
- lineNumber: 335,
285
- columnNumber: 19
275
+ lineNumber: 311,
276
+ columnNumber: 21
286
277
  }
287
278
  }, _react["default"].createElement(_reactNative.Text, {
288
279
  style: [styles.moreImagesText, moreImagesText],
289
280
  __self: _this,
290
281
  __source: {
291
282
  fileName: _jsxFileName,
292
- lineNumber: 343,
293
- columnNumber: 21
283
+ lineNumber: 319,
284
+ columnNumber: 23
294
285
  }
295
- }, "+" + (images.length - 3))) : null);
286
+ }, "+" + (images.length - 4))) : null);
296
287
  }));
297
288
  }));
298
289
  };
@@ -301,13 +292,13 @@ var areEqual = function areEqual(prevProps, nextProps) {
301
292
  var prevGroupStyles = prevProps.groupStyles,
302
293
  prevHasThreadReplies = prevProps.hasThreadReplies,
303
294
  prevImages = prevProps.images,
304
- prevMessageText = prevProps.messageText;
295
+ prevMessage = prevProps.message;
305
296
  var nextGroupStyles = nextProps.groupStyles,
306
297
  nextHasThreadReplies = nextProps.hasThreadReplies,
307
298
  nextImages = nextProps.images,
308
- nextMessageText = nextProps.messageText;
309
- var messageTextEqual = prevMessageText === nextMessageText;
310
- if (!messageTextEqual) return false;
299
+ nextMessage = nextProps.message;
300
+ var messageEqual = (prevMessage == null ? void 0 : prevMessage.id) === (nextMessage == null ? void 0 : nextMessage.id);
301
+ if (!messageEqual) return false;
311
302
  var groupStylesEqual = prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];
312
303
  if (!groupStylesEqual) return false;
313
304
  var hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;
@@ -327,13 +318,10 @@ var Gallery = function Gallery(props) {
327
318
  propGroupStyles = props.groupStyles,
328
319
  hasThreadReplies = props.hasThreadReplies,
329
320
  propImages = props.images,
330
- messageId = props.messageId,
331
- messageText = props.messageText,
332
321
  propOnLongPress = props.onLongPress,
333
322
  propOnPress = props.onPress,
334
323
  propOnPressIn = props.onPressIn,
335
324
  propPreventPress = props.preventPress,
336
- propSetBlurType = props.setBlurType,
337
325
  propSetImage = props.setImage,
338
326
  propSetOverlay = props.setOverlay,
339
327
  propThreadList = props.threadList;
@@ -358,7 +346,6 @@ var Gallery = function Gallery(props) {
358
346
  legacyImageViewerSwipeBehaviour = _useMessagesContext.legacyImageViewerSwipeBehaviour;
359
347
 
360
348
  var _useOverlayContext = (0, _OverlayContext.useOverlayContext)(),
361
- contextSetBlurType = _useOverlayContext.setBlurType,
362
349
  contextSetOverlay = _useOverlayContext.setOverlay;
363
350
 
364
351
  var images = propImages || contextImages;
@@ -370,25 +357,22 @@ var Gallery = function Gallery(props) {
370
357
  var onPressIn = propOnPressIn || contextOnPressIn;
371
358
  var onPress = propOnPress || contextOnPress;
372
359
  var preventPress = typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;
373
- var setBlurType = propSetBlurType || contextSetBlurType;
374
360
  var setImage = propSetImage || contextSetImage;
375
361
  var setOverlay = propSetOverlay || contextSetOverlay;
376
362
  var threadList = propThreadList || contextThreadList;
377
363
  return _react["default"].createElement(MemoizedGallery, {
378
364
  additionalTouchableProps: additionalTouchableProps,
379
365
  alignment: alignment,
366
+ channelId: message == null ? void 0 : message.cid,
380
367
  groupStyles: groupStyles,
381
368
  hasThreadReplies: hasThreadReplies || !!(message != null && message.reply_count),
382
369
  images: images,
383
370
  legacyImageViewerSwipeBehaviour: legacyImageViewerSwipeBehaviour,
384
371
  message: message,
385
- messageId: messageId || (message == null ? void 0 : message.id),
386
- messageText: messageText || (message == null ? void 0 : message.text),
387
372
  onLongPress: onLongPress,
388
373
  onPress: onPress,
389
374
  onPressIn: onPressIn,
390
375
  preventPress: preventPress,
391
- setBlurType: setBlurType,
392
376
  setImage: setImage,
393
377
  setImages: setImages,
394
378
  setOverlay: setOverlay,
@@ -396,7 +380,7 @@ var Gallery = function Gallery(props) {
396
380
  __self: _this,
397
381
  __source: {
398
382
  fileName: _jsxFileName,
399
- lineNumber: 484,
383
+ lineNumber: 457,
400
384
  columnNumber: 5
401
385
  }
402
386
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Gallery.tsx"],"names":["GalleryImage","props","height","uri","rest","error","setError","includes","replace","PixelRatio","getPixelSizeForLayoutSize","Number","MemoizedGalleryImage","React","memo","prevProps","nextProps","styles","StyleSheet","create","flex","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","padding","moreImagesContainer","alignItems","justifyContent","margin","moreImagesText","color","fontSize","fontWeight","GalleryWithContext","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","images","legacyImageViewerSwipeBehaviour","message","messageId","messageTextProp","messageText","onLongPress","onPress","onPressIn","preventPress","setBlurType","setImage","setImages","setOverlay","threadList","theme","overlay","colors","blurType","imageGallery","messageSimple","gallery","galleryItemColumn","halfSize","image","size","width","length","galleryImages","slice","reduce","returnArray","currentImage","index","attachmentUrl","image_url","thumb_url","url","groupStyle","toLowerCase","text","map","column","colIndex","rowIndex","defaultOnPress","id","event","emitter","defaultHandler","borderBottomLeftRadius","borderBottomRightRadius","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessageText","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessageText","messageTextEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetBlurType","propSetImage","propSetOverlay","propThreadList","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextAdditionalTouchableProps","contextSetBlurType","contextSetOverlay","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport {\n Image,\n ImageProps,\n PixelRatio,\n StyleSheet,\n Text,\n TouchableOpacity,\n View,\n} from 'react-native';\n\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { getUrlWithoutParams, makeImageCompatibleUrl } from '../../utils/utils';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\n\nconst GalleryImage: React.FC<\n Omit<ImageProps, 'height' | 'source'> & {\n height: number | string;\n uri: string;\n }\n> = (props) => {\n const { height, uri, ...rest } = props;\n\n const [error, setError] = useState(false);\n\n return (\n <Image\n {...rest}\n onError={() => setError(true)}\n source={{\n uri: uri.includes('&h=%2A')\n ? error\n ? uri\n : uri.replace('h=%2A', `h=${PixelRatio.getPixelSizeForLayoutSize(Number(height))}`)\n : uri,\n }}\n testID='image-attachment-single'\n />\n );\n};\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n prevProps.height === nextProps.height &&\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n flex: { flex: 1 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: { flex: 1, padding: 1 },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\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<ImageGalleryContextValue, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'additionalTouchableProps' | 'legacyImageViewerSwipeBehaviour'\n > &\n Pick<OverlayContextValue, 'setBlurType' | 'setOverlay'> & {\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO[major]: remove messageId and messageText\n * TODO: Fix circular dependencies of imports\n */\n hasThreadReplies?: boolean;\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n messageId?: string;\n messageText?: string;\n };\n\nconst GalleryWithContext = <\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: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n messageId,\n messageText: messageTextProp,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setImages,\n setOverlay,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { overlay },\n imageGallery: { blurType },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n halfSize,\n image,\n imageContainer,\n moreImagesContainer,\n moreImagesText,\n size,\n width,\n },\n },\n },\n } = useTheme();\n\n if (!images?.length) return null;\n\n // [[{ height: number; url: string; }], [{ height: number; url: string; }, { height: number; url: string; }]]\n const galleryImages = images.slice(0, 4).reduce((returnArray, currentImage, index) => {\n const attachmentUrl = currentImage.image_url || currentImage.thumb_url;\n if (attachmentUrl) {\n const url = makeImageCompatibleUrl(attachmentUrl);\n if (images.length <= 2) {\n returnArray[0] = [...(returnArray[0] || []), { height: size || 200, url }];\n } else if (images.length === 3) {\n if (index === 0) {\n returnArray[0] = [{ height: size || 200, url }];\n } else {\n returnArray[1] = [...(returnArray[1] || []), { height: halfSize || 100, url }];\n }\n } else {\n returnArray[index % 2] = [\n ...(returnArray[index % 2] || []),\n { height: halfSize || 100, url },\n ];\n }\n }\n return returnArray;\n }, [] as { height: number | string; url: string }[][]);\n\n const groupStyle = `${alignment}_${groupStyles?.[0]?.toLowerCase?.()}`;\n const messageText = messageTextProp || message?.text;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n width,\n },\n galleryContainer,\n ]}\n testID='image-multiple-container'\n >\n {galleryImages.map((column, colIndex) => (\n <View\n key={`gallery-item-column-${colIndex}`}\n style={[\n styles.flex,\n {\n flexDirection: images.length === 2 ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n >\n {column.map(({ height, url }, rowIndex) => {\n const defaultOnPress = () => {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n if (!legacyImageViewerSwipeBehaviour && message) {\n setImages([message]);\n setImage({ messageId: messageId || message.id, url });\n setBlurType(blurType);\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: messageId || message?.id, url });\n setBlurType(blurType);\n setOverlay('gallery');\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${messageId}/${colIndex}/${rowIndex}/${images.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height,\n },\n imageContainer,\n ]}\n testID='image-multiple'\n {...additionalTouchableProps}\n >\n <MemoizedGalleryImage\n height={height}\n resizeMode='cover'\n style={[\n styles.flex,\n {\n borderBottomLeftRadius:\n (images.length === 1 ||\n (images.length === 2 && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 0) ||\n (images.length === 4 && colIndex === 0 && rowIndex === 1)) &&\n !messageText &&\n ((groupStyle !== 'left_bottom' && groupStyle !== 'left_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderBottomRightRadius:\n (images.length === 1 ||\n (colIndex === 1 && (images.length === 2 || rowIndex === 1))) &&\n !messageText &&\n ((groupStyle !== 'right_bottom' && groupStyle !== 'right_single') ||\n (hasThreadReplies && !threadList))\n ? 14\n : 0,\n borderTopLeftRadius: colIndex === 0 && rowIndex === 0 ? 14 : 0,\n borderTopRightRadius:\n ((colIndex === 1 || images.length === 1) && rowIndex === 0) ||\n (images.length === 3 && colIndex === 0 && rowIndex === 1) ||\n (images.length === 2 && rowIndex === 1)\n ? 14\n : 0,\n },\n image,\n ]}\n uri={url}\n />\n {colIndex === 1 && rowIndex === 1 && images.length > 3 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${images.length - 3}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n })}\n </View>\n ))}\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: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n messageText: prevMessageText,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n messageText: nextMessageText,\n } = nextProps;\n\n const messageTextEqual = prevMessageText === nextMessageText;\n if (!messageTextEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\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<GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\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: GalleryProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n images: propImages,\n messageId,\n messageText,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setBlurType: propSetBlurType,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n legacyImageViewerSwipeBehaviour,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { setBlurType: contextSetBlurType, setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n\n if (!images.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setBlurType = propSetBlurType || contextSetBlurType;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n messageId: messageId || message?.id,\n messageText: messageText || message?.text,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setBlurType,\n setImage,\n setImages,\n setOverlay,\n threadList,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
1
+ {"version":3,"sources":["Gallery.tsx"],"names":["GalleryImage","props","uri","rest","MemoizedGalleryImage","React","memo","prevProps","nextProps","styles","StyleSheet","create","flex","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","padding","moreImagesContainer","alignItems","justifyContent","margin","moreImagesText","color","fontSize","fontWeight","GalleryWithContext","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","threadList","theme","overlay","colors","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","image","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","length","height","invertedDirections","thumbnailGrid","width","messageText","text","messageId","id","numOfColumns","map","rows","colIndex","numOfRows","rowIndex","resizeMode","url","defaultOnPress","event","emitter","defaultHandler","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","messageEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","thumb_url","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetImage","propSetOverlay","propThreadList","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextAdditionalTouchableProps","contextSetOverlay","channelId","cid","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { Image, ImageProps, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type {\n DefaultAttachmentType,\n DefaultChannelType,\n DefaultCommandType,\n DefaultEventType,\n DefaultMessageType,\n DefaultReactionType,\n DefaultUserType,\n UnknownType,\n} from '../../types/types';\nimport { getUrlWithoutParams, makeImageCompatibleUrl } from '../../utils/utils';\n\nconst GalleryImage: React.FC<\n Omit<ImageProps, 'height' | 'source'> & {\n uri: string;\n }\n> = (props) => {\n const { uri, ...rest } = props;\n\n return (\n <Image\n {...rest}\n source={{\n uri: makeImageCompatibleUrl(uri),\n }}\n testID='image-attachment-single'\n />\n );\n};\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n flex: { flex: 1 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: { padding: 1 },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\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<ImageGalleryContextValue, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<At, Ch, Co, Ev, Me, Re, Us>,\n 'additionalTouchableProps' | 'legacyImageViewerSwipeBehaviour'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<At, Ch, Co, Ev, Me, Re, Us>;\n };\n\nconst GalleryWithContext = <\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: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n } = props;\n\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n image,\n imageContainer,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n moreImagesContainer,\n moreImagesText,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images,\n sizeConfig,\n }),\n [images.length],\n );\n\n if (!images?.length) return null;\n const messageText = message?.text;\n const messageId = message?.id;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n height,\n width,\n },\n galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n },\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map(({ height, resizeMode, url, width }, rowIndex) => {\n const defaultOnPress = () => {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n if (!legacyImageViewerSwipeBehaviour && message) {\n setImages([message]);\n setImage({ messageId: message.id, url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: message?.id, url });\n setOverlay('gallery');\n }\n };\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${messageId}/${colIndex}/${rowIndex}/${images.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height,\n width,\n },\n imageContainer,\n ]}\n testID={`gallery-${\n invertedDirections ? 'row' : 'column'\n }-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n <MemoizedGalleryImage\n resizeMode={resizeMode}\n style={[\n getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n }),\n image,\n {\n height: height - 1,\n width: width - 1,\n },\n ]}\n uri={url}\n />\n {colIndex === numOfColumns - 1 &&\n rowIndex === numOfRows - 1 &&\n images.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${images.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n })}\n </View>\n );\n })}\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: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n nextProps: GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n } = nextProps;\n\n const messageEqual = prevMessage?.id === nextMessage?.id;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\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<GalleryPropsWithContext<At, Ch, Co, Ev, Me, Re, Us>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\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: GalleryProps<At, Ch, Co, Ev, Me, Re, Us>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n images: propImages,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n } = useMessageContext<At, Ch, Co, Ev, Me, Re, Us>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n legacyImageViewerSwipeBehaviour,\n } = useMessagesContext<At, Ch, Co, Ev, Me, Re, Us>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n\n if (!images.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setImage = propSetImage || contextSetImage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n threadList,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}