stream-chat-react-native-core 5.20.0-beta.1 → 5.20.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -207,6 +207,9 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
207
207
  }
208
208
  };
209
209
  var defaultOnPress = function defaultOnPress() {
210
+ if (thumbnail.type === 'video' && !thumbnail.thumb_url || !thumbnail.url) {
211
+ return;
212
+ }
210
213
  if (thumbnail.type === 'video' && !(0, _native.isVideoPackageAvailable)()) {
211
214
  (0, _openUrlSafely.openUrlSafely)(thumbnail.url);
212
215
  } else {
@@ -252,7 +255,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
252
255
  __self: _this,
253
256
  __source: {
254
257
  fileName: _jsxFileName,
255
- lineNumber: 321,
258
+ lineNumber: 324,
256
259
  columnNumber: 5
257
260
  }
258
261
  }), thumbnail.type === 'video' ? _react["default"].createElement(VideoThumbnail, {
@@ -264,7 +267,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
264
267
  __self: _this,
265
268
  __source: {
266
269
  fileName: _jsxFileName,
267
- lineNumber: 363,
270
+ lineNumber: 366,
268
271
  columnNumber: 9
269
272
  }
270
273
  }) : _react["default"].createElement(_reactNative.View, {
@@ -272,7 +275,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
272
275
  __self: _this,
273
276
  __source: {
274
277
  fileName: _jsxFileName,
275
- lineNumber: 375,
278
+ lineNumber: 378,
276
279
  columnNumber: 9
277
280
  }
278
281
  }, _react["default"].createElement(GalleryImageThumbnail, {
@@ -283,7 +286,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
283
286
  __self: _this,
284
287
  __source: {
285
288
  fileName: _jsxFileName,
286
- lineNumber: 376,
289
+ lineNumber: 379,
287
290
  columnNumber: 11
288
291
  }
289
292
  })), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? _react["default"].createElement(_reactNative.View, {
@@ -293,7 +296,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
293
296
  __self: _this,
294
297
  __source: {
295
298
  fileName: _jsxFileName,
296
- lineNumber: 385,
299
+ lineNumber: 388,
297
300
  columnNumber: 9
298
301
  }
299
302
  }, _react["default"].createElement(_reactNative.Text, {
@@ -301,7 +304,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
301
304
  __self: _this,
302
305
  __source: {
303
306
  fileName: _jsxFileName,
304
- lineNumber: 393,
307
+ lineNumber: 396,
305
308
  columnNumber: 11
306
309
  }
307
310
  }, "+" + (imagesAndVideos.length - 4))) : null);
@@ -327,7 +330,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
327
330
  __self: _this,
328
331
  __source: {
329
332
  fileName: _jsxFileName,
330
- lineNumber: 428,
333
+ lineNumber: 431,
331
334
  columnNumber: 5
332
335
  }
333
336
  }, isLoadingImageError ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(ImageLoadingFailedIndicator, {
@@ -335,7 +338,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
335
338
  __self: _this,
336
339
  __source: {
337
340
  fileName: _jsxFileName,
338
- lineNumber: 439,
341
+ lineNumber: 442,
339
342
  columnNumber: 11
340
343
  }
341
344
  }), _react["default"].createElement(_ImageReloadIndicator.ImageReloadIndicator, {
@@ -344,7 +347,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
344
347
  __self: _this,
345
348
  __source: {
346
349
  fileName: _jsxFileName,
347
- lineNumber: 440,
350
+ lineNumber: 443,
348
351
  columnNumber: 11
349
352
  }
350
353
  })) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_GalleryImage.GalleryImage, {
@@ -369,7 +372,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
369
372
  __self: _this,
370
373
  __source: {
371
374
  fileName: _jsxFileName,
372
- lineNumber: 447,
375
+ lineNumber: 450,
373
376
  columnNumber: 11
374
377
  }
375
378
  }), isLoadingImage && _react["default"].createElement(_reactNative.View, {
@@ -377,7 +380,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
377
380
  __self: _this,
378
381
  __source: {
379
382
  fileName: _jsxFileName,
380
- lineNumber: 467,
383
+ lineNumber: 470,
381
384
  columnNumber: 13
382
385
  }
383
386
  }, _react["default"].createElement(ImageLoadingIndicator, {
@@ -385,7 +388,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
385
388
  __self: _this,
386
389
  __source: {
387
390
  fileName: _jsxFileName,
388
- lineNumber: 468,
391
+ lineNumber: 471,
389
392
  columnNumber: 15
390
393
  }
391
394
  }))));
