stream-chat-react-native-core 5.21.0-beta.4 → 5.22.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/commonjs/components/ImageGallery/ImageGallery.js +6 -5
  2. package/lib/commonjs/components/ImageGallery/ImageGallery.js.map +1 -1
  3. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  4. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  5. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  6. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  7. package/lib/commonjs/i18n/en.json +1 -1
  8. package/lib/commonjs/i18n/es.json +72 -0
  9. package/lib/commonjs/i18n/fr.json +51 -51
  10. package/lib/commonjs/i18n/hi.json +51 -51
  11. package/lib/commonjs/i18n/it.json +51 -51
  12. package/lib/commonjs/i18n/nl.json +51 -51
  13. package/lib/commonjs/i18n/ru.json +51 -51
  14. package/lib/commonjs/i18n/tr.json +51 -51
  15. package/lib/commonjs/utils/Streami18n.js +4 -1
  16. package/lib/commonjs/utils/Streami18n.js.map +1 -1
  17. package/lib/commonjs/version.json +1 -1
  18. package/lib/module/components/ImageGallery/ImageGallery.js +6 -5
  19. package/lib/module/components/ImageGallery/ImageGallery.js.map +1 -1
  20. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +18 -15
  21. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  22. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +41 -12
  23. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  24. package/lib/module/i18n/en.json +1 -1
  25. package/lib/module/i18n/es.json +72 -0
  26. package/lib/module/i18n/fr.json +51 -51
  27. package/lib/module/i18n/hi.json +51 -51
  28. package/lib/module/i18n/it.json +51 -51
  29. package/lib/module/i18n/nl.json +51 -51
  30. package/lib/module/i18n/ru.json +51 -51
  31. package/lib/module/i18n/tr.json +51 -51
  32. package/lib/module/utils/Streami18n.js +4 -1
  33. package/lib/module/utils/Streami18n.js.map +1 -1
  34. package/lib/module/version.json +1 -1
  35. package/lib/typescript/components/ImageGallery/components/ImageGalleryFooter.d.ts +3 -0
  36. package/lib/typescript/i18n/en.json +1 -1
  37. package/lib/typescript/i18n/es.json +72 -0
  38. package/lib/typescript/i18n/fr.json +51 -51
  39. package/lib/typescript/i18n/hi.json +51 -51
  40. package/lib/typescript/i18n/it.json +51 -51
  41. package/lib/typescript/i18n/nl.json +51 -51
  42. package/lib/typescript/i18n/ru.json +51 -51
  43. package/lib/typescript/i18n/tr.json +51 -51
  44. package/lib/typescript/utils/Streami18n.d.ts +7 -1
  45. package/package.json +1 -1
  46. package/src/components/ImageGallery/ImageGallery.tsx +1 -0
  47. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +6 -2
  48. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +12 -7
  49. package/src/i18n/en.json +1 -1
  50. package/src/i18n/es.json +72 -0
  51. package/src/i18n/fr.json +51 -51
  52. package/src/i18n/hi.json +51 -51
  53. package/src/i18n/it.json +51 -51
  54. package/src/i18n/nl.json +51 -51
  55. package/src/i18n/ru.json +51 -51
  56. package/src/i18n/tr.json +51 -51
  57. package/src/utils/Streami18n.ts +13 -6
  58. 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":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAH,uBAAA,CAAAC,OAAA;AAEA,IAAAG,yBAAA,GAAAH,OAAA;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,mBAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAAmE,IAAAQ,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAZ,wBAAAgB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAKnE,IAAMW,sBAAsB,GAAGC,iCAAQ,CAACC,uBAAuB,GAC3DD,iCAAQ,CAACC,uBAAuB,CAACC,yBAAY,CAAC,GAC9CA,yBAAY;AAEhB,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,eAAe,EAAE;IACfC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAE;IACdC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDC,cAAc,EAAE;IACdC,aAAa,EAAE,KAAK;IACpBC,MAAM,EAAE;EACV,CAAC;EACDC,aAAa,EAAE;IACbR,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBQ,UAAU,EAAE;EACd,CAAC;EACDC,cAAc,EAAE;IACdV,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBU,WAAW,EAAE;EACf,CAAC;EACDC,OAAO,EAAE;IACPC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAyDK,IAAMC,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAGxCC,KAA6D,EAC1D;EACH,IACEC,kBAAkB,GAiBhBD,KAAK,CAjBPC,kBAAkB;IAClBC,aAAa,GAgBXF,KAAK,CAhBPE,aAAa;IACbC,QAAQ,GAeNH,KAAK,CAfPG,QAAQ;IACRC,QAAQ,GAcNJ,KAAK,CAdPI,QAAQ;IACRC,WAAW,GAaTL,KAAK,CAbPK,WAAW;IACXC,WAAW,GAYTN,KAAK,CAZPM,WAAW;IACXC,OAAO,GAWLP,KAAK,CAXPO,OAAO;IACPC,YAAY,GAUVR,KAAK,CAVPQ,YAAY;IACZC,MAAM,GASJT,KAAK,CATPS,MAAM;IACNC,KAAK,GAQHV,KAAK,CARPU,KAAK;IACLC,WAAW,GAOTX,KAAK,CAPPW,WAAW;IACXC,QAAQ,GAMNZ,KAAK,CANPY,QAAQ;IACRC,YAAY,GAKVb,KAAK,CALPa,YAAY;IACZC,aAAa,GAIXd,KAAK,CAJPc,aAAa;IACbC,SAAS,GAGPf,KAAK,CAHPe,SAAS;IACTC,mBAAmB,GAEjBhB,KAAK,CAFPgB,mBAAmB;IACnBC,OAAO,GACLjB,KAAK,CADPiB,OAAO;EAGT,IAAAC,SAAA,GAA4B,IAAAC,eAAQ,EAAC,GAAG,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAlC7B,MAAM,GAAA+B,UAAA;IAAEE,SAAS,GAAAF,UAAA;EACxB,IAAAG,UAAA,GAA0C,IAAAJ,eAAQ,EAAC,KAAK,CAAC;IAAAK,UAAA,OAAAH,eAAA,aAAAE,UAAA;IAAlDE,aAAa,GAAAD,UAAA;IAAEE,gBAAgB,GAAAF,UAAA;EACtC,IAAAG,SAAA,GAOI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,KAAK,GAAAF,qBAAA,CAALE,KAAK;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAAC,qBAAA,GAAAN,eAAA,CACtBO,YAAY,CACVC,MAAM;IAAIzD,eAAe,GAAAuD,qBAAA,CAAfvD,eAAe;IAAE0D,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAEtD,cAAc,GAAAmD,qBAAA,CAAdnD,cAAc;IAAEG,cAAc,GAAAgD,qBAAA,CAAdhD,cAAc;IAAEK,cAAc,GAAA2C,qBAAA,CAAd3C,cAAc;EAI1F,IAAA+C,qBAAA,GAAc,IAAAC,yCAAqB,EAAC,CAAC;IAA7BC,CAAC,GAAAF,qBAAA,CAADE,CAAC;EAET,IAAMC,WAAW,GAAG,IAAAC,uCAAgB,EAClC;IAAA,OAAO;MACLpC,OAAO,EAAEA,OAAO,CAACqC,KAAK;MACtBC,SAAS,EAAE,CACT;QACEC,UAAU,EAAE,IAAAC,kCAAW,EAAC9B,OAAO,CAAC2B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAACvD,MAAM,EAAE,CAAC,CAAC,EAAE2D,kCAAW,CAACC,KAAK;MAC/E,CAAC;IAEL,CAAC;EAAA,CAAC,EACF,CAAC5D,MAAM,CACT,CAAC;EAED,IAAM6D,KAAK;IAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAA;MAAA,IAAAC,gBAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,SAAA;MAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YACZtC,gBAAgB,CAAC,IAAI,CAAC;YAACoC,QAAA,CAAAC,IAAA;YAEfL,SAAS,GAAG,EAAAF,gBAAA,GAAA9C,KAAK,CAACuD,SAAS,qBAAfT,gBAAA,CAAiBU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAI,KAAK;YAAAJ,QAAA,CAAAE,IAAA;YAAA,OACjC,IAAAG,gBAAQ,EAAC;cAC/BC,QAAQ,GAAK,EAAAX,WAAA,GAAA/C,KAAK,CAAC2D,IAAI,qBAAVZ,WAAA,CAAYa,EAAE,KAAI,WAAW,UACxC5D,KAAK,CAAC6D,SAAS,SACbzD,aAAa,SAAI4C,SAAW;cAChCc,OAAO,EAAE9D,KAAK,CAAC+D;YACjB,CAAC,CAAC;UAAA;YALId,SAAS,GAAAG,QAAA,CAAAY,IAAA;YAAAZ,QAAA,CAAAE,IAAA;YAAA,OAOT,IAAAW,kBAAU,EAAC;cAAEC,IAAI,EAAElE,KAAK,CAACuD,SAAS,IAAI,YAAY;cAAEY,GAAG,EAAElB;YAAU,CAAC,CAAC;UAAA;YAAAG,QAAA,CAAAE,IAAA;YAAA,OACrE,IAAAc,kBAAU,EAAC;cAAEL,GAAG,EAAEd;YAAU,CAAC,CAAC;UAAA;YAAAG,QAAA,CAAAE,IAAA;YAAA;UAAA;YAAAF,QAAA,CAAAC,IAAA;YAAAD,QAAA,CAAAiB,EAAA,GAAAjB,QAAA;YAEpCkB,OAAO,CAACC,GAAG,CAAAnB,QAAA,CAAAiB,EAAM,CAAC;UAAC;YAErBrD,gBAAgB,CAAC,KAAK,CAAC;UAAC;UAAA;YAAA,OAAAoC,QAAA,CAAAoB,IAAA;QAAA;MAAA,GAAA3B,OAAA;IAAA,CACzB;IAAA,gBAjBKL,KAAKA,CAAA;MAAA,OAAAC,IAAA,CAAAgC,KAAA,OAAAC,SAAA;IAAA;EAAA,GAiBV;EAED,OACEjJ,MAAA,YAAAkJ,aAAA,CAAC9I,sBAAA,WAAQ,CAAC+I,IAAI;IACZrF,kBAAkB,EAAEA,kBAAmB;IACvCsF,QAAQ,EAAE,SAAAA,SAACC,KAAK;MAAA,OAAKlE,SAAS,CAACkE,KAAK,CAACC,WAAW,CAACC,MAAM,CAACrG,MAAM,CAAC;IAAA,CAAC;IAChEsG,aAAa,EAAE,UAAW;IAC1BC,KAAK,EAAEnH,MAAM,CAACiB,OAAQ;IAAAmG,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEtB7J,MAAA,YAAAkJ,aAAA,CAAChH,sBAAsB;IAACuH,KAAK,EAAE,CAACtD,SAAS,EAAEI,WAAW,EAAE;MAAEuD,eAAe,EAAE/D;IAAM,CAAC,CAAE;IAAA2D,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACjFtF,KAAK,CAACkE,IAAI,KAAK,OAAO,GACrB5D,mBAAmB,GACjBA,mBAAmB,CAAC;IAAEb,QAAQ,EAARA,QAAQ;IAAEG,WAAW,EAAXA,WAAW;IAAEG,MAAM,EAANA,MAAM;IAAEG,QAAQ,EAARA;EAAS,CAAC,CAAC,GAEhEzE,MAAA,YAAAkJ,aAAA,CAAC7I,yBAAA,CAAA0J,wBAAwB;IACvB/F,QAAQ,EAAEA,QAAS;IACnBG,WAAW,EAAEA,WAAY;IACzBG,MAAM,EAAEA,MAAO;IACfG,QAAQ,EAAEA,QAAS;IAAAiF,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,CACpB,CACF,GACC,IAAI,EACR7J,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAgJ,IAAI;IAACM,KAAK,EAAE,CAACnH,MAAM,CAACU,cAAc,EAAEA,cAAc,EAAE;MAAE8G,eAAe,EAAE/D;IAAM,CAAC,CAAE;IAAA2D,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC9E3F,WAAW,GACVA,WAAW,CAAC;IAAEG,YAAY,EAAZA,YAAY;IAAEE,KAAK,EAALA,KAAK;IAAEwC,KAAK,EAALA,KAAK;IAAEzB,aAAa,EAAbA;EAAc,CAAC,CAAC,GAE1DtF,MAAA,YAAAkJ,aAAA,CAACc,WAAW;IAACjD,KAAK,EAAEA,KAAM;IAACnC,SAAS,EAAEA,SAAU;IAACU,aAAa,EAAEA,aAAc;IAAAoE,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACjF,EACA9F,aAAa,GACZA,aAAa,CAAC;IAAEM,YAAY,EAAZA,YAAY;IAAEE,KAAK,EAALA,KAAK;IAAEwC,KAAK,EAALA,KAAK;IAAEzB,aAAa,EAAbA;EAAc,CAAC,CAAC,GAE5DtF,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAgJ,IAAI;IAACM,KAAK,EAAE,CAACnH,MAAM,CAACG,eAAe,EAAEA,eAAe,CAAE;IAAAiH,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACrD7J,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAA8J,IAAI;IAACR,KAAK,EAAE,CAACnH,MAAM,CAACO,cAAc,EAAE;MAAEqH,KAAK,EAAEpE;IAAM,CAAC,EAAEjD,cAAc,CAAE;IAAA6G,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACpEvD,CAAC,CAAC,kCAAkC,EAAE;IACrC6D,KAAK,EAAE3F,WAAW,GAAGG,aAAa;IAClCH,WAAW,EAAXA;EACF,CAAC,CACG,CACF,CACP,EACAE,YAAY,GACXA,YAAY,CAAC;IAAEL,YAAY,EAAZA,YAAY;IAAEE,KAAK,EAALA,KAAK;IAAEwC,KAAK,EAALA,KAAK;IAAEzB,aAAa,EAAbA;EAAc,CAAC,CAAC,GAE3DtF,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAiK,gBAAgB;IAACC,OAAO,EAAEhG,YAAa;IAAAqF,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GACtC7J,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAgJ,IAAI;IAACM,KAAK,EAAE,CAACnH,MAAM,CAACe,cAAc,EAAEA,cAAc,CAAE;IAAAqG,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAClD5F,QAAQ,GAAGA,QAAQ,GAAGjE,MAAA,YAAAkJ,aAAA,CAAC1I,MAAA,CAAA8J,IAAe;IAAAZ,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACrC,CACU,CAEhB,CACgB,CACX,CAAC;AAEpB,CAAC;AAACU,OAAA,CAAA3G,6BAAA,GAAAA,6BAAA;AAQF,IAAMoG,WAAW,GAAG,SAAdA,WAAWA,CAAAQ,KAAA,EAA8D;EAAA,IAAxDzD,KAAK,GAAAyD,KAAA,CAALzD,KAAK;IAAEnC,SAAS,GAAA4F,KAAA,CAAT5F,SAAS;IAAEU,aAAa,GAAAkF,KAAA,CAAblF,aAAa;EACpD,IAAAmF,UAAA,GAOI,IAAAhF,sBAAQ,EAAC,CAAC;IAAAiF,gBAAA,GAAAD,UAAA,CANZ9E,KAAK;IACOG,KAAK,GAAA4E,gBAAA,CAAf7E,MAAM,CAAIC,KAAK;IAEH3C,aAAa,GAAAuH,gBAAA,CADzBzE,YAAY,CACVC,MAAM,CAAI/C,aAAa;EAK7B,IAAIqF,kBAAU,KAAK,IAAI,EAAE;IACvB,OAAO,IAAI;EACb;EAEA,OACExI,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAiK,gBAAgB;IAACtG,kBAAkB,EAAC,cAAc;IAAC6G,QAAQ,EAAErF,aAAc;IAAC+E,OAAO,EAAEtD,KAAM;IAAA2C,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC1F7J,MAAA,YAAAkJ,aAAA,CAAC/I,YAAA,CAAAgJ,IAAI;IAACM,KAAK,EAAE,CAACnH,MAAM,CAACa,aAAa,EAAEA,aAAa,CAAE;IAAAuG,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,GAChDjF,SAAS,GAAGA,SAAS,GAAG5E,MAAA,YAAAkJ,aAAA,CAAC1I,MAAA,CAAAoK,KAAgB;IAACC,QAAQ,EAAE/E,KAAM;IAAA4D,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACzD,CACU,CAAC;AAEvB,CAAC;AAED,IAAMiB,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAiE,EACjEC,SAAiE,EAC9D;EACH,IACYC,YAAY,GAIpBF,SAAS,CAJX/G,QAAQ;IACAkH,UAAU,GAGhBH,SAAS,CAHXzG,MAAM;IACI6G,YAAY,GAEpBJ,SAAS,CAFXtG,QAAQ;IACO2G,iBAAiB,GAC9BL,SAAS,CADXpG,aAAa;EAEf,IACY0G,YAAY,GAIpBL,SAAS,CAJXhH,QAAQ;IACAsH,UAAU,GAGhBN,SAAS,CAHX1G,MAAM;IACIiH,YAAY,GAEpBP,SAAS,CAFXvG,QAAQ;IACO+G,iBAAiB,GAC9BR,SAAS,CADXrG,aAAa;EAGf,IAAM8G,eAAe,GAAGR,YAAY,KAAKI,YAAY;EACrD,IAAI,CAACI,eAAe,EAAE,OAAO,KAAK;EAElC,IAAMC,aAAa,GAAGR,UAAU,KAAKI,UAAU;EAC/C,IAAI,CAACI,aAAa,EAAE,OAAO,KAAK;EAEhC,IAAMC,eAAe,GAAGR,YAAY,KAAKI,YAAY;EACrD,IAAI,CAACI,eAAe,EAAE,OAAO,KAAK;EAElC,IAAMC,oBAAoB,GAAGR,iBAAiB,KAAKI,iBAAiB;EACpE,IAAI,CAACI,oBAAoB,EAAE,OAAO,KAAK;EAEvC,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,0BAA0B,GAAGC,iBAAK,CAACC,IAAI,CAC3CnI,6BAA6B,EAC7BkH,QACF,CAAyC;AAMlC,IAAMkB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAG7BnI,KAAkD;EAAA,OAC/C7D,MAAA,YAAAkJ,aAAA,CAAC2C,0BAA0B,MAAAI,SAAA,iBAAKpI,KAAK;IAAA6F,MAAA,EAAAhJ,KAAA;IAAAiJ,QAAA;MAAA1B,QAAA,EAAAtH,YAAA;MAAAiJ,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAAC;AAAA;AAACU,OAAA,CAAAyB,kBAAA,GAAAA,kBAAA;AAE/CA,kBAAkB,CAACE,WAAW,GAAG,0CAA0C"}
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":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AAIA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AAAwE,IAAAM,KAAA;EAAAC,YAAA;AAExE,IAAMC,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/BC,iBAAiB,EAAE;IACjBC,UAAU,EAAE;EACd,CAAC;EACDC,WAAW,EAAE;IACXC,UAAU,EAAE,QAAQ;IACpBC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE,MAAM;IACfC,SAAS,EAAE,CAAC;IACZC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,KAAK,EAAE;EACT,CAAC;EACDC,cAAc,EAAE;IACdP,UAAU,EAAE,QAAQ;IACpBQ,eAAe,EAAE,uBAAuB;IACxCN,OAAO,EAAE,MAAM;IACfO,aAAa,EAAE,KAAK;IACpBJ,cAAc,EAAE,eAAe;IAC/BK,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAEK,IAAMC,wBAAuE,GAAGC,iBAAK,CAACC,IAAI,CAC/F,UAACC,KAAK,EAAK;EACT,IAAQC,QAAQ,GAA8CD,KAAK,CAA3DC,QAAQ;IAAEC,WAAW,GAAiCF,KAAK,CAAjDE,WAAW;IAAEC,MAAM,GAAyBH,KAAK,CAApCG,MAAM;IAAEC,QAAQ,GAAeJ,KAAK,CAA5BI,QAAQ;IAAEC,QAAQ,GAAKL,KAAK,CAAlBK,QAAQ;EAEzD,IAAMC,aAAa,GAAGL,QAAQ,GAC1BA,QAAQ,GAAG,IAAI,IAAI,CAAC,GAClBM,iBAAK,CAACN,QAAQ,CAACA,QAAQ,EAAE,QAAQ,CAAC,CAACO,MAAM,CAAC,UAAU,CAAC,GACrDD,iBAAK,CAACN,QAAQ,CAACA,QAAQ,EAAE,QAAQ,CAAC,CAACO,MAAM,CAAC,OAAO,CAAC,GACpD,IAAI;EAER,IAAMC,sBAAsB,GAAGL,QAAQ,GAAGH,QAAQ;EAElD,IAAMS,gBAAgB,GAAGD,sBAAsB,GAC3CA,sBAAsB,GAAG,IAAI,IAAI,CAAC,GAChCF,iBAAK,CAACN,QAAQ,CAACQ,sBAAsB,EAAE,QAAQ,CAAC,CAACD,MAAM,CAAC,UAAU,CAAC,GACnED,iBAAK,CAACN,QAAQ,CAACQ,sBAAsB,EAAE,QAAQ,CAAC,CAACD,MAAM,CAAC,OAAO,CAAC,GAClE,IAAI;EAER,IAAAG,SAAA,GAOI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,KAAK,GAAAH,qBAAA,CAALG,KAAK;IAAEC,YAAY,GAAAJ,qBAAA,CAAZI,YAAY;IAAEC,YAAY,GAAAL,qBAAA,CAAZK,YAAY;IAAAC,qBAAA,GAAAR,eAAA,CACxDS,YAAY,CACVC,YAAY;IAAIxC,iBAAiB,GAAAsC,qBAAA,CAAjBtC,iBAAiB;IAAEE,WAAW,GAAAoC,qBAAA,CAAXpC,WAAW;IAAEQ,cAAc,GAAA4B,qBAAA,CAAd5B,cAAc;EAKpE,IAAM+B,eAAe;IAAA,IAAAC,IAAA,OAAAC,kBAAA,aAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAA;MAAA,IAAAC,iBAAA;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,MAClB/B,QAAQ,KAAK,CAAC;cAAA6B,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAA,OAAAL,iBAAA,GAEZzB,QAAQ,CAAC+B,OAAO,aAAhBN,iBAAA,CAAkBO,gBAAgB;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OAC9B9B,QAAQ,CAAC+B,OAAO,CAACC,gBAAgB,CAAC,CAAC,CAAC;UAAA;YAG9CnC,WAAW,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA+B,QAAA,CAAAK,IAAA;QAAA;MAAA,GAAAT,OAAA;IAAA,CACf;IAAA,gBARKL,eAAeA,CAAA;MAAA,OAAAC,IAAA,CAAAc,KAAA,OAAAC,SAAA;IAAA;EAAA,GAQpB;EAED,OACEtE,MAAA,YAAAuE,aAAA,CAACpE,YAAA,CAAAqE,IAAI;IAACC,KAAK,EAAE,CAAC/D,MAAM,CAACa,cAAc,EAAEA,cAAc,CAAE;IAAAmD,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,GACnD9E,MAAA,YAAAuE,aAAA,CAACpE,YAAA,CAAA4E,gBAAgB;IAACC,kBAAkB,EAAC,mBAAmB;IAACC,OAAO,EAAE3B,eAAgB;IAAAoB,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,GAChF9E,MAAA,YAAAuE,aAAA,CAACpE,YAAA,CAAAqE,IAAI;IAACC,KAAK,EAAE,CAAC/D,MAAM,CAACK,WAAW,EAAEA,WAAW,EAAE;MAAES,eAAe,EAAE0B;IAAa,CAAC,CAAE;IAAAwB,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,GAC/E7C,MAAM,GACLjC,MAAA,YAAAuE,aAAA,CAACjE,MAAA,CAAA4E,IAAI;IAACF,kBAAkB,EAAC,WAAW;IAAC5D,MAAM,EAAE,EAAG;IAAC+D,QAAQ,EAAElC,YAAa;IAAC3B,KAAK,EAAE,EAAG;IAAAoD,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,GAEtF9E,MAAA,YAAAuE,aAAA,CAACjE,MAAA,CAAA8E,KAAK;IACJJ,kBAAkB,EAAC,YAAY;IAC/B5D,MAAM,EAAE,EAAG;IACX+D,QAAQ,EAAElC,YAAa;IACvB3B,KAAK,EAAE,EAAG;IAAAoD,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,CACX,CAEC,CACU,CAAC,EACnB9E,MAAA,YAAAuE,aAAA,CAACpE,YAAA,CAAAkF,IAAI;IACHL,kBAAkB,EAAC,mBAAmB;IACtCP,KAAK,EAAE,CAAC/D,MAAM,CAACG,iBAAiB,EAAEA,iBAAiB,EAAE;MAAEyE,KAAK,EAAEtC;IAAM,CAAC,CAAE;IAAA0B,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEtEtC,gBAAgB,GAAGA,gBAAgB,GAAG,OACnC,CAAC,EACPxC,MAAA,YAAAuE,aAAA,CAAChE,gBAAA,CAAAgF,eAAe;IACdxD,QAAQ,EAAEA,QAAS;IACnByD,WAAW,EAAEzC,WAAY;IACzBf,WAAW,EAAEA,WAAY;IACzBE,QAAQ,EAAEA,QAAS;IACnBuD,MAAM,EAAE,kBAAmB;IAC3BnE,KAAK,EAAE,GAAI;IAAAoD,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,CACZ,CAAC,EACF9E,MAAA,YAAAuE,aAAA,CAACpE,YAAA,CAAAkF,IAAI;IACHL,kBAAkB,EAAC,gBAAgB;IACnCP,KAAK,EAAE,CAAC/D,MAAM,CAACG,iBAAiB,EAAEA,iBAAiB,EAAE;MAAEyE,KAAK,EAAEtC;IAAM,CAAC,CAAE;IAAA0B,MAAA,EAAAlE,KAAA;IAAAmE,QAAA;MAAAC,QAAA,EAAAnE,YAAA;MAAAoE,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEtE1C,aAAa,GAAGA,aAAa,GAAG,OAC7B,CACF,CAAC;AAEX,CAAC,EACD,UAACsD,SAAS,EAAEC,SAAS,EAAK;EACxB,IACED,SAAS,CAAC3D,QAAQ,KAAK4D,SAAS,CAAC5D,QAAQ,IACzC2D,SAAS,CAACzD,MAAM,KAAK0D,SAAS,CAAC1D,MAAM,IACrCyD,SAAS,CAACxD,QAAQ,KAAKyD,SAAS,CAACzD,QAAQ,EACzC;IACA,OAAO,IAAI;EACb,CAAC,MAAM;IACL,OAAO,KAAK;EACd;AACF,CACF,CAAC;AAAC0D,OAAA,CAAAjE,wBAAA,GAAAA,wBAAA;AAEFA,wBAAwB,CAACkE,WAAW,GAAG,sDAAsD"}
@@ -22,7 +22,7 @@
22
22
  "File type not supported": "File type not supported",
