stream-chat-react-native-core 4.9.0-beta.3 → 4.9.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Gallery.js +11 -9
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/VideoThumbnail.js +11 -5
- package/lib/commonjs/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js +1 -0
- package/lib/commonjs/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/commonjs/components/Message/Message.js +7 -6
- package/lib/commonjs/components/Message/Message.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +20 -27
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/attachment.js +3 -2
- package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
- package/lib/commonjs/utils/getUrlOfImageAttachment.js +1 -1
- package/lib/commonjs/utils/getUrlOfImageAttachment.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +11 -9
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/VideoThumbnail.js +11 -5
- package/lib/module/components/Attachment/VideoThumbnail.js.map +1 -1
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js +1 -0
- package/lib/module/components/Attachment/utils/buildGallery/buildThumbnail.js.map +1 -1
- package/lib/module/components/Message/Message.js +7 -6
- package/lib/module/components/Message/Message.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +20 -27
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/mock-builders/generator/attachment.js +3 -2
- package/lib/module/mock-builders/generator/attachment.js.map +1 -1
- package/lib/module/utils/getUrlOfImageAttachment.js +1 -1
- package/lib/module/utils/getUrlOfImageAttachment.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/VideoThumbnail.d.ts +3 -1
- package/lib/typescript/components/Attachment/utils/buildGallery/types.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/MessageInputContext.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/MessageInputContext.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/isValidMessage.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/pickFile.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/removeFile.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/removeImage.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/sendMessage.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/sendMessageAsync.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/updateMessage.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/uploadFile.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/uploadImage.test.d.ts +1 -0
- package/lib/typescript/contexts/messageInputContext/__tests__/useMessageDetailsForState.test.d.ts +1 -0
- package/lib/typescript/mock-builders/generator/attachment.d.ts +10 -0
- package/lib/typescript/mock-builders/generator/channel.d.ts +13 -13
- package/lib/typescript/mock-builders/generator/message.d.ts +38 -0
- package/lib/typescript/mock-builders/generator/user.d.ts +9 -9
- package/package.json +5 -4
- package/src/components/Attachment/Gallery.tsx +2 -1
- package/src/components/Attachment/VideoThumbnail.tsx +12 -5
- package/src/components/Attachment/__tests__/Attachment.test.js +12 -0
- package/src/components/Attachment/__tests__/Gallery.test.js +23 -1
- package/src/components/Attachment/utils/buildGallery/buildThumbnail.ts +1 -0
- package/src/components/Attachment/utils/buildGallery/types.ts +1 -0
- package/src/components/Message/Message.tsx +5 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +3 -4
- package/src/contexts/messageInputContext/__tests__/MessageInputContext.test.tsx +208 -0
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +109 -0
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessageAsync.test.tsx.snap +33 -0
- package/src/contexts/messageInputContext/__tests__/isValidMessage.test.tsx +71 -0
- package/src/contexts/messageInputContext/__tests__/pickFile.test.tsx +67 -0
- package/src/contexts/messageInputContext/__tests__/removeFile.test.tsx +82 -0
- package/src/contexts/messageInputContext/__tests__/removeImage.test.tsx +80 -0
- package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +286 -0
- package/src/contexts/messageInputContext/__tests__/sendMessageAsync.test.tsx +124 -0
- package/src/contexts/messageInputContext/__tests__/updateMessage.test.tsx +92 -0
- package/src/contexts/messageInputContext/__tests__/uploadFile.test.tsx +76 -0
- package/src/contexts/messageInputContext/__tests__/uploadImage.test.tsx +55 -0
- package/src/contexts/messageInputContext/__tests__/useMessageDetailsForState.test.tsx +62 -0
- package/src/mock-builders/generator/attachment.js +4 -2
- package/src/utils/getUrlOfImageAttachment.ts +1 -1
- package/src/version.json +1 -1
|
@@ -190,6 +190,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
190
190
|
}, rows.map(function (_ref, rowIndex) {
|
|
191
191
|
var height = _ref.height,
|
|
192
192
|
resizeMode = _ref.resizeMode,
|
|
193
|
+
thumb_url = _ref.thumb_url,
|
|
193
194
|
type = _ref.type,
|
|
194
195
|
url = _ref.url,
|
|
195
196
|
width = _ref.width;
|
|
@@ -281,6 +282,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
281
282
|
height: height - 1,
|
|
282
283
|
width: width - 1
|
|
283
284
|
}],
|
|
285
|
+
thumb_url: thumb_url,
|
|
284
286
|
__self: _this,
|
|
285
287
|
__source: {
|
|
286
288
|
fileName: _jsxFileName,
|
|
@@ -292,7 +294,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
292
294
|
__self: _this,
|
|
293
295
|
__source: {
|
|
294
296
|
fileName: _jsxFileName,
|
|
295
|
-
lineNumber:
|
|
297
|
+
lineNumber: 313,
|
|
296
298
|
columnNumber: 21
|
|
297
299
|
}
|
|
298
300
|
}, _react["default"].createElement(MemoizedGalleryImage, {
|
|
@@ -316,7 +318,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
316
318
|
__self: _this,
|
|
317
319
|
__source: {
|
|
318
320
|
fileName: _jsxFileName,
|
|
319
|
-
lineNumber:
|
|
321
|
+
lineNumber: 314,
|
|
320
322
|
columnNumber: 23
|
|
321
323
|
}
|
|
322
324
|
}), isLoadingImage && _react["default"].createElement(_reactNative.View, {
|
|
@@ -326,7 +328,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
326
328
|
__self: _this,
|
|
327
329
|
__source: {
|
|
328
330
|
fileName: _jsxFileName,
|
|
329
|
-
lineNumber:
|
|
331
|
+
lineNumber: 334,
|
|
330
332
|
columnNumber: 25
|
|
331
333
|
}
|
|
332
334
|
}, _react["default"].createElement(ImageLoadingIndicator, {
|
|
@@ -334,7 +336,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
334
336
|
__self: _this,
|
|
335
337
|
__source: {
|
|
336
338
|
fileName: _jsxFileName,
|
|
337
|
-
lineNumber:
|
|
339
|
+
lineNumber: 335,
|
|
338
340
|
columnNumber: 27
|
|
339
341
|
}
|
|
340
342
|
})), isLoadingImageError && _react["default"].createElement(_reactNative.View, {
|
|
@@ -344,7 +346,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
344
346
|
__self: _this,
|
|
345
347
|
__source: {
|
|
346
348
|
fileName: _jsxFileName,
|
|
347
|
-
lineNumber:
|
|
349
|
+
lineNumber: 339,
|
|
348
350
|
columnNumber: 25
|
|
349
351
|
}
|
|
350
352
|
}, _react["default"].createElement(ImageLoadingFailedIndicator, {
|
|
@@ -352,7 +354,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
352
354
|
__self: _this,
|
|
353
355
|
__source: {
|
|
354
356
|
fileName: _jsxFileName,
|
|
355
|
-
lineNumber:
|
|
357
|
+
lineNumber: 340,
|
|
356
358
|
columnNumber: 27
|
|
357
359
|
}
|
|
358
360
|
}))), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -362,7 +364,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
362
364
|
__self: _this,
|
|
363
365
|
__source: {
|
|
364
366
|
fileName: _jsxFileName,
|
|
365
|
-
lineNumber:
|
|
367
|
+
lineNumber: 348,
|
|
366
368
|
columnNumber: 21
|
|
367
369
|
}
|
|
368
370
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -370,7 +372,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
370
372
|
__self: _this,
|
|
371
373
|
__source: {
|
|
372
374
|
fileName: _jsxFileName,
|
|
373
|
-
lineNumber:
|
|
375
|
+
lineNumber: 356,
|
|
374
376
|
columnNumber: 23
|
|
375
377
|
}
|
|
376
378
|
}, "+" + (imagesAndVideos.length - 4))) : null);
|
|
@@ -492,7 +494,7 @@ var Gallery = function Gallery(props) {
|
|
|
492
494
|
__self: _this,
|
|
493
495
|
__source: {
|
|
494
496
|
fileName: _jsxFileName,
|
|
495
|
-
lineNumber:
|
|
497
|
+
lineNumber: 498,
|
|
496
498
|
columnNumber: 5
|
|
497
499
|
}
|
|
498
500
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Gallery.tsx"],"names":["MemoizedGalleryImage","React","memo","GalleryImage","prevProps","nextProps","uri","styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingIndicatorStyle","position","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","threadList","videos","VideoThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","overlay","colors","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","image","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","length","height","invertedDirections","thumbnailGrid","width","messageText","text","messageId","id","numOfColumns","map","rows","colIndex","numOfRows","rowIndex","resizeMode","type","url","openImageViewer","defaultOnPress","borderRadius","event","emitter","defaultHandler","error","console","warn","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","thumb_url","videosEqual","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetImage","propSetOverlay","propThreadList","propVideos","PropVideoThumbnail","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","contextSetOverlay","channelId","cid","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { GalleryImage } from './GallaryImage';\nimport { useLoadingImage } from './hooks/useLoadingImage';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\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 { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n 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 imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\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 \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<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 setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n image,\n imageContainer,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n moreImagesContainer,\n moreImagesText,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideos.length],\n );\n\n if (!imagesAndVideos?.length) return null;\n const messageText = message?.text;\n const messageId = message?.id;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n height,\n width,\n },\n galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n },\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map(({ height, resizeMode, type, url, width }, rowIndex) => {\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 setImages([message]);\n setImage({ messageId: message.id, url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: message?.id, url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (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(url);\n } else {\n openImageViewer();\n }\n };\n\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${messageId}/${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,\n width,\n },\n imageContainer,\n ]}\n testID={`gallery-${\n invertedDirections ? 'row' : 'column'\n }-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n image,\n {\n height: height - 1,\n width: width - 1,\n },\n ]}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <MemoizedGalleryImage\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={resizeMode}\n style={[\n borderRadius,\n image,\n {\n height: height - 1,\n width: width - 1,\n },\n ]}\n uri={url}\n />\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </View>\n )}\n {colIndex === numOfColumns - 1 &&\n rowIndex === numOfRows - 1 &&\n 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 </View>\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 = prevMessage?.id === nextMessage?.id;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n 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 onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n 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\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 setImage = propSetImage || contextSetImage;\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 setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["Gallery.tsx"],"names":["MemoizedGalleryImage","React","memo","GalleryImage","prevProps","nextProps","uri","styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingIndicatorStyle","position","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","threadList","videos","VideoThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","overlay","colors","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","image","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","length","height","invertedDirections","thumbnailGrid","width","messageText","text","messageId","id","numOfColumns","map","rows","colIndex","numOfRows","rowIndex","resizeMode","thumb_url","type","url","openImageViewer","defaultOnPress","borderRadius","event","emitter","defaultHandler","error","console","warn","absoluteFillObject","backgroundColor","areEqual","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","videosEqual","MemoizedGallery","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetImage","propSetOverlay","propThreadList","propVideos","PropVideoThumbnail","contextSetImage","contextAlignment","contextGroupStyles","contextImages","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","contextSetOverlay","channelId","cid","reply_count","displayName"],"mappings":"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","sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { GalleryImage } from './GallaryImage';\nimport { useLoadingImage } from './hooks/useLoadingImage';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\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 { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nconst MemoizedGalleryImage = React.memo(\n GalleryImage,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n) as typeof GalleryImage;\n\nconst styles = StyleSheet.create({\n 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 imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\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 \"exccesive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<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 setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { overlay },\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n image,\n imageContainer,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n moreImagesContainer,\n moreImagesText,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideos.length],\n );\n\n if (!imagesAndVideos?.length) return null;\n const messageText = message?.text;\n const messageId = message?.id;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n height,\n width,\n },\n galleryContainer,\n {\n flexDirection: invertedDirections ? 'column' : 'row',\n },\n ]}\n testID='gallery-container'\n >\n {thumbnailGrid.map((rows, colIndex) => {\n const numOfRows = rows.length;\n return (\n <View\n key={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n style={[\n {\n flexDirection: invertedDirections ? 'row' : 'column',\n },\n galleryItemColumn,\n ]}\n testID={`gallery-${invertedDirections ? 'row' : 'column'}-${colIndex}`}\n >\n {rows.map(({ height, resizeMode, thumb_url, type, url, width }, rowIndex) => {\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 setImages([message]);\n setImage({ messageId: message.id, url });\n setOverlay('gallery');\n } else if (legacyImageViewerSwipeBehaviour) {\n setImage({ messageId: message?.id, url });\n setOverlay('gallery');\n }\n };\n\n const defaultOnPress = () => {\n if (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(url);\n } else {\n openImageViewer();\n }\n };\n\n const borderRadius = getGalleryImageBorderRadius({\n alignment,\n colIndex,\n groupStyles,\n hasThreadReplies,\n height,\n invertedDirections,\n messageText,\n numOfColumns,\n numOfRows,\n rowIndex,\n sizeConfig,\n threadList,\n width,\n });\n\n return (\n <TouchableOpacity\n activeOpacity={0.8}\n disabled={preventPress}\n key={`gallery-item-${messageId}/${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,\n width,\n },\n imageContainer,\n ]}\n testID={`gallery-${\n invertedDirections ? 'row' : 'column'\n }-${colIndex}-item-${rowIndex}`}\n {...additionalTouchableProps}\n >\n {type === 'video' ? (\n <VideoThumbnail\n style={[\n borderRadius,\n image,\n {\n height: height - 1,\n width: width - 1,\n },\n ]}\n thumb_url={thumb_url}\n />\n ) : (\n <View style={styles.imageContainerStyle}>\n <MemoizedGalleryImage\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={resizeMode}\n style={[\n borderRadius,\n image,\n {\n height: height - 1,\n width: width - 1,\n },\n ]}\n uri={url}\n />\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n </View>\n )}\n {colIndex === numOfColumns - 1 &&\n rowIndex === numOfRows - 1 &&\n 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 </View>\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 = prevMessage?.id === nextMessage?.id;\n if (!messageEqual) return false;\n\n const groupStylesEqual =\n prevGroupStyles.length === nextGroupStyles.length && prevGroupStyles[0] === nextGroupStyles[0];\n if (!groupStylesEqual) return false;\n\n const hasThreadRepliesEqual = prevHasThreadReplies === nextHasThreadReplies;\n if (!hasThreadRepliesEqual) return false;\n\n const imagesEqual =\n prevImages.length === nextImages.length &&\n prevImages.every(\n (image, index) =>\n getUrlWithoutParams(image.image_url) === getUrlWithoutParams(nextImages[index].image_url) &&\n getUrlWithoutParams(image.thumb_url) === getUrlWithoutParams(nextImages[index].thumb_url),\n );\n if (!imagesEqual) return false;\n\n 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 onLongPress: propOnLongPress,\n onPress: propOnPress,\n onPressIn: propOnPressIn,\n preventPress: propPreventPress,\n setImage: propSetImage,\n setOverlay: propSetOverlay,\n threadList: propThreadList,\n videos: propVideos,\n VideoThumbnail: PropVideoThumbnail,\n } = props;\n\n const { setImage: contextSetImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const {\n alignment: contextAlignment,\n groupStyles: contextGroupStyles,\n images: contextImages,\n message,\n onLongPress: contextOnLongPress,\n onPress: contextOnPress,\n onPressIn: contextOnPressIn,\n preventPress: contextPreventPress,\n threadList: contextThreadList,\n 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\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 setImage = propSetImage || contextSetImage;\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 setImage,\n setImages,\n setOverlay,\n threadList,\n videos,\n VideoThumbnail,\n }}\n />\n );\n};\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
|
|
@@ -17,7 +17,7 @@ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
|
17
17
|
|
|
18
18
|
var _icons = require("../../icons");
|
|
19
19
|
|
|
20
|
-
var _excluded = ["style"];
|
|
20
|
+
var _excluded = ["style", "thumb_url"];
|
|
21
21
|
|
|
22
22
|
var _this = this,
|
|
23
23
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/VideoThumbnail.tsx";
|
|
@@ -49,13 +49,19 @@ var VideoThumbnail = function VideoThumbnail(props) {
|
|
|
49
49
|
roundedView = _useTheme$theme$messa.roundedView;
|
|
50
50
|
|
|
51
51
|
var style = props.style,
|
|
52
|
+
thumb_url = props.thumb_url,
|
|
52
53
|
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
53
|
-
return _react["default"].createElement(_reactNative.
|
|
54
|
+
return _react["default"].createElement(_reactNative.ImageBackground, (0, _extends2["default"])({
|
|
55
|
+
accessibilityLabel: "video-thumbnail",
|
|
56
|
+
source: {
|
|
57
|
+
uri: thumb_url
|
|
58
|
+
}
|
|
59
|
+
}, rest, {
|
|
54
60
|
style: [styles.container, container, style],
|
|
55
61
|
__self: _this,
|
|
56
62
|
__source: {
|
|
57
63
|
fileName: _jsxFileName,
|
|
58
|
-
lineNumber:
|
|
64
|
+
lineNumber: 41,
|
|
59
65
|
columnNumber: 5
|
|
60
66
|
}
|
|
61
67
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -63,7 +69,7 @@ var VideoThumbnail = function VideoThumbnail(props) {
|
|
|
63
69
|
__self: _this,
|
|
64
70
|
__source: {
|
|
65
71
|
fileName: _jsxFileName,
|
|
66
|
-
lineNumber:
|
|
72
|
+
lineNumber: 47,
|
|
67
73
|
columnNumber: 7
|
|
68
74
|
}
|
|
69
75
|
}, _react["default"].createElement(_icons.Play, {
|
|
@@ -73,7 +79,7 @@ var VideoThumbnail = function VideoThumbnail(props) {
|
|
|
73
79
|
__self: _this,
|
|
74
80
|
__source: {
|
|
75
81
|
fileName: _jsxFileName,
|
|
76
|
-
lineNumber:
|
|
82
|
+
lineNumber: 48,
|
|
77
83
|
columnNumber: 9
|
|
78
84
|
}
|
|
79
85
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["VideoThumbnail.tsx"],"names":["styles","StyleSheet","create","container","alignItems","backgroundColor","display","height","justifyContent","width","roundedView","borderRadius","VideoThumbnail","props","theme","messageSimple","videoThumbnail","style","rest"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,eAAe,EAAE,OAFR;AAGTC,IAAAA,OAAO,EAAE,MAHA;AAITC,IAAAA,MAAM,EAAE,MAJC;AAKTC,IAAAA,cAAc,EAAE,QALP;AAMTC,IAAAA,KAAK,EAAE;AANE,GADoB;AAS/BC,EAAAA,WAAW,EAAE;AACXN,IAAAA,UAAU,EAAE,QADD;AAEXC,IAAAA,eAAe,EAAE,MAFN;AAGXM,IAAAA,YAAY,EAAE,EAHH;AAIXL,IAAAA,OAAO,EAAE,MAJE;AAKXC,IAAAA,MAAM,EAAE,EALG;AAMXC,IAAAA,cAAc,EAAE,QANL;AAOXC,IAAAA,KAAK,EAAE;AAPI;AATkB,CAAlB,CAAf;;
|
|
1
|
+
{"version":3,"sources":["VideoThumbnail.tsx"],"names":["styles","StyleSheet","create","container","alignItems","backgroundColor","display","height","justifyContent","width","roundedView","borderRadius","VideoThumbnail","props","theme","messageSimple","videoThumbnail","style","thumb_url","rest","uri"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,eAAe,EAAE,OAFR;AAGTC,IAAAA,OAAO,EAAE,MAHA;AAITC,IAAAA,MAAM,EAAE,MAJC;AAKTC,IAAAA,cAAc,EAAE,QALP;AAMTC,IAAAA,KAAK,EAAE;AANE,GADoB;AAS/BC,EAAAA,WAAW,EAAE;AACXN,IAAAA,UAAU,EAAE,QADD;AAEXC,IAAAA,eAAe,EAAE,MAFN;AAGXM,IAAAA,YAAY,EAAE,EAHH;AAIXL,IAAAA,OAAO,EAAE,MAJE;AAKXC,IAAAA,MAAM,EAAE,EALG;AAMXC,IAAAA,cAAc,EAAE,QANL;AAOXC,IAAAA,KAAK,EAAE;AAPI;AATkB,CAAlB,CAAf;;AAwBO,IAAMG,cAA6C,GAAG,SAAhDA,cAAgD,CAACC,KAAD,EAAW;AACtE,kBAMI,6BANJ;AAAA,wCACEC,KADF,CAEIC,aAFJ,CAGMC,cAHN;AAAA,MAGwBb,SAHxB,yBAGwBA,SAHxB;AAAA,MAGmCO,WAHnC,yBAGmCA,WAHnC;;AAOA,MAAQO,KAAR,GAAsCJ,KAAtC,CAAQI,KAAR;AAAA,MAAeC,SAAf,GAAsCL,KAAtC,CAAeK,SAAf;AAAA,MAA6BC,IAA7B,6CAAsCN,KAAtC;AACA,SACE,gCAAC,4BAAD;AACE,IAAA,kBAAkB,EAAC,iBADrB;AAEE,IAAA,MAAM,EAAE;AAAEO,MAAAA,GAAG,EAAEF;AAAP;AAFV,KAGMC,IAHN;AAIE,IAAA,KAAK,EAAE,CAACnB,MAAM,CAACG,SAAR,EAAmBA,SAAnB,EAA8Bc,KAA9B,CAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAME,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACU,WAAR,EAAqBA,WAArB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,WAAD;AAAM,IAAA,MAAM,EAAE,EAAd;AAAkB,IAAA,QAAQ,EAAE,MAA5B;AAAoC,IAAA,KAAK,EAAE,EAA3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CANF,CADF;AAYD,CArBM","sourcesContent":["import React from 'react';\nimport { ImageBackground, StyleSheet, View, ViewProps } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Play } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n backgroundColor: 'black',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n width: '100%',\n },\n roundedView: {\n alignItems: 'center',\n backgroundColor: '#fff',\n borderRadius: 50,\n display: 'flex',\n height: 36,\n justifyContent: 'center',\n width: 36,\n },\n});\n\nexport type VideoThumbnailProps = ViewProps & {\n thumb_url?: string;\n};\n\nexport const VideoThumbnail: React.FC<VideoThumbnailProps> = (props) => {\n const {\n theme: {\n messageSimple: {\n videoThumbnail: { container, roundedView },\n },\n },\n } = useTheme();\n const { style, thumb_url, ...rest } = props;\n return (\n <ImageBackground\n accessibilityLabel='video-thumbnail'\n source={{ uri: thumb_url }}\n {...rest}\n style={[styles.container, container, style]}\n >\n <View style={[styles.roundedView, roundedView]}>\n <Play height={24} pathFill={'#000'} width={24} />\n </View>\n </ImageBackground>\n );\n};\n"]}
|
|
@@ -19,6 +19,7 @@ function buildThumbnail(_ref) {
|
|
|
19
19
|
return {
|
|
20
20
|
height: height,
|
|
21
21
|
resizeMode: resizeMode ? resizeMode : image.original_height && image.original_width ? 'contain' : 'cover',
|
|
22
|
+
thumb_url: image.thumb_url,
|
|
22
23
|
type: image.type,
|
|
23
24
|
url: shouldResize ? (0, _getResizedImageUrl.getResizedImageUrl)({
|
|
24
25
|
height: height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["buildThumbnail.ts"],"names":["buildThumbnail","height","image","resizeMode","width","originalImageHeight","original_height","originalImageWidth","original_width","shouldResize","imageUrl","type","url"],"mappings":";;;;;AAQA;;AACA;;AAEO,SAASA,cAAT,OAYO;AAAA,MATZC,MASY,QATZA,MASY;AAAA,MARZC,KAQY,QARZA,KAQY;AAAA,MAPZC,UAOY,QAPZA,UAOY;AAAA,MANZC,KAMY,QANZA,KAMY;AACZ,MAAyBC,mBAAzB,GAAqFH,KAArF,CAAQI,eAAR;AAAA,MAA8DC,kBAA9D,GAAqFL,KAArF,CAA8CM,cAA9C;AAGA,MAAMC,YAAY,GAChBJ,mBAAmB,IAAIE,kBAAvB,GACIF,mBAAmB,GAAGE,kBAAtB,GAA2CN,MAAM,GAAGG,KADxD,GAEI,IAHN;AAIA,MAAMM,QAAQ,GAAG,sDAAwBR,KAAxB,CAAjB;AAEA,SAAO;AACLD,IAAAA,MAAM,EAANA,MADK;AAELE,IAAAA,UAAU,EAAEA,UAAU,GAClBA,UADkB,GAEhBD,KAAK,CAACI,eAAN,IAAyBJ,KAAK,CAACM,cAA/B,GAAgD,SAAhD,GAA4D,OAJ7D;AAKLG,IAAAA,
|
|
1
|
+
{"version":3,"sources":["buildThumbnail.ts"],"names":["buildThumbnail","height","image","resizeMode","width","originalImageHeight","original_height","originalImageWidth","original_width","shouldResize","imageUrl","thumb_url","type","url"],"mappings":";;;;;AAQA;;AACA;;AAEO,SAASA,cAAT,OAYO;AAAA,MATZC,MASY,QATZA,MASY;AAAA,MARZC,KAQY,QARZA,KAQY;AAAA,MAPZC,UAOY,QAPZA,UAOY;AAAA,MANZC,KAMY,QANZA,KAMY;AACZ,MAAyBC,mBAAzB,GAAqFH,KAArF,CAAQI,eAAR;AAAA,MAA8DC,kBAA9D,GAAqFL,KAArF,CAA8CM,cAA9C;AAGA,MAAMC,YAAY,GAChBJ,mBAAmB,IAAIE,kBAAvB,GACIF,mBAAmB,GAAGE,kBAAtB,GAA2CN,MAAM,GAAGG,KADxD,GAEI,IAHN;AAIA,MAAMM,QAAQ,GAAG,sDAAwBR,KAAxB,CAAjB;AAEA,SAAO;AACLD,IAAAA,MAAM,EAANA,MADK;AAELE,IAAAA,UAAU,EAAEA,UAAU,GAClBA,UADkB,GAEhBD,KAAK,CAACI,eAAN,IAAyBJ,KAAK,CAACM,cAA/B,GAAgD,SAAhD,GAA4D,OAJ7D;AAKLG,IAAAA,SAAS,EAAET,KAAK,CAACS,SALZ;AAMLC,IAAAA,IAAI,EAAEV,KAAK,CAACU,IANP;AAOLC,IAAAA,GAAG,EAAEJ,YAAY,GACb,4CAAmB;AACjBR,MAAAA,MAAM,EAANA,MADiB;AAEjBY,MAAAA,GAAG,EAAEH,QAFY;AAGjBN,MAAAA,KAAK,EAALA;AAHiB,KAAnB,CADa,GAMbM,QAbC;AAcLN,IAAAA,KAAK,EAALA;AAdK,GAAP;AAgBD","sourcesContent":["import type { ImageResizeMode } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport type { Thumbnail } from './types';\n\nimport type { DefaultStreamChatGenerics } from '../../../../types/types';\n\nimport { getResizedImageUrl } from '../../../../utils/getResizedImageUrl';\nimport { getUrlOfImageAttachment } from '../../../../utils/getUrlOfImageAttachment';\n\nexport function buildThumbnail<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n height,\n image,\n resizeMode,\n width,\n}: {\n height: number;\n image: Attachment<StreamChatGenerics>;\n width: number;\n resizeMode?: ImageResizeMode;\n}): Thumbnail {\n const { original_height: originalImageHeight, original_width: originalImageWidth } = image;\n\n // Only resize if the original image is larger than the thumbnail container size.\n const shouldResize =\n originalImageHeight && originalImageWidth\n ? originalImageHeight + originalImageWidth > height + width\n : true;\n const imageUrl = getUrlOfImageAttachment(image) as string;\n\n return {\n height,\n resizeMode: resizeMode\n ? resizeMode\n : ((image.original_height && image.original_width ? 'contain' : 'cover') as ImageResizeMode),\n thumb_url: image.thumb_url,\n type: image.type,\n url: shouldResize\n ? getResizedImageUrl({\n height,\n url: imageUrl,\n width,\n })\n : imageUrl,\n width,\n };\n}\n"]}
|
|
@@ -201,6 +201,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
201
201
|
} else if (cur.type === 'video' && !cur.og_scrape_url && (0, _native.isVideoPackageAvailable)()) {
|
|
202
202
|
acc.videos.push({
|
|
203
203
|
image_url: cur.asset_url,
|
|
204
|
+
thumb_url: cur.thumb_url,
|
|
204
205
|
type: 'video'
|
|
205
206
|
});
|
|
206
207
|
acc.other = [];
|
|
@@ -548,7 +549,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
548
549
|
__self: _this,
|
|
549
550
|
__source: {
|
|
550
551
|
fileName: _jsxFileName,
|
|
551
|
-
lineNumber:
|
|
552
|
+
lineNumber: 677,
|
|
552
553
|
columnNumber: 5
|
|
553
554
|
}
|
|
554
555
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -558,7 +559,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
558
559
|
__self: _this,
|
|
559
560
|
__source: {
|
|
560
561
|
fileName: _jsxFileName,
|
|
561
|
-
lineNumber:
|
|
562
|
+
lineNumber: 681,
|
|
562
563
|
columnNumber: 7
|
|
563
564
|
}
|
|
564
565
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -568,7 +569,7 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
568
569
|
__self: _this,
|
|
569
570
|
__source: {
|
|
570
571
|
fileName: _jsxFileName,
|
|
571
|
-
lineNumber:
|
|
572
|
+
lineNumber: 689,
|
|
572
573
|
columnNumber: 9
|
|
573
574
|
}
|
|
574
575
|
}, _react["default"].createElement(_MessageContext.MessageProvider, {
|
|
@@ -576,14 +577,14 @@ var MessageWithContext = function MessageWithContext(props) {
|
|
|
576
577
|
__self: _this,
|
|
577
578
|
__source: {
|
|
578
579
|
fileName: _jsxFileName,
|
|
579
|
-
lineNumber:
|
|
580
|
+
lineNumber: 696,
|
|
580
581
|
columnNumber: 11
|
|
581
582
|
}
|
|
582
583
|
}, _react["default"].createElement(MessageSimple, {
|
|
583
584
|
__self: _this,
|
|
584
585
|
__source: {
|
|
585
586
|
fileName: _jsxFileName,
|
|
586
|
-
lineNumber:
|
|
587
|
+
lineNumber: 697,
|
|
587
588
|
columnNumber: 13
|
|
588
589
|
}
|
|
589
590
|
})))));
|
|
@@ -708,7 +709,7 @@ var Message = function Message(props) {
|
|
|
708
709
|
__self: _this,
|
|
709
710
|
__source: {
|
|
710
711
|
fileName: _jsxFileName,
|
|
711
|
-
lineNumber:
|
|
712
|
+
lineNumber: 857,
|
|
712
713
|
columnNumber: 5
|
|
713
714
|
}
|
|
714
715
|
}));
|