@@ -499,7 +502,7 @@ var Gallery = function Gallery(props) {
499
502
  __self: _this,
500
503
  __source: {
501
504
  fileName: _jsxFileName,
502
- lineNumber: 609,
505
+ lineNumber: 612,
503
506
  columnNumber: 5
504
507
  }
505
508
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","height","invertedDirections","thumbnailGrid","width","numOfColumns","createElement","View","style","styles","flexDirection","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","imageContainer","moreImagesContainer","moreImagesText","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","_extends2","activeOpacity","disabled","event","emitter","defaultHandler","imageContainerStyle","GalleryImageThumbnail","StyleSheet","absoluteFillObject","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","imageLoadingErrorIndicatorStyle","ImageReloadIndicator","imageReloadContainerStyle","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","imageLoadingIndicatorContainer","imageLoadingIndicatorStyle","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","create","errorTextSize","fontSize","borderTopLeftRadius","borderTopRightRadius","flexWrap","overflow","alignItems","display","justifyContent","padding","flex","bottom","left","position","margin","color","fontWeight","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n height,\n width,\n },\n galleryContainer,\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setMessages={setMessages}\n setOverlay={setOverlay}\n setSelectedMessage={setSelectedMessage}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setMessages,\n setOverlay,\n setSelectedMessage,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setSelectedMessage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n image,\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n setLoadingImageError,\n } = useLoadingImage();\n\n const {\n theme: {\n messageSimple: { gallery },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.thumbnail,\n ]}\n >\n {isLoadingImageError ? (\n <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.image,\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={styles.imageLoadingIndicatorContainer}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n message: propMessage,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setOverlay: propSetOverlay,\n setSelectedMessage: propSetSelectedMessage,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setMessages, setSelectedMessage: contextSetSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message: contextMessage,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n const message = propMessage || contextMessage;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","height","invertedDirections","thumbnailGrid","width","numOfColumns","createElement","View","style","styles","flexDirection","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","imageContainer","moreImagesContainer","moreImagesText","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","_extends2","activeOpacity","disabled","event","emitter","defaultHandler","imageContainerStyle","GalleryImageThumbnail","StyleSheet","absoluteFillObject","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","imageLoadingErrorIndicatorStyle","ImageReloadIndicator","imageReloadContainerStyle","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","imageLoadingIndicatorContainer","imageLoadingIndicatorStyle","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","create","errorTextSize","fontSize","borderTopLeftRadius","borderTopRightRadius","flexWrap","overflow","alignItems","display","justifyContent","padding","flex","bottom","left","position","margin","color","fontWeight","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n height,\n width,\n },\n galleryContainer,\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setMessages={setMessages}\n setOverlay={setOverlay}\n setSelectedMessage={setSelectedMessage}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setMessages,\n setOverlay,\n setSelectedMessage,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setSelectedMessage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if ((thumbnail.type === 'video' && !thumbnail.thumb_url) || !thumbnail.url) {\n return;\n }\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n image,\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n setLoadingImageError,\n } = useLoadingImage();\n\n const {\n theme: {\n messageSimple: { gallery },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.thumbnail,\n ]}\n >\n {isLoadingImageError ? (\n <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.image,\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={styles.imageLoadingIndicatorContainer}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n message: propMessage,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setOverlay: propSetOverlay,\n setSelectedMessage: propSetSelectedMessage,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setMessages, setSelectedMessage: contextSetSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message: contextMessage,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n const message = propMessage || contextMessage;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAIA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAGA,IAAAK,4BAAA,GAAAL,OAAA;AAEA,IAAAM,cAAA,GAAAN,OAAA;AAGA,IAAAO,oBAAA,GAAAP,OAAA;AAIA,IAAAQ,eAAA,GAAAR,OAAA;AAIA,IAAAS,gBAAA,GAAAT,OAAA;AAIA,IAAAU,eAAA,GAAAV,OAAA;AAIA,IAAAW,aAAA,GAAAX,OAAA;AACA,IAAAY,iBAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAEA,IAAAc,MAAA,GAAAd,OAAA;AAAwD,IAAAe,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,SAAAnB,wBAAAuB,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;AA2CxD,IAAMW,kBAAkB,GAAG,SAArBA,kBAAkBA,CAGtBC,KAAkD,EAC/C;EACH,IACEC,wBAAwB,GAmBtBD,KAAK,CAnBPC,wBAAwB;IACxBC,SAAS,GAkBPF,KAAK,CAlBPE,SAAS;IACTC,WAAW,GAiBTH,KAAK,CAjBPG,WAAW;IACXC,gBAAgB,GAgBdJ,KAAK,CAhBPI,gBAAgB;IAChBC,2BAA2B,GAezBL,KAAK,CAfPK,2BAA2B;IAC3BC,qBAAqB,GAcnBN,KAAK,CAdPM,qBAAqB;IACrBC,MAAM,GAaJP,KAAK,CAbPO,MAAM;IACNC,+BAA+B,GAY7BR,KAAK,CAZPQ,+BAA+B;IAC/BC,OAAO,GAWLT,KAAK,CAXPS,OAAO;IACPC,WAAW,GAUTV,KAAK,CAVPU,WAAW;IACXC,OAAO,GASLX,KAAK,CATPW,OAAO;IACPC,SAAS,GAQPZ,KAAK,CARPY,SAAS;IACTC,YAAY,GAOVb,KAAK,CAPPa,YAAY;IACZC,WAAW,GAMTd,KAAK,CANPc,WAAW;IACXC,UAAU,GAKRf,KAAK,CALPe,UAAU;IACVC,kBAAkB,GAIhBhB,KAAK,CAJPgB,kBAAkB;IAClBC,UAAU,GAGRjB,KAAK,CAHPiB,UAAU;IACVC,MAAM,GAEJlB,KAAK,CAFPkB,MAAM;IACNC,cAAc,GACZnB,KAAK,CADPmB,cAAc;EAGhB,IAAAC,SAAA,GAeI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,qBAAA,GAAAF,SAAA,CAdZG,KAAK,CACHC,aAAa,CACXC,OAAO;IACLC,gBAAgB,GAAAJ,qBAAA,CAAhBI,gBAAgB;IAChBC,iBAAiB,GAAAL,qBAAA,CAAjBK,iBAAiB;IACjBC,UAAU,GAAAN,qBAAA,CAAVM,UAAU;IACVC,SAAS,GAAAP,qBAAA,CAATO,SAAS;IACTC,SAAS,GAAAR,qBAAA,CAATQ,SAAS;IACTC,QAAQ,GAAAT,qBAAA,CAARS,QAAQ;IACRC,SAAS,GAAAV,qBAAA,CAATU,SAAS;IACTC,QAAQ,GAAAX,qBAAA,CAARW,QAAQ;EAMhB,IAAMC,UAAU,GAAG;IACjBN,UAAU,EAAVA,UAAU;IACVC,SAAS,EAATA,SAAS;IACTC,SAAS,EAATA,SAAS;IACTC,QAAQ,EAARA,QAAQ;IACRC,SAAS,EAATA,SAAS;IACTC,QAAQ,EAARA;EACF,CAAC;EAED,IAAME,eAAe,MAAAC,MAAA,KAAAC,mBAAA,aAAQ9B,MAAM,IAAI,EAAE,OAAA8B,mBAAA,aAAOnB,MAAM,IAAI,EAAE,EAAE;EAC9D,IAAMoB,oBAAoB,SAAM/B,MAAM,oBAANA,MAAM,CAAEgC,MAAM,KAAGrB,MAAM,oBAANA,MAAM,CAAEqB,MAAM,KAAGhC,MAAM,oBAANA,MAAM,CACpEiC,GAAG,CAAC,UAACC,CAAC;IAAA,YAAQA,CAAC,CAACC,SAAS,GAAGD,CAAC,CAACE,SAAS;EAAA,CAAE,CAAC,CAC3CC,IAAI,CAAC,EAAE,CAAC,KAAG1B,MAAM,oBAANA,MAAM,CAAEsB,GAAG,CAAC,UAACC,CAAC;IAAA,YAAQA,CAAC,CAACC,SAAS,GAAGD,CAAC,CAACE,SAAS;EAAA,CAAE,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAAE;EAE3E,IAAAC,QAAA,GAA6D,IAAAC,cAAO,EAClE;MAAA,OACE,IAAAC,0BAAY,EAAC;QACXxC,MAAM,EAAE4B,eAAe;QACvBD,UAAU,EAAVA;MACF,CAAC,CAAC;IAAA,GACJ,CAACI,oBAAoB,CACvB,CAAC;IAPOU,MAAM,GAAAH,QAAA,CAANG,MAAM;IAAEC,kBAAkB,GAAAJ,QAAA,CAAlBI,kBAAkB;IAAEC,aAAa,GAAAL,QAAA,CAAbK,aAAa;IAAEC,KAAK,GAAAN,QAAA,CAALM,KAAK;EASxD,IAAI,EAAChB,eAAe,YAAfA,eAAe,CAAEI,MAAM,GAAE,OAAO,IAAI;EACzC,IAAMa,YAAY,GAAGF,aAAa,CAACX,MAAM;EAEzC,OACEjF,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAAC9B,gBAAgB,EACvB;MACE+B,aAAa,EAAER,kBAAkB,GAAG,QAAQ,GAAG,KAAK;MACpDD,MAAM,EAANA,MAAM;MACNG,KAAK,EAALA;IACF,CAAC,EACDzB,gBAAgB,CAChB;IACFgC,MAAM,EAAC,mBAAmB;IAAAC,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEzBb,aAAa,CAACV,GAAG,CAAC,UAACwB,IAAI,EAAEC,QAAQ,EAAK;IACrC,IAAMC,SAAS,GAAGF,IAAI,CAACzB,MAAM;IAC7B,OACEjF,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;MACH7D,GAAG,gBAAawD,kBAAkB,GAAG,KAAK,GAAG,QAAQ,UAAIgB,QAAW;MACpEV,KAAK,EAAE,CACL;QACEE,aAAa,EAAER,kBAAkB,GAAG,KAAK,GAAG;MAC9C,CAAC,EACDtB,iBAAiB,CACjB;MACF+B,MAAM,gBAAaT,kBAAkB,GAAG,KAAK,GAAG,QAAQ,UAAIgB,QAAW;MAAAN,MAAA,EAAApF,KAAA;MAAAqF,QAAA;QAAAC,QAAA,EAAArF,YAAA;QAAAsF,UAAA;QAAAC,YAAA;MAAA;IAAA,GAEtEC,IAAI,CAACxB,GAAG,CAAC,UAAC2B,SAAS,EAAEC,QAAQ,EAAK;MACjC,IAAMC,YAAY,GAAG,IAAAC,wDAA2B,EAAC;QAC/CpE,SAAS,EAATA,SAAS;QACT+D,QAAQ,EAARA,QAAQ;QACR9D,WAAW,EAAXA,WAAW;QACXC,gBAAgB,EAAhBA,gBAAgB;QAChB4C,MAAM,EAANA,MAAM;QACNC,kBAAkB,EAAlBA,kBAAkB;QAClBsB,WAAW,EAAE9D,OAAO,oBAAPA,OAAO,CAAE+D,IAAI;QAC1BpB,YAAY,EAAZA,YAAY;QACZc,SAAS,EAATA,SAAS;QACTE,QAAQ,EAARA,QAAQ;QACRlC,UAAU,EAAVA,UAAU;QACVjB,UAAU,EAAVA,UAAU;QACVkC,KAAK,EAALA;MACF,CAAC,CAAC;MAEF,IAAI1C,OAAO,KAAKgE,SAAS,EAAE;QACzB,OAAO,IAAI;MACb;MAEA,OACEnH,MAAA,YAAA+F,aAAA,CAACqB,gBAAgB;QACfzE,wBAAwB,EAAEA,wBAAyB;QACnDoE,YAAY,EAAEA,YAAa;QAC3BJ,QAAQ,EAAEA,QAAS;QACnB5D,2BAA2B,EAAEA,2BAA4B;QACzDC,qBAAqB,EAAEA,qBAAsB;QAC7C6B,eAAe,EAAEA,eAAgB;QACjCc,kBAAkB,EAAEA,kBAAkB,IAAI,KAAM;QAChDxD,GAAG,EAAE2E,QAAS;QACd5D,+BAA+B,EAAEA,+BAAgC;QACjEC,OAAO,EAAEA,OAAQ;QACjB2C,YAAY,EAAEA,YAAa;QAC3Bc,SAAS,EAAEA,SAAU;QACrBxD,WAAW,EAAEA,WAAY;QACzBC,OAAO,EAAEA,OAAQ;QACjBC,SAAS,EAAEA,SAAU;QACrBC,YAAY,EAAEA,YAAa;QAC3BuD,QAAQ,EAAEA,QAAS;QACnBtD,WAAW,EAAEA,WAAY;QACzBC,UAAU,EAAEA,UAAW;QACvBC,kBAAkB,EAAEA,kBAAmB;QACvCmD,SAAS,EAAEA,SAAU;QACrBhD,cAAc,EAAEA,cAAe;QAAAwC,MAAA,EAAApF,KAAA;QAAAqF,QAAA;UAAAC,QAAA,EAAArF,YAAA;UAAAsF,UAAA;UAAAC,YAAA;QAAA;MAAA,CAChC,CAAC;IAEN,CAAC,CACG,CAAC;EAEX,CAAC,CACG,CAAC;AAEX,CAAC;AAkCD,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAwB2B;EAAA,IArB/C1E,wBAAwB,GAAA0E,IAAA,CAAxB1E,wBAAwB;IACxBoE,YAAY,GAAAM,IAAA,CAAZN,YAAY;IACZJ,QAAQ,GAAAU,IAAA,CAARV,QAAQ;IACR5D,2BAA2B,GAAAsE,IAAA,CAA3BtE,2BAA2B;IAC3BC,qBAAqB,GAAAqE,IAAA,CAArBrE,qBAAqB;IACrB6B,eAAe,GAAAwC,IAAA,CAAfxC,eAAe;IACfc,kBAAkB,GAAA0B,IAAA,CAAlB1B,kBAAkB;IAClBzC,+BAA+B,GAAAmE,IAAA,CAA/BnE,+BAA+B;IAC/BC,OAAO,GAAAkE,IAAA,CAAPlE,OAAO;IACP2C,YAAY,GAAAuB,IAAA,CAAZvB,YAAY;IACZc,SAAS,GAAAS,IAAA,CAATT,SAAS;IACTxD,YAAW,GAAAiE,IAAA,CAAXjE,WAAW;IACXC,QAAO,GAAAgE,IAAA,CAAPhE,OAAO;IACPC,UAAS,GAAA+D,IAAA,CAAT/D,SAAS;IACTC,YAAY,GAAA8D,IAAA,CAAZ9D,YAAY;IACZuD,QAAQ,GAAAO,IAAA,CAARP,QAAQ;IACRtD,WAAW,GAAA6D,IAAA,CAAX7D,WAAW;IACXC,UAAU,GAAA4D,IAAA,CAAV5D,UAAU;IACVC,kBAAkB,GAAA2D,IAAA,CAAlB3D,kBAAkB;IAClBmD,SAAS,GAAAQ,IAAA,CAATR,SAAS;IACThD,cAAc,GAAAwD,IAAA,CAAdxD,cAAc;EAEd,IAAAyD,UAAA,GAOI,IAAAvD,sBAAQ,EAAC,CAAC;IAAAwD,gBAAA,GAAAD,UAAA,CANZrD,KAAK;IACOuD,OAAO,GAAAD,gBAAA,CAAjBE,MAAM,CAAID,OAAO;IAAAE,qBAAA,GAAAH,gBAAA,CACjBrD,aAAa,CACXC,OAAO;IAAIwD,KAAK,GAAAD,qBAAA,CAALC,KAAK;IAAEC,cAAc,GAAAF,qBAAA,CAAdE,cAAc;IAAEC,mBAAmB,GAAAH,qBAAA,CAAnBG,mBAAmB;IAAEC,cAAc,GAAAJ,qBAAA,CAAdI,cAAc;EAK3E,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5B,IAAI,CAAC7E,+BAA+B,IAAIC,OAAO,EAAE;MAI/CK,WAAW,CAAC,CAACL,OAAO,CAAC,CAAC;MACtBO,kBAAkB,CAAC;QAAEsE,SAAS,EAAE7E,OAAO,CAAC8E,EAAE;QAAEC,GAAG,EAAErB,SAAS,CAACqB;MAAI,CAAC,CAAC;MACjEzE,UAAU,CAAC,SAAS,CAAC;IACvB,CAAC,MAAM,IAAIP,+BAA+B,EAAE;MAC1CQ,kBAAkB,CAAC;QAAEsE,SAAS,EAAE7E,OAAO,oBAAPA,OAAO,CAAE8E,EAAE;QAAEC,GAAG,EAAErB,SAAS,CAACqB;MAAI,CAAC,CAAC;MAClEzE,UAAU,CAAC,SAAS,CAAC;IACvB;EACF,CAAC;EAED,IAAM0E,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAKtB,SAAS,CAACuB,IAAI,KAAK,OAAO,IAAI,CAACvB,SAAS,CAACxB,SAAS,IAAK,CAACwB,SAAS,CAACqB,GAAG,EAAE;MAC1E;IACF;IACA,IAAIrB,SAAS,CAACuB,IAAI,KAAK,OAAO,IAAI,CAAC,IAAAC,+BAAuB,EAAC,CAAC,EAAE;MAG5D,IAAAC,4BAAa,EAACzB,SAAS,CAACqB,GAAG,CAAC;IAC9B,CAAC,MAAM;MACLH,eAAe,CAAC,CAAC;IACnB;EACF,CAAC;EAED,OACE/H,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAAoI,gBAAgB,MAAAC,SAAA;IACfC,aAAa,EAAE,GAAI;IACnBC,QAAQ,EAAEnF,YAAa;IACvBpB,GAAG,oBAAkBgB,OAAO,CAAC8E,EAAE,SAAItB,QAAQ,SAAIG,QAAQ,SAAIjC,eAAe,CAACI,MAAS;IACpF7B,WAAW,EAAE,SAAAA,YAACuF,KAAK,EAAK;MACtB,IAAIvF,YAAW,EAAE;QACfA,YAAW,CAAC;UACVwF,OAAO,EAAE,SAAS;UAClBD,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAE;IACFtF,OAAO,EAAE,SAAAA,QAACsF,KAAK,EAAK;MAClB,IAAItF,QAAO,EAAE;QACXA,QAAO,CAAC;UACNwF,cAAc,EAAEV,cAAc;UAC9BS,OAAO,EAAE,SAAS;UAClBD,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAE;IACFrF,SAAS,EAAE,SAAAA,UAACqF,KAAK,EAAK;MACpB,IAAIrF,UAAS,EAAE;QACbA,UAAS,CAAC;UACRuF,cAAc,EAAEV,cAAc;UAC9BS,OAAO,EAAE,SAAS;UAClBD,KAAK,EAALA;QACF,CAAC,CAAC;MACJ;IACF,CAAE;IACF1C,KAAK,EAAE,CACLC,MAAM,CAAC0B,cAAc,EACrB;MACElC,MAAM,EAAEmB,SAAS,CAACnB,MAAM;MACxBG,KAAK,EAAEgB,SAAS,CAAChB;IACnB,CAAC,EACD+B,cAAc,CACd;IACFxB,MAAM,gBAAaT,kBAAkB,GAAG,KAAK,GAAG,QAAQ,UAAIgB,QAAQ,cAASG;EAAW,GACpFnE,wBAAwB;IAAA0D,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,IAE3BI,SAAS,CAACuB,IAAI,KAAK,OAAO,GACzBpI,MAAA,YAAA+F,aAAA,CAAClC,cAAc;IACboC,KAAK,EAAE,CACLc,YAAY,EACZ;MACErB,MAAM,EAAEmB,SAAS,CAACnB,MAAM,GAAG,CAAC;MAC5BG,KAAK,EAAEgB,SAAS,CAAChB,KAAK,GAAG;IAC3B,CAAC,EACD8B,KAAK,CACL;IACFtC,SAAS,EAAEwB,SAAS,CAACxB,SAAU;IAAAgB,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAChC,CAAC,GAEFzG,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;IAACC,KAAK,EAAEC,MAAM,CAAC4C,mBAAoB;IAAAzC,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACtCzG,MAAA,YAAA+F,aAAA,CAACgD,qBAAqB;IACpBhC,YAAY,EAAEA,YAAa;IAC3BhE,2BAA2B,EAAEA,2BAA4B;IACzDC,qBAAqB,EAAEA,qBAAsB;IAC7C6D,SAAS,EAAEA,SAAU;IAAAR,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CACtB,CACG,CACP,EACAE,QAAQ,KAAKb,YAAY,GAAG,CAAC,IAAIgB,QAAQ,KAAKF,SAAS,GAAG,CAAC,IAAI/B,eAAe,CAACI,MAAM,GAAG,CAAC,GACxFjF,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;IACHC,KAAK,EAAE,CACL+C,uBAAU,CAACC,kBAAkB,EAC7B/C,MAAM,CAAC2B,mBAAmB,EAC1B;MAAEqB,eAAe,EAAE1B;IAAQ,CAAC,EAC5BK,mBAAmB,CACnB;IAAAxB,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEFzG,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAAgJ,IAAI;IAAClD,KAAK,EAAE,CAACC,MAAM,CAAC4B,cAAc,EAAEA,cAAc,CAAE;IAAAzB,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,UAC9C5B,eAAe,CAACI,MAAM,GAAG,CAAC,CAC3B,CACF,CAAC,GACL,IACY,CAAC;AAEvB,CAAC;AAED,IAAM8D,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAK,KAAA,EAUrB;EAAA,IAPJrC,YAAY,GAAAqC,KAAA,CAAZrC,YAAY;IACZhE,2BAA2B,GAAAqG,KAAA,CAA3BrG,2BAA2B;IAC3BC,qBAAqB,GAAAoG,KAAA,CAArBpG,qBAAqB;IACrB6D,SAAS,GAAAuC,KAAA,CAATvC,SAAS;EAKT,IAAAwC,gBAAA,GAMI,IAAAC,iCAAe,EAAC,CAAC;IALnBC,cAAc,GAAAF,gBAAA,CAAdE,cAAc;IACdC,mBAAmB,GAAAH,gBAAA,CAAnBG,mBAAmB;IACnBC,aAAa,GAAAJ,gBAAA,CAAbI,aAAa;IACbC,eAAe,GAAAL,gBAAA,CAAfK,eAAe;IACfC,oBAAoB,GAAAN,gBAAA,CAApBM,oBAAoB;EAGtB,IAAAC,UAAA,GAII,IAAA7F,sBAAQ,EAAC,CAAC;IAFOI,OAAO,GAAAyF,UAAA,CAD1B3F,KAAK,CACHC,aAAa,CAAIC,OAAO;EAI5B,OACEnE,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;IACHC,KAAK,EAAE,CACL;MACEP,MAAM,EAAEmB,SAAS,CAACnB,MAAM,GAAG,CAAC;MAC5BG,KAAK,EAAEgB,SAAS,CAAChB,KAAK,GAAG;IAC3B,CAAC,EACD1B,OAAO,CAAC0C,SAAS,CACjB;IAAAR,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,GAED+C,mBAAmB,GAClBxJ,MAAA,YAAA+F,aAAA,CAAA/F,MAAA,YAAA6J,QAAA,QACE7J,MAAA,YAAA+F,aAAA,CAAChD,2BAA2B;IAACkD,KAAK,EAAEC,MAAM,CAAC4D,+BAAgC;IAAAzD,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAAC,EAC9EzG,MAAA,YAAA+F,aAAA,CAAC1F,qBAAA,CAAA0J,oBAAoB;IACnBN,aAAa,EAAEA,aAAc;IAC7BxD,KAAK,EAAEC,MAAM,CAAC8D,yBAA0B;IAAA3D,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CACzC,CACD,CAAC,GAEHzG,MAAA,YAAA+F,aAAA,CAAA/F,MAAA,YAAA6J,QAAA,QACE7J,MAAA,YAAA+F,aAAA,CAAC3F,aAAA,CAAA6J,YAAY;IACXC,OAAO,EAAE,SAAAA,QAAAC,KAAA,EAAgC;MAAA,IAAdC,KAAK,GAAAD,KAAA,CAApBE,WAAW,CAAID,KAAK;MAC9BE,OAAO,CAACC,IAAI,CAACH,KAAK,CAAC;MACnBV,eAAe,CAAC,KAAK,CAAC;MACtBC,oBAAoB,CAAC,IAAI,CAAC;IAC5B,CAAE;IACFa,SAAS,EAAE,SAAAA,UAAA;MAAA,OAAMd,eAAe,CAAC,KAAK,CAAC;IAAA,CAAC;IACxCe,WAAW,EAAE,SAAAA,YAAA;MAAA,OAAMf,eAAe,CAAC,IAAI,CAAC;IAAA,CAAC;IACzCgB,UAAU,EAAE7D,SAAS,CAAC6D,UAAW;IACjCzE,KAAK,EAAE,CACLc,YAAY,EACZ;MACErB,MAAM,EAAEmB,SAAS,CAACnB,MAAM,GAAG,CAAC;MAC5BG,KAAK,EAAEgB,SAAS,CAAChB,KAAK,GAAG;IAC3B,CAAC,EACD1B,OAAO,CAACwD,KAAK,CACb;IACFgD,GAAG,EAAE9D,SAAS,CAACqB,GAAI;IAAA7B,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CACpB,CAAC,EACD8C,cAAc,IACbvJ,MAAA,YAAA+F,aAAA,CAAC5F,YAAA,CAAA6F,IAAI;IAACC,KAAK,EAAEC,MAAM,CAAC0E,8BAA+B;IAAAvE,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,GACjDzG,MAAA,YAAA+F,aAAA,CAAC/C,qBAAqB;IAACiD,KAAK,EAAEC,MAAM,CAAC2E,0BAA2B;IAAAxE,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CAC9D,CAER,CAEA,CAAC;AAEX,CAAC;AAED,IAAMqE,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAsD,EACtDC,SAAsD,EACnD;EACH,IACeC,eAAe,GAK1BF,SAAS,CALXlI,WAAW;IACOqI,oBAAoB,GAIpCH,SAAS,CAJXjI,gBAAgB;IACRqI,UAAU,GAGhBJ,SAAS,CAHX9H,MAAM;IACGmI,WAAW,GAElBL,SAAS,CAFX5H,OAAO;IACCkI,UAAU,GAChBN,SAAS,CADXnH,MAAM;EAER,IACe0H,eAAe,GAK1BN,SAAS,CALXnI,WAAW;IACO0I,oBAAoB,GAIpCP,SAAS,CAJXlI,gBAAgB;IACR0I,UAAU,GAGhBR,SAAS,CAHX/H,MAAM;IACGwI,WAAW,GAElBT,SAAS,CAFX7H,OAAO;IACCuI,UAAU,GAChBV,SAAS,CADXpH,MAAM;EAGR,IAAM+H,YAAY,GAChB,CAAAP,WAAW,oBAAXA,WAAW,CAAEnD,EAAE,OAAKwD,WAAW,oBAAXA,WAAW,CAAExD,EAAE,KACnC,MAAGmD,WAAW,oBAAXA,WAAW,CAAEQ,UAAU,YAAUH,WAAW,oBAAXA,WAAW,CAAEG,UAAU,CAAE;EAC/D,IAAI,CAACD,YAAY,EAAE,OAAO,KAAK;EAE/B,IAAME,gBAAgB,GACpBZ,eAAe,CAAChG,MAAM,KAAKqG,eAAe,CAACrG,MAAM,IAAIgG,eAAe,CAAC,CAAC,CAAC,KAAKK,eAAe,CAAC,CAAC,CAAC;EAChG,IAAI,CAACO,gBAAgB,EAAE,OAAO,KAAK;EAEnC,IAAMC,qBAAqB,GAAGZ,oBAAoB,KAAKK,oBAAoB;EAC3E,IAAI,CAACO,qBAAqB,EAAE,OAAO,KAAK;EAExC,IAAMC,WAAW,GACfZ,UAAU,CAAClG,MAAM,KAAKuG,UAAU,CAACvG,MAAM,IACvCkG,UAAU,CAACa,KAAK,CACd,UAACrE,KAAK,EAAEsE,KAAK;IAAA,OACX,IAAAC,0BAAmB,EAACvE,KAAK,CAACvC,SAAS,CAAC,KAAK,IAAA8G,0BAAmB,EAACV,UAAU,CAACS,KAAK,CAAC,CAAC7G,SAAS,CAAC,IACzF,IAAA8G,0BAAmB,EAACvE,KAAK,CAACtC,SAAS,CAAC,KAAK,IAAA6G,0BAAmB,EAACV,UAAU,CAACS,KAAK,CAAC,CAAC5G,SAAS,CAAC;EAAA,CAC7F,CAAC;EACH,IAAI,CAAC0G,WAAW,EAAE,OAAO,KAAK;EAE9B,IAAMI,WAAW,GACfd,UAAU,CAACpG,MAAM,KAAKyG,UAAU,CAACzG,MAAM,IACvCoG,UAAU,CAACW,KAAK,CACd,UAACrE,KAAK,EAAEsE,KAAK;IAAA,OACX,IAAAC,0BAAmB,EAACvE,KAAK,CAACvC,SAAS,CAAC,KAAK,IAAA8G,0BAAmB,EAACR,UAAU,CAACO,KAAK,CAAC,CAAC7G,SAAS,CAAC,IACzF,IAAA8G,0BAAmB,EAACvE,KAAK,CAACtC,SAAS,CAAC,KAAK,IAAA6G,0BAAmB,EAACR,UAAU,CAACO,KAAK,CAAC,CAAC5G,SAAS,CAAC;EAAA,CAC7F,CAAC;EACH,IAAI,CAAC8G,WAAW,EAAE,OAAO,KAAK;EAE9B,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,eAAe,GAAGC,iBAAK,CAACC,IAAI,CAAC7J,kBAAkB,EAAEqI,QAAQ,CAA8B;AAStF,IAAMyB,OAAO,GAAG,SAAVA,OAAOA,CAGlB7J,KAAuC,EACpC;EACH,IAC4B8J,4BAA4B,GAiBpD9J,KAAK,CAjBPC,wBAAwB;IACb8J,aAAa,GAgBtB/J,KAAK,CAhBPE,SAAS;IACI8J,eAAe,GAe1BhK,KAAK,CAfPG,WAAW;IACXC,gBAAgB,GAcdJ,KAAK,CAdPI,gBAAgB;IACa6J,+BAA+B,GAa1DjK,KAAK,CAbPK,2BAA2B;IACJ6J,yBAAyB,GAY9ClK,KAAK,CAZPM,qBAAqB;IACb6J,UAAU,GAWhBnK,KAAK,CAXPO,MAAM;IACG6J,WAAW,GAUlBpK,KAAK,CAVPS,OAAO;IACM4J,eAAe,GAS1BrK,KAAK,CATPU,WAAW;IACF4J,WAAW,GAQlBtK,KAAK,CARPW,OAAO;IACI4J,aAAa,GAOtBvK,KAAK,CAPPY,SAAS;IACK4J,gBAAgB,GAM5BxK,KAAK,CANPa,YAAY;IACA4J,cAAc,GAKxBzK,KAAK,CALPe,UAAU;IACU2J,sBAAsB,GAIxC1K,KAAK,CAJPgB,kBAAkB;IACN2J,cAAc,GAGxB3K,KAAK,CAHPiB,UAAU;IACF2J,UAAU,GAEhB5K,KAAK,CAFPkB,MAAM;IACU2J,kBAAkB,GAChC7K,KAAK,CADPmB,cAAc;EAGhB,IAAA2J,qBAAA,GACE,IAAAC,2CAAsB,EAAqB,CAAC;IADtCjK,WAAW,GAAAgK,qBAAA,CAAXhK,WAAW;IAAsBkK,yBAAyB,GAAAF,qBAAA,CAA7C9J,kBAAkB;EAEvC,IAAAiK,kBAAA,GAWI,IAAAC,iCAAiB,EAAqB,CAAC;IAV9BC,gBAAgB,GAAAF,kBAAA,CAA3B/K,SAAS;IACIkL,kBAAkB,GAAAH,kBAAA,CAA/B9K,WAAW;IACHkL,aAAa,GAAAJ,kBAAA,CAArB1K,MAAM;IACG+K,cAAc,GAAAL,kBAAA,CAAvBxK,OAAO;IACM8K,kBAAkB,GAAAN,kBAAA,CAA/BvK,WAAW;IACF8K,cAAc,GAAAP,kBAAA,CAAvBtK,OAAO;IACI8K,gBAAgB,GAAAR,kBAAA,CAA3BrK,SAAS;IACK8K,mBAAmB,GAAAT,kBAAA,CAAjCpK,YAAY;IACA8K,iBAAiB,GAAAV,kBAAA,CAA7BhK,UAAU;IACF2K,aAAa,GAAAX,kBAAA,CAArB/J,MAAM;EAER,IAAA2K,mBAAA,GAMI,IAAAC,mCAAkB,EAAqB,CAAC;IALhBC,+BAA+B,GAAAF,mBAAA,CAAzD5L,wBAAwB;IACK+L,kCAAkC,GAAAH,mBAAA,CAA/DxL,2BAA2B;IACJ4L,4BAA4B,GAAAJ,mBAAA,CAAnDvL,qBAAqB;IACrBE,+BAA+B,GAAAqL,mBAAA,CAA/BrL,+BAA+B;IACf0L,sBAAsB,GAAAL,mBAAA,CAAtC1K,cAAc;EAEhB,IAAAgL,kBAAA,GAA0C,IAAAC,iCAAiB,EAAC,CAAC;IAAzCC,iBAAiB,GAAAF,kBAAA,CAA7BpL,UAAU;EAElB,IAAMR,MAAM,GAAG4J,UAAU,IAAIkB,aAAa;EAC1C,IAAMnK,MAAM,GAAG0J,UAAU,IAAIgB,aAAa;EAC1C,IAAMnL,OAAO,GAAG2J,WAAW,IAAIkB,cAAc;EAE7C,IAAI,CAAC/K,MAAM,CAACgC,MAAM,IAAI,CAACrB,MAAM,CAACqB,MAAM,EAAE,OAAO,IAAI;EAEjD,IAAMtC,wBAAwB,GAAG6J,4BAA4B,IAAIiC,+BAA+B;EAChG,IAAM7L,SAAS,GAAG6J,aAAa,IAAIoB,gBAAgB;EACnD,IAAMhL,WAAW,GAAG6J,eAAe,IAAIoB,kBAAkB;EACzD,IAAM1K,WAAW,GAAG2J,eAAe,IAAIkB,kBAAkB;EACzD,IAAM3K,SAAS,GAAG2J,aAAa,IAAIkB,gBAAgB;EACnD,IAAM9K,OAAO,GAAG2J,WAAW,IAAIkB,cAAc;EAC7C,IAAM3K,YAAY,GAChB,OAAO2J,gBAAgB,KAAK,SAAS,GAAGA,gBAAgB,GAAGkB,mBAAmB;EAChF,IAAM1K,kBAAkB,GAAG0J,sBAAsB,IAAIM,yBAAyB;EAC9E,IAAMjK,UAAU,GAAG0J,cAAc,IAAI4B,iBAAiB;EACtD,IAAMpL,UAAU,GAAG0J,cAAc,IAAIgB,iBAAiB;EACtD,IAAMxK,cAAc,GAAG0J,kBAAkB,IAAIqB,sBAAsB;EACnE,IAAM7L,2BAA2B,GAC/B4J,+BAA+B,IAAI+B,kCAAkC;EACvE,IAAM1L,qBAAqB,GAAG4J,yBAAyB,IAAI+B,4BAA4B;EAEvF,OACE3O,MAAA,YAAA+F,aAAA,CAACqG,eAAe;IAEZzJ,wBAAwB,EAAxBA,wBAAwB;IACxBC,SAAS,EAATA,SAAS;IACToM,SAAS,EAAE7L,OAAO,oBAAPA,OAAO,CAAE8L,GAAG;IACvBpM,WAAW,EAAXA,WAAW;IACXC,gBAAgB,EAAEA,gBAAgB,IAAI,CAAC,EAACK,OAAO,YAAPA,OAAO,CAAE+L,WAAW;IAC5DnM,2BAA2B,EAA3BA,2BAA2B;IAC3BC,qBAAqB,EAArBA,qBAAqB;IACrBC,MAAM,EAANA,MAAM;IACNC,+BAA+B,EAA/BA,+BAA+B;IAC/BC,OAAO,EAAPA,OAAO;IACPC,WAAW,EAAXA,WAAW;IACXC,OAAO,EAAPA,OAAO;IACPC,SAAS,EAATA,SAAS;IACTC,YAAY,EAAZA,YAAY;IACZC,WAAW,EAAXA,WAAW;IACXC,UAAU,EAAVA,UAAU;IACVC,kBAAkB,EAAlBA,kBAAkB;IAClBC,UAAU,EAAVA,UAAU;IACVC,MAAM,EAANA,MAAM;IACNC,cAAc,EAAdA,cAAc;IAAAwC,MAAA,EAAApF,KAAA;IAAAqF,QAAA;MAAAC,QAAA,EAAArF,YAAA;MAAAsF,UAAA;MAAAC,YAAA;IAAA;EAAA,CAEjB,CAAC;AAEN,CAAC;AAAC0I,OAAA,CAAA5C,OAAA,GAAAA,OAAA;AAEF,IAAMrG,MAAM,GAAG8C,uBAAU,CAACoG,MAAM,CAAC;EAC/BC,aAAa,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EAC/BlL,gBAAgB,EAAE;IAChBmL,mBAAmB,EAAE,EAAE;IACvBC,oBAAoB,EAAE,EAAE;IACxBrJ,aAAa,EAAE,KAAK;IACpBsJ,QAAQ,EAAE,MAAM;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACD9H,cAAc,EAAE;IACd+H,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,MAAM;IACfzJ,aAAa,EAAE,KAAK;IACpB0J,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE;EACX,CAAC;EACDhH,mBAAmB,EAAE;IAAE6G,UAAU,EAAE,QAAQ;IAAEI,IAAI,EAAE,CAAC;IAAEF,cAAc,EAAE;EAAS,CAAC;EAChF/F,+BAA+B,EAAE;IAC/BkG,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE;EACZ,CAAC;EACDtF,8BAA8B,EAAE;IAC9BlF,MAAM,EAAE,MAAM;IACdmK,cAAc,EAAE,QAAQ;IACxBK,QAAQ,EAAE,UAAU;IACpBrK,KAAK,EAAE;EACT,CAAC;EACDgF,0BAA0B,EAAE;IAC1B8E,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE,QAAQ;IACxBK,QAAQ,EAAE;EACZ,CAAC;EACDlG,yBAAyB,MAAAxB,SAAA,iBACpBQ,uBAAU,CAACC,kBAAkB;IAChC0G,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE;EAAQ,EACzB;EACDhI,mBAAmB,EAAE;IACnB8H,UAAU,EAAE,QAAQ;IACpBE,cAAc,EAAE,QAAQ;IACxBM,MAAM,EAAE;EACV,CAAC;EACDrI,cAAc,EAAE;IAAEsI,KAAK,EAAE,SAAS;IAAEd,QAAQ,EAAE,EAAE;IAAEe,UAAU,EAAE;EAAM;AACtE,CAAC,CAAC;AAEF9D,OAAO,CAAC+D,WAAW,GAAG,iCAAiC"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.20.0-beta.1"
2
+ "version": "5.20.0-beta.2"
3
3
  }
@@ -207,6 +207,9 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
207
207
  }
