stream-chat-react-native-core 5.21.0 → 5.22.0-beta.10

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 (285) hide show
  1. package/README.md +10 -5
  2. package/lib/commonjs/components/Attachment/AudioAttachment.js +12 -12
  3. package/lib/commonjs/components/Attachment/AudioAttachment.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/FileAttachment.js +10 -7
  5. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  6. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +8 -6
  7. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  8. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
  9. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  10. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  11. package/lib/commonjs/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  12. package/lib/commonjs/components/Channel/Channel.js +65 -46
  13. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  14. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js +2 -0
  15. package/lib/commonjs/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  16. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  17. package/lib/commonjs/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  18. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  19. package/lib/commonjs/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  20. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  21. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  22. package/lib/commonjs/components/ImageGallery/ImageGallery.js +30 -32
  23. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  24. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  25. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  26. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  27. package/lib/commonjs/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  28. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  29. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  30. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  31. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  32. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js +10 -8
  33. package/lib/commonjs/components/ImageGallery/components/ImageGrid.js.map +1 -1
  34. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js +17 -12
  35. package/lib/commonjs/components/Indicators/EmptyStateIndicator.js.map +1 -1
  36. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js +20 -17
  37. package/lib/commonjs/components/Message/MessageSimple/MessageContent.js.map +1 -1
  38. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js +18 -17
  39. package/lib/commonjs/components/Message/MessageSimple/ReactionList.js.map +1 -1
  40. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  41. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  42. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  43. package/lib/commonjs/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  44. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +25 -17
  45. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  46. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +30 -20
  47. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  48. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +13 -13
  49. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  50. package/lib/commonjs/components/MessageInput/MessageInput.js +1 -1
  51. package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
  52. package/lib/commonjs/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  53. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js +13 -11
  54. package/lib/commonjs/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  55. package/lib/commonjs/components/MessageOverlay/MessageActionList.js +8 -14
  56. package/lib/commonjs/components/MessageOverlay/MessageActionList.js.map +1 -1
  57. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js +11 -8
  58. package/lib/commonjs/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  59. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js +32 -29
  60. package/lib/commonjs/components/MessageOverlay/MessageOverlay.js.map +1 -1
  61. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js +17 -15
  62. package/lib/commonjs/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  63. package/lib/commonjs/contexts/channelContext/ChannelContext.js +2 -2
  64. package/lib/commonjs/contexts/channelContext/ChannelContext.js.map +1 -1
  65. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +66 -45
  66. package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  67. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  68. package/lib/commonjs/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  69. package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  70. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  71. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -4
  72. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  73. package/lib/commonjs/hooks/index.js +11 -0
  74. package/lib/commonjs/hooks/index.js.map +1 -1
  75. package/lib/commonjs/hooks/useViewport.js +47 -0
  76. package/lib/commonjs/hooks/useViewport.js.map +1 -0
  77. package/lib/commonjs/i18n/en.json +6 -1
  78. package/lib/commonjs/i18n/es.json +77 -0
  79. package/lib/commonjs/i18n/fr.json +65 -60
  80. package/lib/commonjs/i18n/he.json +6 -1
  81. package/lib/commonjs/i18n/hi.json +65 -60
  82. package/lib/commonjs/i18n/it.json +65 -60
  83. package/lib/commonjs/i18n/ja.json +6 -1
  84. package/lib/commonjs/i18n/ko.json +6 -1
  85. package/lib/commonjs/i18n/nl.json +65 -60
  86. package/lib/commonjs/i18n/ru.json +65 -60
  87. package/lib/commonjs/i18n/tr.json +65 -60
  88. package/lib/commonjs/native.js.map +1 -1
  89. package/lib/commonjs/types/types.js.map +1 -1
  90. package/lib/commonjs/utils/Streami18n.js +4 -1
  91. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  92. package/lib/commonjs/utils/compressImage.js +37 -0
  93. package/lib/commonjs/utils/compressImage.js.map +1 -0
  94. package/lib/commonjs/utils/utils.js +1 -15
  95. package/lib/commonjs/utils/utils.js.map +1 -1
  96. package/lib/commonjs/version.json +1 -1
  97. package/lib/module/components/Attachment/AudioAttachment.js +12 -12
  98. package/lib/module/components/Attachment/AudioAttachment.js.map +1 -1
  99. package/lib/module/components/Attachment/FileAttachment.js +10 -7
  100. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  101. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +8 -6
  102. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  103. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js +24 -20
  104. package/lib/module/components/AttachmentPicker/components/AttachmentPickerItem.js.map +1 -1
  105. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js +26 -11
  106. package/lib/module/components/AttachmentPicker/components/AttachmentSelectionBar.js.map +1 -1
  107. package/lib/module/components/Channel/Channel.js +65 -46
  108. package/lib/module/components/Channel/Channel.js.map +1 -1
  109. package/lib/module/components/Channel/hooks/useCreateChannelContext.js +2 -0
  110. package/lib/module/components/Channel/hooks/useCreateChannelContext.js.map +1 -1
  111. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js +2 -2
  112. package/lib/module/components/Channel/hooks/useCreateInputMessageInputContext.js.map +1 -1
  113. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js +16 -14
  114. package/lib/module/components/ChannelPreview/ChannelPreviewMessenger.js.map +1 -1
  115. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js +4 -2
  116. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewDisplayName.js.map +1 -1
  117. package/lib/module/components/ImageGallery/ImageGallery.js +30 -32
  118. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  119. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js +7 -5
  120. package/lib/module/components/ImageGallery/components/AnimatedGalleryImage.js.map +1 -1
  121. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js +10 -8
  122. package/lib/module/components/ImageGallery/components/AnimatedGalleryVideo.js.map +1 -1
  123. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  124. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  125. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  126. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  127. package/lib/module/components/ImageGallery/components/ImageGrid.js +10 -8
  128. package/lib/module/components/ImageGallery/components/ImageGrid.js.map +1 -1
  129. package/lib/module/components/Indicators/EmptyStateIndicator.js +17 -12
  130. package/lib/module/components/Indicators/EmptyStateIndicator.js.map +1 -1
  131. package/lib/module/components/Message/MessageSimple/MessageContent.js +20 -17
  132. package/lib/module/components/Message/MessageSimple/MessageContent.js.map +1 -1
  133. package/lib/module/components/Message/MessageSimple/ReactionList.js +18 -17
  134. package/lib/module/components/Message/MessageSimple/ReactionList.js.map +1 -1
  135. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js +7 -5
  136. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.js.map +1 -1
  137. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js +8 -0
  138. package/lib/module/components/Message/MessageSimple/utils/generateMarkdownText.test.js.map +1 -0
  139. package/lib/module/components/Message/MessageSimple/utils/renderText.js +25 -17
  140. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  141. package/lib/module/components/MessageInput/FileUploadPreview.js +30 -20
  142. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  143. package/lib/module/components/MessageInput/ImageUploadPreview.js +13 -13
  144. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  145. package/lib/module/components/MessageInput/MessageInput.js +1 -1
  146. package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
  147. package/lib/module/components/MessageInput/UploadProgressIndicator.js.map +1 -1
  148. package/lib/module/components/MessageList/InlineUnreadIndicator.js +13 -11
  149. package/lib/module/components/MessageList/InlineUnreadIndicator.js.map +1 -1
  150. package/lib/module/components/MessageOverlay/MessageActionList.js +8 -14
  151. package/lib/module/components/MessageOverlay/MessageActionList.js.map +1 -1
  152. package/lib/module/components/MessageOverlay/MessageActionListItem.js +11 -8
  153. package/lib/module/components/MessageOverlay/MessageActionListItem.js.map +1 -1
  154. package/lib/module/components/MessageOverlay/MessageOverlay.js +32 -29
  155. package/lib/module/components/MessageOverlay/MessageOverlay.js.map +1 -1
  156. package/lib/module/components/Thread/components/ThreadFooterComponent.js +17 -15
  157. package/lib/module/components/Thread/components/ThreadFooterComponent.js.map +1 -1
  158. package/lib/module/contexts/channelContext/ChannelContext.js +2 -2
  159. package/lib/module/contexts/channelContext/ChannelContext.js.map +1 -1
  160. package/lib/module/contexts/messageInputContext/MessageInputContext.js +66 -45
  161. package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
  162. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js +2 -2
  163. package/lib/module/contexts/messageInputContext/hooks/useCreateMessageInputContext.js.map +1 -1
  164. package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
  165. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  166. package/lib/module/contexts/themeContext/utils/theme.js +1 -4
  167. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  168. package/lib/module/hooks/index.js +11 -0
  169. package/lib/module/hooks/index.js.map +1 -1
  170. package/lib/module/hooks/useViewport.js +47 -0
  171. package/lib/module/hooks/useViewport.js.map +1 -0
  172. package/lib/module/i18n/en.json +6 -1
  173. package/lib/module/i18n/es.json +77 -0
  174. package/lib/module/i18n/fr.json +65 -60
  175. package/lib/module/i18n/he.json +6 -1
  176. package/lib/module/i18n/hi.json +65 -60
  177. package/lib/module/i18n/it.json +65 -60
  178. package/lib/module/i18n/ja.json +6 -1
  179. package/lib/module/i18n/ko.json +6 -1
  180. package/lib/module/i18n/nl.json +65 -60
  181. package/lib/module/i18n/ru.json +65 -60
  182. package/lib/module/i18n/tr.json +65 -60
  183. package/lib/module/native.js.map +1 -1
  184. package/lib/module/types/types.js.map +1 -1
  185. package/lib/module/utils/Streami18n.js +4 -1
  186. package/lib/module/utils/Streami18n.js.map +1 -1
  187. package/lib/module/utils/compressImage.js +37 -0
  188. package/lib/module/utils/compressImage.js.map +1 -0
  189. package/lib/module/utils/utils.js +1 -15
  190. package/lib/module/utils/utils.js.map +1 -1
  191. package/lib/module/version.json +1 -1
  192. package/lib/typescript/components/Attachment/AudioAttachment.d.ts +1 -1
  193. package/lib/typescript/components/Channel/hooks/useCreateChannelContext.d.ts +1 -1
  194. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +3 -0
  195. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.d.ts +1 -3
  196. package/lib/typescript/components/Message/MessageSimple/utils/generateMarkdownText.test.d.ts +1 -0
  197. package/lib/typescript/components/Message/hooks/useMessageActionHandlers.d.ts +1 -1
  198. package/lib/typescript/components/Message/hooks/useMessageActions.d.ts +1 -1
  199. package/lib/typescript/components/MessageInput/UploadProgressIndicator.d.ts +5 -2
  200. package/lib/typescript/contexts/channelContext/ChannelContext.d.ts +5 -0
  201. package/lib/typescript/contexts/messageContext/MessageContext.d.ts +1 -1
  202. package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +3 -23
  203. package/lib/typescript/contexts/messageInputContext/hooks/useMessageDetailsForState.d.ts +2 -2
  204. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +2 -2
  205. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -3
  206. package/lib/typescript/hooks/index.d.ts +1 -0
  207. package/lib/typescript/hooks/useViewport.d.ts +11 -0
  208. package/lib/typescript/i18n/en.json +6 -1
  209. package/lib/typescript/i18n/es.json +77 -0
  210. package/lib/typescript/i18n/fr.json +65 -60
  211. package/lib/typescript/i18n/he.json +6 -1
  212. package/lib/typescript/i18n/hi.json +65 -60
  213. package/lib/typescript/i18n/it.json +65 -60
  214. package/lib/typescript/i18n/ja.json +6 -1
  215. package/lib/typescript/i18n/ko.json +6 -1
  216. package/lib/typescript/i18n/nl.json +65 -60
  217. package/lib/typescript/i18n/ru.json +65 -60
  218. package/lib/typescript/i18n/tr.json +65 -60
  219. package/lib/typescript/native.d.ts +2 -0
  220. package/lib/typescript/store/mappers/mapStorableToChannel.d.ts +1 -1
  221. package/lib/typescript/types/types.d.ts +27 -10
  222. package/lib/typescript/utils/Streami18n.d.ts +7 -1
  223. package/lib/typescript/utils/compressImage.d.ts +8 -0
  224. package/lib/typescript/utils/utils.d.ts +0 -2
  225. package/package.json +2 -2
  226. package/src/components/Attachment/AudioAttachment.tsx +2 -1
  227. package/src/components/Attachment/FileAttachment.tsx +12 -3
  228. package/src/components/AttachmentPicker/AttachmentPicker.tsx +4 -2
  229. package/src/components/AttachmentPicker/components/AttachmentPickerItem.tsx +7 -5
  230. package/src/components/AttachmentPicker/components/AttachmentSelectionBar.tsx +13 -1
  231. package/src/components/Channel/Channel.tsx +32 -8
  232. package/src/components/Channel/hooks/useCreateChannelContext.ts +2 -0
  233. package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +2 -9
  234. package/src/components/ChannelPreview/ChannelPreviewMessenger.tsx +4 -3
  235. package/src/components/ChannelPreview/hooks/useChannelPreviewDisplayName.ts +4 -3
  236. package/src/components/ImageGallery/ImageGallery.tsx +10 -19
  237. package/src/components/ImageGallery/components/AnimatedGalleryImage.tsx +5 -3
  238. package/src/components/ImageGallery/components/AnimatedGalleryVideo.tsx +5 -3
  239. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +6 -2
  240. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
  241. package/src/components/ImageGallery/components/ImageGrid.tsx +2 -1
  242. package/src/components/Indicators/EmptyStateIndicator.tsx +8 -7
  243. package/src/components/Message/MessageSimple/MessageContent.tsx +3 -1
  244. package/src/components/Message/MessageSimple/ReactionList.tsx +2 -1
  245. package/src/components/Message/MessageSimple/utils/generateMarkdownText.test.ts +23 -0
  246. package/src/components/Message/MessageSimple/utils/generateMarkdownText.ts +12 -13
  247. package/src/components/Message/MessageSimple/utils/renderText.tsx +12 -2
  248. package/src/components/MessageInput/FileUploadPreview.tsx +17 -3
  249. package/src/components/MessageInput/ImageUploadPreview.tsx +1 -2
  250. package/src/components/MessageInput/MessageInput.tsx +1 -1
  251. package/src/components/MessageInput/UploadProgressIndicator.tsx +2 -2
  252. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +1 -1
  253. package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +1 -1
  254. package/src/components/MessageInput/__tests__/MessageInput.test.js +2 -2
  255. package/src/components/MessageList/InlineUnreadIndicator.tsx +2 -1
  256. package/src/components/MessageOverlay/MessageActionList.tsx +3 -11
  257. package/src/components/MessageOverlay/MessageActionListItem.tsx +5 -2
  258. package/src/components/MessageOverlay/MessageOverlay.tsx +5 -3
  259. package/src/components/Thread/components/ThreadFooterComponent.tsx +2 -1
  260. package/src/contexts/channelContext/ChannelContext.tsx +5 -0
  261. package/src/contexts/messageInputContext/MessageInputContext.tsx +81 -69
  262. package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +3 -3
  263. package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +2 -2
  264. package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +2 -2
  265. package/src/contexts/messagesContext/MessagesContext.tsx +2 -2
  266. package/src/contexts/themeContext/utils/theme.ts +2 -7
  267. package/src/hooks/index.ts +1 -0
  268. package/src/hooks/useViewport.ts +41 -0
  269. package/src/i18n/en.json +6 -1
  270. package/src/i18n/es.json +77 -0
  271. package/src/i18n/fr.json +65 -60
  272. package/src/i18n/he.json +6 -1
  273. package/src/i18n/hi.json +65 -60
  274. package/src/i18n/it.json +65 -60
  275. package/src/i18n/ja.json +6 -1
  276. package/src/i18n/ko.json +6 -1
  277. package/src/i18n/nl.json +65 -60
  278. package/src/i18n/ru.json +65 -60
  279. package/src/i18n/tr.json +65 -60
  280. package/src/native.ts +5 -1
  281. package/src/types/types.ts +29 -10
  282. package/src/utils/Streami18n.ts +13 -6
  283. package/src/utils/compressImage.ts +32 -0
  284. package/src/utils/utils.ts +0 -13
  285. package/src/version.json +1 -1
