stream-chat-react-native-core 5.6.0-beta.0 → 5.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Attachment/Gallery.js +21 -16
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/GalleryImage.js +3 -3
- package/lib/commonjs/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +34 -30
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
- package/lib/commonjs/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/commonjs/components/Message/hooks/useMessageActions.js +2 -2
- package/lib/commonjs/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +18 -21
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +7 -32
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/components/index.js +1 -1
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js +128 -89
- package/lib/commonjs/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/commonjs/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/commonjs/utils/DBSyncManager.js +16 -16
- package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
- package/lib/commonjs/{components/Message/utils → utils}/removeReservedFields.js +1 -1
- package/lib/commonjs/utils/removeReservedFields.js.map +1 -0
- package/lib/commonjs/utils/utils.js +2 -2
- package/lib/commonjs/utils/utils.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +21 -16
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/GalleryImage.js +3 -3
- package/lib/module/components/Attachment/GalleryImage.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +34 -30
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js +5 -1
- package/lib/module/components/ChannelList/hooks/usePaginatedChannels.js.map +1 -1
- package/lib/module/components/Message/hooks/useMessageActions.js +2 -2
- package/lib/module/components/Message/hooks/useMessageActions.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +18 -21
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +7 -32
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/components/index.js +1 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/contexts/messageInputContext/MessageInputContext.js +128 -89
- package/lib/module/contexts/messageInputContext/MessageInputContext.js.map +1 -1
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js +1 -0
- package/lib/module/contexts/messageInputContext/hooks/useMessageDetailsForState.js.map +1 -1
- package/lib/module/utils/DBSyncManager.js +16 -16
- package/lib/module/utils/DBSyncManager.js.map +1 -1
- package/lib/module/{components/Message/utils → utils}/removeReservedFields.js +1 -1
- package/lib/module/utils/removeReservedFields.js.map +1 -0
- package/lib/module/utils/utils.js +2 -2
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/MessageInput/FileUploadPreview.d.ts +1 -1
- package/lib/typescript/components/MessageInput/ImageUploadPreview.d.ts +1 -1
- package/lib/typescript/components/index.d.ts +1 -1
- package/lib/typescript/store/mappers/mapTaskToStorable.d.ts +0 -8
- package/lib/typescript/store/types.d.ts +0 -4
- package/lib/typescript/utils/DBSyncManager.d.ts +1 -1
- package/lib/typescript/{components/Message/utils → utils}/removeReservedFields.d.ts +2 -2
- package/lib/typescript/utils/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/Attachment/Gallery.tsx +5 -1
- package/src/components/Attachment/GalleryImage.tsx +2 -0
- package/src/components/Channel/Channel.tsx +12 -11
- package/src/components/ChannelList/hooks/usePaginatedChannels.ts +6 -4
- package/src/components/Message/hooks/useMessageActions.tsx +1 -1
- package/src/components/MessageInput/FileUploadPreview.tsx +4 -5
- package/src/components/MessageInput/ImageUploadPreview.tsx +10 -35
- package/src/components/index.ts +1 -1
- package/src/contexts/messageInputContext/MessageInputContext.tsx +94 -75
- package/src/contexts/messageInputContext/__tests__/__snapshots__/sendMessage.test.tsx.snap +0 -3
- package/src/contexts/messageInputContext/hooks/useMessageDetailsForState.ts +1 -0
- package/src/store/types.ts +0 -5
- package/src/utils/DBSyncManager.ts +1 -1
- package/src/{components/Message/utils → utils}/removeReservedFields.ts +7 -3
- package/src/utils/utils.ts +7 -6
- package/src/version.json +1 -1
- package/lib/commonjs/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/commonjs/utils/pendingTaskUtils.js +0 -302
- package/lib/commonjs/utils/pendingTaskUtils.js.map +0 -1
- package/lib/module/components/Message/utils/removeReservedFields.js.map +0 -1
- package/lib/module/utils/pendingTaskUtils.js +0 -302
- package/lib/module/utils/pendingTaskUtils.js.map +0 -1
- package/lib/typescript/utils/pendingTaskUtils.d.ts +0 -13
- package/src/utils/pendingTaskUtils.ts +0 -131
|
@@ -138,13 +138,18 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
138
138
|
minWidth: minWidth
|
|
139
139
|
};
|
|
140
140
|
var imagesAndVideos = [].concat((0, _toConsumableArray2["default"])(images || []), (0, _toConsumableArray2["default"])(videos || []));
|
|
141
|
+
var imagesAndVideosValue = "" + (images == null ? void 0 : images.length) + (videos == null ? void 0 : videos.length) + (images == null ? void 0 : images.map(function (i) {
|
|
142
|
+
return "" + i.image_url + i.thumb_url;
|
|
143
|
+
}).join('')) + (videos == null ? void 0 : videos.map(function (i) {
|
|
144
|
+
return "" + i.image_url + i.thumb_url;
|
|
145
|
+
}).join(''));
|
|
141
146
|
|
|
142
147
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
143
148
|
return (0, _buildGallery.buildGallery)({
|
|
144
149
|
images: imagesAndVideos,
|
|
145
150
|
sizeConfig: sizeConfig
|
|
146
151
|
});
|
|
147
|
-
}, [
|
|
152
|
+
}, [imagesAndVideosValue]),
|
|
148
153
|
height = _useMemo.height,
|
|
149
154
|
invertedDirections = _useMemo.invertedDirections,
|
|
150
155
|
thumbnailGrid = _useMemo.thumbnailGrid,
|
|
@@ -163,7 +168,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
163
168
|
__self: _this,
|
|
164
169
|
__source: {
|
|
165
170
|
fileName: _jsxFileName,
|
|
166
|
-
lineNumber:
|
|
171
|
+
lineNumber: 190,
|
|
167
172
|
columnNumber: 5
|
|
168
173
|
}
|
|
169
174
|
}, thumbnailGrid.map(function (rows, colIndex) {
|
|
@@ -177,7 +182,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
177
182
|
__self: _this,
|
|
178
183
|
__source: {
|
|
179
184
|
fileName: _jsxFileName,
|
|
180
|
-
lineNumber:
|
|
185
|
+
lineNumber: 207,
|
|
181
186
|
columnNumber: 11
|
|
182
187
|
}
|
|
183
188
|
}, rows.map(function (thumbnail, rowIndex) {
|
|
@@ -227,7 +232,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
227
232
|
__self: _this,
|
|
228
233
|
__source: {
|
|
229
234
|
fileName: _jsxFileName,
|
|
230
|
-
lineNumber:
|
|
235
|
+
lineNumber: 239,
|
|
231
236
|
columnNumber: 17
|
|
232
237
|
}
|
|
233
238
|
});
|
|
@@ -331,7 +336,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
331
336
|
__self: _this,
|
|
332
337
|
__source: {
|
|
333
338
|
fileName: _jsxFileName,
|
|
334
|
-
lineNumber:
|
|
339
|
+
lineNumber: 363,
|
|
335
340
|
columnNumber: 5
|
|
336
341
|
}
|
|
337
342
|
}), thumbnail.type === 'video' ? _react["default"].createElement(VideoThumbnail, {
|
|
@@ -343,7 +348,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
343
348
|
__self: _this,
|
|
344
349
|
__source: {
|
|
345
350
|
fileName: _jsxFileName,
|
|
346
|
-
lineNumber:
|
|
351
|
+
lineNumber: 405,
|
|
347
352
|
columnNumber: 9
|
|
348
353
|
}
|
|
349
354
|
}) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -351,7 +356,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
351
356
|
__self: _this,
|
|
352
357
|
__source: {
|
|
353
358
|
fileName: _jsxFileName,
|
|
354
|
-
lineNumber:
|
|
359
|
+
lineNumber: 417,
|
|
355
360
|
columnNumber: 9
|
|
356
361
|
}
|
|
357
362
|
}, _react["default"].createElement(GalleryImageThumbnail, {
|
|
@@ -362,7 +367,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
362
367
|
__self: _this,
|
|
363
368
|
__source: {
|
|
364
369
|
fileName: _jsxFileName,
|
|
365
|
-
lineNumber:
|
|
370
|
+
lineNumber: 418,
|
|
366
371
|
columnNumber: 11
|
|
367
372
|
}
|
|
368
373
|
})), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -372,7 +377,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
372
377
|
__self: _this,
|
|
373
378
|
__source: {
|
|
374
379
|
fileName: _jsxFileName,
|
|
375
|
-
lineNumber:
|
|
380
|
+
lineNumber: 427,
|
|
376
381
|
columnNumber: 9
|
|
377
382
|
}
|
|
378
383
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -380,7 +385,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
380
385
|
__self: _this,
|
|
381
386
|
__source: {
|
|
382
387
|
fileName: _jsxFileName,
|
|
383
|
-
lineNumber:
|
|
388
|
+
lineNumber: 435,
|
|
384
389
|
columnNumber: 11
|
|
385
390
|
}
|
|
386
391
|
}, "+" + (imagesAndVideos.length - 4))) : null);
|
|
@@ -409,7 +414,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
409
414
|
__self: _this,
|
|
410
415
|
__source: {
|
|
411
416
|
fileName: _jsxFileName,
|
|
412
|
-
lineNumber:
|
|
417
|
+
lineNumber: 467,
|
|
413
418
|
columnNumber: 5
|
|
414
419
|
}
|
|
415
420
|
}, isLoadingImageError ? _react["default"].createElement(ImageLoadingFailedIndicator, {
|
|
@@ -417,7 +422,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
417
422
|
__self: _this,
|
|
418
423
|
__source: {
|
|
419
424
|
fileName: _jsxFileName,
|
|
420
|
-
lineNumber:
|
|
425
|
+
lineNumber: 474,
|
|
421
426
|
columnNumber: 9
|
|
422
427
|
}
|
|
423
428
|
}) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_GalleryImage.GalleryImage, {
|
|
@@ -441,7 +446,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
441
446
|
__self: _this,
|
|
442
447
|
__source: {
|
|
443
448
|
fileName: _jsxFileName,
|
|
444
|
-
lineNumber:
|
|
449
|
+
lineNumber: 477,
|
|
445
450
|
columnNumber: 11
|
|
446
451
|
}
|
|
447
452
|
}), isLoadingImage && _react["default"].createElement(_reactNative.View, {
|
|
@@ -449,7 +454,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
449
454
|
__self: _this,
|
|
450
455
|
__source: {
|
|
451
456
|
fileName: _jsxFileName,
|
|
452
|
-
lineNumber:
|
|
457
|
+
lineNumber: 497,
|
|
453
458
|
columnNumber: 13
|
|
454
459
|
}
|
|
455
460
|
}, _react["default"].createElement(ImageLoadingIndicator, {
|
|
@@ -457,7 +462,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
457
462
|
__self: _this,
|
|
458
463
|
__source: {
|
|
459
464
|
fileName: _jsxFileName,
|
|
460
|
-
lineNumber:
|
|
465
|
+
lineNumber: 498,
|
|
461
466
|
columnNumber: 15
|
|
462
467
|
}
|
|
463
468
|
}))));
|
|
@@ -579,7 +584,7 @@ var Gallery = function Gallery(props) {
|
|
|
579
584
|
__self: _this,
|
|
580
585
|
__source: {
|
|
581
586
|
fileName: _jsxFileName,
|
|
582
|
-
lineNumber:
|
|
587
|
+
lineNumber: 639,
|
|
583
588
|
columnNumber: 5
|
|
584
589
|
}
|
|
585
590
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Gallery.tsx"],"names":["styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingErrorIndicatorStyle","bottom","left","position","imageLoadingIndicatorContainer","height","width","imageLoadingIndicatorStyle","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","theme","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","length","invertedDirections","thumbnailGrid","numOfColumns","map","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","messageText","text","undefined","GalleryThumbnail","overlay","colors","image","openImageViewer","messageId","id","url","defaultOnPress","type","event","emitter","defaultHandler","thumb_url","absoluteFillObject","backgroundColor","GalleryImageThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","error","console","warn","resizeMode","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","image_url","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","contextSetSelectedMessage","contextAlignment","contextGroupStyles","contextImages","contextMessage","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 type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\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\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 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>, '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 \"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 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 { 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 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((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 image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\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 { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n messageSimple: {\n gallery: { image },\n },\n },\n } = useTheme();\n\n return (\n <View\n style={{\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n }}\n >\n {isLoadingImageError ? (\n <ImageLoadingFailedIndicator style={[styles.imageLoadingErrorIndicatorStyle]} />\n ) : (\n <>\n <GalleryImage\n onError={(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 image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\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\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["Gallery.tsx"],"names":["styles","StyleSheet","create","errorTextSize","fontSize","galleryContainer","borderTopLeftRadius","borderTopRightRadius","flexDirection","flexWrap","overflow","imageContainer","alignItems","display","justifyContent","padding","imageContainerStyle","flex","imageLoadingErrorIndicatorStyle","bottom","left","position","imageLoadingIndicatorContainer","height","width","imageLoadingIndicatorStyle","moreImagesContainer","margin","moreImagesText","color","fontWeight","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","theme","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","invertedDirections","thumbnailGrid","numOfColumns","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","messageText","text","undefined","GalleryThumbnail","overlay","colors","image","openImageViewer","messageId","id","url","defaultOnPress","type","event","emitter","defaultHandler","absoluteFillObject","backgroundColor","GalleryImageThumbnail","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","error","console","warn","resizeMode","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","contextSetSelectedMessage","contextAlignment","contextGroupStyles","contextImages","contextMessage","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 type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\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\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 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>, '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 \"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 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 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((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 image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\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 { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n messageSimple: {\n gallery: { image },\n },\n },\n } = useTheme();\n\n return (\n <View\n style={{\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n }}\n >\n {isLoadingImageError ? (\n <ImageLoadingFailedIndicator style={[styles.imageLoadingErrorIndicatorStyle]} />\n ) : (\n <>\n <GalleryImage\n onError={(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 image,\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\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\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"]}
|
|
@@ -37,7 +37,7 @@ var GalleryImageWithContext = function GalleryImageWithContext(props) {
|
|
|
37
37
|
__self: _this,
|
|
38
38
|
__source: {
|
|
39
39
|
fileName: _jsxFileName,
|
|
40
|
-
lineNumber:
|
|
40
|
+
lineNumber: 20,
|
|
41
41
|
columnNumber: 7
|
|
42
42
|
}
|
|
43
43
|
}));
|
|
@@ -51,7 +51,7 @@ var GalleryImageWithContext = function GalleryImageWithContext(props) {
|
|
|
51
51
|
__self: _this,
|
|
52
52
|
__source: {
|
|
53
53
|
fileName: _jsxFileName,
|
|
54
|
-
lineNumber:
|
|
54
|
+
lineNumber: 31,
|
|
55
55
|
columnNumber: 5
|
|
56
56
|
}
|
|
57
57
|
}));
|
|
@@ -75,7 +75,7 @@ var GalleryImage = function GalleryImage(props) {
|
|
|
75
75
|
__self: _this,
|
|
76
76
|
__source: {
|
|
77
77
|
fileName: _jsxFileName,
|
|
78
|
-
lineNumber:
|
|
78
|
+
lineNumber: 57,
|
|
79
79
|
columnNumber: 10
|
|
80
80
|
}
|
|
81
81
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GalleryImage.tsx"],"names":["GalleryImageWithContext","props","ImageComponent","Image","uri","rest","MemoizedGalleryImage","React","memo","prevProps","nextProps","GalleryImage"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;;;;AAMO,IAAMA,uBAA+D,GAAG,SAAlEA,uBAAkE,CAACC,KAAD,EAAW;AACxF,8BAAiDA,KAAjD,CAAQC,cAAR;AAAA,MAAQA,cAAR,sCAAyBC,kBAAzB;AAAA,MAAgCC,GAAhC,GAAiDH,KAAjD,CAAgCG,GAAhC;AAAA,MAAwCC,IAAxC,6CAAiDJ,KAAjD;;
|
|
1
|
+
{"version":3,"sources":["GalleryImage.tsx"],"names":["GalleryImageWithContext","props","ImageComponent","Image","uri","rest","MemoizedGalleryImage","React","memo","prevProps","nextProps","GalleryImage"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AAGA;;;;;;;AAMO,IAAMA,uBAA+D,GAAG,SAAlEA,uBAAkE,CAACC,KAAD,EAAW;AACxF,8BAAiDA,KAAjD,CAAQC,cAAR;AAAA,MAAQA,cAAR,sCAAyBC,kBAAzB;AAAA,MAAgCC,GAAhC,GAAiDH,KAAjD,CAAgCG,GAAhC;AAAA,MAAwCC,IAAxC,6CAAiDJ,KAAjD;;AAIA,MAAI,CAAC,uBAAWG,GAAX,CAAL,EAAsB;AACpB,WACE,gCAAC,cAAD,gCACMC,IADN;AAEE,MAAA,kBAAkB,EAAC,eAFrB;AAGE,MAAA,MAAM,EAAE;AACND,QAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AADC,OAHV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OADF;AASD;;AAED,SACE,gCAAC,kBAAD,gCACMC,IADN;AAEE,IAAA,kBAAkB,EAAC,eAFrB;AAGE,IAAA,MAAM,EAAE;AACND,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AADC,KAHV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AASD,CA1BM;;;;AA4BA,IAAME,oBAAoB,GAAGC,kBAAMC,IAAN,CAClCR,uBADkC,EAElC,UAACS,SAAD,EAAYC,SAAZ;AAAA,SACE,gCAAoBD,SAAS,CAACL,GAA9B,MAAuC,gCAAoBM,SAAS,CAACN,GAA9B,CADzC;AAAA,CAFkC,CAA7B;;;;AASA,IAAMO,YAAY,GAAG,SAAfA,YAAe,CAG1BV,KAH0B,EAIvB;AACH,wBAA2B,kCAA3B;AAAA,MAAQC,cAAR,mBAAQA,cAAR;;AAEA,SAAO,gCAAC,oBAAD;AAAsB,IAAA,cAAc,EAAEA;AAAtC,KAA0DD,KAA1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAP;AACD,CARM","sourcesContent":["import React from 'react';\nimport { Image, ImageProps } from 'react-native';\n\nimport { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';\n\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams, isLocalUrl, makeImageCompatibleUrl } from '../../utils/utils';\n\nexport type GalleryImageWithContextProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = GalleryImageProps & Pick<ChatContextValue<StreamChatGenerics>, 'ImageComponent'>;\n\nexport const GalleryImageWithContext: React.FC<GalleryImageWithContextProps> = (props) => {\n const { ImageComponent = Image, uri, ...rest } = props;\n\n // Caching image components such as FastImage will not work with local images.\n // This for the case of local uris, we use the default Image component.\n if (!isLocalUrl(uri)) {\n return (\n <ImageComponent\n {...rest}\n accessibilityLabel='Gallery Image'\n source={{\n uri: makeImageCompatibleUrl(uri),\n }}\n />\n );\n }\n\n return (\n <Image\n {...rest}\n accessibilityLabel='Gallery Image'\n source={{\n uri: makeImageCompatibleUrl(uri),\n }}\n />\n );\n};\n\nexport const MemoizedGalleryImage = React.memo(\n GalleryImageWithContext,\n (prevProps, nextProps) =>\n getUrlWithoutParams(prevProps.uri) === getUrlWithoutParams(nextProps.uri),\n);\nexport type GalleryImageProps = Omit<ImageProps, 'height' | 'source'> & {\n uri: string;\n};\n\nexport const GalleryImage = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryImageProps,\n) => {\n const { ImageComponent } = useChatContext<StreamChatGenerics>();\n\n return <MemoizedGalleryImage ImageComponent={ImageComponent} {...props} />;\n};\n"]}
|
|
@@ -83,8 +83,6 @@ var _addReactionToLocalState = require("../../utils/addReactionToLocalState");
|
|
|
83
83
|
|
|
84
84
|
var _DBSyncManager = require("../../utils/DBSyncManager");
|
|
85
85
|
|
|
86
|
-
var _pendingTaskUtils = require("../../utils/pendingTaskUtils");
|
|
87
|
-
|
|
88
86
|
var _removeReactionFromLocalState = require("../../utils/removeReactionFromLocalState");
|
|
89
87
|
|
|
90
88
|
var _utils = require("../../utils/utils");
|
|
@@ -241,7 +239,7 @@ var throttleOptions = {
|
|
|
241
239
|
trailing: true
|
|
242
240
|
};
|
|
243
241
|
var debounceOptions = {
|
|
244
|
-
leading:
|
|
242
|
+
leading: true,
|
|
245
243
|
trailing: true
|
|
246
244
|
};
|
|
247
245
|
|
|
@@ -634,11 +632,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
634
632
|
(0, _streamChat.logChatPromiseExecution)(channel.markRead(), 'mark read');
|
|
635
633
|
}
|
|
636
634
|
}, defaultThrottleInterval, throttleOptions)).current;
|
|
637
|
-
var copyMessagesState = (0, _react.useRef)((0,
|
|
635
|
+
var copyMessagesState = (0, _react.useRef)((0, _throttle["default"])(function () {
|
|
638
636
|
if (channel) {
|
|
639
637
|
setMessages((0, _toConsumableArray2["default"])(channel.state.messages));
|
|
640
638
|
}
|
|
641
|
-
}, newMessageStateUpdateThrottleInterval,
|
|
639
|
+
}, newMessageStateUpdateThrottleInterval, throttleOptions)).current;
|
|
642
640
|
var copyTypingState = (0, _react.useRef)((0, _throttle["default"])(function () {
|
|
643
641
|
if (channel) {
|
|
644
642
|
setTyping((0, _extends2["default"])({}, channel.state.typing));
|
|
@@ -649,7 +647,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
649
647
|
setRead((0, _extends2["default"])({}, channel.state.read));
|
|
650
648
|
}
|
|
651
649
|
}, stateUpdateThrottleInterval, throttleOptions)).current;
|
|
652
|
-
var copyChannelState = (0, _react.useRef)((0,
|
|
650
|
+
var copyChannelState = (0, _react.useRef)((0, _throttle["default"])(function () {
|
|
653
651
|
setLoading(false);
|
|
654
652
|
|
|
655
653
|
if (channel) {
|
|
@@ -660,7 +658,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
660
658
|
setWatcherCount(channel.state.watcher_count);
|
|
661
659
|
setWatchers((0, _extends2["default"])({}, channel.state.watchers));
|
|
662
660
|
}
|
|
663
|
-
}, stateUpdateThrottleInterval,
|
|
661
|
+
}, stateUpdateThrottleInterval, throttleOptions)).current;
|
|
664
662
|
|
|
665
663
|
var connectionChangedHandler = function connectionChangedHandler() {
|
|
666
664
|
if (shouldSyncChannel) {
|
|
@@ -1384,7 +1382,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1384
1382
|
updatedMessage = (0, _extends2["default"])({}, message);
|
|
1385
1383
|
|
|
1386
1384
|
if (!((_updatedMessage$attac = updatedMessage.attachments) != null && _updatedMessage$attac.length)) {
|
|
1387
|
-
_context12.next =
|
|
1385
|
+
_context12.next = 40;
|
|
1388
1386
|
break;
|
|
1389
1387
|
}
|
|
1390
1388
|
|
|
@@ -1392,7 +1390,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1392
1390
|
|
|
1393
1391
|
case 3:
|
|
1394
1392
|
if (!(i < ((_updatedMessage$attac2 = updatedMessage.attachments) == null ? void 0 : _updatedMessage$attac2.length))) {
|
|
1395
|
-
_context12.next =
|
|
1393
|
+
_context12.next = 40;
|
|
1396
1394
|
break;
|
|
1397
1395
|
}
|
|
1398
1396
|
|
|
@@ -1439,7 +1437,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1439
1437
|
|
|
1440
1438
|
case 22:
|
|
1441
1439
|
if (!((attachment.type === 'file' || attachment.type === 'audio' || attachment.type === 'video') && attachment.asset_url && (0, _utils.isLocalUrl)(attachment.asset_url) && file != null && file.uri)) {
|
|
1442
|
-
_context12.next =
|
|
1440
|
+
_context12.next = 37;
|
|
1443
1441
|
break;
|
|
1444
1442
|
}
|
|
1445
1443
|
|
|
@@ -1466,6 +1464,11 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1466
1464
|
case 32:
|
|
1467
1465
|
response = _context12.t1;
|
|
1468
1466
|
attachment.asset_url = response.file;
|
|
1467
|
+
|
|
1468
|
+
if (response.thumb_url) {
|
|
1469
|
+
attachment.thumb_url = response.thumb_url;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1469
1472
|
delete attachment.originalFile;
|
|
1470
1473
|
dbApi.updateMessage({
|
|
1471
1474
|
message: (0, _extends2["default"])({}, updatedMessage, {
|
|
@@ -1473,15 +1476,15 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1473
1476
|
})
|
|
1474
1477
|
});
|
|
1475
1478
|
|
|
1476
|
-
case
|
|
1479
|
+
case 37:
|
|
1477
1480
|
i++;
|
|
1478
1481
|
_context12.next = 3;
|
|
1479
1482
|
break;
|
|
1480
1483
|
|
|
1481
|
-
case
|
|
1484
|
+
case 40:
|
|
1482
1485
|
return _context12.abrupt("return", updatedMessage);
|
|
1483
1486
|
|
|
1484
|
-
case
|
|
1487
|
+
case 41:
|
|
1485
1488
|
case "end":
|
|
1486
1489
|
return _context12.stop();
|
|
1487
1490
|
}
|
|
@@ -1958,7 +1961,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1958
1961
|
});
|
|
1959
1962
|
setMessages(channel.state.messages);
|
|
1960
1963
|
_context18.next = 11;
|
|
1961
|
-
return
|
|
1964
|
+
return _DBSyncManager.DBSyncManager.queueTask({
|
|
1962
1965
|
client: client,
|
|
1963
1966
|
task: {
|
|
1964
1967
|
channelId: channel.id,
|
|
@@ -2014,9 +2017,10 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2014
2017
|
break;
|
|
2015
2018
|
}
|
|
2016
2019
|
|
|
2017
|
-
|
|
2020
|
+
_DBSyncManager.DBSyncManager.dropPendingTasks({
|
|
2018
2021
|
messageId: message.id
|
|
2019
2022
|
});
|
|
2023
|
+
|
|
2020
2024
|
removeMessage(message);
|
|
2021
2025
|
_context19.next = 16;
|
|
2022
2026
|
break;
|
|
@@ -2028,7 +2032,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2028
2032
|
type: 'deleted'
|
|
2029
2033
|
}));
|
|
2030
2034
|
_context19.next = 14;
|
|
2031
|
-
return
|
|
2035
|
+
return _DBSyncManager.DBSyncManager.queueTask({
|
|
2032
2036
|
client: client,
|
|
2033
2037
|
task: {
|
|
2034
2038
|
channelId: channel.id,
|
|
@@ -2096,7 +2100,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2096
2100
|
});
|
|
2097
2101
|
setMessages(channel.state.messages);
|
|
2098
2102
|
_context20.next = 11;
|
|
2099
|
-
return
|
|
2103
|
+
return _DBSyncManager.DBSyncManager.queueTask({
|
|
2100
2104
|
client: client,
|
|
2101
2105
|
task: {
|
|
2102
2106
|
channelId: channel.id,
|
|
@@ -2418,7 +2422,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2418
2422
|
__self: _this,
|
|
2419
2423
|
__source: {
|
|
2420
2424
|
fileName: _jsxFileName,
|
|
2421
|
-
lineNumber:
|
|
2425
|
+
lineNumber: 1962,
|
|
2422
2426
|
columnNumber: 12
|
|
2423
2427
|
}
|
|
2424
2428
|
});
|
|
@@ -2433,7 +2437,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2433
2437
|
__self: _this,
|
|
2434
2438
|
__source: {
|
|
2435
2439
|
fileName: _jsxFileName,
|
|
2436
|
-
lineNumber:
|
|
2440
|
+
lineNumber: 1967,
|
|
2437
2441
|
columnNumber: 7
|
|
2438
2442
|
}
|
|
2439
2443
|
}, t('Please select a channel first'));
|
|
@@ -2447,7 +2451,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2447
2451
|
__self: _this,
|
|
2448
2452
|
__source: {
|
|
2449
2453
|
fileName: _jsxFileName,
|
|
2450
|
-
lineNumber:
|
|
2454
|
+
lineNumber: 1974,
|
|
2451
2455
|
columnNumber: 5
|
|
2452
2456
|
}
|
|
2453
2457
|
}), _react["default"].createElement(_ChannelContext.ChannelProvider, {
|
|
@@ -2455,7 +2459,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2455
2459
|
__self: _this,
|
|
2456
2460
|
__source: {
|
|
2457
2461
|
fileName: _jsxFileName,
|
|
2458
|
-
lineNumber:
|
|
2462
|
+
lineNumber: 1980,
|
|
2459
2463
|
columnNumber: 7
|
|
2460
2464
|
}
|
|
2461
2465
|
}, _react["default"].createElement(_OwnCapabilitiesContext.OwnCapabilitiesProvider, {
|
|
@@ -2463,7 +2467,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2463
2467
|
__self: _this,
|
|
2464
2468
|
__source: {
|
|
2465
2469
|
fileName: _jsxFileName,
|
|
2466
|
-
lineNumber:
|
|
2470
|
+
lineNumber: 1981,
|
|
2467
2471
|
columnNumber: 9
|
|
2468
2472
|
}
|
|
2469
2473
|
}, _react["default"].createElement(_TypingContext.TypingProvider, {
|
|
@@ -2471,7 +2475,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2471
2475
|
__self: _this,
|
|
2472
2476
|
__source: {
|
|
2473
2477
|
fileName: _jsxFileName,
|
|
2474
|
-
lineNumber:
|
|
2478
|
+
lineNumber: 1982,
|
|
2475
2479
|
columnNumber: 11
|
|
2476
2480
|
}
|
|
2477
2481
|
}, _react["default"].createElement(_PaginatedMessageListContext.PaginatedMessageListProvider, {
|
|
@@ -2479,7 +2483,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2479
2483
|
__self: _this,
|
|
2480
2484
|
__source: {
|
|
2481
2485
|
fileName: _jsxFileName,
|
|
2482
|
-
lineNumber:
|
|
2486
|
+
lineNumber: 1983,
|
|
2483
2487
|
columnNumber: 13
|
|
2484
2488
|
}
|
|
2485
2489
|
}, _react["default"].createElement(_MessagesContext.MessagesProvider, {
|
|
@@ -2487,7 +2491,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2487
2491
|
__self: _this,
|
|
2488
2492
|
__source: {
|
|
2489
2493
|
fileName: _jsxFileName,
|
|
2490
|
-
lineNumber:
|
|
2494
|
+
lineNumber: 1984,
|
|
2491
2495
|
columnNumber: 15
|
|
2492
2496
|
}
|
|
2493
2497
|
}, _react["default"].createElement(_ThreadContext.ThreadProvider, {
|
|
@@ -2495,7 +2499,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2495
2499
|
__self: _this,
|
|
2496
2500
|
__source: {
|
|
2497
2501
|
fileName: _jsxFileName,
|
|
2498
|
-
lineNumber:
|
|
2502
|
+
lineNumber: 1985,
|
|
2499
2503
|
columnNumber: 17
|
|
2500
2504
|
}
|
|
2501
2505
|
}, _react["default"].createElement(_SuggestionsContext.SuggestionsProvider, {
|
|
@@ -2503,7 +2507,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2503
2507
|
__self: _this,
|
|
2504
2508
|
__source: {
|
|
2505
2509
|
fileName: _jsxFileName,
|
|
2506
|
-
lineNumber:
|
|
2510
|
+
lineNumber: 1986,
|
|
2507
2511
|
columnNumber: 19
|
|
2508
2512
|
}
|
|
2509
2513
|
}, _react["default"].createElement(_MessageInputContext.MessageInputProvider, {
|
|
@@ -2511,7 +2515,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2511
2515
|
__self: _this,
|
|
2512
2516
|
__source: {
|
|
2513
2517
|
fileName: _jsxFileName,
|
|
2514
|
-
lineNumber:
|
|
2518
|
+
lineNumber: 1987,
|
|
2515
2519
|
columnNumber: 21
|
|
2516
2520
|
}
|
|
2517
2521
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -2521,7 +2525,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2521
2525
|
__self: _this,
|
|
2522
2526
|
__source: {
|
|
2523
2527
|
fileName: _jsxFileName,
|
|
2524
|
-
lineNumber:
|
|
2528
|
+
lineNumber: 1988,
|
|
2525
2529
|
columnNumber: 23
|
|
2526
2530
|
}
|
|
2527
2531
|
}, children))))))))));
|
|
@@ -2578,7 +2582,7 @@ var Channel = function Channel(props) {
|
|
|
2578
2582
|
__self: _this,
|
|
2579
2583
|
__source: {
|
|
2580
2584
|
fileName: _jsxFileName,
|
|
2581
|
-
lineNumber:
|
|
2585
|
+
lineNumber: 2045,
|
|
2582
2586
|
columnNumber: 5
|
|
2583
2587
|
}
|
|
2584
2588
|
}));
|