208
208
  };
209
209
  var defaultOnPress = function defaultOnPress() {
210
+ if (thumbnail.type === 'video' && !thumbnail.thumb_url || !thumbnail.url) {
211
+ return;
212
+ }
210
213
  if (thumbnail.type === 'video' && !(0, _native.isVideoPackageAvailable)()) {
211
214
  (0, _openUrlSafely.openUrlSafely)(thumbnail.url);
212
215
  } else {
@@ -252,7 +255,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
252
255
  __self: _this,
253
256
  __source: {
254
257
  fileName: _jsxFileName,
255
- lineNumber: 321,
258
+ lineNumber: 324,
256
259
  columnNumber: 5
257
260
  }
258
261
  }), thumbnail.type === 'video' ? _react["default"].createElement(VideoThumbnail, {
@@ -264,7 +267,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
264
267
  __self: _this,
265
268
  __source: {
266
269
  fileName: _jsxFileName,
267
- lineNumber: 363,
270
+ lineNumber: 366,
268
271
  columnNumber: 9
269
272
  }
270
273
  }) : _react["default"].createElement(_reactNative.View, {
@@ -272,7 +275,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
272
275
  __self: _this,
273
276
  __source: {
274
277
  fileName: _jsxFileName,
275
- lineNumber: 375,
278
+ lineNumber: 378,
276
279
  columnNumber: 9
277
280
  }
278
281
  }, _react["default"].createElement(GalleryImageThumbnail, {
@@ -283,7 +286,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
283
286
  __self: _this,
284
287
  __source: {
285
288
  fileName: _jsxFileName,
286
- lineNumber: 376,
289
+ lineNumber: 379,
287
290
  columnNumber: 11
288
291
  }
289
292
  })), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? _react["default"].createElement(_reactNative.View, {
@@ -293,7 +296,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
293
296
  __self: _this,
294
297
  __source: {
295
298
  fileName: _jsxFileName,
296
- lineNumber: 385,
299
+ lineNumber: 388,
297
300
  columnNumber: 9
298
301
  }
299
302
  }, _react["default"].createElement(_reactNative.Text, {
@@ -301,7 +304,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
301
304
  __self: _this,
302
305
  __source: {
303
306
  fileName: _jsxFileName,
304
- lineNumber: 393,
307
+ lineNumber: 396,
305
308
  columnNumber: 11
306
309
  }
307
310
  }, "+" + (imagesAndVideos.length - 4))) : null);
