stream-chat-react-native-core 5.16.0-beta.3 → 5.17.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/README.md +0 -1
- package/lib/commonjs/components/Attachment/Gallery.js +75 -75
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +2 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Gallery.js +75 -75
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +2 -1
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/Attachment/Gallery.tsx +55 -54
- package/src/contexts/themeContext/utils/theme.ts +2 -0
- package/src/version.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/stream-chat-react-native)
|
|
12
|
-
[](https://sonarcloud.io/summary/new_code?id=GetStream_stream-chat-react-native)
|
|
13
12
|
[](https://github.com/GetStream/stream-chat-react-native/actions)
|
|
14
13
|
[](https://getstream.io/chat/docs/sdk/reactnative)
|
|
15
14
|
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Gallery = void 0;
|
|
7
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
8
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _reactNative = require("react-native");
|
|
11
11
|
var _GalleryImage = require("./GalleryImage");
|
|
@@ -25,60 +25,6 @@ var _this = this,
|
|
|
25
25
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/Gallery.tsx";
|
|
26
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
28
|
-
var styles = _reactNative.StyleSheet.create({
|
|
29
|
-
errorTextSize: {
|
|
30
|
-
fontSize: 10
|
|
31
|
-
},
|
|
32
|
-
galleryContainer: {
|
|
33
|
-
borderTopLeftRadius: 13,
|
|
34
|
-
borderTopRightRadius: 13,
|
|
35
|
-
flexDirection: 'row',
|
|
36
|
-
flexWrap: 'wrap',
|
|
37
|
-
overflow: 'hidden'
|
|
38
|
-
},
|
|
39
|
-
imageContainer: {
|
|
40
|
-
alignItems: 'center',
|
|
41
|
-
display: 'flex',
|
|
42
|
-
flexDirection: 'row',
|
|
43
|
-
justifyContent: 'center',
|
|
44
|
-
padding: 1
|
|
45
|
-
},
|
|
46
|
-
imageContainerStyle: {
|
|
47
|
-
alignItems: 'center',
|
|
48
|
-
flex: 1,
|
|
49
|
-
justifyContent: 'center'
|
|
50
|
-
},
|
|
51
|
-
imageLoadingErrorIndicatorStyle: {
|
|
52
|
-
bottom: 4,
|
|
53
|
-
left: 4,
|
|
54
|
-
position: 'absolute'
|
|
55
|
-
},
|
|
56
|
-
imageLoadingIndicatorContainer: {
|
|
57
|
-
height: '100%',
|
|
58
|
-
justifyContent: 'center',
|
|
59
|
-
position: 'absolute',
|
|
60
|
-
width: '100%'
|
|
61
|
-
},
|
|
62
|
-
imageLoadingIndicatorStyle: {
|
|
63
|
-
alignItems: 'center',
|
|
64
|
-
justifyContent: 'center',
|
|
65
|
-
position: 'absolute'
|
|
66
|
-
},
|
|
67
|
-
imageReloadContainerStyle: (0, _extends2["default"])({}, _reactNative.StyleSheet.absoluteFillObject, {
|
|
68
|
-
alignItems: 'center',
|
|
69
|
-
justifyContent: 'center'
|
|
70
|
-
}),
|
|
71
|
-
moreImagesContainer: {
|
|
72
|
-
alignItems: 'center',
|
|
73
|
-
justifyContent: 'center',
|
|
74
|
-
margin: 1
|
|
75
|
-
},
|
|
76
|
-
moreImagesText: {
|
|
77
|
-
color: '#FFFFFF',
|
|
78
|
-
fontSize: 26,
|
|
79
|
-
fontWeight: '700'
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
28
|
var GalleryWithContext = function GalleryWithContext(props) {
|
|
83
29
|
var additionalTouchableProps = props.additionalTouchableProps,
|
|
84
30
|
alignment = props.alignment,
|
|
@@ -146,7 +92,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
146
92
|
__self: _this,
|
|
147
93
|
__source: {
|
|
148
94
|
fileName: _jsxFileName,
|
|
149
|
-
lineNumber:
|
|
95
|
+
lineNumber: 150,
|
|
150
96
|
columnNumber: 5
|
|
151
97
|
}
|
|
152
98
|
}, thumbnailGrid.map(function (rows, colIndex) {
|
|
@@ -160,7 +106,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
160
106
|
__self: _this,
|
|
161
107
|
__source: {
|
|
162
108
|
fileName: _jsxFileName,
|
|
163
|
-
lineNumber:
|
|
109
|
+
lineNumber: 167,
|
|
164
110
|
columnNumber: 11
|
|
165
111
|
}
|
|
166
112
|
}, rows.map(function (thumbnail, rowIndex) {
|
|
@@ -208,7 +154,7 @@ var GalleryWithContext = function GalleryWithContext(props) {
|
|
|
208
154
|
__self: _this,
|
|
209
155
|
__source: {
|
|
210
156
|
fileName: _jsxFileName,
|
|
211
|
-
lineNumber:
|
|
157
|
+
lineNumber: 199,
|
|
212
158
|
columnNumber: 17
|
|
213
159
|
}
|
|
214
160
|
});
|
|
@@ -307,7 +253,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
307
253
|
__self: _this,
|
|
308
254
|
__source: {
|
|
309
255
|
fileName: _jsxFileName,
|
|
310
|
-
lineNumber:
|
|
256
|
+
lineNumber: 323,
|
|
311
257
|
columnNumber: 5
|
|
312
258
|
}
|
|
313
259
|
}), thumbnail.type === 'video' ? _react["default"].createElement(VideoThumbnail, {
|
|
@@ -319,7 +265,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
319
265
|
__self: _this,
|
|
320
266
|
__source: {
|
|
321
267
|
fileName: _jsxFileName,
|
|
322
|
-
lineNumber:
|
|
268
|
+
lineNumber: 365,
|
|
323
269
|
columnNumber: 9
|
|
324
270
|
}
|
|
325
271
|
}) : _react["default"].createElement(_reactNative.View, {
|
|
@@ -327,7 +273,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
327
273
|
__self: _this,
|
|
328
274
|
__source: {
|
|
329
275
|
fileName: _jsxFileName,
|
|
330
|
-
lineNumber:
|
|
276
|
+
lineNumber: 377,
|
|
331
277
|
columnNumber: 9
|
|
332
278
|
}
|
|
333
279
|
}, _react["default"].createElement(GalleryImageThumbnail, {
|
|
@@ -338,7 +284,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
338
284
|
__self: _this,
|
|
339
285
|
__source: {
|
|
340
286
|
fileName: _jsxFileName,
|
|
341
|
-
lineNumber:
|
|
287
|
+
lineNumber: 378,
|
|
342
288
|
columnNumber: 11
|
|
343
289
|
}
|
|
344
290
|
})), colIndex === numOfColumns - 1 && rowIndex === numOfRows - 1 && imagesAndVideos.length > 4 ? _react["default"].createElement(_reactNative.View, {
|
|
@@ -348,7 +294,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
348
294
|
__self: _this,
|
|
349
295
|
__source: {
|
|
350
296
|
fileName: _jsxFileName,
|
|
351
|
-
lineNumber:
|
|
297
|
+
lineNumber: 387,
|
|
352
298
|
columnNumber: 9
|
|
353
299
|
}
|
|
354
300
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -356,7 +302,7 @@ var GalleryThumbnail = function GalleryThumbnail(_ref) {
|
|
|
356
302
|
__self: _this,
|
|
357
303
|
__source: {
|
|
358
304
|
fileName: _jsxFileName,
|
|
359
|
-
lineNumber:
|
|
305
|
+
lineNumber: 395,
|
|
360
306
|
columnNumber: 11
|
|
361
307
|
}
|
|
362
308
|
}, "+" + (imagesAndVideos.length - 4))) : null);
|
|
@@ -373,16 +319,16 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
373
319
|
setLoadingImage = _useLoadingImage.setLoadingImage,
|
|
374
320
|
setLoadingImageError = _useLoadingImage.setLoadingImageError;
|
|
375
321
|
var _useTheme3 = (0, _ThemeContext.useTheme)(),
|
|
376
|
-
|
|
322
|
+
gallery = _useTheme3.theme.messageSimple.gallery;
|
|
377
323
|
return _react["default"].createElement(_reactNative.View, {
|
|
378
|
-
style: {
|
|
324
|
+
style: [{
|
|
379
325
|
height: thumbnail.height - 1,
|
|
380
326
|
width: thumbnail.width - 1
|
|
381
|
-
},
|
|
327
|
+
}, gallery.thumbnail],
|
|
382
328
|
__self: _this,
|
|
383
329
|
__source: {
|
|
384
330
|
fileName: _jsxFileName,
|
|
385
|
-
lineNumber:
|
|
331
|
+
lineNumber: 430,
|
|
386
332
|
columnNumber: 5
|
|
387
333
|
}
|
|
388
334
|
}, isLoadingImageError ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(ImageLoadingFailedIndicator, {
|
|
@@ -390,7 +336,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
390
336
|
__self: _this,
|
|
391
337
|
__source: {
|
|
392
338
|
fileName: _jsxFileName,
|
|
393
|
-
lineNumber:
|
|
339
|
+
lineNumber: 441,
|
|
394
340
|
columnNumber: 11
|
|
395
341
|
}
|
|
396
342
|
}), _react["default"].createElement(_ImageReloadIndicator.ImageReloadIndicator, {
|
|
@@ -399,7 +345,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
399
345
|
__self: _this,
|
|
400
346
|
__source: {
|
|
401
347
|
fileName: _jsxFileName,
|
|
402
|
-
lineNumber:
|
|
348
|
+
lineNumber: 442,
|
|
403
349
|
columnNumber: 11
|
|
404
350
|
}
|
|
405
351
|
})) : _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_GalleryImage.GalleryImage, {
|
|
@@ -416,7 +362,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
416
362
|
return setLoadingImage(true);
|
|
417
363
|
},
|
|
418
364
|
resizeMode: thumbnail.resizeMode,
|
|
419
|
-
style: [borderRadius, image, {
|
|
365
|
+
style: [borderRadius, gallery.image, {
|
|
420
366
|
height: thumbnail.height - 1,
|
|
421
367
|
width: thumbnail.width - 1
|
|
422
368
|
}],
|
|
@@ -424,7 +370,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
424
370
|
__self: _this,
|
|
425
371
|
__source: {
|
|
426
372
|
fileName: _jsxFileName,
|
|
427
|
-
lineNumber:
|
|
373
|
+
lineNumber: 449,
|
|
428
374
|
columnNumber: 11
|
|
429
375
|
}
|
|
430
376
|
}), isLoadingImage && _react["default"].createElement(_reactNative.View, {
|
|
@@ -432,7 +378,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
432
378
|
__self: _this,
|
|
433
379
|
__source: {
|
|
434
380
|
fileName: _jsxFileName,
|
|
435
|
-
lineNumber:
|
|
381
|
+
lineNumber: 469,
|
|
436
382
|
columnNumber: 13
|
|
437
383
|
}
|
|
438
384
|
}, _react["default"].createElement(ImageLoadingIndicator, {
|
|
@@ -440,7 +386,7 @@ var GalleryImageThumbnail = function GalleryImageThumbnail(_ref2) {
|
|
|
440
386
|
__self: _this,
|
|
441
387
|
__source: {
|
|
442
388
|
fileName: _jsxFileName,
|
|
443
|
-
lineNumber:
|
|
389
|
+
lineNumber: 470,
|
|
444
390
|
columnNumber: 15
|
|
445
391
|
}
|
|
446
392
|
}))));
|
|
@@ -554,11 +500,65 @@ var Gallery = function Gallery(props) {
|
|
|
554
500
|
__self: _this,
|
|
555
501
|
__source: {
|
|
556
502
|
fileName: _jsxFileName,
|
|
557
|
-
lineNumber:
|
|
503
|
+
lineNumber: 611,
|
|
558
504
|
columnNumber: 5
|
|
559
505
|
}
|
|
560
506
|
});
|
|
561
507
|
};
|
|
562
508
|
exports.Gallery = Gallery;
|
|
509
|
+
var styles = _reactNative.StyleSheet.create({
|
|
510
|
+
errorTextSize: {
|
|
511
|
+
fontSize: 10
|
|
512
|
+
},
|
|
513
|
+
galleryContainer: {
|
|
514
|
+
borderTopLeftRadius: 13,
|
|
515
|
+
borderTopRightRadius: 13,
|
|
516
|
+
flexDirection: 'row',
|
|
517
|
+
flexWrap: 'wrap',
|
|
518
|
+
overflow: 'hidden'
|
|
519
|
+
},
|
|
520
|
+
imageContainer: {
|
|
521
|
+
alignItems: 'center',
|
|
522
|
+
display: 'flex',
|
|
523
|
+
flexDirection: 'row',
|
|
524
|
+
justifyContent: 'center',
|
|
525
|
+
padding: 1
|
|
526
|
+
},
|
|
527
|
+
imageContainerStyle: {
|
|
528
|
+
alignItems: 'center',
|
|
529
|
+
flex: 1,
|
|
530
|
+
justifyContent: 'center'
|
|
531
|
+
},
|
|
532
|
+
imageLoadingErrorIndicatorStyle: {
|
|
533
|
+
bottom: 4,
|
|
534
|
+
left: 4,
|
|
535
|
+
position: 'absolute'
|
|
536
|
+
},
|
|
537
|
+
imageLoadingIndicatorContainer: {
|
|
538
|
+
height: '100%',
|
|
539
|
+
justifyContent: 'center',
|
|
540
|
+
position: 'absolute',
|
|
541
|
+
width: '100%'
|
|
542
|
+
},
|
|
543
|
+
imageLoadingIndicatorStyle: {
|
|
544
|
+
alignItems: 'center',
|
|
545
|
+
justifyContent: 'center',
|
|
546
|
+
position: 'absolute'
|
|
547
|
+
},
|
|
548
|
+
imageReloadContainerStyle: (0, _extends2["default"])({}, _reactNative.StyleSheet.absoluteFillObject, {
|
|
549
|
+
alignItems: 'center',
|
|
550
|
+
justifyContent: 'center'
|
|
551
|
+
}),
|
|
552
|
+
moreImagesContainer: {
|
|
553
|
+
alignItems: 'center',
|
|
554
|
+
justifyContent: 'center',
|
|
555
|
+
margin: 1
|
|
556
|
+
},
|
|
557
|
+
moreImagesText: {
|
|
558
|
+
color: '#FFFFFF',
|
|
559
|
+
fontSize: 26,
|
|
560
|
+
fontWeight: '700'
|
|
561
|
+
}
|
|
562
|
+
});
|
|
563
563
|
Gallery.displayName = 'Gallery{messageSimple{gallery}}';
|
|
564
564
|
//# sourceMappingURL=Gallery.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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","imageReloadContainerStyle","_extends2","absoluteFillObject","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","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","invertedDirections","thumbnailGrid","numOfColumns","createElement","View","style","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","activeOpacity","disabled","event","emitter","defaultHandler","GalleryImageThumbnail","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","ImageReloadIndicator","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n 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 {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n 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 <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_GalleryImage","_ImageReloadIndicator","_buildGallery","_getGalleryImageBorderRadius","_openUrlSafely","_ImageGalleryContext","_MessageContext","_MessagesContext","_OverlayContext","_ThemeContext","_useLoadingImage2","_native","_utils","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","GalleryWithContext","props","additionalTouchableProps","alignment","groupStyles","hasThreadReplies","ImageLoadingFailedIndicator","ImageLoadingIndicator","images","legacyImageViewerSwipeBehaviour","message","onLongPress","onPress","onPressIn","preventPress","setMessages","setOverlay","setSelectedMessage","threadList","videos","VideoThumbnail","_useTheme","useTheme","_useTheme$theme$messa","theme","messageSimple","gallery","galleryContainer","galleryItemColumn","gridHeight","gridWidth","maxHeight","maxWidth","minHeight","minWidth","sizeConfig","imagesAndVideos","concat","_toConsumableArray2","imagesAndVideosValue","length","map","i","image_url","thumb_url","join","_useMemo","useMemo","buildGallery","height","invertedDirections","thumbnailGrid","width","numOfColumns","createElement","View","style","styles","flexDirection","testID","__self","__source","fileName","lineNumber","columnNumber","rows","colIndex","numOfRows","thumbnail","rowIndex","borderRadius","getGalleryImageBorderRadius","messageText","text","undefined","GalleryThumbnail","_ref","_useTheme2","_useTheme2$theme","overlay","colors","_useTheme2$theme$mess","image","imageContainer","moreImagesContainer","moreImagesText","openImageViewer","messageId","id","url","defaultOnPress","type","isVideoPackageAvailable","openUrlSafely","TouchableOpacity","_extends2","activeOpacity","disabled","event","emitter","defaultHandler","imageContainerStyle","GalleryImageThumbnail","StyleSheet","absoluteFillObject","backgroundColor","Text","_ref2","_useLoadingImage","useLoadingImage","isLoadingImage","isLoadingImageError","onReloadImage","setLoadingImage","setLoadingImageError","_useTheme3","Fragment","imageLoadingErrorIndicatorStyle","ImageReloadIndicator","imageReloadContainerStyle","GalleryImage","onError","_ref3","error","nativeEvent","console","warn","onLoadEnd","onLoadStart","resizeMode","uri","imageLoadingIndicatorContainer","imageLoadingIndicatorStyle","areEqual","prevProps","nextProps","prevGroupStyles","prevHasThreadReplies","prevImages","prevMessage","prevVideos","nextGroupStyles","nextHasThreadReplies","nextImages","nextMessage","nextVideos","messageEqual","updated_at","groupStylesEqual","hasThreadRepliesEqual","imagesEqual","every","index","getUrlWithoutParams","videosEqual","MemoizedGallery","React","memo","Gallery","propAdditionalTouchableProps","propAlignment","propGroupStyles","PropImageLoadingFailedIndicator","PropImageLoadingIndicator","propImages","propMessage","propOnLongPress","propOnPress","propOnPressIn","propPreventPress","propSetOverlay","propSetSelectedMessage","propThreadList","propVideos","PropVideoThumbnail","_useImageGalleryConte","useImageGalleryContext","contextSetSelectedMessage","_useMessageContext","useMessageContext","contextAlignment","contextGroupStyles","contextImages","contextMessage","contextOnLongPress","contextOnPress","contextOnPressIn","contextPreventPress","contextThreadList","contextVideos","_useMessagesContext","useMessagesContext","contextAdditionalTouchableProps","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","ContextVideoThumnbnail","_useOverlayContext","useOverlayContext","contextSetOverlay","channelId","cid","reply_count","exports","create","errorTextSize","fontSize","borderTopLeftRadius","borderTopRightRadius","flexWrap","overflow","alignItems","display","justifyContent","padding","flex","bottom","left","position","margin","color","fontWeight","displayName"],"sources":["Gallery.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { GalleryImage } from './GalleryImage';\nimport { ImageReloadIndicator } from './ImageReloadIndicator';\nimport { buildGallery } from './utils/buildGallery/buildGallery';\n\nimport type { Thumbnail } from './utils/buildGallery/types';\nimport { getGalleryImageBorderRadius } from './utils/getGalleryImageBorderRadius';\n\nimport { openUrlSafely } from './utils/openUrlSafely';\n\nimport type { MessageType } from '../../components/MessageList/hooks/useMessageList';\nimport {\n ImageGalleryContextValue,\n useImageGalleryContext,\n} from '../../contexts/imageGalleryContext/ImageGalleryContext';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport {\n OverlayContextValue,\n useOverlayContext,\n} from '../../contexts/overlayContext/OverlayContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useLoadingImage } from '../../hooks/useLoadingImage';\nimport { isVideoPackageAvailable } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { getUrlWithoutParams } from '../../utils/utils';\n\nexport type GalleryPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setSelectedMessage' | 'setMessages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'alignment'\n | 'groupStyles'\n | 'images'\n | 'videos'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n | 'threadList'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'additionalTouchableProps'\n | 'legacyImageViewerSwipeBehaviour'\n | 'VideoThumbnail'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > &\n Pick<OverlayContextValue, 'setOverlay'> & {\n channelId: string | undefined;\n hasThreadReplies?: boolean;\n /**\n * `message` prop has been introduced here as part of `legacyImageViewerSwipeBehaviour` prop.\n * https://github.com/GetStream/stream-chat-react-native/commit/d5eac6193047916f140efe8e396a671675c9a63f\n * messageId and messageText may seem redundant now, but to avoid breaking change as part\n * of minor release, we are keeping those props.\n *\n * Also `message` type should ideally be imported from MessageContextValue and not be explicitely mentioned\n * here, but due to some circular dependencies within the SDK, it causes \"excessive deep nesting\" issue with\n * typescript within Channel component. We should take it as a mini-project and resolve all these circular imports.\n *\n * TODO: Fix circular dependencies of imports\n */\n message?: MessageType<StreamChatGenerics>;\n };\n\nconst GalleryWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GalleryPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n alignment,\n groupStyles,\n hasThreadReplies,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n images,\n legacyImageViewerSwipeBehaviour,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setMessages,\n setOverlay,\n setSelectedMessage,\n threadList,\n videos,\n VideoThumbnail,\n } = props;\n\n const {\n theme: {\n messageSimple: {\n gallery: {\n galleryContainer,\n galleryItemColumn,\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n },\n },\n },\n } = useTheme();\n\n const sizeConfig = {\n gridHeight,\n gridWidth,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n };\n\n const imagesAndVideos = [...(images || []), ...(videos || [])];\n const imagesAndVideosValue = `${images?.length}${videos?.length}${images\n ?.map((i) => `${i.image_url}${i.thumb_url}`)\n .join('')}${videos?.map((i) => `${i.image_url}${i.thumb_url}`).join('')}`;\n\n const { height, invertedDirections, thumbnailGrid, width } = useMemo(\n () =>\n buildGallery({\n images: imagesAndVideos,\n sizeConfig,\n }),\n [imagesAndVideosValue],\n );\n\n if (!imagesAndVideos?.length) return null;\n const numOfColumns = thumbnailGrid.length;\n\n return (\n <View\n style={[\n styles.galleryContainer,\n {\n 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 {\n isLoadingImage,\n isLoadingImageError,\n onReloadImage,\n setLoadingImage,\n setLoadingImageError,\n } = useLoadingImage();\n\n const {\n theme: {\n messageSimple: { gallery },\n },\n } = useTheme();\n\n return (\n <View\n style={[\n {\n height: thumbnail.height - 1,\n width: thumbnail.width - 1,\n },\n gallery.thumbnail,\n ]}\n >\n {isLoadingImageError ? (\n <>\n <ImageLoadingFailedIndicator style={styles.imageLoadingErrorIndicatorStyle} />\n <ImageReloadIndicator\n onReloadImage={onReloadImage}\n style={styles.imageReloadContainerStyle}\n />\n </>\n ) : (\n <>\n <GalleryImage\n onError={({ nativeEvent: { error } }) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode={thumbnail.resizeMode}\n style={[\n borderRadius,\n gallery.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\nconst styles = StyleSheet.create({\n errorTextSize: { fontSize: 10 },\n galleryContainer: {\n borderTopLeftRadius: 13,\n borderTopRightRadius: 13,\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflow: 'hidden',\n },\n imageContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n padding: 1,\n },\n imageContainerStyle: { alignItems: 'center', flex: 1, justifyContent: 'center' },\n imageLoadingErrorIndicatorStyle: {\n bottom: 4,\n left: 4,\n position: 'absolute',\n },\n imageLoadingIndicatorContainer: {\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n },\n imageReloadContainerStyle: {\n ...StyleSheet.absoluteFillObject,\n alignItems: 'center',\n justifyContent: 'center',\n },\n moreImagesContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n margin: 1,\n },\n moreImagesText: { color: '#FFFFFF', fontSize: 26, fontWeight: '700' },\n});\n\nGallery.displayName = 'Gallery{messageSimple{gallery}}';\n"],"mappings":"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"}
|