@@ -69,6 +69,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
69
69
  selectedIndex = props.selectedIndex,
70
70
  ShareIcon = props.ShareIcon,
71
71
  videoControlElement = props.videoControlElement,
72
+ videoRef = props.videoRef,
72
73
  visible = props.visible;
73
74
  var _useState = (0, _react.useState)(200),
74
75
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -154,7 +155,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
154
155
  __self: _this,
155
156
  __source: {
156
157
  fileName: _jsxFileName,
157
- lineNumber: 175,
158
+ lineNumber: 178,
158
159
  columnNumber: 5
159
160
  }
160
161
  }, _react["default"].createElement(ReanimatedSafeAreaView, {
@@ -164,23 +165,25 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
164
165
  __self: _this,
165
166
  __source: {
166
167
  fileName: _jsxFileName,
167
- lineNumber: 181,
168
+ lineNumber: 184,
168
169
  columnNumber: 7
169
170
  }
170
171
  }, photo.type === 'video' ? videoControlElement ? videoControlElement({
171
172
  duration: duration,
172
173
  onPlayPause: onPlayPause,
173
174
  paused: paused,
174
- progress: progress
175
+ progress: progress,
176
+ videoRef: videoRef
175
177
  }) : _react["default"].createElement(_ImageGalleryVideoControl.ImageGalleryVideoControl, {
176
178
  duration: duration,
177
179
  onPlayPause: onPlayPause,
178
180
  paused: paused,
179
181
  progress: progress,
182
+ videoRef: videoRef,
180
183
  __self: _this,
181
184
  __source: {
182
185
  fileName: _jsxFileName,
183
- lineNumber: 186,
186
+ lineNumber: 189,
184
187
  columnNumber: 13
185
188
  }
186
189
  }) : null, _react["default"].createElement(_reactNative.View, {
@@ -190,7 +193,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
190
193
  __self: _this,
191
194
  __source: {
192
195
  fileName: _jsxFileName,
193
- lineNumber: 194,
196
+ lineNumber: 198,
194
197
  columnNumber: 9
195
198
  }
196
199
  }, leftElement ? leftElement({
@@ -205,7 +208,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
205
208
  __self: _this,
206
209
  __source: {
207
210
  fileName: _jsxFileName,
208
- lineNumber: 198,
211
+ lineNumber: 202,
209
212
  columnNumber: 13
210
213
  }
211
214
  }), centerElement ? centerElement({
@@ -218,7 +221,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
218
221
  __self: _this,
219
222
  __source: {
220
223
  fileName: _jsxFileName,
221
- lineNumber: 203,
224
+ lineNumber: 207,
222
225
  columnNumber: 13
223
226
  }
224
227
  }, _react["default"].createElement(_reactNative.Text, {
@@ -228,7 +231,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
228
231
  __self: _this,
229
232
  __source: {
230
233
  fileName: _jsxFileName,
231
- lineNumber: 204,
234
+ lineNumber: 208,
232
235
  columnNumber: 15
233
236
  }
234
237
  }, t('{{ index }} of {{ photoLength }}', {
@@ -244,7 +247,7 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
244
247
  __self: _this,
245
248
  __source: {
246
249
  fileName: _jsxFileName,
247
- lineNumber: 215,
250
+ lineNumber: 219,
248
251
  columnNumber: 13
249
252
  }
250
253
  }, _react["default"].createElement(_reactNative.View, {
@@ -252,14 +255,14 @@ var ImageGalleryFooterWithContext = function ImageGalleryFooterWithContext(props
252
255
  __self: _this,
253
256
  __source: {
254
257
  fileName: _jsxFileName,
255
- lineNumber: 216,
258
+ lineNumber: 220,
256
259
  columnNumber: 15
257
260
  }
258
261
  }, GridIcon ? GridIcon : _react["default"].createElement(_icons.Grid, {
259
262
  __self: _this,
260
263
  __source: {
261
264
  fileName: _jsxFileName,
262
- lineNumber: 217,
265
+ lineNumber: 221,
263
266
  columnNumber: 40
264
267
  }
265
268
  }))))));
@@ -283,7 +286,7 @@ var ShareButton = function ShareButton(_ref2) {
283
286
  __self: _this,
284
287
  __source: {
285
288
  fileName: _jsxFileName,
286
- lineNumber: 248,
289
+ lineNumber: 252,
287
290
  columnNumber: 5
288
291
  }
289
292
  }, _react["default"].createElement(_reactNative.View, {
@@ -291,7 +294,7 @@ var ShareButton = function ShareButton(_ref2) {
291
294
  __self: _this,
292
295
  __source: {
293
296
  fileName: _jsxFileName,
294
- lineNumber: 249,
297
+ lineNumber: 253,
295
298
  columnNumber: 7
296
299
  }
297
300
  }, ShareIcon ? ShareIcon : _react["default"].createElement(_icons.Share, {
@@ -299,7 +302,7 @@ var ShareButton = function ShareButton(_ref2) {
299
302
  __self: _this,
300
303
  __source: {
301
304
  fileName: _jsxFileName,
302
- lineNumber: 250,
305
+ lineNumber: 254,
303
306
  columnNumber: 34
304
307
  }
305
308
  })));
@@ -329,7 +332,7 @@ var ImageGalleryFooter = function ImageGalleryFooter(props) {
329
332
  __self: _this,
330
333
  __source: {
331
334
  fileName: _jsxFileName,
332
- lineNumber: 301,
335
+ lineNumber: 305,
333
336
  columnNumber: 6
334
337
  }
335
338
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_ImageGalleryVideoControl","_ThemeContext","_TranslationContext","_icons","_native","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ReanimatedSafeAreaView","Animated","createAnimatedComponent","SafeAreaView","styles","StyleSheet","create","centerContainer","alignItems","flex","justifyContent","imageCountText","fontSize","fontWeight","innerContainer","flexDirection","height","leftContainer","marginLeft","rightContainer","marginRight","wrapper","bottom","left","position","right","ImageGalleryFooterWithContext","props","accessibilityLabel","centerElement","duration","GridIcon","leftElement","onPlayPause","opacity","openGridView","paused","photo","photoLength","progress","rightElement","selectedIndex","ShareIcon","videoControlElement","visible","_useState","useState","_useState2","_slicedToArray2","setHeight","_useState3","_useState4","shareMenuOpen","setShareMenuOpen","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","white","_useTheme$theme$image","imageGallery","footer","container","_useTranslationContex","useTranslationContext","t","footerStyle","useAnimatedStyle","value","transform","translateY","interpolate","Extrapolate","CLAMP","share","_ref","_asyncToGenerator2","_regenerator","mark","_callee","_photo$mime_type","_photo$user","extension","localFile","wrap","_callee$","_context","prev","next","mime_type","split","saveFile","fileName","user","id","messageId","fromUrl","uri","sent","shareImage","type","url","deleteFile","t0","console","log","stop","apply","arguments","createElement","View","onLayout","event","nativeEvent","layout","pointerEvents","style","__self","__source","lineNumber","columnNumber","backgroundColor","ImageGalleryVideoControl","ShareButton","Text","color","index","TouchableOpacity","onPress","Grid","exports","_ref2","_useTheme2","_useTheme2$theme","disabled","Share","pathFill","areEqual","prevProps","nextProps","prevDuration","prevPaused","prevProgress","prevSelectedIndex","nextDuration","nextPaused","nextProgress","nextSelectedIndex","isDurationEqual","isPausedEqual","isProgressEqual","isSelectedIndexEqual","MemoizedImageGalleryFooter","React","memo","ImageGalleryFooter","_extends2","displayName"],"sources":["ImageGalleryFooter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SafeAreaView, StyleSheet, Text, TouchableOpacity, View, ViewStyle } from 'react-native';\nimport Animated, { Extrapolate, interpolate, useAnimatedStyle } from 'react-native-reanimated';\n\nimport { ImageGalleryVideoControl } from './ImageGalleryVideoControl';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Grid as GridIconDefault, Share as ShareIconDefault } from '../../../icons';\nimport { deleteFile, saveFile, shareImage } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { Photo } from '../ImageGallery';\n\nconst ReanimatedSafeAreaView = Animated.createAnimatedComponent\n ? Animated.createAnimatedComponent(SafeAreaView)\n : SafeAreaView;\n\nconst styles = StyleSheet.create({\n centerContainer: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageCountText: {\n fontSize: 16,\n fontWeight: '600',\n },\n innerContainer: {\n flexDirection: 'row',\n height: 56,\n },\n leftContainer: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 8,\n },\n rightContainer: {\n flex: 1,\n justifyContent: 'center',\n marginRight: 8,\n },\n wrapper: {\n bottom: 0,\n left: 0,\n position: 'absolute',\n right: 0,\n },\n});\n\nexport type ImageGalleryFooterCustomComponent<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ({\n openGridView,\n photo,\n share,\n shareMenuOpen,\n}: {\n openGridView: () => void;\n share: () => Promise<void>;\n shareMenuOpen: boolean;\n photo?: Photo<StreamChatGenerics>;\n}) => React.ReactElement | null;\n\nexport type ImageGalleryFooterVideoControlProps = {\n duration: number;\n onPlayPause: (status?: boolean) => void;\n paused: boolean;\n progress: number;\n};\n\nexport type ImageGalleryFooterVideoControlComponent = ({\n duration,\n onPlayPause,\n paused,\n progress,\n}: ImageGalleryFooterVideoControlProps) => React.ReactElement | null;\n\nexport type ImageGalleryFooterCustomComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n centerElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n GridIcon?: React.ReactElement;\n leftElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n rightElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n ShareIcon?: React.ReactElement;\n videoControlElement?: ImageGalleryFooterVideoControlComponent;\n};\n\ntype ImageGalleryFooterPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryFooterCustomComponentProps<StreamChatGenerics> & {\n accessibilityLabel: string;\n duration: number;\n onPlayPause: () => void;\n opacity: Animated.SharedValue<number>;\n openGridView: () => void;\n paused: boolean;\n photo: Photo<StreamChatGenerics>;\n photoLength: number;\n progress: number;\n selectedIndex: number;\n visible: Animated.SharedValue<number>;\n};\n\nexport const ImageGalleryFooterWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n accessibilityLabel,\n centerElement,\n duration,\n GridIcon,\n leftElement,\n onPlayPause,\n opacity,\n openGridView,\n paused,\n photo,\n photoLength,\n progress,\n rightElement,\n selectedIndex,\n ShareIcon,\n videoControlElement,\n visible,\n } = props;\n\n const [height, setHeight] = useState(200);\n const [shareMenuOpen, setShareMenuOpen] = useState(false);\n const {\n theme: {\n colors: { black, white },\n imageGallery: {\n footer: { centerContainer, container, imageCountText, innerContainer, rightContainer },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n const footerStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: opacity.value,\n transform: [\n {\n translateY: interpolate(visible.value, [0, 1], [height, 0], Extrapolate.CLAMP),\n },\n ],\n }),\n [height],\n );\n\n const share = async () => {\n setShareMenuOpen(true);\n try {\n const extension = photo.mime_type?.split('/')[1] || 'jpg';\n const localFile = await saveFile({\n fileName: `${photo.user?.id || 'ChatPhoto'}-${\n photo.messageId\n }-${selectedIndex}.${extension}`,\n fromUrl: photo.uri,\n });\n // `image/jpeg` is added for the case where the mime_type isn't available for a file/image\n await shareImage({ type: photo.mime_type || 'image/jpeg', url: localFile });\n await deleteFile({ uri: localFile });\n } catch (error) {\n console.log(error);\n }\n setShareMenuOpen(false);\n };\n\n return (\n <Animated.View\n accessibilityLabel={accessibilityLabel}\n onLayout={(event) => setHeight(event.nativeEvent.layout.height)}\n pointerEvents={'box-none'}\n style={styles.wrapper}\n >\n <ReanimatedSafeAreaView style={[container, footerStyle, { backgroundColor: white }]}>\n {photo.type === 'video' ? (\n videoControlElement ? (\n videoControlElement({ duration, onPlayPause, paused, progress })\n ) : (\n <ImageGalleryVideoControl\n duration={duration}\n onPlayPause={onPlayPause}\n paused={paused}\n progress={progress}\n />\n )\n ) : null}\n <View style={[styles.innerContainer, innerContainer, { backgroundColor: white }]}>\n {leftElement ? (\n leftElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <ShareButton share={share} ShareIcon={ShareIcon} shareMenuOpen={shareMenuOpen} />\n )}\n {centerElement ? (\n centerElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <View style={[styles.centerContainer, centerContainer]}>\n <Text style={[styles.imageCountText, { color: black }, imageCountText]}>\n {t('{{ index }} of {{ photoLength }}', {\n index: photoLength - selectedIndex,\n photoLength,\n })}\n </Text>\n </View>\n )}\n {rightElement ? (\n rightElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <TouchableOpacity onPress={openGridView}>\n <View style={[styles.rightContainer, rightContainer]}>\n {GridIcon ? GridIcon : <GridIconDefault />}\n </View>\n </TouchableOpacity>\n )}\n </View>\n </ReanimatedSafeAreaView>\n </Animated.View>\n );\n};\n\ntype ShareButtonProps = {\n share: () => Promise<void>;\n shareMenuOpen: boolean;\n ShareIcon?: React.ReactElement;\n};\n\nconst ShareButton = ({ share, ShareIcon, shareMenuOpen }: ShareButtonProps) => {\n const {\n theme: {\n colors: { black },\n imageGallery: {\n footer: { leftContainer },\n },\n },\n } = useTheme();\n\n if (shareImage === null) {\n return null;\n }\n\n return (\n <TouchableOpacity accessibilityLabel='Share Button' disabled={shareMenuOpen} onPress={share}>\n <View style={[styles.leftContainer, leftContainer]}>\n {ShareIcon ? ShareIcon : <ShareIconDefault pathFill={black} />}\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n nextProps: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n duration: prevDuration,\n paused: prevPaused,\n progress: prevProgress,\n selectedIndex: prevSelectedIndex,\n } = prevProps;\n const {\n duration: nextDuration,\n paused: nextPaused,\n progress: nextProgress,\n selectedIndex: nextSelectedIndex,\n } = nextProps;\n\n const isDurationEqual = prevDuration === nextDuration;\n if (!isDurationEqual) return false;\n\n const isPausedEqual = prevPaused === nextPaused;\n if (!isPausedEqual) return false;\n\n const isProgressEqual = prevProgress === nextProgress;\n if (!isProgressEqual) return false;\n\n const isSelectedIndexEqual = prevSelectedIndex === nextSelectedIndex;\n if (!isSelectedIndexEqual) return false;\n\n return true;\n};\n\nconst MemoizedImageGalleryFooter = React.memo(\n ImageGalleryFooterWithContext,\n areEqual,\n) as typeof ImageGalleryFooterWithContext;\n\nexport type ImageGalleryFooterProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryFooterPropsWithContext<StreamChatGenerics>;\n\nexport const ImageGalleryFooter = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGalleryFooterProps<StreamChatGenerics>,\n) => <MemoizedImageGalleryFooter {...props} />;\n\nImageGalleryFooter.displayName = 'ImageGalleryFooter{imageGallery{footer}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_ImageGalleryVideoControl","_ThemeContext","_TranslationContext","_icons","_native","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ReanimatedSafeAreaView","Animated","createAnimatedComponent","SafeAreaView","styles","StyleSheet","create","centerContainer","alignItems","flex","justifyContent","imageCountText","fontSize","fontWeight","innerContainer","flexDirection","height","leftContainer","marginLeft","rightContainer","marginRight","wrapper","bottom","left","position","right","ImageGalleryFooterWithContext","props","accessibilityLabel","centerElement","duration","GridIcon","leftElement","onPlayPause","opacity","openGridView","paused","photo","photoLength","progress","rightElement","selectedIndex","ShareIcon","videoControlElement","videoRef","visible","_useState","useState","_useState2","_slicedToArray2","setHeight","_useState3","_useState4","shareMenuOpen","setShareMenuOpen","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","black","white","_useTheme$theme$image","imageGallery","footer","container","_useTranslationContex","useTranslationContext","t","footerStyle","useAnimatedStyle","value","transform","translateY","interpolate","Extrapolate","CLAMP","share","_ref","_asyncToGenerator2","_regenerator","mark","_callee","_photo$mime_type","_photo$user","extension","localFile","wrap","_callee$","_context","prev","next","mime_type","split","saveFile","fileName","user","id","messageId","fromUrl","uri","sent","shareImage","type","url","deleteFile","t0","console","log","stop","apply","arguments","createElement","View","onLayout","event","nativeEvent","layout","pointerEvents","style","__self","__source","lineNumber","columnNumber","backgroundColor","ImageGalleryVideoControl","ShareButton","Text","color","index","TouchableOpacity","onPress","Grid","exports","_ref2","_useTheme2","_useTheme2$theme","disabled","Share","pathFill","areEqual","prevProps","nextProps","prevDuration","prevPaused","prevProgress","prevSelectedIndex","nextDuration","nextPaused","nextProgress","nextSelectedIndex","isDurationEqual","isPausedEqual","isProgressEqual","isSelectedIndexEqual","MemoizedImageGalleryFooter","React","memo","ImageGalleryFooter","_extends2","displayName"],"sources":["ImageGalleryFooter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { SafeAreaView, StyleSheet, Text, TouchableOpacity, View, ViewStyle } from 'react-native';\nimport Animated, { Extrapolate, interpolate, useAnimatedStyle } from 'react-native-reanimated';\n\nimport { ImageGalleryVideoControl } from './ImageGalleryVideoControl';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';\nimport { Grid as GridIconDefault, Share as ShareIconDefault } from '../../../icons';\nimport { deleteFile, saveFile, shareImage, VideoType } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport type { Photo } from '../ImageGallery';\n\nconst ReanimatedSafeAreaView = Animated.createAnimatedComponent\n ? Animated.createAnimatedComponent(SafeAreaView)\n : SafeAreaView;\n\nconst styles = StyleSheet.create({\n centerContainer: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageCountText: {\n fontSize: 16,\n fontWeight: '600',\n },\n innerContainer: {\n flexDirection: 'row',\n height: 56,\n },\n leftContainer: {\n flex: 1,\n justifyContent: 'center',\n marginLeft: 8,\n },\n rightContainer: {\n flex: 1,\n justifyContent: 'center',\n marginRight: 8,\n },\n wrapper: {\n bottom: 0,\n left: 0,\n position: 'absolute',\n right: 0,\n },\n});\n\nexport type ImageGalleryFooterCustomComponent<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ({\n openGridView,\n photo,\n share,\n shareMenuOpen,\n}: {\n openGridView: () => void;\n share: () => Promise<void>;\n shareMenuOpen: boolean;\n photo?: Photo<StreamChatGenerics>;\n}) => React.ReactElement | null;\n\nexport type ImageGalleryFooterVideoControlProps = {\n duration: number;\n onPlayPause: (status?: boolean) => void;\n paused: boolean;\n progress: number;\n videoRef: React.RefObject<VideoType>;\n};\n\nexport type ImageGalleryFooterVideoControlComponent = ({\n duration,\n onPlayPause,\n paused,\n progress,\n}: ImageGalleryFooterVideoControlProps) => React.ReactElement | null;\n\nexport type ImageGalleryFooterCustomComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n centerElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n GridIcon?: React.ReactElement;\n leftElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n rightElement?: ImageGalleryFooterCustomComponent<StreamChatGenerics>;\n ShareIcon?: React.ReactElement;\n videoControlElement?: ImageGalleryFooterVideoControlComponent;\n};\n\ntype ImageGalleryFooterPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryFooterCustomComponentProps<StreamChatGenerics> & {\n accessibilityLabel: string;\n duration: number;\n onPlayPause: () => void;\n opacity: Animated.SharedValue<number>;\n openGridView: () => void;\n paused: boolean;\n photo: Photo<StreamChatGenerics>;\n photoLength: number;\n progress: number;\n selectedIndex: number;\n videoRef: React.RefObject<VideoType>;\n visible: Animated.SharedValue<number>;\n};\n\nexport const ImageGalleryFooterWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n accessibilityLabel,\n centerElement,\n duration,\n GridIcon,\n leftElement,\n onPlayPause,\n opacity,\n openGridView,\n paused,\n photo,\n photoLength,\n progress,\n rightElement,\n selectedIndex,\n ShareIcon,\n videoControlElement,\n videoRef,\n visible,\n } = props;\n\n const [height, setHeight] = useState(200);\n const [shareMenuOpen, setShareMenuOpen] = useState(false);\n const {\n theme: {\n colors: { black, white },\n imageGallery: {\n footer: { centerContainer, container, imageCountText, innerContainer, rightContainer },\n },\n },\n } = useTheme();\n const { t } = useTranslationContext();\n\n const footerStyle = useAnimatedStyle<ViewStyle>(\n () => ({\n opacity: opacity.value,\n transform: [\n {\n translateY: interpolate(visible.value, [0, 1], [height, 0], Extrapolate.CLAMP),\n },\n ],\n }),\n [height],\n );\n\n const share = async () => {\n setShareMenuOpen(true);\n try {\n const extension = photo.mime_type?.split('/')[1] || 'jpg';\n const localFile = await saveFile({\n fileName: `${photo.user?.id || 'ChatPhoto'}-${\n photo.messageId\n }-${selectedIndex}.${extension}`,\n fromUrl: photo.uri,\n });\n // `image/jpeg` is added for the case where the mime_type isn't available for a file/image\n await shareImage({ type: photo.mime_type || 'image/jpeg', url: localFile });\n await deleteFile({ uri: localFile });\n } catch (error) {\n console.log(error);\n }\n setShareMenuOpen(false);\n };\n\n return (\n <Animated.View\n accessibilityLabel={accessibilityLabel}\n onLayout={(event) => setHeight(event.nativeEvent.layout.height)}\n pointerEvents={'box-none'}\n style={styles.wrapper}\n >\n <ReanimatedSafeAreaView style={[container, footerStyle, { backgroundColor: white }]}>\n {photo.type === 'video' ? (\n videoControlElement ? (\n videoControlElement({ duration, onPlayPause, paused, progress, videoRef })\n ) : (\n <ImageGalleryVideoControl\n duration={duration}\n onPlayPause={onPlayPause}\n paused={paused}\n progress={progress}\n videoRef={videoRef}\n />\n )\n ) : null}\n <View style={[styles.innerContainer, innerContainer, { backgroundColor: white }]}>\n {leftElement ? (\n leftElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <ShareButton share={share} ShareIcon={ShareIcon} shareMenuOpen={shareMenuOpen} />\n )}\n {centerElement ? (\n centerElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <View style={[styles.centerContainer, centerContainer]}>\n <Text style={[styles.imageCountText, { color: black }, imageCountText]}>\n {t('{{ index }} of {{ photoLength }}', {\n index: photoLength - selectedIndex,\n photoLength,\n })}\n </Text>\n </View>\n )}\n {rightElement ? (\n rightElement({ openGridView, photo, share, shareMenuOpen })\n ) : (\n <TouchableOpacity onPress={openGridView}>\n <View style={[styles.rightContainer, rightContainer]}>\n {GridIcon ? GridIcon : <GridIconDefault />}\n </View>\n </TouchableOpacity>\n )}\n </View>\n </ReanimatedSafeAreaView>\n </Animated.View>\n );\n};\n\ntype ShareButtonProps = {\n share: () => Promise<void>;\n shareMenuOpen: boolean;\n ShareIcon?: React.ReactElement;\n};\n\nconst ShareButton = ({ share, ShareIcon, shareMenuOpen }: ShareButtonProps) => {\n const {\n theme: {\n colors: { black },\n imageGallery: {\n footer: { leftContainer },\n },\n },\n } = useTheme();\n\n if (shareImage === null) {\n return null;\n }\n\n return (\n <TouchableOpacity accessibilityLabel='Share Button' disabled={shareMenuOpen} onPress={share}>\n <View style={[styles.leftContainer, leftContainer]}>\n {ShareIcon ? ShareIcon : <ShareIconDefault pathFill={black} />}\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n nextProps: ImageGalleryFooterPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n duration: prevDuration,\n paused: prevPaused,\n progress: prevProgress,\n selectedIndex: prevSelectedIndex,\n } = prevProps;\n const {\n duration: nextDuration,\n paused: nextPaused,\n progress: nextProgress,\n selectedIndex: nextSelectedIndex,\n } = nextProps;\n\n const isDurationEqual = prevDuration === nextDuration;\n if (!isDurationEqual) return false;\n\n const isPausedEqual = prevPaused === nextPaused;\n if (!isPausedEqual) return false;\n\n const isProgressEqual = prevProgress === nextProgress;\n if (!isProgressEqual) return false;\n\n const isSelectedIndexEqual = prevSelectedIndex === nextSelectedIndex;\n if (!isSelectedIndexEqual) return false;\n\n return true;\n};\n\nconst MemoizedImageGalleryFooter = React.memo(\n ImageGalleryFooterWithContext,\n areEqual,\n) as typeof ImageGalleryFooterWithContext;\n\nexport type ImageGalleryFooterProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryFooterPropsWithContext<StreamChatGenerics>;\n\nexport const ImageGalleryFooter = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGalleryFooterProps<StreamChatGenerics>,\n) => <MemoizedImageGalleryFooter {...props} />;\n\nImageGalleryFooter.displayName = 'ImageGalleryFooter{imageGallery{footer}}';\n"],"mappings":"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"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  exports.ImageGalleryVideoControl = void 0;
6
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
7
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
8
  var _react = _interopRequireDefault(require("react"));
7
9
  var _reactNative = require("react-native");
8
10
  var _dayjs = _interopRequireDefault(require("dayjs"));
@@ -37,7 +39,8 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
37
39
  var duration = props.duration,
38
40
  onPlayPause = props.onPlayPause,
39
41
  paused = props.paused,
40
- progress = props.progress;
42
+ progress = props.progress,
43
+ videoRef = props.videoRef;
41
44
  var videoDuration = duration ? duration / 3600 >= 1 ? _dayjs["default"].duration(duration, 'second').format('HH:mm:ss') : _dayjs["default"].duration(duration, 'second').format('mm:ss') : null;
42
45
  var progressValueInSeconds = progress * duration;
43
46
  var progressDuration = progressValueInSeconds ? progressValueInSeconds / 3600 >= 1 ? _dayjs["default"].duration(progressValueInSeconds, 'second').format('HH:mm:ss') : _dayjs["default"].duration(progressValueInSeconds, 'second').format('mm:ss') : null;
@@ -52,23 +55,49 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
52
55
  durationTextStyle = _useTheme$theme$image.durationTextStyle,
53
56
  roundedView = _useTheme$theme$image.roundedView,
54
57
  videoContainer = _useTheme$theme$image.videoContainer;
58
+ var handlePlayPause = function () {
59
+ var _ref = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() {
60
+ var _videoRef$current;
61
+ return _regenerator["default"].wrap(function _callee$(_context) {
62
+ while (1) switch (_context.prev = _context.next) {
63
+ case 0:
64
+ if (!(progress === 1)) {
65
+ _context.next = 4;
66
+ break;
67
+ }
68
+ if (!((_videoRef$current = videoRef.current) != null && _videoRef$current.setPositionAsync)) {
69
+ _context.next = 4;
70
+ break;
71
+ }
72
+ _context.next = 4;
73
+ return videoRef.current.setPositionAsync(0);
74
+ case 4:
75
+ onPlayPause();
76
+ case 5:
77
+ case "end":
78
+ return _context.stop();
79
+ }
80
+ }, _callee);
81
+ }));
82
+ return function handlePlayPause() {
83
+ return _ref.apply(this, arguments);
84
+ };
85
+ }();
55
86
  return _react["default"].createElement(_reactNative.View, {
56
87
  style: [styles.videoContainer, videoContainer],
57
88
  __self: _this,
58
89
  __source: {
59
90
  fileName: _jsxFileName,
60
- lineNumber: 64,
91
+ lineNumber: 74,
61
92
  columnNumber: 7
62
93
  }
63
94
  }, _react["default"].createElement(_reactNative.TouchableOpacity, {
64
95
  accessibilityLabel: "Play Pause Button",
65
- onPress: function onPress() {
66
- onPlayPause();
67
- },
96
+ onPress: handlePlayPause,
68
97
  __self: _this,
69
98
  __source: {
70
99
  fileName: _jsxFileName,
71
- lineNumber: 65,
100
+ lineNumber: 75,
72
101
  columnNumber: 9
73
102
  }
74
103
  }, _react["default"].createElement(_reactNative.View, {
@@ -78,7 +107,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
78
107
  __self: _this,
79
108
  __source: {
80
109
  fileName: _jsxFileName,
81
- lineNumber: 71,
110
+ lineNumber: 76,
82
111
  columnNumber: 11
83
112
  }
84
113
  }, paused ? _react["default"].createElement(_icons.Play, {
@@ -89,7 +118,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
89
118
  __self: _this,
90
119
  __source: {
91
120
  fileName: _jsxFileName,
92
- lineNumber: 73,
121
+ lineNumber: 78,
93
122
  columnNumber: 15
94
123
  }
95
124
  }) : _react["default"].createElement(_icons.Pause, {
@@ -100,7 +129,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
100
129
  __self: _this,
101
130
  __source: {
102
131
  fileName: _jsxFileName,
103
- lineNumber: 75,
132
+ lineNumber: 80,
104
133
  columnNumber: 15
105
134
  }
106
135
  }))), _react["default"].createElement(_reactNative.Text, {
@@ -111,7 +140,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
111
140
  __self: _this,
112
141
  __source: {
113
142
  fileName: _jsxFileName,
114
- lineNumber: 84,
143
+ lineNumber: 89,
115
144
  columnNumber: 9
116
145
  }
117
146
  }, progressDuration ? progressDuration : '00:00'), _react["default"].createElement(_ProgressControl.ProgressControl, {
@@ -124,7 +153,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
124
153
  __self: _this,
125
154
  __source: {
126
155
  fileName: _jsxFileName,
127
- lineNumber: 90,
156
+ lineNumber: 95,
128
157
  columnNumber: 9
129
158
  }
130
159
  }), _react["default"].createElement(_reactNative.Text, {
@@ -135,7 +164,7 @@ var ImageGalleryVideoControl = _react["default"].memo(function (props) {
135
164
  __self: _this,
136
165
  __source: {
137
166
  fileName: _jsxFileName,
138
- lineNumber: 98,
167
+ lineNumber: 103,
139
168
  columnNumber: 9
140
169
  }
141
170
  }, videoDuration ? videoDuration : '00:00'));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_dayjs","_ThemeContext","_icons","_ProgressControl","_this","_jsxFileName","styles","StyleSheet","create","durationTextStyle","fontWeight","roundedView","alignItems","borderRadius","display","elevation","height","justifyContent","width","videoContainer","backgroundColor","flexDirection","padding","ImageGalleryVideoControl","React","memo","props","duration","onPlayPause","paused","progress","videoDuration","dayjs","format","progressValueInSeconds","progressDuration","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","static_black","static_white","_useTheme$theme$image","imageGallery","videoControl","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","accessibilityLabel","onPress","Play","pathFill","Pause","Text","color","ProgressControl","filledColor","testID","prevProps","nextProps","exports","displayName"],"sources":["ImageGalleryVideoControl.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport dayjs from 'dayjs';\n\nimport type { ImageGalleryFooterVideoControlProps } from './ImageGalleryFooter';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport { Pause, Play } from '../../../icons';\nimport { ProgressControl } from '../../ProgressControl/ProgressControl';\n\nconst styles = StyleSheet.create({\n durationTextStyle: {\n fontWeight: 'bold',\n },\n roundedView: {\n alignItems: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 2,\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n videoContainer: {\n alignItems: 'center',\n backgroundColor: 'rgba(52, 52, 52, 0.1)',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n});\n\nexport const ImageGalleryVideoControl: React.FC<ImageGalleryFooterVideoControlProps> = React.memo(\n (props) => {\n const { duration, onPlayPause, paused, progress } = props;\n\n const videoDuration = duration\n ? duration / 3600 >= 1\n ? dayjs.duration(duration, 'second').format('HH:mm:ss')\n : dayjs.duration(duration, 'second').format('mm:ss')\n : null;\n\n const progressValueInSeconds = progress * duration;\n\n const progressDuration = progressValueInSeconds\n ? progressValueInSeconds / 3600 >= 1\n ? dayjs.duration(progressValueInSeconds, 'second').format('HH:mm:ss')\n : dayjs.duration(progressValueInSeconds, 'second').format('mm:ss')\n : null;\n\n const {\n theme: {\n colors: { accent_blue, black, static_black, static_white },\n imageGallery: {\n videoControl: { durationTextStyle, roundedView, videoContainer },\n },\n },\n } = useTheme();\n\n return (\n <View style={[styles.videoContainer, videoContainer]}>\n <TouchableOpacity\n accessibilityLabel='Play Pause Button'\n onPress={() => {\n onPlayPause();\n }}\n >\n <View style={[styles.roundedView, roundedView, { backgroundColor: static_white }]}>\n {paused ? (\n <Play accessibilityLabel='Play Icon' height={24} pathFill={static_black} width={24} />\n ) : (\n <Pause\n accessibilityLabel='Pause Icon'\n height={24}\n pathFill={static_black}\n width={24}\n />\n )}\n </View>\n </TouchableOpacity>\n <Text\n accessibilityLabel='Progress Duration'\n style={[styles.durationTextStyle, durationTextStyle, { color: black }]}\n >\n {progressDuration ? progressDuration : '00:00'}\n </Text>\n <ProgressControl\n duration={duration}\n filledColor={accent_blue}\n onPlayPause={onPlayPause}\n progress={progress}\n testID={'progress-control'}\n width={180}\n />\n <Text\n accessibilityLabel='Video Duration'\n style={[styles.durationTextStyle, durationTextStyle, { color: black }]}\n >\n {videoDuration ? videoDuration : '00:00'}\n </Text>\n </View>\n );\n },\n (prevProps, nextProps) => {\n if (\n prevProps.duration === nextProps.duration &&\n prevProps.paused === nextProps.paused &&\n prevProps.progress === nextProps.progress\n ) {\n return true;\n } else {\n return false;\n }\n },\n);\n\nImageGalleryVideoControl.displayName = 'ImageGalleryVideoControl{imageGallery{videoControl}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_dayjs","_ThemeContext","_icons","_ProgressControl","_this","_jsxFileName","styles","StyleSheet","create","durationTextStyle","fontWeight","roundedView","alignItems","borderRadius","display","elevation","height","justifyContent","width","videoContainer","backgroundColor","flexDirection","padding","ImageGalleryVideoControl","React","memo","props","duration","onPlayPause","paused","progress","videoRef","videoDuration","dayjs","format","progressValueInSeconds","progressDuration","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","black","static_black","static_white","_useTheme$theme$image","imageGallery","videoControl","handlePlayPause","_ref","_asyncToGenerator2","_regenerator","mark","_callee","_videoRef$current","wrap","_callee$","_context","prev","next","current","setPositionAsync","stop","apply","arguments","createElement","View","style","__self","__source","fileName","lineNumber","columnNumber","TouchableOpacity","accessibilityLabel","onPress","Play","pathFill","Pause","Text","color","ProgressControl","filledColor","testID","prevProps","nextProps","exports","displayName"],"sources":["ImageGalleryVideoControl.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport dayjs from 'dayjs';\n\nimport type { ImageGalleryFooterVideoControlProps } from './ImageGalleryFooter';\n\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\n\nimport { Pause, Play } from '../../../icons';\nimport { ProgressControl } from '../../ProgressControl/ProgressControl';\n\nconst styles = StyleSheet.create({\n durationTextStyle: {\n fontWeight: 'bold',\n },\n roundedView: {\n alignItems: 'center',\n borderRadius: 50,\n display: 'flex',\n elevation: 2,\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n videoContainer: {\n alignItems: 'center',\n backgroundColor: 'rgba(52, 52, 52, 0.1)',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n});\n\nexport const ImageGalleryVideoControl: React.FC<ImageGalleryFooterVideoControlProps> = React.memo(\n (props) => {\n const { duration, onPlayPause, paused, progress, videoRef } = props;\n\n const videoDuration = duration\n ? duration / 3600 >= 1\n ? dayjs.duration(duration, 'second').format('HH:mm:ss')\n : dayjs.duration(duration, 'second').format('mm:ss')\n : null;\n\n const progressValueInSeconds = progress * duration;\n\n const progressDuration = progressValueInSeconds\n ? progressValueInSeconds / 3600 >= 1\n ? dayjs.duration(progressValueInSeconds, 'second').format('HH:mm:ss')\n : dayjs.duration(progressValueInSeconds, 'second').format('mm:ss')\n : null;\n\n const {\n theme: {\n colors: { accent_blue, black, static_black, static_white },\n imageGallery: {\n videoControl: { durationTextStyle, roundedView, videoContainer },\n },\n },\n } = useTheme();\n\n const handlePlayPause = async () => {\n if (progress === 1) {\n // For expo CLI\n if (videoRef.current?.setPositionAsync) {\n await videoRef.current.setPositionAsync(0);\n }\n }\n onPlayPause();\n };\n\n return (\n <View style={[styles.videoContainer, videoContainer]}>\n <TouchableOpacity accessibilityLabel='Play Pause Button' onPress={handlePlayPause}>\n <View style={[styles.roundedView, roundedView, { backgroundColor: static_white }]}>\n {paused ? (\n <Play accessibilityLabel='Play Icon' height={24} pathFill={static_black} width={24} />\n ) : (\n <Pause\n accessibilityLabel='Pause Icon'\n height={24}\n pathFill={static_black}\n width={24}\n />\n )}\n </View>\n </TouchableOpacity>\n <Text\n accessibilityLabel='Progress Duration'\n style={[styles.durationTextStyle, durationTextStyle, { color: black }]}\n >\n {progressDuration ? progressDuration : '00:00'}\n </Text>\n <ProgressControl\n duration={duration}\n filledColor={accent_blue}\n onPlayPause={onPlayPause}\n progress={progress}\n testID={'progress-control'}\n width={180}\n />\n <Text\n accessibilityLabel='Video Duration'\n style={[styles.durationTextStyle, durationTextStyle, { color: black }]}\n >\n {videoDuration ? videoDuration : '00:00'}\n </Text>\n </View>\n );\n },\n (prevProps, nextProps) => {\n if (\n prevProps.duration === nextProps.duration &&\n prevProps.paused === nextProps.paused &&\n prevProps.progress === nextProps.progress\n ) {\n return true;\n } else {\n return false;\n }\n },\n);\n\nImageGalleryVideoControl.displayName = 'ImageGalleryVideoControl{imageGallery{videoControl}}';\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ var _reactNative = require("react-native");
10
10
  var _bottomSheet = require("@gorhom/bottom-sheet");
11
11
  var _VideoThumbnail = require("../../../components/Attachment/VideoThumbnail");
12
12
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
13
- var _utils = require("../../../utils/utils");
13
+ var _useViewport2 = require("../../../hooks/useViewport");
14
14
  var _excluded = ["imageComponent"];
15
15
  var _this = this,
16
16
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/ImageGallery/components/ImageGrid.tsx";
@@ -38,13 +38,15 @@ var GridImage = function GridImage(_ref) {
38
38
  var item = _ref.item;
39
39
  var _useTheme = (0, _ThemeContext.useTheme)(),
40
40
  gridImage = _useTheme.theme.imageGallery.grid.gridImage;
41
+ var _useViewport = (0, _useViewport2.useViewport)(),
42
+ vw = _useViewport.vw;
41
43
  var imageComponent = item.imageComponent,
42
44
  restItem = (0, _objectWithoutProperties2["default"])(item, _excluded);
43
45
  var numberOfImageGalleryGridColumns = restItem.numberOfImageGalleryGridColumns,
44
46
  selectAndClose = restItem.selectAndClose,
45
47
  type = restItem.type,
46
48
  uri = restItem.uri;
47
- var size = (0, _utils.vw)(100) / (numberOfImageGalleryGridColumns || 3) - 2;
49
+ var size = vw(100) / (numberOfImageGalleryGridColumns || 3) - 2;
48
50
  if (imageComponent) {
49
51
  return imageComponent({
50
52
  item: restItem
@@ -56,7 +58,7 @@ var GridImage = function GridImage(_ref) {
56
58
  __self: _this,
57
59
  __source: {
58
60
  fileName: _jsxFileName,
59
- lineNumber: 85,
61
+ lineNumber: 86,
60
62
  columnNumber: 5
61
63
  }
62
64
  }, type === 'video' ? _react["default"].createElement(_reactNative.View, {
@@ -67,14 +69,14 @@ var GridImage = function GridImage(_ref) {
67
69
  __self: _this,
68
70
  __source: {
69
71
  fileName: _jsxFileName,
70
- lineNumber: 87,
72
+ lineNumber: 88,
71
73
  columnNumber: 9
72
74
  }
73
75
  }, _react["default"].createElement(_VideoThumbnail.VideoThumbnail, {
74
76
  __self: _this,
75
77
  __source: {
76
78
  fileName: _jsxFileName,
77
- lineNumber: 88,
79
+ lineNumber: 89,
78
80
  columnNumber: 11
79
81
  }
80
82
  })) : _react["default"].createElement(_reactNative.Image, {
@@ -88,7 +90,7 @@ var GridImage = function GridImage(_ref) {
88
90
  __self: _this,
89
91
  __source: {
90
92
  fileName: _jsxFileName,
91
- lineNumber: 91,
93
+ lineNumber: 92,
92
94
  columnNumber: 9
93
95
  }
94
96
  }));
@@ -100,7 +102,7 @@ var renderItem = function renderItem(_ref2) {
100
102
  __self: _this,
101
103
  __source: {
102
104
  fileName: _jsxFileName,
103
- lineNumber: 103,
105
+ lineNumber: 104,
104
106
  columnNumber: 7
105
107
  }
106
108
  });
@@ -147,7 +149,7 @@ var ImageGrid = function ImageGrid(props) {
147
149
  __self: _this,
148
150
  __source: {
149
151
  fileName: _jsxFileName,
150
- lineNumber: 157,
152
+ lineNumber: 158,
151
153
  columnNumber: 5
152
154
  }
153
155
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_VideoThumbnail","_ThemeContext","_utils","_excluded","_this","_jsxFileName","styles","StyleSheet","create","avatarImage","borderRadius","height","width","avatarImageWrapper","borderWidth","margin","contentContainer","flexGrow","image","GridImage","_ref","item","_useTheme","useTheme","gridImage","theme","imageGallery","grid","imageComponent","restItem","_objectWithoutProperties2","numberOfImageGalleryGridColumns","selectAndClose","type","uri","size","vw","createElement","TouchableOpacity","accessibilityLabel","onPress","__self","__source","fileName","lineNumber","columnNumber","View","style","VideoThumbnail","Image","source","renderItem","_ref2","ImageGrid","props","avatarComponent","closeGridView","photos","setSelectedMessage","_useTheme2","_useTheme2$theme","white","colors","_useTheme2$theme$imag","container","imageGridItems","map","photo","_extends2","messageId","url","BottomSheetFlatList","contentContainerStyle","backgroundColor","data","keyExtractor","index","numColumns","exports","displayName"],"sources":["ImageGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport { BottomSheetFlatList, TouchableOpacity } from '@gorhom/bottom-sheet';\n\nimport { VideoThumbnail } from '../../../components/Attachment/VideoThumbnail';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\nimport { vw } from '../../../utils/utils';\n\nimport type { Photo } from '../ImageGallery';\n\nconst styles = StyleSheet.create({\n avatarImage: {\n borderRadius: 22,\n height: 22,\n width: 22,\n },\n avatarImageWrapper: {\n borderRadius: 24,\n borderWidth: 1,\n height: 24,\n margin: 8,\n width: 24,\n },\n contentContainer: {\n flexGrow: 1,\n },\n image: {\n margin: 1,\n },\n});\n\nexport type ImageGalleryGridImageComponent<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ({\n item,\n}: {\n item: Photo<StreamChatGenerics> & {\n selectAndClose: () => void;\n numberOfImageGalleryGridColumns?: number;\n };\n}) => React.ReactElement | null;\n\nexport type ImageGalleryGridImageComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n avatarComponent?: ImageGalleryGridImageComponent<StreamChatGenerics>;\n imageComponent?: ImageGalleryGridImageComponent<StreamChatGenerics>;\n};\n\nexport type GridImageItem<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Photo<StreamChatGenerics> &\n ImageGalleryGridImageComponents<StreamChatGenerics> & {\n selectAndClose: () => void;\n numberOfImageGalleryGridColumns?: number;\n };\n\nconst GridImage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: GridImageItem<StreamChatGenerics>;\n}) => {\n const {\n theme: {\n imageGallery: {\n grid: { gridImage },\n },\n },\n } = useTheme();\n const { imageComponent, ...restItem } = item;\n\n const { numberOfImageGalleryGridColumns, selectAndClose, type, uri } = restItem;\n\n const size = vw(100) / (numberOfImageGalleryGridColumns || 3) - 2;\n\n if (imageComponent) {\n return imageComponent({ item: restItem });\n }\n\n return (\n <TouchableOpacity accessibilityLabel='Grid Image' onPress={selectAndClose}>\n {type === 'video' ? (\n <View style={[styles.image, { height: size, width: size }, gridImage]}>\n <VideoThumbnail />\n </View>\n ) : (\n <Image source={{ uri }} style={[styles.image, { height: size, width: size }]} />\n )}\n </TouchableOpacity>\n );\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: GridImageItem<StreamChatGenerics>;\n}) => <GridImage item={item} />;\n\nexport type ImageGridType<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryGridImageComponents<StreamChatGenerics> & {\n closeGridView: () => void;\n photos: Photo<StreamChatGenerics>[];\n setSelectedMessage: React.Dispatch<\n React.SetStateAction<\n | {\n messageId?: string | undefined;\n url?: string | undefined;\n }\n | undefined\n >\n >;\n numberOfImageGalleryGridColumns?: number;\n};\n\nexport const ImageGrid = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGridType<StreamChatGenerics>,\n) => {\n const {\n avatarComponent,\n closeGridView,\n imageComponent,\n numberOfImageGalleryGridColumns,\n photos,\n setSelectedMessage,\n } = props;\n\n const {\n theme: {\n colors: { white },\n imageGallery: {\n grid: { container, contentContainer },\n },\n },\n } = useTheme();\n\n const imageGridItems = photos.map((photo) => ({\n ...photo,\n avatarComponent,\n imageComponent,\n numberOfImageGalleryGridColumns,\n selectAndClose: () => {\n setSelectedMessage({ messageId: photo.messageId, url: photo.uri });\n closeGridView();\n },\n }));\n\n return (\n <BottomSheetFlatList<GridImageItem<StreamChatGenerics>>\n accessibilityLabel='Image Grid'\n contentContainerStyle={[\n styles.contentContainer,\n { backgroundColor: white },\n contentContainer,\n ]}\n data={imageGridItems as GridImageItem<StreamChatGenerics>[]}\n keyExtractor={(item, index) => `${item.uri}-${index}`}\n numColumns={numberOfImageGalleryGridColumns || 3}\n renderItem={renderItem}\n style={container}\n />\n );\n};\n\nImageGrid.displayName = 'ImageGrid{imageGallery{grid}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_bottomSheet","_VideoThumbnail","_ThemeContext","_useViewport2","_excluded","_this","_jsxFileName","styles","StyleSheet","create","avatarImage","borderRadius","height","width","avatarImageWrapper","borderWidth","margin","contentContainer","flexGrow","image","GridImage","_ref","item","_useTheme","useTheme","gridImage","theme","imageGallery","grid","_useViewport","useViewport","vw","imageComponent","restItem","_objectWithoutProperties2","numberOfImageGalleryGridColumns","selectAndClose","type","uri","size","createElement","TouchableOpacity","accessibilityLabel","onPress","__self","__source","fileName","lineNumber","columnNumber","View","style","VideoThumbnail","Image","source","renderItem","_ref2","ImageGrid","props","avatarComponent","closeGridView","photos","setSelectedMessage","_useTheme2","_useTheme2$theme","white","colors","_useTheme2$theme$imag","container","imageGridItems","map","photo","_extends2","messageId","url","BottomSheetFlatList","contentContainerStyle","backgroundColor","data","keyExtractor","index","numColumns","exports","displayName"],"sources":["ImageGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, View } from 'react-native';\n\nimport { BottomSheetFlatList, TouchableOpacity } from '@gorhom/bottom-sheet';\n\nimport { VideoThumbnail } from '../../../components/Attachment/VideoThumbnail';\nimport { useTheme } from '../../../contexts/themeContext/ThemeContext';\nimport { useViewport } from '../../../hooks/useViewport';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\nimport type { Photo } from '../ImageGallery';\n\nconst styles = StyleSheet.create({\n avatarImage: {\n borderRadius: 22,\n height: 22,\n width: 22,\n },\n avatarImageWrapper: {\n borderRadius: 24,\n borderWidth: 1,\n height: 24,\n margin: 8,\n width: 24,\n },\n contentContainer: {\n flexGrow: 1,\n },\n image: {\n margin: 1,\n },\n});\n\nexport type ImageGalleryGridImageComponent<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ({\n item,\n}: {\n item: Photo<StreamChatGenerics> & {\n selectAndClose: () => void;\n numberOfImageGalleryGridColumns?: number;\n };\n}) => React.ReactElement | null;\n\nexport type ImageGalleryGridImageComponents<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n avatarComponent?: ImageGalleryGridImageComponent<StreamChatGenerics>;\n imageComponent?: ImageGalleryGridImageComponent<StreamChatGenerics>;\n};\n\nexport type GridImageItem<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Photo<StreamChatGenerics> &\n ImageGalleryGridImageComponents<StreamChatGenerics> & {\n selectAndClose: () => void;\n numberOfImageGalleryGridColumns?: number;\n };\n\nconst GridImage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: GridImageItem<StreamChatGenerics>;\n}) => {\n const {\n theme: {\n imageGallery: {\n grid: { gridImage },\n },\n },\n } = useTheme();\n const { vw } = useViewport();\n const { imageComponent, ...restItem } = item;\n\n const { numberOfImageGalleryGridColumns, selectAndClose, type, uri } = restItem;\n\n const size = vw(100) / (numberOfImageGalleryGridColumns || 3) - 2;\n\n if (imageComponent) {\n return imageComponent({ item: restItem });\n }\n\n return (\n <TouchableOpacity accessibilityLabel='Grid Image' onPress={selectAndClose}>\n {type === 'video' ? (\n <View style={[styles.image, { height: size, width: size }, gridImage]}>\n <VideoThumbnail />\n </View>\n ) : (\n <Image source={{ uri }} style={[styles.image, { height: size, width: size }]} />\n )}\n </TouchableOpacity>\n );\n};\n\nconst renderItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n item,\n}: {\n item: GridImageItem<StreamChatGenerics>;\n}) => <GridImage item={item} />;\n\nexport type ImageGridType<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = ImageGalleryGridImageComponents<StreamChatGenerics> & {\n closeGridView: () => void;\n photos: Photo<StreamChatGenerics>[];\n setSelectedMessage: React.Dispatch<\n React.SetStateAction<\n | {\n messageId?: string | undefined;\n url?: string | undefined;\n }\n | undefined\n >\n >;\n numberOfImageGalleryGridColumns?: number;\n};\n\nexport const ImageGrid = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: ImageGridType<StreamChatGenerics>,\n) => {\n const {\n avatarComponent,\n closeGridView,\n imageComponent,\n numberOfImageGalleryGridColumns,\n photos,\n setSelectedMessage,\n } = props;\n\n const {\n theme: {\n colors: { white },\n imageGallery: {\n grid: { container, contentContainer },\n },\n },\n } = useTheme();\n\n const imageGridItems = photos.map((photo) => ({\n ...photo,\n avatarComponent,\n imageComponent,\n numberOfImageGalleryGridColumns,\n selectAndClose: () => {\n setSelectedMessage({ messageId: photo.messageId, url: photo.uri });\n closeGridView();\n },\n }));\n\n return (\n <BottomSheetFlatList<GridImageItem<StreamChatGenerics>>\n accessibilityLabel='Image Grid'\n contentContainerStyle={[\n styles.contentContainer,\n { backgroundColor: white },\n contentContainer,\n ]}\n data={imageGridItems as GridImageItem<StreamChatGenerics>[]}\n keyExtractor={(item, index) => `${item.uri}-${index}`}\n numColumns={numberOfImageGalleryGridColumns || 3}\n renderItem={renderItem}\n style={container}\n />\n );\n};\n\nImageGrid.displayName = 'ImageGrid{imageGallery{grid}}';\n"],"mappings":"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"}