@@ -327,7 +330,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
327
330
  __self: _this,
328
331
  __source: {
329
332
  fileName: _jsxFileName,
330
- lineNumber: 428,
333
+ lineNumber: 431,
331
334
  columnNumber: 5
332
335
  }
333
336
  }, isLoadingImageError ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(ImageLoadingFailedIndicator, {
@@ -335,7 +338,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
335
338
  __self: _this,
336
339
  __source: {
337
340
  fileName: _jsxFileName,
338
- lineNumber: 439,
341
+ lineNumber: 442,
339
342
  columnNumber: 11
340
343
  }
341
344
  }), _react["default"].createElement(_ImageReloadIndicator.ImageReloadIndicator, {
@@ -344,7 +347,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
344
347
  __self: _this,
345
348
  __source: {
346
349
  fileName: _jsxFileName,
347
- lineNumber: 440,
350
+ lineNumber: 443,
348
351
  columnNumber: 11
349
352
  }
350
353
  })) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_GalleryImage.GalleryImage, {
@@ -369,7 +372,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
369
372
  __self: _this,
370
373
  __source: {
371
374
  fileName: _jsxFileName,
372
- lineNumber: 447,
375
+ lineNumber: 450,
373
376
  columnNumber: 11
374
377
  }
375
378
  }), isLoadingImage && _react["default"].createElement(_reactNative.View, {
@@ -377,7 +380,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
377
380
  __self: _this,
378
381
  __source: {
379
382
  fileName: _jsxFileName,
380
- lineNumber: 467,
383
+ lineNumber: 470,
381
384
  columnNumber: 13
382
385
  }
383
386
  }, _react["default"].createElement(ImageLoadingIndicator, {
@@ -385,7 +388,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
385
388
  __self: _this,
386
389
  __source: {
387
390
  fileName: _jsxFileName,
388
- lineNumber: 468,
391
+ lineNumber: 471,
389
392
  columnNumber: 15
390
393
  }
391
394
  }))));