23
23
  "Flag": "Flag",
24
24
  "Flag Message": "Flag Message",
25
- "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged.",
25
+ "Flag action failed either due to a network issue or the message is already flagged": "Flag action failed either due to a network issue or the message is already flagged",
26
26
  "Instant Commands": "Instant Commands",
27
27
  "Links are disabled": "Links are disabled",
28
28
  "Loading channels...": "Loading channels...",
@@ -0,0 +1,72 @@
1
+ {
2
+ "1 Reply": "1 respuesta",
3
+ "1 Thread Reply": "1 respuesta de hilo",
4
+ "Allow access to your Gallery": "Permitir acceso a tu galería",
5
+ "Also send to channel": "También enviar al canal",
6
+ "Are you sure you want to permanently delete this message?": "¿Estás seguro de que deseas eliminar permanentemente este mensaje?",
7
+ "Block User": "Bloquear usuario",
8
+ "Cancel": "Cancelar",
9
+ "Cannot Flag Message": "No se puede reportar el mensaje",
10
+ "Copy Message": "Copiar mensaje",
11
+ "Delete": "Eliminar",
12
+ "Delete Message": "Eliminar mensaje",
13
+ "Do you want to send a copy of this message to a moderator for further investigation?": "¿Deseas enviar una copia de este mensaje a un moderador para una investigación adicional?",
14
+ "Edit Message": "Editar mensaje",
15
+ "Editing Message": "Editando mensaje",
16
+ "Emoji matching": "Coincidencia de emoji",
17
+ "Empty message...": "Mensaje vacío...",
18
+ "Error loading": "Error al cargar",
19
+ "Error loading channel list...": "Error al cargar la lista de canales...",
20
+ "Error loading messages for this channel...": "Error al cargar los mensajes de este canal...",
21
+ "Error while loading, please reload/refresh": "Error al cargar, por favor recarga/actualiza",
22
+ "File type not supported": "Tipo de archivo no admitido",
23
+ "Flag": "Reportar",
24
+ "Flag Message": "Reportar mensaje",
25
+ "Flag action failed either due to a network issue or the message is already flagged": "El reporte falló debido a un problema de red o el mensaje ya fue reportado.",
26
+ "Instant Commands": "Comandos instantáneos",
27
+ "Links are disabled": "Los enlaces están desactivados",
28
+ "Loading channels...": "Cargando canales...",
29
+ "Loading messages...": "Cargando mensajes...",
30
+ "Loading...": "Cargando...",
31
+ "Message Reactions": "Reacciones al mensaje",
32
+ "Message deleted": "Mensaje eliminado",
33
+ "Message flagged": "Mensaje reportado",
34
+ "Mute User": "Silenciar usuario",
35
+ "Not supported": "No admitido",
36
+ "Nothing yet...": "Aún no hay nada...",
37
+ "Ok": "Aceptar",
38
+ "Only visible to you": "Solo visible para ti",
39
+ "Photo": "Foto",
40
+ "Photos": "Fotos",
41
+ "Photos and Videos": "Fotos y videos",
42
+ "Pin to Conversation": "Fijar a la conversación",
43
+ "Pinned by": "Fijado por",
44
+ "Please enable access to your photos and videos so you can share them.": "Por favor, habilita el acceso a tus fotos y videos para poder compartirlos.",
45
+ "Please select a channel first": "Por favor, selecciona primero un canal",
46
+ "Reconnecting...": "Reconectando...",
47
+ "Reply": "Responder",
48
+ "Reply to Message": "Responder al mensaje",
49
+ "Resend": "Reenviar",
50
+ "Search GIFs": "Buscar GIFs",
51
+ "Send a message": "Enviar un mensaje",
52
+ "Sending links is not allowed in this conversation": "No está permitido enviar enlaces en esta conversación",
53
+ "Slow mode ON": "Modo lento ACTIVADO",
54
+ "The message has been reported to a moderator.": "El mensaje ha sido reportado a un moderador.",
55
+ "Thread Reply": "Respuesta de hilo",
56
+ "Unblock User": "Desbloquear usuario",
57
+ "Unknown User": "Usuario desconocido",
58
+ "Unmute User": "Activar sonido del usuario",
59
+ "Unpin from Conversation": "Desmarcar de la conversación",
60
+ "Unread Messages": "Mensajes no leídos",
61
+ "Video": "Video",
62
+ "You": "Tú",
63
+ "You can't send messages in this channel": "No puedes enviar mensajes en este canal",
64
+ "{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "{{ firstUser }} y {{ nonSelfUserLength }} más están escribiendo",
65
+ "{{ index }} of {{ photoLength }}": "{{ index }} de {{ photoLength }}",
66
+ "{{ replyCount }} Replies": "{{ replyCount }} Respuestas",
67
+ "{{ replyCount }} Thread Replies": "{{ replyCount }} respuestas de hilo",
68
+ "{{ user }} is typing": "{{ user }} está escribiendo",
69
+ "Select More Photos": "Seleccionar más fotos",
70
+ "🏙 Attachment...": "🏙 Adjunto...",
71
+ "Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "El archivo supera el tamaño máximo permitido. Por favor, selecciona un archivo menor a {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB."
72
+ }