stream-chat-react-native-core 5.0.0 → 5.1.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/lib/commonjs/components/Attachment/Attachment.js +1 -1
  2. package/lib/commonjs/components/Attachment/AttachmentActions.js +1 -1
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js +1 -1
  4. package/lib/commonjs/components/Attachment/Card.js +1 -1
  5. package/lib/commonjs/components/Attachment/FileAttachment.js +1 -1
  6. package/lib/commonjs/components/Attachment/FileAttachmentGroup.js +1 -1
  7. package/lib/commonjs/components/Attachment/FileIcon.js +1 -1
  8. package/lib/commonjs/components/Attachment/Gallery.js +1 -1
  9. package/lib/commonjs/components/Attachment/GalleryImage.js +1 -1
  10. package/lib/commonjs/components/Attachment/Giphy.js +1 -1
  11. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  12. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +1 -1
  13. package/lib/commonjs/components/Attachment/VideoThumbnail.js +1 -1
  14. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +1 -1
  15. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  16. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  17. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  18. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  19. package/lib/commonjs/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  20. package/lib/commonjs/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  21. package/lib/commonjs/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  22. package/lib/commonjs/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  23. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  24. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  25. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  26. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  27. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  28. package/lib/commonjs/components/Avatar/Avatar.js +1 -1
  29. package/lib/commonjs/components/Avatar/GroupAvatar.js +1 -1
  30. package/lib/commonjs/components/Channel/Channel.js +1 -1
  31. package/lib/commonjs/components/ChannelList/ChannelList.js +1 -1
  32. package/lib/commonjs/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  33. package/lib/commonjs/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  34. package/lib/commonjs/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  35. package/lib/commonjs/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  36. package/lib/commonjs/components/ChannelList/ChannelListMessenger.js +1 -1
  37. package/lib/commonjs/components/ChannelList/Skeleton.js +1 -1
  38. package/lib/commonjs/components/ChannelPreview/ChannelAvatar.js +1 -1
  39. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +1 -1
  40. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  41. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  42. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  43. package/lib/commonjs/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  44. package/lib/commonjs/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  45. package/lib/commonjs/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  46. package/lib/commonjs/components/Chat/Chat.js +1 -1
  47. package/lib/commonjs/components/ImageGallery/ImageGallery.js +107 -101
  48. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  49. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  50. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +15 -17
  51. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  52. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +14 -17
  53. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  54. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  55. package/lib/commonjs/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  56. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +7 -7
  57. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  58. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +1 -1
  59. package/lib/commonjs/components/ImageGallery/components/ImageGridHandle.js +1 -1
  60. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +1 -1
  61. package/lib/commonjs/components/Indicators/LoadingDot.js +1 -1
  62. package/lib/commonjs/components/Indicators/LoadingDots.js +1 -1
  63. package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +1 -1
  64. package/lib/commonjs/components/Indicators/LoadingIndicator.js +1 -1
  65. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  66. package/lib/commonjs/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  67. package/lib/commonjs/components/Message/Message.js +1 -1
  68. package/lib/commonjs/components/Message/MessageSimple/MessageAvatar.js +1 -1
  69. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +1 -1
  70. package/lib/commonjs/components/Message/MessageSimple/MessageDeleted.js +1 -1
  71. package/lib/commonjs/components/Message/MessageSimple/MessageFooter.js +1 -1
  72. package/lib/commonjs/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  73. package/lib/commonjs/components/Message/MessageSimple/MessageReplies.js +1 -1
  74. package/lib/commonjs/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  75. package/lib/commonjs/components/Message/MessageSimple/MessageSimple.js +1 -1
  76. package/lib/commonjs/components/Message/MessageSimple/MessageStatus.js +1 -1
  77. package/lib/commonjs/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  78. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +1 -1
  79. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +1 -1
  80. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  81. package/lib/commonjs/components/Message/hooks/useMessageActions.js +1 -1
  82. package/lib/commonjs/components/MessageInput/AttachButton.js +1 -1
  83. package/lib/commonjs/components/MessageInput/CommandsButton.js +1 -1
  84. package/lib/commonjs/components/MessageInput/CooldownTimer.js +1 -1
  85. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +1 -1
  86. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +50 -32
  87. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  88. package/lib/commonjs/components/MessageInput/InputButtons.js +1 -1
  89. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  90. package/lib/commonjs/components/MessageInput/MoreOptionsButton.js +1 -1
  91. package/lib/commonjs/components/MessageInput/SendButton.js +1 -1
  92. package/lib/commonjs/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  93. package/lib/commonjs/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  94. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js +1 -1
  95. package/lib/commonjs/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  96. package/lib/commonjs/components/MessageInput/components/InputGiphySearch.js +1 -1
  97. package/lib/commonjs/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  98. package/lib/commonjs/components/MessageList/DateHeader.js +1 -1
  99. package/lib/commonjs/components/MessageList/InlineDateSeparator.js +1 -1
  100. package/lib/commonjs/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  101. package/lib/commonjs/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  102. package/lib/commonjs/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  103. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +1 -1
  104. package/lib/commonjs/components/MessageList/MessageList.js +1 -1
  105. package/lib/commonjs/components/MessageList/MessageSystem.js +1 -1
  106. package/lib/commonjs/components/MessageList/NetworkDownIndicator.js +1 -1
  107. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +1 -1
  108. package/lib/commonjs/components/MessageList/TypingIndicator.js +1 -1
  109. package/lib/commonjs/components/MessageList/TypingIndicatorContainer.js +1 -1
  110. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +1 -1
  111. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +1 -1
  112. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +1 -1
  113. package/lib/commonjs/components/MessageOverlay/OverlayBackdrop.js +1 -1
  114. package/lib/commonjs/components/MessageOverlay/OverlayReactionList.js +1 -1
  115. package/lib/commonjs/components/MessageOverlay/OverlayReactions.js +1 -1
  116. package/lib/commonjs/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  117. package/lib/commonjs/components/ProgressControl/ProgressControl.js +7 -7
  118. package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
  119. package/lib/commonjs/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  120. package/lib/commonjs/components/Reply/Reply.js +1 -1
  121. package/lib/commonjs/components/Spinner/Spinner.js +1 -1
  122. package/lib/commonjs/components/Thread/Thread.js +1 -1
  123. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +1 -1
  124. package/lib/commonjs/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  125. package/lib/commonjs/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  126. package/lib/commonjs/contexts/channelContext/ChannelContext.js +1 -1
  127. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js +1 -1
  128. package/lib/commonjs/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  129. package/lib/commonjs/contexts/chatContext/ChatContext.js +1 -1
  130. package/lib/commonjs/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  131. package/lib/commonjs/contexts/keyboardContext/KeyboardContext.js +1 -1
  132. package/lib/commonjs/contexts/messageContext/MessageContext.js +1 -1
  133. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +1 -1
  134. package/lib/commonjs/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  135. package/lib/commonjs/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  136. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +1 -1
  137. package/lib/commonjs/contexts/overlayContext/OverlayContext.js +1 -1
  138. package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +1 -1
  139. package/lib/commonjs/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  140. package/lib/commonjs/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  141. package/lib/commonjs/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  142. package/lib/commonjs/contexts/themeContext/ThemeContext.js +1 -1
  143. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  144. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  145. package/lib/commonjs/contexts/threadContext/ThreadContext.js +1 -1
  146. package/lib/commonjs/contexts/translationContext/TranslationContext.js +1 -1
  147. package/lib/commonjs/contexts/typingContext/TypingContext.js +1 -1
  148. package/lib/commonjs/icons/ArrowRight.js +1 -1
  149. package/lib/commonjs/icons/AtMentions.js +1 -1
  150. package/lib/commonjs/icons/Attach.js +1 -1
  151. package/lib/commonjs/icons/Audio.js +1 -1
  152. package/lib/commonjs/icons/CSV.js +1 -1
  153. package/lib/commonjs/icons/Camera.js +1 -1
  154. package/lib/commonjs/icons/Check.js +1 -1
  155. package/lib/commonjs/icons/CheckAll.js +1 -1
  156. package/lib/commonjs/icons/CheckSend.js +1 -1
  157. package/lib/commonjs/icons/CircleClose.js +1 -1
  158. package/lib/commonjs/icons/CirclePlus.js +1 -1
  159. package/lib/commonjs/icons/CircleRight.js +1 -1
  160. package/lib/commonjs/icons/Close.js +1 -1
  161. package/lib/commonjs/icons/Copy.js +1 -1
  162. package/lib/commonjs/icons/CurveLineLeftUp.js +1 -1
  163. package/lib/commonjs/icons/DOC.js +1 -1
  164. package/lib/commonjs/icons/DOCX.js +1 -1
  165. package/lib/commonjs/icons/Delete.js +1 -1
  166. package/lib/commonjs/icons/Down.js +1 -1
  167. package/lib/commonjs/icons/DownloadArrow.js +1 -1
  168. package/lib/commonjs/icons/DownloadCloud.js +1 -1
  169. package/lib/commonjs/icons/Edit.js +1 -1
  170. package/lib/commonjs/icons/Error.js +1 -1
  171. package/lib/commonjs/icons/Eye.js +1 -1
  172. package/lib/commonjs/icons/Flag.js +1 -1
  173. package/lib/commonjs/icons/Folder.js +1 -1
  174. package/lib/commonjs/icons/GenericFile.js +1 -1
  175. package/lib/commonjs/icons/GiphyIcon.js +1 -1
  176. package/lib/commonjs/icons/Grid.js +1 -1
  177. package/lib/commonjs/icons/Group.js +1 -1
  178. package/lib/commonjs/icons/HTML.js +1 -1
  179. package/lib/commonjs/icons/Imgur.js +1 -1
  180. package/lib/commonjs/icons/LOLReaction.js +1 -1
  181. package/lib/commonjs/icons/Lightning.js +1 -1
  182. package/lib/commonjs/icons/Link.js +1 -1
  183. package/lib/commonjs/icons/Loading.js +1 -1
  184. package/lib/commonjs/icons/Logo.js +1 -1
  185. package/lib/commonjs/icons/LoveReaction.js +1 -1
  186. package/lib/commonjs/icons/MD.js +1 -1
  187. package/lib/commonjs/icons/MailOpen.js +1 -1
  188. package/lib/commonjs/icons/MenuPointHorizontal.js +1 -1
  189. package/lib/commonjs/icons/MenuPointVertical.js +1 -1
  190. package/lib/commonjs/icons/MessageFlag.js +1 -1
  191. package/lib/commonjs/icons/MessageIcon.js +1 -1
  192. package/lib/commonjs/icons/Mute.js +1 -1
  193. package/lib/commonjs/icons/Notification.js +1 -1
  194. package/lib/commonjs/icons/ODT.js +1 -1
  195. package/lib/commonjs/icons/PDF.js +1 -1
  196. package/lib/commonjs/icons/PPT.js +1 -1
  197. package/lib/commonjs/icons/PPTX.js +1 -1
  198. package/lib/commonjs/icons/Pause.js +1 -1
  199. package/lib/commonjs/icons/Picture.js +1 -1
  200. package/lib/commonjs/icons/Pin.js +1 -1
  201. package/lib/commonjs/icons/PinHeader.js +1 -1
  202. package/lib/commonjs/icons/Play.js +1 -1
  203. package/lib/commonjs/icons/RAR.js +1 -1
  204. package/lib/commonjs/icons/RTF.js +1 -1
  205. package/lib/commonjs/icons/Recorder.js +1 -1
  206. package/lib/commonjs/icons/Refresh.js +1 -1
  207. package/lib/commonjs/icons/SEVEN_Z.js +1 -1
  208. package/lib/commonjs/icons/Search.js +1 -1
  209. package/lib/commonjs/icons/SendRight.js +1 -1
  210. package/lib/commonjs/icons/SendUp.js +1 -1
  211. package/lib/commonjs/icons/Share.js +1 -1
  212. package/lib/commonjs/icons/ShareRightArrow.js +1 -1
  213. package/lib/commonjs/icons/Smile.js +1 -1
  214. package/lib/commonjs/icons/Sound.js +1 -1
  215. package/lib/commonjs/icons/TAR.js +1 -1
  216. package/lib/commonjs/icons/TXT.js +1 -1
  217. package/lib/commonjs/icons/ThreadReply.js +1 -1
  218. package/lib/commonjs/icons/ThumbsDownReaction.js +1 -1
  219. package/lib/commonjs/icons/ThumbsUpReaction.js +1 -1
  220. package/lib/commonjs/icons/Time.js +1 -1
  221. package/lib/commonjs/icons/Unknown.js +1 -1
  222. package/lib/commonjs/icons/Unpin.js +1 -1
  223. package/lib/commonjs/icons/User.js +1 -1
  224. package/lib/commonjs/icons/UserAdd.js +1 -1
  225. package/lib/commonjs/icons/UserAdmin.js +1 -1
  226. package/lib/commonjs/icons/UserDelete.js +1 -1
  227. package/lib/commonjs/icons/UserMinus.js +1 -1
  228. package/lib/commonjs/icons/Video.js +1 -1
  229. package/lib/commonjs/icons/Warning.js +1 -1
  230. package/lib/commonjs/icons/WutReaction.js +1 -1
  231. package/lib/commonjs/icons/XLS.js +1 -1
  232. package/lib/commonjs/icons/XLSX.js +1 -1
  233. package/lib/commonjs/icons/ZIP.js +1 -1
  234. package/lib/commonjs/icons/utils/base.js +1 -1
  235. package/lib/commonjs/native.js.map +1 -1
  236. package/lib/commonjs/version.json +1 -1
  237. package/lib/module/components/Attachment/Attachment.js +1 -1
  238. package/lib/module/components/Attachment/AttachmentActions.js +1 -1
  239. package/lib/module/components/Attachment/AudioAttachment.js +1 -1
  240. package/lib/module/components/Attachment/Card.js +1 -1
  241. package/lib/module/components/Attachment/FileAttachment.js +1 -1
  242. package/lib/module/components/Attachment/FileAttachmentGroup.js +1 -1
  243. package/lib/module/components/Attachment/FileIcon.js +1 -1
  244. package/lib/module/components/Attachment/Gallery.js +1 -1
  245. package/lib/module/components/Attachment/GalleryImage.js +1 -1
  246. package/lib/module/components/Attachment/Giphy.js +1 -1
  247. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +1 -1
  248. package/lib/module/components/Attachment/ImageLoadingIndicator.js +1 -1
  249. package/lib/module/components/Attachment/VideoThumbnail.js +1 -1
  250. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +1 -1
  251. package/lib/module/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.js +1 -1
  252. package/lib/module/components/AttachmentPicker/components/AttachmentPickerError.js +1 -1
  253. package/lib/module/components/AttachmentPicker/components/AttachmentPickerErrorImage.js +1 -1
  254. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +1 -1
  255. package/lib/module/components/AttachmentPicker/components/CameraSelectorIcon.js +1 -1
  256. package/lib/module/components/AttachmentPicker/components/FileSelectorIcon.js +1 -1
  257. package/lib/module/components/AttachmentPicker/components/ImageOverlaySelectedComponent.js +1 -1
  258. package/lib/module/components/AttachmentPicker/components/ImageSelectorIcon.js +1 -1
  259. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +1 -1
  260. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionCommandIcon.js +1 -1
  261. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionHeader.js +1 -1
  262. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  263. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +1 -1
  264. package/lib/module/components/Avatar/Avatar.js +1 -1
  265. package/lib/module/components/Avatar/GroupAvatar.js +1 -1
  266. package/lib/module/components/Channel/Channel.js +1 -1
  267. package/lib/module/components/ChannelList/ChannelList.js +1 -1
  268. package/lib/module/components/ChannelList/ChannelListFooterLoadingIndicator.js +1 -1
  269. package/lib/module/components/ChannelList/ChannelListHeaderErrorIndicator.js +1 -1
  270. package/lib/module/components/ChannelList/ChannelListHeaderNetworkDownIndicator.js +1 -1
  271. package/lib/module/components/ChannelList/ChannelListLoadingIndicator.js +1 -1
  272. package/lib/module/components/ChannelList/ChannelListMessenger.js +1 -1
  273. package/lib/module/components/ChannelList/Skeleton.js +1 -1
  274. package/lib/module/components/ChannelPreview/ChannelAvatar.js +1 -1
  275. package/lib/module/components/ChannelPreview/ChannelPreview.js +1 -1
  276. package/lib/module/components/ChannelPreview/ChannelPreviewMessage.js +1 -1
  277. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +1 -1
  278. package/lib/module/components/ChannelPreview/ChannelPreviewMutedStatus.js +1 -1
  279. package/lib/module/components/ChannelPreview/ChannelPreviewStatus.js +1 -1
  280. package/lib/module/components/ChannelPreview/ChannelPreviewTitle.js +1 -1
  281. package/lib/module/components/ChannelPreview/ChannelPreviewUnreadCount.js +1 -1
  282. package/lib/module/components/Chat/Chat.js +1 -1
  283. package/lib/module/components/ImageGallery/ImageGallery.js +107 -101
  284. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  285. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +1 -1
  286. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +15 -17
  287. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  288. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +14 -17
  289. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  290. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  291. package/lib/module/components/ImageGallery/components/ImageGalleryOverlay.js +1 -1
  292. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +7 -7
  293. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  294. package/lib/module/components/ImageGallery/components/ImageGrid.js +1 -1
  295. package/lib/module/components/ImageGallery/components/ImageGridHandle.js +1 -1
  296. package/lib/module/components/Indicators/EmptyStateIndicator.js +1 -1
  297. package/lib/module/components/Indicators/LoadingDot.js +1 -1
  298. package/lib/module/components/Indicators/LoadingDots.js +1 -1
  299. package/lib/module/components/Indicators/LoadingErrorIndicator.js +1 -1
  300. package/lib/module/components/Indicators/LoadingIndicator.js +1 -1
  301. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleView.js +1 -1
  302. package/lib/module/components/KeyboardCompatibleView/KeyboardCompatibleViewFC.js +1 -1
  303. package/lib/module/components/Message/Message.js +1 -1
  304. package/lib/module/components/Message/MessageSimple/MessageAvatar.js +1 -1
  305. package/lib/module/components/Message/MessageSimple/MessageContent.js +1 -1
  306. package/lib/module/components/Message/MessageSimple/MessageDeleted.js +1 -1
  307. package/lib/module/components/Message/MessageSimple/MessageFooter.js +1 -1
  308. package/lib/module/components/Message/MessageSimple/MessagePinnedHeader.js +1 -1
  309. package/lib/module/components/Message/MessageSimple/MessageReplies.js +1 -1
  310. package/lib/module/components/Message/MessageSimple/MessageRepliesAvatars.js +1 -1
  311. package/lib/module/components/Message/MessageSimple/MessageSimple.js +1 -1
  312. package/lib/module/components/Message/MessageSimple/MessageStatus.js +1 -1
  313. package/lib/module/components/Message/MessageSimple/MessageTextContainer.js +1 -1
  314. package/lib/module/components/Message/MessageSimple/ReactionList.js +1 -1
  315. package/lib/module/components/Message/MessageSimple/utils/renderText.js +1 -1
  316. package/lib/module/components/Message/MessageSimple/utils/renderText.test.js +1 -1
  317. package/lib/module/components/Message/hooks/useMessageActions.js +1 -1
  318. package/lib/module/components/MessageInput/AttachButton.js +1 -1
  319. package/lib/module/components/MessageInput/CommandsButton.js +1 -1
  320. package/lib/module/components/MessageInput/CooldownTimer.js +1 -1
  321. package/lib/module/components/MessageInput/FileUploadPreview.js +1 -1
  322. package/lib/module/components/MessageInput/ImageUploadPreview.js +50 -32
  323. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  324. package/lib/module/components/MessageInput/InputButtons.js +1 -1
  325. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  326. package/lib/module/components/MessageInput/MoreOptionsButton.js +1 -1
  327. package/lib/module/components/MessageInput/SendButton.js +1 -1
  328. package/lib/module/components/MessageInput/SendMessageDisallowedIndicator.js +1 -1
  329. package/lib/module/components/MessageInput/ShowThreadMessageInChannelButton.js +1 -1
  330. package/lib/module/components/MessageInput/UploadProgressIndicator.js +1 -1
  331. package/lib/module/components/MessageInput/components/InputEditingStateHeader.js +1 -1
  332. package/lib/module/components/MessageInput/components/InputGiphySearch.js +1 -1
  333. package/lib/module/components/MessageInput/components/InputReplyStateHeader.js +1 -1
  334. package/lib/module/components/MessageList/DateHeader.js +1 -1
  335. package/lib/module/components/MessageList/InlineDateSeparator.js +1 -1
  336. package/lib/module/components/MessageList/InlineLoadingMoreIndicator.js +1 -1
  337. package/lib/module/components/MessageList/InlineLoadingMoreRecentIndicator.js +1 -1
  338. package/lib/module/components/MessageList/InlineLoadingMoreThreadIndicator.js +1 -1
  339. package/lib/module/components/MessageList/InlineUnreadIndicator.js +1 -1
  340. package/lib/module/components/MessageList/MessageList.js +1 -1
  341. package/lib/module/components/MessageList/MessageSystem.js +1 -1
  342. package/lib/module/components/MessageList/NetworkDownIndicator.js +1 -1
  343. package/lib/module/components/MessageList/ScrollToBottomButton.js +1 -1
  344. package/lib/module/components/MessageList/TypingIndicator.js +1 -1
  345. package/lib/module/components/MessageList/TypingIndicatorContainer.js +1 -1
  346. package/lib/module/components/MessageOverlay/MessageActionList.js +1 -1
  347. package/lib/module/components/MessageOverlay/MessageActionListItem.js +1 -1
  348. package/lib/module/components/MessageOverlay/MessageOverlay.js +1 -1
  349. package/lib/module/components/MessageOverlay/OverlayBackdrop.js +1 -1
  350. package/lib/module/components/MessageOverlay/OverlayReactionList.js +1 -1
  351. package/lib/module/components/MessageOverlay/OverlayReactions.js +1 -1
  352. package/lib/module/components/MessageOverlay/OverlayReactionsAvatar.js +1 -1
  353. package/lib/module/components/ProgressControl/ProgressControl.js +7 -7
  354. package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
  355. package/lib/module/components/RTLComponents/WritingDirectionAwareText.js +1 -1
  356. package/lib/module/components/Reply/Reply.js +1 -1
  357. package/lib/module/components/Spinner/Spinner.js +1 -1
  358. package/lib/module/components/Thread/Thread.js +1 -1
  359. package/lib/module/components/Thread/components/ThreadFooterComponent.js +1 -1
  360. package/lib/module/contexts/activeChannelsRefContext/ActiveChannelsRefContext.js +1 -1
  361. package/lib/module/contexts/attachmentPickerContext/AttachmentPickerContext.js +1 -1
  362. package/lib/module/contexts/channelContext/ChannelContext.js +1 -1
  363. package/lib/module/contexts/channelsContext/ChannelsContext.js +1 -1
  364. package/lib/module/contexts/channelsStateContext/ChannelsStateContext.js +1 -1
  365. package/lib/module/contexts/chatContext/ChatContext.js +1 -1
  366. package/lib/module/contexts/imageGalleryContext/ImageGalleryContext.js +1 -1
  367. package/lib/module/contexts/keyboardContext/KeyboardContext.js +1 -1
  368. package/lib/module/contexts/messageContext/MessageContext.js +1 -1
  369. package/lib/module/contexts/messageInputContext/MessageInputContext.js +1 -1
  370. package/lib/module/contexts/messageOverlayContext/MessageOverlayContext.js +1 -1
  371. package/lib/module/contexts/messageOverlayContext/hooks/useResettableState.test.js +1 -1
  372. package/lib/module/contexts/messagesContext/MessagesContext.js +1 -1
  373. package/lib/module/contexts/overlayContext/OverlayContext.js +1 -1
  374. package/lib/module/contexts/overlayContext/OverlayProvider.js +1 -1
  375. package/lib/module/contexts/ownCapabilitiesContext/OwnCapabilitiesContext.js +1 -1
  376. package/lib/module/contexts/paginatedMessageListContext/PaginatedMessageListContext.js +1 -1
  377. package/lib/module/contexts/suggestionsContext/SuggestionsContext.js +1 -1
  378. package/lib/module/contexts/themeContext/ThemeContext.js +1 -1
  379. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  380. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  381. package/lib/module/contexts/threadContext/ThreadContext.js +1 -1
  382. package/lib/module/contexts/translationContext/TranslationContext.js +1 -1
  383. package/lib/module/contexts/typingContext/TypingContext.js +1 -1
  384. package/lib/module/icons/ArrowRight.js +1 -1
  385. package/lib/module/icons/AtMentions.js +1 -1
  386. package/lib/module/icons/Attach.js +1 -1
  387. package/lib/module/icons/Audio.js +1 -1
  388. package/lib/module/icons/CSV.js +1 -1
  389. package/lib/module/icons/Camera.js +1 -1
  390. package/lib/module/icons/Check.js +1 -1
  391. package/lib/module/icons/CheckAll.js +1 -1
  392. package/lib/module/icons/CheckSend.js +1 -1
  393. package/lib/module/icons/CircleClose.js +1 -1
  394. package/lib/module/icons/CirclePlus.js +1 -1
  395. package/lib/module/icons/CircleRight.js +1 -1
  396. package/lib/module/icons/Close.js +1 -1
  397. package/lib/module/icons/Copy.js +1 -1
  398. package/lib/module/icons/CurveLineLeftUp.js +1 -1
  399. package/lib/module/icons/DOC.js +1 -1
  400. package/lib/module/icons/DOCX.js +1 -1
  401. package/lib/module/icons/Delete.js +1 -1
  402. package/lib/module/icons/Down.js +1 -1
  403. package/lib/module/icons/DownloadArrow.js +1 -1
  404. package/lib/module/icons/DownloadCloud.js +1 -1
  405. package/lib/module/icons/Edit.js +1 -1
  406. package/lib/module/icons/Error.js +1 -1
  407. package/lib/module/icons/Eye.js +1 -1
  408. package/lib/module/icons/Flag.js +1 -1
  409. package/lib/module/icons/Folder.js +1 -1
  410. package/lib/module/icons/GenericFile.js +1 -1
  411. package/lib/module/icons/GiphyIcon.js +1 -1
  412. package/lib/module/icons/Grid.js +1 -1
  413. package/lib/module/icons/Group.js +1 -1
  414. package/lib/module/icons/HTML.js +1 -1
  415. package/lib/module/icons/Imgur.js +1 -1
  416. package/lib/module/icons/LOLReaction.js +1 -1
  417. package/lib/module/icons/Lightning.js +1 -1
  418. package/lib/module/icons/Link.js +1 -1
  419. package/lib/module/icons/Loading.js +1 -1
  420. package/lib/module/icons/Logo.js +1 -1
  421. package/lib/module/icons/LoveReaction.js +1 -1
  422. package/lib/module/icons/MD.js +1 -1
  423. package/lib/module/icons/MailOpen.js +1 -1
  424. package/lib/module/icons/MenuPointHorizontal.js +1 -1
  425. package/lib/module/icons/MenuPointVertical.js +1 -1
  426. package/lib/module/icons/MessageFlag.js +1 -1
  427. package/lib/module/icons/MessageIcon.js +1 -1
  428. package/lib/module/icons/Mute.js +1 -1
  429. package/lib/module/icons/Notification.js +1 -1
  430. package/lib/module/icons/ODT.js +1 -1
  431. package/lib/module/icons/PDF.js +1 -1
  432. package/lib/module/icons/PPT.js +1 -1
  433. package/lib/module/icons/PPTX.js +1 -1
  434. package/lib/module/icons/Pause.js +1 -1
  435. package/lib/module/icons/Picture.js +1 -1
  436. package/lib/module/icons/Pin.js +1 -1
  437. package/lib/module/icons/PinHeader.js +1 -1
  438. package/lib/module/icons/Play.js +1 -1
  439. package/lib/module/icons/RAR.js +1 -1
  440. package/lib/module/icons/RTF.js +1 -1
  441. package/lib/module/icons/Recorder.js +1 -1
  442. package/lib/module/icons/Refresh.js +1 -1
  443. package/lib/module/icons/SEVEN_Z.js +1 -1
  444. package/lib/module/icons/Search.js +1 -1
  445. package/lib/module/icons/SendRight.js +1 -1
  446. package/lib/module/icons/SendUp.js +1 -1
  447. package/lib/module/icons/Share.js +1 -1
  448. package/lib/module/icons/ShareRightArrow.js +1 -1
  449. package/lib/module/icons/Smile.js +1 -1
  450. package/lib/module/icons/Sound.js +1 -1
  451. package/lib/module/icons/TAR.js +1 -1
  452. package/lib/module/icons/TXT.js +1 -1
  453. package/lib/module/icons/ThreadReply.js +1 -1
  454. package/lib/module/icons/ThumbsDownReaction.js +1 -1
  455. package/lib/module/icons/ThumbsUpReaction.js +1 -1
  456. package/lib/module/icons/Time.js +1 -1
  457. package/lib/module/icons/Unknown.js +1 -1
  458. package/lib/module/icons/Unpin.js +1 -1
  459. package/lib/module/icons/User.js +1 -1
  460. package/lib/module/icons/UserAdd.js +1 -1
  461. package/lib/module/icons/UserAdmin.js +1 -1
  462. package/lib/module/icons/UserDelete.js +1 -1
  463. package/lib/module/icons/UserMinus.js +1 -1
  464. package/lib/module/icons/Video.js +1 -1
  465. package/lib/module/icons/Warning.js +1 -1
  466. package/lib/module/icons/WutReaction.js +1 -1
  467. package/lib/module/icons/XLS.js +1 -1
  468. package/lib/module/icons/XLSX.js +1 -1
  469. package/lib/module/icons/ZIP.js +1 -1
  470. package/lib/module/icons/utils/base.js +1 -1
  471. package/lib/module/native.js.map +1 -1
  472. package/lib/module/version.json +1 -1
  473. package/lib/typescript/components/ImageGallery/ImageGallery.d.ts +3 -0
  474. package/lib/typescript/components/ImageGallery/components/AnimatedGalleryVideo.d.ts +5 -3
  475. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +1 -3
  476. package/lib/typescript/components/ProgressControl/ProgressControl.d.ts +1 -1
  477. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  478. package/lib/typescript/native.d.ts +3 -2
  479. package/package.json +1 -1
  480. package/src/components/ImageGallery/ImageGallery.tsx +87 -65
  481. package/src/components/ImageGallery/__tests__/AnimatedVideoGallery.test.tsx +2 -2
  482. package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +40 -28
  483. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +16 -9
  484. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +1 -6
  485. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +5 -6
  486. package/src/components/MessageInput/ImageUploadPreview.tsx +35 -9
  487. package/src/components/ProgressControl/ProgressControl.tsx +8 -4
  488. package/src/contexts/themeContext/utils/theme.ts +2 -0
  489. package/src/native.ts +3 -2
  490. package/src/version.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","paused","setPaused","progress","setProgress","duration","setDuration","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","messages","selectedMessage","setSelectedMessage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","reverse","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","uri","width","user","user_id","photoLength","length","stripQueryFromUrl","split","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","videoRef","handleEnd","handleLoad","payload","handleProgress","data","currentTime","seekableDuration","handlePlayPause","status","undefined","seek","replayAsync","state","onProgressDrag","setPositionAsync","StyleSheet","absoluteFillObject","absoluteFill","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n isVideoPackageAvailable,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\nimport { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [paused, setPaused] = useState<boolean>(false);\n const [progress, setProgress] = useState<number>(0);\n const [duration, setDuration] = useState<number>(0);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { messages, selectedMessage, setSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = messages.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments\n ?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n )\n .reverse() || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...attachmentPhotos, ...acc] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n /**\n * The URL for the images may differ because of dimensions passed as\n * part of the query.\n */\n const stripQueryFromUrl = (url: string) => url.split('?')[0];\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) =>\n photo.messageId === selectedMessage?.messageId &&\n stripQueryFromUrl(photo.uri) === stripQueryFromUrl(selectedMessage?.url || ''),\n );\n\n if (photoLength > 1) {\n setPaused(true);\n }\n\n runOnUI(updatePosition)(newIndex);\n }, [selectedMessage, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = photos[selectedIndex]?.uri;\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = photos[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n selectedIndex,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(photos);\n }\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleEnd = () => {\n setPaused(true);\n setProgress(1);\n };\n\n const handleLoad = (payload: VideoPayloadData) => {\n if (payload.duration) setDuration(payload.duration);\n };\n\n const handleProgress = (data: VideoProgressData) => {\n if (data.currentTime && data.seekableDuration) {\n setProgress(data.currentTime / data.seekableDuration);\n }\n };\n\n const handlePlayPause = (status?: boolean) => {\n if (status === undefined) {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (progress === 1 && videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(0);\n }\n // Expo AV for Expo has replayAsync as an API to move to a starting of the video\n if (progress === 1 && videoRef.current && videoRef.current.replayAsync) {\n videoRef.current.replayAsync();\n }\n\n setPaused((state) => !state);\n } else {\n setPaused(status);\n }\n };\n\n const onProgressDrag = (progress: number) => {\n // React Native Video for RN CLI has seek as an API to move to a particular location in the video\n if (videoRef.current && videoRef.current.seek) {\n videoRef.current.seek(progress);\n }\n\n // Expo AV for Expo has setPositionAsync as an API to move to a particular location of the video\n if (videoRef.current && videoRef.current.setPositionAsync) {\n videoRef.current.setPositionAsync(progress * 1000);\n }\n };\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery'\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, showScreenStyle]}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {photos.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={paused}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n accessibilityLabel={'Image Item'}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={photos[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n <ImageGalleryFooter<StreamChatGenerics>\n accessibilityLabel={'Image Gallery Footer'}\n duration={duration}\n onPlayPause={handlePlayPause}\n onProgressDrag={onProgressDrag}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={paused}\n photo={photos[selectedIndex]}\n photoLength={photoLength}\n progress={progress}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setSelectedMessage={setSelectedMessage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
1
+ {"version":3,"sources":["ImageGallery.tsx"],"names":["isAndroid","Platform","OS","fullScreenHeight","Dimensions","get","height","measuredScreenHeight","screenWidth","halfScreenWidth","MARGIN","HasPinched","IsSwiping","ImageGallery","props","giphyVersion","imageGalleryCustomComponents","imageGalleryGridHandleHeight","imageGalleryGridSnapPoints","numberOfImageGalleryGridColumns","overlayOpacity","imageGalleryAttachments","setImageGalleryAttachments","theme","white_snow","colors","imageGallery","backgroundColor","pager","slide","gridPhotos","setGridPhotos","overlay","translucentStatusBar","messages","selectedMessage","setSelectedMessage","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidScreenHeightAdjustment","screenHeight","halfScreenHeight","quarterScreenHeight","snapPoints","React","useMemo","bottomSheetModalRef","currentBottomSheetIndex","setCurrentBottomSheetIndex","animatedBottomSheetIndex","screenTranslateY","showScreen","value","duration","easing","Easing","out","ease","Keyboard","dismiss","currentImageHeight","setCurrentImageHeight","selectedIndex","setSelectedIndex","index","headerFooterVisible","doubleTapRef","panRef","pinchRef","singleTapRef","translateX","translateY","offsetScale","scale","translationX","photos","reduce","acc","cur","attachmentImages","attachments","filter","attachment","type","giphy","url","thumb_url","image_url","title_link","og_scrape_url","reverse","attachmentPhotos","map","a","imageUrl","giphyURL","channelId","cid","created_at","id","messageId","mime_type","original_height","original_width","paused","progress","uri","width","user","user_id","photoLength","length","stripQueryFromUrl","split","updatePosition","newIndex","findIndex","photo","uriForCurrentImage","imageHeight","Math","floor","Image","getSize","onDoubleTap","onPan","onPinch","onSingleTap","headerFooterOpacity","pagerStyle","transform","scaleX","containerBackground","opacity","showScreenStyle","closeGridView","current","close","openGridView","present","handleEnd","handlePlayPause","handleProgress","videoRef","handleLoad","prevImageGalleryAttachment","imageGalleryAttachment","hasEnd","prevImageGalleryAttachments","pausedStatus","onPlayPause","status","undefined","StyleSheet","absoluteFillObject","absoluteFill","styles","animatedContainer","i","abs","marginRight","header","footer","gridHandle","grid","clamp","lowerBound","upperBound","min","max","create","alignItems","flexDirection","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Dimensions,\n Image,\n ImageStyle,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n ViewStyle,\n} from 'react-native';\n\nimport {\n PanGestureHandler,\n PinchGestureHandler,\n TapGestureHandler,\n} from 'react-native-gesture-handler';\n\nimport Animated, {\n Easing,\n runOnJS,\n runOnUI,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { BottomSheetModal, BottomSheetModalProvider } from '@gorhom/bottom-sheet';\n\nimport type { UserResponse } from 'stream-chat';\n\nimport { AnimatedGalleryImage } from './components/AnimatedGalleryImage';\nimport { AnimatedGalleryVideo } from './components/AnimatedGalleryVideo';\nimport {\n ImageGalleryFooter,\n ImageGalleryFooterCustomComponentProps,\n} from './components/ImageGalleryFooter';\nimport {\n ImageGalleryHeader,\n ImageGalleryHeaderCustomComponentProps,\n} from './components/ImageGalleryHeader';\nimport { ImageGalleryOverlay } from './components/ImageGalleryOverlay';\nimport { ImageGalleryGridImageComponents, ImageGrid } from './components/ImageGrid';\nimport {\n ImageGalleryGridHandleCustomComponentProps,\n ImageGridHandle,\n} from './components/ImageGridHandle';\n\nimport { useImageGalleryGestures } from './hooks/useImageGalleryGestures';\n\nimport { useImageGalleryContext } from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n OverlayProviderProps,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { isVideoPackageAvailable, VideoType } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getResizedImageUrl } from '../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../utils/getUrlOfImageAttachment';\nimport { vh, vw } from '../../utils/utils';\nimport { getGiphyMimeType } from '../Attachment/utils/getGiphyMimeType';\n\nconst isAndroid = Platform.OS === 'android';\nconst fullScreenHeight = Dimensions.get('screen').height;\nconst measuredScreenHeight = vh(100);\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst MARGIN = 32;\n\nexport enum HasPinched {\n FALSE = 0,\n TRUE,\n}\n\nexport enum IsSwiping {\n UNDETERMINED = 0,\n TRUE,\n FALSE,\n}\n\nexport type ImageGalleryCustomComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n /**\n * Override props for following UI components, which are part of [image gallery](https://github.com/GetStream/stream-chat-react-native/wiki/Cookbook-v3.0#gallery-components).\n *\n * - [ImageGalleryFooter](#ImageGalleryFooter)\n *\n * - [ImageGrid](#ImageGrid)\n *\n * - [ImageGridHandle](#ImageGridHandle)\n *\n * - [ImageGalleryHeader](#ImageGalleryHeader)\n *\n * e.g.,\n *\n * ```js\n * {\n * footer: {\n * ShareIcon: CustomShareIconComponent\n * },\n * grid: {\n * avatarComponent: CustomAvatarComponent\n * },\n * gridHandle: {\n * centerComponent: CustomCenterComponent\n * },\n * header: {\n * CloseIcon: CustomCloseButtonComponent\n * },\n * }\n * ```\n * @overrideType object\n */\n imageGalleryCustomComponents?: {\n footer?: ImageGalleryFooterCustomComponentProps<StreamChatGenerics>;\n grid?: ImageGalleryGridImageComponents<StreamChatGenerics>;\n gridHandle?: ImageGalleryGridHandleCustomComponentProps;\n header?: ImageGalleryHeaderCustomComponentProps<StreamChatGenerics>;\n };\n};\n\ntype Props<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =\n ImageGalleryCustomComponents<StreamChatGenerics> & {\n overlayOpacity: Animated.SharedValue<number>;\n } & Pick<\n OverlayProviderProps<StreamChatGenerics>,\n | 'giphyVersion'\n | 'imageGalleryGridSnapPoints'\n | 'imageGalleryGridHandleHeight'\n | 'numberOfImageGalleryGridColumns'\n >;\n\nexport const ImageGallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: Props<StreamChatGenerics>,\n) => {\n const {\n giphyVersion = 'fixed_height',\n imageGalleryCustomComponents,\n imageGalleryGridHandleHeight,\n imageGalleryGridSnapPoints,\n numberOfImageGalleryGridColumns,\n overlayOpacity,\n } = props;\n const [imageGalleryAttachments, setImageGalleryAttachments] = useState<\n Photo<StreamChatGenerics>[]\n >([]);\n const {\n theme: {\n colors: { white_snow },\n imageGallery: { backgroundColor, pager, slide },\n },\n } = useTheme();\n const [gridPhotos, setGridPhotos] = useState<Photo<StreamChatGenerics>[]>([]);\n const { overlay, translucentStatusBar } = useOverlayContext();\n const { messages, selectedMessage, setSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n\n /**\n * Height constants\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - measuredScreenHeight - statusBarHeight;\n const androidScreenHeightAdjustment = translucentStatusBar\n ? bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? 0\n : statusBarHeight\n : bottomBarHeight === statusBarHeight || bottomBarHeight < 0\n ? -statusBarHeight\n : 0;\n const screenHeight = isAndroid\n ? Dimensions.get('window').height + androidScreenHeightAdjustment\n : vh(100);\n const halfScreenHeight = screenHeight / 2;\n const quarterScreenHeight = screenHeight / 4;\n const snapPoints = React.useMemo(\n () => [(screenHeight * 3) / 4, screenHeight - (imageGalleryGridHandleHeight ?? 40)],\n [],\n );\n\n /**\n * BottomSheetModal ref\n */\n const bottomSheetModalRef = useRef<BottomSheetModal>(null);\n\n /**\n * BottomSheetModal state\n */\n const [currentBottomSheetIndex, setCurrentBottomSheetIndex] = useState(0);\n const animatedBottomSheetIndex = useSharedValue(0);\n\n /**\n * Fade animation for screen, it is always rendered with pointerEvents\n * set to none for fast opening\n */\n const screenTranslateY = useSharedValue(screenHeight);\n const showScreen = () => {\n 'worklet';\n screenTranslateY.value = withTiming(0, {\n duration: 250,\n easing: Easing.out(Easing.ease),\n });\n };\n\n /**\n * Run the fade animation on visible change\n */\n useEffect(() => {\n Keyboard.dismiss();\n showScreen();\n }, []);\n\n /**\n * Image height from URL or default to full screen height\n */\n const [currentImageHeight, setCurrentImageHeight] = useState<number>(screenHeight);\n\n /**\n * JS and UI index values, the JS follows the UI but is needed\n * for rendering the virtualized image list\n */\n const [selectedIndex, setSelectedIndex] = useState(0);\n const index = useSharedValue(0);\n\n /**\n * Header visible value for animating in out\n */\n const headerFooterVisible = useSharedValue(1);\n\n /**\n * Gesture handler refs\n */\n const doubleTapRef = useRef<TapGestureHandler>(null);\n const panRef = useRef<PanGestureHandler>(null);\n const pinchRef = useRef<PinchGestureHandler>(null);\n const singleTapRef = useRef<TapGestureHandler>(null);\n\n /**\n * Shared values for movement\n */\n const translateX = useSharedValue(0);\n const translateY = useSharedValue(0);\n const offsetScale = useSharedValue(1);\n const scale = useSharedValue(1);\n const translationX = useSharedValue(0);\n\n /**\n * Photos array created from all currently available\n * photo attachments\n */\n\n const photos = messages.reduce((acc: Photo<StreamChatGenerics>[], cur) => {\n const attachmentImages =\n cur.attachments\n ?.filter(\n (attachment) =>\n (attachment.type === 'giphy' &&\n (attachment.giphy?.[giphyVersion]?.url ||\n attachment.thumb_url ||\n attachment.image_url)) ||\n (attachment.type === 'image' &&\n !attachment.title_link &&\n !attachment.og_scrape_url &&\n getUrlOfImageAttachment(attachment)) ||\n (isVideoPackageAvailable() && attachment.type === 'video'),\n )\n .reverse() || [];\n\n const attachmentPhotos = attachmentImages.map((a) => {\n const imageUrl = getUrlOfImageAttachment(a) as string;\n const giphyURL = a.giphy?.[giphyVersion]?.url || a.thumb_url || a.image_url;\n\n return {\n channelId: cur.cid,\n created_at: cur.created_at,\n duration: 0,\n id: `photoId-${cur.id}-${imageUrl}`,\n messageId: cur.id,\n mime_type: a.type === 'giphy' ? getGiphyMimeType(giphyURL ?? '') : a.mime_type,\n original_height: a.original_height,\n original_width: a.original_width,\n paused: true,\n progress: 0,\n type: a.type,\n uri:\n a.type === 'giphy'\n ? giphyURL\n : getResizedImageUrl({\n height: screenHeight,\n url: imageUrl,\n width: screenWidth,\n }),\n user: cur.user,\n user_id: cur.user_id,\n };\n });\n\n return [...attachmentPhotos, ...acc] as Photo<StreamChatGenerics>[];\n }, []);\n\n /**\n * Photos length needs to be kept as a const here so if the length\n * changes it causes the pan gesture handler function to refresh. This\n * does not work if the calculation for the length of the array is left\n * inside the gesture handler as it will have an array as a dependency\n */\n const photoLength = photos.length;\n\n useEffect(() => {\n setImageGalleryAttachments(photos);\n }, []);\n\n /**\n * The URL for the images may differ because of dimensions passed as\n * part of the query.\n */\n const stripQueryFromUrl = (url: string) => url.split('?')[0];\n\n /**\n * Set selected photo when changed via pressing in the message list\n */\n useEffect(() => {\n const updatePosition = (newIndex: number) => {\n 'worklet';\n\n if (newIndex > -1) {\n index.value = newIndex;\n translationX.value = -(screenWidth + MARGIN) * newIndex;\n runOnJS(setSelectedIndex)(newIndex);\n }\n };\n\n const newIndex = photos.findIndex(\n (photo) =>\n photo.messageId === selectedMessage?.messageId &&\n stripQueryFromUrl(photo.uri) === stripQueryFromUrl(selectedMessage?.url || ''),\n );\n\n runOnUI(updatePosition)(newIndex);\n }, [selectedMessage, photoLength]);\n\n /**\n * Image heights are not provided and therefore need to be calculated.\n * We start by allowing the image to be the full height then reduce it\n * to the proper scaled height based on the width being restricted to the\n * screen width when the dimensions are received.\n */\n const uriForCurrentImage = imageGalleryAttachments[selectedIndex]?.uri;\n\n useEffect(() => {\n setCurrentImageHeight(screenHeight);\n const photo = imageGalleryAttachments[index.value];\n const height = photo?.original_height;\n const width = photo?.original_width;\n\n if (height && width) {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n } else if (photo?.uri) {\n if (photo.type === 'image') {\n Image.getSize(photo.uri, (width, height) => {\n const imageHeight = Math.floor(height * (screenWidth / width));\n setCurrentImageHeight(imageHeight > screenHeight ? screenHeight : imageHeight);\n });\n }\n }\n }, [uriForCurrentImage]);\n\n const { onDoubleTap, onPan, onPinch, onSingleTap } = useImageGalleryGestures({\n currentImageHeight,\n halfScreenHeight,\n halfScreenWidth,\n headerFooterVisible,\n offsetScale,\n overlayOpacity,\n photoLength,\n scale,\n screenHeight,\n screenWidth,\n selectedIndex,\n setSelectedIndex,\n translateX,\n translateY,\n translationX,\n });\n\n /**\n * If the header is visible we scale down the opacity of it as the\n * image is swiped downward\n */\n const headerFooterOpacity = useDerivedValue(\n () =>\n currentImageHeight * scale.value < screenHeight && translateY.value > 0\n ? 1 - translateY.value / quarterScreenHeight\n : currentImageHeight * scale.value > screenHeight &&\n translateY.value > (currentImageHeight / 2) * scale.value - halfScreenHeight\n ? 1 -\n (translateY.value - ((currentImageHeight / 2) * scale.value - halfScreenHeight)) /\n quarterScreenHeight\n : 1,\n [currentImageHeight],\n );\n\n /**\n * This transition and scaleX reverse lets use scroll left\n */\n const pagerStyle = useAnimatedStyle<ImageStyle>(\n () => ({\n transform: [\n { scaleX: -1 },\n {\n translateX: translationX.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Simple background color animation on Y movement\n */\n const containerBackground = useAnimatedStyle<ViewStyle>(\n () => ({\n backgroundColor: backgroundColor || white_snow,\n opacity: headerFooterOpacity.value,\n }),\n [headerFooterOpacity],\n );\n\n /**\n * Show screen style as component is always rendered we hide it\n * down and up and set opacity to 0 for good measure\n */\n const showScreenStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n transform: [\n {\n translateY: screenTranslateY.value,\n },\n ],\n }),\n [],\n );\n\n /**\n * Functions toclose BottomSheetModal with image grid\n */\n const closeGridView = () => {\n if (bottomSheetModalRef.current?.close) {\n bottomSheetModalRef.current.close();\n setGridPhotos([]);\n }\n };\n\n /**\n * Function to open BottomSheetModal with image grid\n */\n const openGridView = () => {\n if (bottomSheetModalRef.current?.present) {\n bottomSheetModalRef.current.present();\n setGridPhotos(imageGalleryAttachments);\n }\n };\n\n const handleEnd = () => {\n handlePlayPause(imageGalleryAttachments[selectedIndex].id, true);\n handleProgress(imageGalleryAttachments[selectedIndex].id, 1, true);\n };\n\n const videoRef = useRef<VideoType>(null);\n\n const handleLoad = (index: string, duration: number) => {\n setImageGalleryAttachments((prevImageGalleryAttachment) =>\n prevImageGalleryAttachment.map((imageGalleryAttachment) => ({\n ...imageGalleryAttachment,\n duration: imageGalleryAttachment.id === index ? duration : imageGalleryAttachment.duration,\n })),\n );\n };\n\n const handleProgress = (index: string, progress: number, hasEnd?: boolean) => {\n setImageGalleryAttachments((prevImageGalleryAttachments) =>\n prevImageGalleryAttachments.map((imageGalleryAttachment) => ({\n ...imageGalleryAttachment,\n progress:\n imageGalleryAttachment.id === index\n ? hasEnd\n ? 1\n : progress\n : imageGalleryAttachment.progress,\n })),\n );\n };\n\n const handlePlayPause = (index: string, pausedStatus?: boolean) => {\n if (pausedStatus === false) {\n // If the status is false we set the audio with the index as playing and the others as paused.\n setImageGalleryAttachments((prevImageGalleryAttachment) =>\n prevImageGalleryAttachment.map((imageGalleryAttachment) => ({\n ...imageGalleryAttachment,\n paused: imageGalleryAttachment.id === index ? false : true,\n })),\n );\n } else {\n // If the status is true we simply set all the audio's paused state as true.\n setImageGalleryAttachments((prevImageGalleryAttachment) =>\n prevImageGalleryAttachment.map((imageGalleryAttachment) => ({\n ...imageGalleryAttachment,\n paused: true,\n })),\n );\n }\n };\n\n const onPlayPause = (status?: boolean) => {\n if (status === undefined) {\n if (imageGalleryAttachments[selectedIndex].paused) {\n handlePlayPause(imageGalleryAttachments[selectedIndex].id, false);\n } else {\n handlePlayPause(imageGalleryAttachments[selectedIndex].id, true);\n }\n } else {\n handlePlayPause(imageGalleryAttachments[selectedIndex].id, status);\n }\n };\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery'\n pointerEvents={'auto'}\n style={[StyleSheet.absoluteFillObject, showScreenStyle]}\n >\n <Animated.View style={[StyleSheet.absoluteFillObject, containerBackground]} />\n <TapGestureHandler\n minPointers={1}\n numberOfTaps={1}\n onGestureEvent={onSingleTap}\n ref={singleTapRef}\n waitFor={[panRef, pinchRef, doubleTapRef]}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <TapGestureHandler\n maxDeltaX={8}\n maxDeltaY={8}\n maxDist={8}\n minPointers={1}\n numberOfTaps={2}\n onGestureEvent={onDoubleTap}\n ref={doubleTapRef}\n >\n <Animated.View style={StyleSheet.absoluteFillObject}>\n <PinchGestureHandler\n onGestureEvent={onPinch}\n ref={pinchRef}\n simultaneousHandlers={[panRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <PanGestureHandler\n enabled={overlay === 'gallery'}\n maxPointers={isAndroid ? undefined : 1}\n minDist={10}\n onGestureEvent={onPan}\n ref={panRef}\n simultaneousHandlers={[pinchRef]}\n >\n <Animated.View style={StyleSheet.absoluteFill}>\n <Animated.View\n style={[\n styles.animatedContainer,\n pagerStyle,\n pager,\n {\n transform: [\n { scaleX: -1 }, // Also only here for opening, wrong direction when not included\n {\n translateX: translationX.value, // Only here for opening, wrong index when this is not included\n },\n ],\n },\n ]}\n >\n {imageGalleryAttachments.map((photo, i) =>\n photo.type === 'video' ? (\n <AnimatedGalleryVideo\n attachmentId={photo.id}\n handleEnd={handleEnd}\n handleLoad={handleLoad}\n handleProgress={handleProgress}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n paused={photo.paused || false}\n previous={selectedIndex > i}\n repeat={true}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n source={{ uri: photo.uri }}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n videoRef={videoRef}\n />\n ) : (\n <AnimatedGalleryImage\n accessibilityLabel={'Image Item'}\n index={i}\n key={`${photo.uri}-${i}`}\n offsetScale={offsetScale}\n photo={photo}\n previous={selectedIndex > i}\n scale={scale}\n screenHeight={screenHeight}\n selected={selectedIndex === i}\n shouldRender={Math.abs(selectedIndex - i) < 4}\n style={[\n {\n height: screenHeight * 8,\n marginRight: MARGIN,\n width: screenWidth * 8,\n },\n slide,\n ]}\n translateX={translateX}\n translateY={translateY}\n />\n ),\n )}\n </Animated.View>\n </Animated.View>\n </PanGestureHandler>\n </Animated.View>\n </PinchGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n </Animated.View>\n </TapGestureHandler>\n <ImageGalleryHeader<StreamChatGenerics>\n opacity={headerFooterOpacity}\n photo={imageGalleryAttachments[selectedIndex]}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.header}\n />\n\n {imageGalleryAttachments.length > 0 && (\n <ImageGalleryFooter<StreamChatGenerics>\n accessibilityLabel={'Image Gallery Footer'}\n duration={imageGalleryAttachments[selectedIndex].duration || 0}\n onPlayPause={onPlayPause}\n opacity={headerFooterOpacity}\n openGridView={openGridView}\n paused={imageGalleryAttachments[selectedIndex].paused || false}\n photo={imageGalleryAttachments[selectedIndex]}\n photoLength={imageGalleryAttachments.length}\n progress={imageGalleryAttachments[selectedIndex].progress || 0}\n selectedIndex={selectedIndex}\n visible={headerFooterVisible}\n {...imageGalleryCustomComponents?.footer}\n />\n )}\n\n <ImageGalleryOverlay\n animatedBottomSheetIndex={animatedBottomSheetIndex}\n closeGridView={closeGridView}\n currentBottomSheetIndex={currentBottomSheetIndex}\n />\n <BottomSheetModalProvider>\n <BottomSheetModal\n animatedIndex={animatedBottomSheetIndex}\n enablePanDownToClose={true}\n handleComponent={() => (\n <ImageGridHandle\n closeGridView={closeGridView}\n {...imageGalleryCustomComponents?.gridHandle}\n />\n )}\n handleHeight={imageGalleryGridHandleHeight ?? 40}\n index={0}\n onChange={(index: number) => setCurrentBottomSheetIndex(index)}\n ref={bottomSheetModalRef}\n snapPoints={imageGalleryGridSnapPoints || snapPoints}\n >\n <ImageGrid\n closeGridView={closeGridView}\n numberOfImageGalleryGridColumns={numberOfImageGalleryGridColumns}\n photos={gridPhotos}\n setSelectedMessage={setSelectedMessage}\n {...imageGalleryCustomComponents?.grid}\n />\n </BottomSheetModal>\n </BottomSheetModalProvider>\n </Animated.View>\n );\n};\n\n/**\n * Clamping worklet to clamp the scaling\n */\nexport const clamp = (value: number, lowerBound: number, upperBound: number) => {\n 'worklet';\n return Math.min(Math.max(lowerBound, value), upperBound);\n};\n\nconst styles = StyleSheet.create({\n animatedContainer: {\n alignItems: 'center',\n flexDirection: 'row',\n },\n});\n\nexport type Photo<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n id: string;\n uri: string;\n channelId?: string;\n created_at?: string | Date;\n duration?: number;\n messageId?: string;\n mime_type?: string;\n original_height?: number;\n original_width?: number;\n paused?: boolean;\n progress?: number;\n type?: string;\n user?: UserResponse<StreamChatGenerics> | null;\n user_id?: string;\n};\n\nImageGallery.displayName = 'ImageGallery{imageGallery}';\n"]}
@@ -16,7 +16,7 @@ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reani
16
16
  var _utils = require("../../../utils/utils");
17
17
 
18
18
  var _this = this,
19
- _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx";
19
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx";
20
20
 
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
 
@@ -22,7 +22,7 @@ var _utils = require("../../../utils/utils");
22
22
  var _Spinner = require("../../Spinner/Spinner");
23
23
 
24
24
  var _this = this,
25
- _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx";
25
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx";
26
26
 
27
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
28
 
@@ -48,13 +48,15 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
48
48
  opacity = _useState2[0],
49
49
  setOpacity = _useState2[1];
50
50
 
51
- var handleEnd = props.handleEnd,
51
+ var attachmentId = props.attachmentId,
52
+ handleEnd = props.handleEnd,
52
53
  handleLoad = props.handleLoad,
53
54
  handleProgress = props.handleProgress,
54
55
  index = props.index,
55
56
  offsetScale = props.offsetScale,
56
57
  paused = props.paused,
57
58
  previous = props.previous,
59
+ repeat = props.repeat,
58
60
  scale = props.scale,
59
61
  screenHeight = props.screenHeight,
60
62
  selected = props.selected,
@@ -71,7 +73,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
71
73
 
72
74
  var onLoad = function onLoad(payload) {
73
75
  setOpacity(0);
74
- handleLoad(payload);
76
+ handleLoad(attachmentId, payload.duration);
75
77
  };
76
78
 
77
79
  var onEnd = function onEnd() {
@@ -79,7 +81,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
79
81
  };
80
82
 
81
83
  var onProgress = function onProgress(data) {
82
- handleProgress(data);
84
+ handleProgress(attachmentId, data.currentTime / data.seekableDuration);
83
85
  };
84
86
 
85
87
  var onBuffer = function onBuffer(_ref) {
@@ -96,15 +98,10 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
96
98
  }
97
99
  } else {
98
100
  setOpacity(0);
99
- handleLoad({
100
- duration: playbackStatus.durationMillis / 1000
101
- });
101
+ handleLoad(attachmentId, playbackStatus.durationMillis / 1000);
102
102
 
103
103
  if (playbackStatus.isPlaying) {
104
- handleProgress({
105
- currentTime: playbackStatus.positionMillis / 1000,
106
- seekableDuration: playbackStatus.durationMillis / 1000
107
- });
104
+ handleProgress(attachmentId, playbackStatus.positionMillis / 1000 / (playbackStatus.durationMillis / 1000));
108
105
  }
109
106
 
110
107
  if (playbackStatus.isBuffering) {
@@ -144,7 +141,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
144
141
  __self: _this,
145
142
  __source: {
146
143
  fileName: _jsxFileName,
147
- lineNumber: 158,
144
+ lineNumber: 163,
148
145
  columnNumber: 9
149
146
  }
150
147
  });
@@ -166,7 +163,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
166
163
  __self: _this,
167
164
  __source: {
168
165
  fileName: _jsxFileName,
169
- lineNumber: 166,
166
+ lineNumber: 171,
170
167
  columnNumber: 7
171
168
  }
172
169
  }, (0, _native.isVideoPackageAvailable)() && _react["default"].createElement(_native.Video, {
@@ -177,6 +174,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
177
174
  onPlaybackStatusUpdate: onPlayBackStatusUpdate,
178
175
  onProgress: onProgress,
179
176
  paused: paused,
177
+ repeat: repeat,
180
178
  resizeMode: "contain",
181
179
  style: style,
182
180
  testID: "video-player",
@@ -185,7 +183,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
185
183
  __self: _this,
186
184
  __source: {
187
185
  fileName: _jsxFileName,
188
- lineNumber: 184,
186
+ lineNumber: 189,
189
187
  columnNumber: 11
190
188
  }
191
189
  }), _react["default"].createElement(_reactNativeReanimated["default"].View, {
@@ -203,7 +201,7 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
203
201
  __self: _this,
204
202
  __source: {
205
203
  fileName: _jsxFileName,
206
- lineNumber: 199,
204
+ lineNumber: 205,
207
205
  columnNumber: 9
208
206
  }
209
207
  }, _react["default"].createElement(_Spinner.Spinner, {
@@ -212,12 +210,12 @@ var AnimatedGalleryVideo = _react["default"].memo(function (props) {
212
210
  __self: _this,
213
211
  __source: {
214
212
  fileName: _jsxFileName,
215
- lineNumber: 213,
213
+ lineNumber: 219,
216
214
  columnNumber: 11
217
215
  }
218
216
  })));
219
217
  }, function (prevProps, nextProps) {
220
- if (prevProps.paused === nextProps.paused && prevProps.shouldRender === nextProps.shouldRender && prevProps.source.uri === nextProps.source.uri && prevProps.screenHeight === nextProps.screenHeight && prevProps.selected === nextProps.selected && prevProps.previous === nextProps.previous && prevProps.index === nextProps.index) {
218
+ if (prevProps.paused === nextProps.paused && prevProps.repeat === nextProps.repeat && prevProps.shouldRender === nextProps.shouldRender && prevProps.source.uri === nextProps.source.uri && prevProps.screenHeight === nextProps.screenHeight && prevProps.selected === nextProps.selected && prevProps.previous === nextProps.previous && prevProps.index === nextProps.index) {
221
219
  return true;
222
220
  }
223
221
 
@@ -1 +1 @@
1
- {"version":3,"sources":["AnimatedGalleryVideo.tsx"],"names":["screenWidth","halfScreenWidth","oneEighth","styles","StyleSheet","create","activityIndicator","alignSelf","videoPlayer","height","width","AnimatedGalleryVideo","React","memo","props","opacity","setOpacity","handleEnd","handleLoad","handleProgress","index","offsetScale","paused","previous","scale","screenHeight","selected","shouldRender","source","style","translateX","translateY","videoRef","onLoadStart","onLoad","payload","onEnd","onProgress","data","onBuffer","isBuffering","onPlayBackStatusUpdate","playbackStatus","isLoaded","error","console","duration","durationMillis","isPlaying","currentTime","positionMillis","seekableDuration","didJustFinish","isLooping","animatedViewStyles","xScaleOffset","yScaleOffset","transform","value","scaleX","uri","prevProps","nextProps","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View, ViewStyle } from 'react-native';\nimport type { StyleProp } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\nimport {\n isVideoPackageAvailable,\n PlaybackStatus,\n Video,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../../native';\n\nimport { vw } from '../../../utils/utils';\nimport { Spinner } from '../../Spinner/Spinner';\n\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst oneEighth = 1 / 8;\n\nexport type AnimatedGalleryVideoType = {\n handleEnd: () => void;\n handleLoad: (payload: VideoPayloadData) => void;\n handleProgress: (data: VideoProgressData) => void;\n index: number;\n offsetScale: Animated.SharedValue<number>;\n paused: boolean;\n previous: boolean;\n scale: Animated.SharedValue<number>;\n screenHeight: number;\n selected: boolean;\n shouldRender: boolean;\n source: { uri: string };\n translateX: Animated.SharedValue<number>;\n translateY: Animated.SharedValue<number>;\n videoRef: React.RefObject<VideoType>;\n style?: StyleProp<ViewStyle>;\n};\n\nconst styles = StyleSheet.create({\n activityIndicator: {\n alignSelf: 'center',\n },\n videoPlayer: {\n height: '100%',\n width: '100%',\n },\n});\n\nexport const AnimatedGalleryVideo: React.FC<AnimatedGalleryVideoType> = React.memo(\n (props) => {\n const [opacity, setOpacity] = useState<number>(1);\n const {\n handleEnd,\n handleLoad,\n handleProgress,\n index,\n offsetScale,\n paused,\n previous,\n scale,\n screenHeight,\n selected,\n shouldRender,\n source,\n style,\n translateX,\n translateY,\n videoRef,\n } = props;\n\n const onLoadStart = () => {\n setOpacity(1);\n };\n\n const onLoad = (payload: VideoPayloadData) => {\n setOpacity(0);\n handleLoad(payload);\n };\n\n const onEnd = () => {\n handleEnd();\n };\n\n const onProgress = (data: VideoProgressData) => {\n handleProgress(data);\n };\n\n const onBuffer = ({ isBuffering }: { isBuffering: boolean }) => {\n if (isBuffering) setOpacity(1);\n else setOpacity(0);\n };\n\n const onPlayBackStatusUpdate = (playbackStatus: PlaybackStatus) => {\n if (!playbackStatus.isLoaded) {\n // Update your UI for the unloaded state\n setOpacity(1);\n if (playbackStatus.error) {\n console.error(`Encountered a fatal error during playback: ${playbackStatus.error}`);\n }\n } else {\n // Update your UI for the loaded state\n setOpacity(0);\n handleLoad({ duration: playbackStatus.durationMillis / 1000 });\n if (playbackStatus.isPlaying) {\n // Update your UI for the playing state\n handleProgress({\n currentTime: playbackStatus.positionMillis / 1000,\n seekableDuration: playbackStatus.durationMillis / 1000,\n });\n }\n\n if (playbackStatus.isBuffering) {\n // Update your UI for the buffering state\n setOpacity(1);\n }\n\n if (playbackStatus.didJustFinish && !playbackStatus.isLooping) {\n // The player has just finished playing and will stop. Maybe you want to play something else?\n handleEnd();\n }\n }\n };\n\n const animatedViewStyles = useAnimatedStyle<ViewStyle>(() => {\n const xScaleOffset = -7 * screenWidth * (0.5 + index);\n const yScaleOffset = -screenHeight * 3.5;\n return {\n transform: [\n {\n translateX: selected\n ? translateX.value + xScaleOffset\n : scale.value < 1 || scale.value !== offsetScale.value\n ? xScaleOffset\n : previous\n ? translateX.value - halfScreenWidth * (scale.value - 1) + xScaleOffset\n : translateX.value + halfScreenWidth * (scale.value - 1) + xScaleOffset,\n },\n {\n translateY: selected ? translateY.value + yScaleOffset : yScaleOffset,\n },\n {\n scale: selected ? scale.value / 8 : oneEighth,\n },\n { scaleX: -1 },\n ],\n };\n }, [previous, selected]);\n\n /**\n * An empty view is rendered for images not close to the currently\n * selected in order to maintain spacing while reducing the image\n * load on memory.\n */\n if (!shouldRender) {\n return (\n <View\n accessibilityLabel='Empty View Image Gallery'\n style={[style, { transform: [{ scale: oneEighth }] }]}\n />\n );\n }\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery Video'\n style={[\n style,\n animatedViewStyles,\n {\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 3.5 },\n {\n translateX: -translateX.value + 7 * screenWidth * (0.5 + index),\n },\n { scale: oneEighth },\n ],\n },\n ]}\n >\n {isVideoPackageAvailable() && (\n <Video\n onBuffer={onBuffer}\n onEnd={onEnd}\n onLoad={onLoad}\n onLoadStart={onLoadStart}\n onPlaybackStatusUpdate={onPlayBackStatusUpdate}\n onProgress={onProgress}\n paused={paused}\n resizeMode='contain'\n style={style}\n testID='video-player'\n uri={source.uri}\n videoRef={videoRef}\n />\n )}\n <Animated.View\n accessibilityLabel='Spinner'\n style={[\n styles.activityIndicator,\n {\n opacity,\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 4 },\n { scale: 1 / oneEighth },\n ],\n },\n ]}\n >\n <Spinner height={40} width={40} />\n </Animated.View>\n </Animated.View>\n );\n },\n\n (prevProps, nextProps) => {\n if (\n prevProps.paused === nextProps.paused &&\n prevProps.shouldRender === nextProps.shouldRender &&\n prevProps.source.uri === nextProps.source.uri &&\n prevProps.screenHeight === nextProps.screenHeight &&\n prevProps.selected === nextProps.selected &&\n prevProps.previous === nextProps.previous &&\n prevProps.index === nextProps.index\n ) {\n return true;\n }\n return false;\n },\n);\n\nAnimatedGalleryVideo.displayName = 'AnimatedGalleryVideo';\n"]}
1
+ {"version":3,"sources":["AnimatedGalleryVideo.tsx"],"names":["screenWidth","halfScreenWidth","oneEighth","styles","StyleSheet","create","activityIndicator","alignSelf","videoPlayer","height","width","AnimatedGalleryVideo","React","memo","props","opacity","setOpacity","attachmentId","handleEnd","handleLoad","handleProgress","index","offsetScale","paused","previous","repeat","scale","screenHeight","selected","shouldRender","source","style","translateX","translateY","videoRef","onLoadStart","onLoad","payload","duration","onEnd","onProgress","data","currentTime","seekableDuration","onBuffer","isBuffering","onPlayBackStatusUpdate","playbackStatus","isLoaded","error","console","durationMillis","isPlaying","positionMillis","didJustFinish","isLooping","animatedViewStyles","xScaleOffset","yScaleOffset","transform","value","scaleX","uri","prevProps","nextProps","displayName"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport { StyleSheet, View, ViewStyle } from 'react-native';\nimport type { StyleProp } from 'react-native';\nimport Animated, { useAnimatedStyle } from 'react-native-reanimated';\n\nimport {\n isVideoPackageAvailable,\n PlaybackStatus,\n Video,\n VideoPayloadData,\n VideoProgressData,\n VideoType,\n} from '../../../native';\n\nimport { vw } from '../../../utils/utils';\nimport { Spinner } from '../../Spinner/Spinner';\n\nconst screenWidth = vw(100);\nconst halfScreenWidth = vw(50);\nconst oneEighth = 1 / 8;\n\nexport type AnimatedGalleryVideoType = {\n attachmentId: string;\n handleEnd: () => void;\n handleLoad: (index: string, duration: number) => void;\n handleProgress: (index: string, progress: number, hasEnd?: boolean) => void;\n index: number;\n offsetScale: Animated.SharedValue<number>;\n paused: boolean;\n previous: boolean;\n scale: Animated.SharedValue<number>;\n screenHeight: number;\n selected: boolean;\n shouldRender: boolean;\n source: { uri: string };\n translateX: Animated.SharedValue<number>;\n translateY: Animated.SharedValue<number>;\n videoRef: React.RefObject<VideoType>;\n repeat?: boolean;\n style?: StyleProp<ViewStyle>;\n};\n\nconst styles = StyleSheet.create({\n activityIndicator: {\n alignSelf: 'center',\n },\n videoPlayer: {\n height: '100%',\n width: '100%',\n },\n});\n\nexport const AnimatedGalleryVideo: React.FC<AnimatedGalleryVideoType> = React.memo(\n (props) => {\n const [opacity, setOpacity] = useState<number>(1);\n\n const {\n attachmentId,\n handleEnd,\n handleLoad,\n handleProgress,\n index,\n offsetScale,\n paused,\n previous,\n repeat,\n scale,\n screenHeight,\n selected,\n shouldRender,\n source,\n style,\n translateX,\n translateY,\n videoRef,\n } = props;\n\n const onLoadStart = () => {\n setOpacity(1);\n };\n\n const onLoad = (payload: VideoPayloadData) => {\n setOpacity(0);\n handleLoad(attachmentId, payload.duration);\n };\n\n const onEnd = () => {\n handleEnd();\n };\n\n const onProgress = (data: VideoProgressData) => {\n handleProgress(attachmentId, data.currentTime / data.seekableDuration);\n };\n\n const onBuffer = ({ isBuffering }: { isBuffering: boolean }) => {\n if (isBuffering) setOpacity(1);\n else setOpacity(0);\n };\n\n const onPlayBackStatusUpdate = (playbackStatus: PlaybackStatus) => {\n if (!playbackStatus.isLoaded) {\n // Update your UI for the unloaded state\n setOpacity(1);\n if (playbackStatus.error) {\n console.error(`Encountered a fatal error during playback: ${playbackStatus.error}`);\n }\n } else {\n // Update your UI for the loaded state\n setOpacity(0);\n handleLoad(attachmentId, playbackStatus.durationMillis / 1000);\n if (playbackStatus.isPlaying) {\n // Update your UI for the playing state\n handleProgress(\n attachmentId,\n playbackStatus.positionMillis / 1000 / (playbackStatus.durationMillis / 1000),\n );\n }\n\n if (playbackStatus.isBuffering) {\n // Update your UI for the buffering state\n setOpacity(1);\n }\n\n if (playbackStatus.didJustFinish && !playbackStatus.isLooping) {\n // The player has just finished playing and will stop. Maybe you want to play something else?\n handleEnd();\n }\n }\n };\n\n const animatedViewStyles = useAnimatedStyle<ViewStyle>(() => {\n const xScaleOffset = -7 * screenWidth * (0.5 + index);\n const yScaleOffset = -screenHeight * 3.5;\n return {\n transform: [\n {\n translateX: selected\n ? translateX.value + xScaleOffset\n : scale.value < 1 || scale.value !== offsetScale.value\n ? xScaleOffset\n : previous\n ? translateX.value - halfScreenWidth * (scale.value - 1) + xScaleOffset\n : translateX.value + halfScreenWidth * (scale.value - 1) + xScaleOffset,\n },\n {\n translateY: selected ? translateY.value + yScaleOffset : yScaleOffset,\n },\n {\n scale: selected ? scale.value / 8 : oneEighth,\n },\n { scaleX: -1 },\n ],\n };\n }, [previous, selected]);\n\n /**\n * An empty view is rendered for images not close to the currently\n * selected in order to maintain spacing while reducing the image\n * load on memory.\n */\n if (!shouldRender) {\n return (\n <View\n accessibilityLabel='Empty View Image Gallery'\n style={[style, { transform: [{ scale: oneEighth }] }]}\n />\n );\n }\n\n return (\n <Animated.View\n accessibilityLabel='Image Gallery Video'\n style={[\n style,\n animatedViewStyles,\n {\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 3.5 },\n {\n translateX: -translateX.value + 7 * screenWidth * (0.5 + index),\n },\n { scale: oneEighth },\n ],\n },\n ]}\n >\n {isVideoPackageAvailable() && (\n <Video\n onBuffer={onBuffer}\n onEnd={onEnd}\n onLoad={onLoad}\n onLoadStart={onLoadStart}\n onPlaybackStatusUpdate={onPlayBackStatusUpdate}\n onProgress={onProgress}\n paused={paused}\n repeat={repeat}\n resizeMode='contain'\n style={style}\n testID='video-player'\n uri={source.uri}\n videoRef={videoRef}\n />\n )}\n <Animated.View\n accessibilityLabel='Spinner'\n style={[\n styles.activityIndicator,\n {\n opacity,\n transform: [\n { scaleX: -1 },\n { translateY: -screenHeight * 4 },\n { scale: 1 / oneEighth },\n ],\n },\n ]}\n >\n <Spinner height={40} width={40} />\n </Animated.View>\n </Animated.View>\n );\n },\n\n (prevProps, nextProps) => {\n if (\n prevProps.paused === nextProps.paused &&\n prevProps.repeat === nextProps.repeat &&\n prevProps.shouldRender === nextProps.shouldRender &&\n prevProps.source.uri === nextProps.source.uri &&\n prevProps.screenHeight === nextProps.screenHeight &&\n prevProps.selected === nextProps.selected &&\n prevProps.previous === nextProps.previous &&\n prevProps.index === nextProps.index\n ) {\n return true;\n }\n return false;\n },\n);\n\nAnimatedGalleryVideo.displayName = 'AnimatedGalleryVideo';\n"]}
@@ -32,7 +32,7 @@ var _icons = require("../../../icons");
32
32
  var _native = require("../../../native");
33
33
 
34
34
  var _this = this,
35
- _jsxFileName = "/Users/vishalnarkhede/projects/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryFooter.tsx";
35
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGalleryFooter.tsx";
36
36
 
37
37
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
38
 
@@ -79,7 +79,6 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
79
79
  GridIcon = props.GridIcon,
80
80
  leftElement = props.leftElement,
81
81
  onPlayPause = props.onPlayPause,
82
- onProgressDrag = props.onProgressDrag,
83
82
  opacity = props.opacity,
84
83
  openGridView = props.openGridView,
85
84
  paused = props.paused,
@@ -193,7 +192,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
193
192
  __self: _this,
194
193
  __source: {
195
194
  fileName: _jsxFileName,
196
- lineNumber: 186,
195
+ lineNumber: 182,
197
196
  columnNumber: 5
198
197
  }
199
198
  }, _react["default"].createElement(ReanimatedSafeAreaView, {
@@ -203,25 +202,23 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
203
202
  __self: _this,
204
203
  __source: {
205
204
  fileName: _jsxFileName,
206
- lineNumber: 192,
205
+ lineNumber: 188,
207
206
  columnNumber: 7
208
207
  }
209
208
  }, photo.type === 'video' ? videoControlElement ? videoControlElement({
210
209
  duration: duration,
211
210
  onPlayPause: onPlayPause,
212
- onProgressDrag: onProgressDrag,
213
211
  paused: paused,
214
212
  progress: progress
215
213
  }) : _react["default"].createElement(_ImageGalleryVideoControl.ImageGalleryVideoControl, {
216
214
  duration: duration,
217
215
  onPlayPause: onPlayPause,
218
- onProgressDrag: onProgressDrag,
219
216
  paused: paused,
220
217
  progress: progress,
221
218
  __self: _this,
222
219
  __source: {
223
220
  fileName: _jsxFileName,
224
- lineNumber: 197,
221
+ lineNumber: 193,
225
222
  columnNumber: 13
226
223
  }
227
224
  }) : null, _react["default"].createElement(_reactNative.View, {
@@ -231,7 +228,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
231
228
  __self: _this,
232
229
  __source: {
233
230
  fileName: _jsxFileName,
234
- lineNumber: 206,
231
+ lineNumber: 201,
235
232
  columnNumber: 9
236
233
  }
237
234
  }, leftElement ? leftElement({
@@ -246,7 +243,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
246
243
  __self: _this,
247
244
  __source: {
248
245
  fileName: _jsxFileName,
249
- lineNumber: 210,
246
+ lineNumber: 205,
250
247
  columnNumber: 13
251
248
  }
252
249
  }, _react["default"].createElement(_reactNative.View, {
@@ -254,7 +251,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
254
251
  __self: _this,
255
252
  __source: {
256
253
  fileName: _jsxFileName,
257
- lineNumber: 215,
254
+ lineNumber: 210,
258
255
  columnNumber: 15
259
256
  }
260
257
  }, ShareIcon ? ShareIcon : _react["default"].createElement(_icons.Share, {
@@ -262,7 +259,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
262
259
  __self: _this,
263
260
  __source: {
264
261
  fileName: _jsxFileName,
265
- lineNumber: 216,
262
+ lineNumber: 211,
266
263
  columnNumber: 42
267
264
  }
268
265
  }))), centerElement ? centerElement({
@@ -275,7 +272,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
275
272
  __self: _this,
276
273
  __source: {
277
274
  fileName: _jsxFileName,
278
- lineNumber: 223,
275
+ lineNumber: 218,
279
276
  columnNumber: 13
280
277
  }
281
278
  }, _react["default"].createElement(_reactNative.Text, {
@@ -285,7 +282,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
285
282
  __self: _this,
286
283
  __source: {
287
284
  fileName: _jsxFileName,
288
- lineNumber: 224,
285
+ lineNumber: 219,
289
286
  columnNumber: 15
290
287
  }
291
288
  }, t('{{ index }} of {{ photoLength }}', {
@@ -301,7 +298,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
301
298
  __self: _this,
302
299
  __source: {
303
300
  fileName: _jsxFileName,
304
- lineNumber: 235,
301
+ lineNumber: 230,
305
302
  columnNumber: 13
306
303
  }
307
304
  }, _react["default"].createElement(_reactNative.View, {
@@ -309,14 +306,14 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
309
306
  __self: _this,
310
307
  __source: {
311
308
  fileName: _jsxFileName,
312
- lineNumber: 236,
309
+ lineNumber: 231,
313
310
  columnNumber: 15
314
311
  }
315
312
  }, GridIcon ? GridIcon : _react["default"].createElement(_icons.Grid, {
316
313
  __self: _this,
317
314
  __source: {
318
315
  fileName: _jsxFileName,
319
- lineNumber: 237,
316
+ lineNumber: 232,
320
317
  columnNumber: 40
321
318
  }
322
319
  }))))));
@@ -351,7 +348,7 @@ var ImageGalleryFooter = function ImageGalleryFooter(props) {
351
348
  __self: _this,
352
349
  __source: {
353
350
  fileName: _jsxFileName,
354
- lineNumber: 292,
351
+ lineNumber: 287,
355
352
  columnNumber: 6
356
353
  }
357
354
  }));