@@ -499,7 +502,7 @@ var Gallery = function Gallery(props) {
499
502
  __self: _this,
500
503
  __source: {
501
504
  fileName: _jsxFileName,
502
- lineNumber: 609,
505
+ lineNumber: 612,
503
506
  columnNumber: 5
504
507
  }
505
508
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","height","invertedDirections","thumbnailGrid","width","numOfColumns","createElement","View","style","styles","flexDirection","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","imageContainer","moreImagesContainer","moreImagesText","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","_extends2","activeOpacity","disabled","event","emitter","defaultHandler","imageContainerStyle","GalleryImageThumbnail","StyleSheet","absoluteFillObject","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","imageLoadingErrorIndicatorStyle","ImageReloadIndicator","imageReloadContainerStyle","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","imageLoadingIndicatorContainer","imageLoadingIndicatorStyle","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","create","errorTextSize","fontSize","borderTopLeftRadius","borderTopRightRadius","flexWrap","overflow","alignItems","display","justifyContent","padding","flex","bottom","left","position","margin","color","fontWeight","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n height,\n width,\n },\n galleryContainer,\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setMessages={setMessages}\n setOverlay={setOverlay}\n setSelectedMessage={setSelectedMessage}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setMessages,\n setOverlay,\n setSelectedMessage,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setSelectedMessage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n image,\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n setLoadingImageError,\n } = useLoadingImage();\n\n const {\n theme: {\n messageSimple: { gallery },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.thumbnail,\n ]}\n >\n {isLoadingImageError ? (\n <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.image,\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={styles.imageLoadingIndicatorContainer}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n message: propMessage,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setOverlay: propSetOverlay,\n setSelectedMessage: propSetSelectedMessage,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setMessages, setSelectedMessage: contextSetSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message: contextMessage,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n const message = propMessage || contextMessage;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","height","invertedDirections","thumbnailGrid","width","numOfColumns","createElement","View","style","styles","flexDirection","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","imageContainer","moreImagesContainer","moreImagesText","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","_extends2","activeOpacity","disabled","event","emitter","defaultHandler","imageContainerStyle","GalleryImageThumbnail","StyleSheet","absoluteFillObject","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","imageLoadingErrorIndicatorStyle","ImageReloadIndicator","imageReloadContainerStyle","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","imageLoadingIndicatorContainer","imageLoadingIndicatorStyle","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","create","errorTextSize","fontSize","borderTopLeftRadius","borderTopRightRadius","flexWrap","overflow","alignItems","display","justifyContent","padding","flex","bottom","left","position","margin","color","fontWeight","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n height,\n width,\n },\n galleryContainer,\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map((thumbnail, rowIndex) => {\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText: message?.text,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n if (message === undefined) {\n return null;\n }\n\n return (\n <GalleryThumbnail\n additionalTouchableProps={additionalTouchableProps}\n borderRadius={borderRadius}\n colIndex={colIndex}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n imagesAndVideos={imagesAndVideos}\n invertedDirections={invertedDirections || false}\n key={rowIndex}\n legacyImageViewerSwipeBehaviour={legacyImageViewerSwipeBehaviour}\n message={message}\n numOfColumns={numOfColumns}\n numOfRows={numOfRows}\n onLongPress={onLongPress}\n onPress={onPress}\n onPressIn={onPressIn}\n preventPress={preventPress}\n rowIndex={rowIndex}\n setMessages={setMessages}\n setOverlay={setOverlay}\n setSelectedMessage={setSelectedMessage}\n thumbnail={thumbnail}\n VideoThumbnail={VideoThumbnail}\n />\n );\n })}\n </View>\n );\n })}\n </View>\n );\n};\n\ntype GalleryThumbnailProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = {\n borderRadius: {\n borderBottomLeftRadius: number;\n borderBottomRightRadius: number;\n borderTopLeftRadius: number;\n borderTopRightRadius: number;\n };\n colIndex: number;\n imagesAndVideos: Attachment<StreamChatGenerics>[];\n invertedDirections: boolean;\n message: MessageType<StreamChatGenerics>;\n numOfColumns: number;\n numOfRows: number;\n rowIndex: number;\n thumbnail: Thumbnail;\n} & Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n> &\n Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GalleryThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n additionalTouchableProps,\n borderRadius,\n colIndex,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n imagesAndVideos,\n invertedDirections,\n legacyImageViewerSwipeBehaviour,\n message,\n numOfColumns,\n numOfRows,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n rowIndex,\n setMessages,\n setOverlay,\n setSelectedMessage,\n thumbnail,\n VideoThumbnail,\n}: GalleryThumbnailProps<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: { image, imageContainer, moreImagesContainer, moreImagesText },\n },\n },\n } = useTheme();\n\n const openImageViewer = () => {\n if (!legacyImageViewerSwipeBehaviour && message) {\n // Added if-else to keep the logic readable, instead of DRY.\n // if - legacyImageViewerSwipeBehaviour is disabled\n // else - legacyImageViewerSwipeBehaviour is enabled\n setMessages([message]);\n setSelectedMessage({ messageId: message.id, url: thumbnail.url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setSelectedMessage({ messageId: message?.id, url: thumbnail.url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if ((thumbnail.type === 'video' && !thumbnail.thumb_url) || !thumbnail.url) {\n return;\n }\n if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {\n // This condition is kinda unreachable, since we render videos as file attachment if the video\n // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.\n openUrlSafely(thumbnail.url);\n } else {\n openImageViewer();\n }\n };\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${message.id}/${colIndex}/${rowIndex}/${imagesAndVideos.length}`}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'gallery',\n event,\n });\n }\n }}\n style={[\n styles.imageContainer,\n {\n height: thumbnail.height,\n width: thumbnail.width,\n },\n imageContainer,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {thumbnail.type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n image,\n ]}\n thumb_url={thumbnail.thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <GalleryImageThumbnail\n borderRadius={borderRadius}\n ImageLoadingFailedIndicator={ImageLoadingFailedIndicator}\n ImageLoadingIndicator={ImageLoadingIndicator}\n thumbnail={thumbnail}\n />\n </View>\n )}\n {colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? (\n <View\n style={[\n StyleSheet.absoluteFillObject,\n styles.moreImagesContainer,\n { backgroundColor: overlay },\n moreImagesContainer,\n ]}\n >\n <Text style={[styles.moreImagesText, moreImagesText]}>\n {`+${imagesAndVideos.length - 4}`}\n </Text>\n </View>\n ) : null}\n </TouchableOpacity>\n );\n};\n\nconst GalleryImageThumbnail = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n borderRadius,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n thumbnail,\n}: Pick<\n GalleryThumbnailProps<StreamChatGenerics>,\n 'ImageLoadingFailedIndicator' | 'ImageLoadingIndicator' | 'thumbnail' | 'borderRadius'\n>) => {\n const {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n setLoadingImageError,\n } = useLoadingImage();\n\n const {\n theme: {\n messageSimple: { gallery },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.thumbnail,\n ]}\n >\n {isLoadingImageError ? (\n <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.image,\n ]}\n uri={thumbnail.url}\n />\n {isLoadingImage && (\n <View style={styles.imageLoadingIndicatorContainer}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </>\n )}\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GalleryPropsWithContext<StreamChatGenerics>,\n nextProps: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n groupStyles: prevGroupStyles,\n hasThreadReplies: prevHasThreadReplies,\n images: prevImages,\n message: prevMessage,\n videos: prevVideos,\n } = prevProps;\n const {\n groupStyles: nextGroupStyles,\n hasThreadReplies: nextHasThreadReplies,\n images: nextImages,\n message: nextMessage,\n videos: nextVideos,\n } = nextProps;\n\n const messageEqual =\n prevMessage?.id === nextMessage?.id &&\n `${prevMessage?.updated_at}` === `${nextMessage?.updated_at}`;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n const videosEqual =\n prevVideos.length === nextVideos.length &&\n prevVideos.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextVideos[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextVideos[index].thumb_url),\n );\n if (!videosEqual) return false;\n\n return true;\n};\n\nconst MemoizedGallery = React.memo(GalleryWithContext, areEqual) as typeof GalleryWithContext;\n\nexport type GalleryProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GalleryPropsWithContext<StreamChatGenerics>>;\n\n/**\n * UI component for card in attachments.\n */\nexport const Gallery = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryProps<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps: propAdditionalTouchableProps,\n alignment: propAlignment,\n groupStyles: propGroupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator: PropImageLoadingFailedIndicator,\n ImageLoadingIndicator: PropImageLoadingIndicator,\n images: propImages,\n message: propMessage,\n onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setOverlay: propSetOverlay,\n setSelectedMessage: propSetSelectedMessage,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setMessages, setSelectedMessage: contextSetSelectedMessage } =\n useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message: contextMessage,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n videos: contextVideos,\n } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps: contextAdditionalTouchableProps,\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n legacyImageViewerSwipeBehaviour,\n VideoThumbnail: ContextVideoThumnbnail,\n } = useMessagesContext<StreamChatGenerics>();\n const { setOverlay: contextSetOverlay } = useOverlayContext();\n\n const images = propImages || contextImages;\n const videos = propVideos || contextVideos;\n const message = propMessage || contextMessage;\n\n if (!images.length && !videos.length) return null;\n\n const additionalTouchableProps = propAdditionalTouchableProps || contextAdditionalTouchableProps;\n const alignment = propAlignment || contextAlignment;\n const groupStyles = propGroupStyles || contextGroupStyles;\n const onLongPress = propOnLongPress || contextOnLongPress;\n const onPressIn = propOnPressIn || contextOnPressIn;\n const onPress = propOnPress || contextOnPress;\n const preventPress =\n typeof propPreventPress === 'boolean' ? propPreventPress : contextPreventPress;\n const setSelectedMessage = propSetSelectedMessage || contextSetSelectedMessage;\n const setOverlay = propSetOverlay || contextSetOverlay;\n const threadList = propThreadList || contextThreadList;\n const VideoThumbnail = PropVideoThumbnail || ContextVideoThumnbnail;\n const ImageLoadingFailedIndicator =\n PropImageLoadingFailedIndicator || ContextImageLoadingFailedIndicator;\n const ImageLoadingIndicator = PropImageLoadingIndicator || ContextImageLoadingIndicator;\n\n return (\n <MemoizedGallery\n {...{\n additionalTouchableProps,\n alignment,\n channelId: message?.cid,\n groupStyles,\n hasThreadReplies: hasThreadReplies || !!message?.reply_count,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.20.0-beta.1"
2
+ "version": "5.20.0-beta.2"
3
3
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "5.20.0-beta.1",
4
+ "version": "5.20.0-beta.2",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -308,6 +308,9 @@ const GalleryThumbnail = <
308
308
  };
309
309
 
310
310
  const defaultOnPress = () => {
311
+ if ((thumbnail.type === 'video' && !thumbnail.thumb_url) || !thumbnail.url) {
312
+ return;
313
+ }
311
314
  if (thumbnail.type === 'video' && !isVideoPackageAvailable()) {
312
315
  // This condition is kinda unreachable, since we render videos as file attachment if the video
313
316
  // library is not installed. But doesn't hurt to have extra safeguard, in case of some customizations.
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.20.0-beta.1"
2
+ "version": "5.20.0-beta.2"
3
3
  }