stream-chat-react-native-core 4.8.0-beta.1 → 4.9.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/lib/commonjs/components/Attachment/GallaryImage.js +41 -0
  2. package/lib/commonjs/components/Attachment/GallaryImage.js.map +1 -0
  3. package/lib/commonjs/components/Attachment/Gallery.js +101 -36
  4. package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
  5. package/lib/commonjs/components/Attachment/Giphy.js +118 -25
  6. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  7. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +105 -0
  8. package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -0
  9. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +58 -0
  10. package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js.map +1 -0
  11. package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js +32 -0
  12. package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js.map +1 -0
  13. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +3 -2
  14. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  15. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  16. package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  17. package/lib/commonjs/components/Channel/Channel.js +23 -13
  18. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  19. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -0
  20. package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  21. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +43 -19
  22. package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  23. package/lib/commonjs/components/MessageInput/FileUploadPreview.js +20 -19
  24. package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +14 -15
  26. package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
  27. package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
  28. package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
  29. package/lib/commonjs/contexts/themeContext/utils/theme.js +4 -0
  30. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  31. package/lib/commonjs/mock-builders/api/channelMocks.js +299 -0
  32. package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -0
  33. package/lib/commonjs/version.json +1 -1
  34. package/lib/module/components/Attachment/GallaryImage.js +41 -0
  35. package/lib/module/components/Attachment/GallaryImage.js.map +1 -0
  36. package/lib/module/components/Attachment/Gallery.js +101 -36
  37. package/lib/module/components/Attachment/Gallery.js.map +1 -1
  38. package/lib/module/components/Attachment/Giphy.js +118 -25
  39. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  40. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +105 -0
  41. package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -0
  42. package/lib/module/components/Attachment/ImageLoadingIndicator.js +58 -0
  43. package/lib/module/components/Attachment/ImageLoadingIndicator.js.map +1 -0
  44. package/lib/module/components/Attachment/hooks/useLoadingImage.js +32 -0
  45. package/lib/module/components/Attachment/hooks/useLoadingImage.js.map +1 -0
  46. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +3 -2
  47. package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
  48. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
  49. package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
  50. package/lib/module/components/Channel/Channel.js +23 -13
  51. package/lib/module/components/Channel/Channel.js.map +1 -1
  52. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -0
  53. package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
  54. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +43 -19
  55. package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
  56. package/lib/module/components/MessageInput/FileUploadPreview.js +20 -19
  57. package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
  58. package/lib/module/components/MessageInput/ImageUploadPreview.js +14 -15
  59. package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
  60. package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
  61. package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
  62. package/lib/module/contexts/themeContext/utils/theme.js +4 -0
  63. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  64. package/lib/module/mock-builders/api/channelMocks.js +299 -0
  65. package/lib/module/mock-builders/api/channelMocks.js.map +1 -0
  66. package/lib/module/version.json +1 -1
  67. package/lib/typescript/components/Attachment/GallaryImage.d.ts +5 -0
  68. package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
  69. package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
  70. package/lib/typescript/components/Attachment/ImageLoadingFailedIndicator.d.ts +3 -0
  71. package/lib/typescript/components/Attachment/ImageLoadingIndicator.d.ts +3 -0
  72. package/lib/typescript/components/Attachment/hooks/useLoadingImage.d.ts +7 -0
  73. package/lib/typescript/components/Channel/Channel.d.ts +1 -1
  74. package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
  75. package/lib/typescript/components/ChannelPreview/hooks/__tests__/useLatestMessagePreview.test.d.ts +1 -0
  76. package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +10 -0
  77. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +4 -0
  78. package/lib/typescript/mock-builders/api/channelMocks.d.ts +14 -0
  79. package/package.json +1 -1
  80. package/src/components/Attachment/GallaryImage.tsx +22 -0
  81. package/src/components/Attachment/Gallery.tsx +68 -35
  82. package/src/components/Attachment/Giphy.tsx +68 -1
  83. package/src/components/Attachment/ImageLoadingFailedIndicator.tsx +56 -0
  84. package/src/components/Attachment/ImageLoadingIndicator.tsx +31 -0
  85. package/src/components/Attachment/__tests__/Attachment.test.js +9 -3
  86. package/src/components/Attachment/__tests__/Gallery.test.js +36 -1
  87. package/src/components/Attachment/__tests__/Giphy.test.js +110 -90
  88. package/src/components/Attachment/hooks/useLoadingImage.tsx +8 -0
  89. package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +2 -1
  90. package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +1 -1
  91. package/src/components/Channel/Channel.tsx +8 -0
  92. package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -0
  93. package/src/components/ChannelPreview/__tests__/ChannelPreviewMessenger.test.js +0 -1
  94. package/src/components/ChannelPreview/hooks/__tests__/useLatestMessagePreview.test.tsx +145 -0
  95. package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +50 -24
  96. package/src/components/MessageInput/FileUploadPreview.tsx +5 -4
  97. package/src/components/MessageInput/ImageUploadPreview.tsx +2 -3
  98. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1 -0
  99. package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1 -0
  100. package/src/contexts/messagesContext/MessagesContext.tsx +15 -0
  101. package/src/contexts/themeContext/utils/theme.ts +8 -0
  102. package/src/mock-builders/api/channelMocks.tsx +272 -0
  103. package/src/version.json +1 -1
@@ -11,6 +11,8 @@ var _react = _interopRequireDefault(require("react"));
11
11
 
12
12
  var _reactNative = require("react-native");
13
13
 
14
+ var _useLoadingImage2 = require("./hooks/useLoadingImage");
15
+
14
16
  var _ImageGalleryContext = require("../../contexts/imageGalleryContext/ImageGalleryContext");
15
17
 
16
18
  var _MessageContext = require("../../contexts/messageContext/MessageContext");
@@ -45,6 +47,11 @@ var styles = _reactNative.StyleSheet.create({
45
47
  fontWeight: '600',
46
48
  paddingVertical: 16
47
49
  },
50
+ centerChild: {
51
+ alignItems: 'center',
52
+ display: 'flex',
53
+ justifyContent: 'center'
54
+ },
48
55
  container: {
49
56
  overflow: 'hidden',
50
57
  width: 270
@@ -89,6 +96,17 @@ var styles = _reactNative.StyleSheet.create({
89
96
  padding: 8,
90
97
  width: '60%'
91
98
  },
99
+ imageErrorIndicatorStyle: {
100
+ alignItems: 'center',
101
+ flex: 1,
102
+ justifyContent: 'center'
103
+ },
104
+ imageLoadingIndicatorStyle: {
105
+ alignItems: 'center',
106
+ flex: 1,
107
+ justifyContent: 'center',
108
+ position: 'absolute'
109
+ },
92
110
  selectionContainer: {
93
111
  borderBottomRightRadius: 0,
94
112
  borderRadius: 16,
@@ -125,6 +143,8 @@ var GiphyWithContext = function GiphyWithContext(props) {
125
143
  attachment = props.attachment,
126
144
  giphyVersion = props.giphyVersion,
127
145
  handleAction = props.handleAction,
146
+ ImageLoadingFailedIndicator = props.ImageLoadingFailedIndicator,
147
+ ImageLoadingIndicator = props.ImageLoadingIndicator,
128
148
  isMyMessage = props.isMyMessage,
129
149
  message = props.message,
130
150
  _onLongPress = props.onLongPress,
@@ -141,6 +161,12 @@ var GiphyWithContext = function GiphyWithContext(props) {
141
161
  title = attachment.title,
142
162
  type = attachment.type;
143
163
 
164
+ var _useLoadingImage = (0, _useLoadingImage2.useLoadingImage)(),
165
+ isLoadingImage = _useLoadingImage.isLoadingImage,
166
+ isLoadingImageError = _useLoadingImage.isLoadingImageError,
167
+ setLoadingImage = _useLoadingImage.setLoadingImage,
168
+ setLoadingImageError = _useLoadingImage.setLoadingImageError;
169
+
144
170
  var _useTheme = (0, _ThemeContext.useTheme)(),
145
171
  _useTheme$theme = _useTheme.theme,
146
172
  _useTheme$theme$color = _useTheme$theme.colors,
@@ -195,7 +221,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
195
221
  __self: _this,
196
222
  __source: {
197
223
  fileName: _jsxFileName,
198
- lineNumber: 200,
224
+ lineNumber: 229,
199
225
  columnNumber: 5
200
226
  }
201
227
  }, _react["default"].createElement(_reactNative.View, {
@@ -203,14 +229,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
203
229
  __self: _this,
204
230
  __source: {
205
231
  fileName: _jsxFileName,
206
- lineNumber: 208,
232
+ lineNumber: 237,
207
233
  columnNumber: 7
208
234
  }
209
235
  }, _react["default"].createElement(_icons.GiphyIcon, {
210
236
  __self: _this,
211
237
  __source: {
212
238
  fileName: _jsxFileName,
213
- lineNumber: 209,
239
+ lineNumber: 238,
214
240
  columnNumber: 9
215
241
  }
216
242
  }), _react["default"].createElement(_reactNative.Text, {
@@ -218,7 +244,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
218
244
  __self: _this,
219
245
  __source: {
220
246
  fileName: _jsxFileName,
221
- lineNumber: 210,
247
+ lineNumber: 239,
222
248
  columnNumber: 9
223
249
  }
224
250
  }, "Giphy"), _react["default"].createElement(_reactNative.Text, {
@@ -228,7 +254,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
228
254
  __self: _this,
229
255
  __source: {
230
256
  fileName: _jsxFileName,
231
- lineNumber: 211,
257
+ lineNumber: 240,
232
258
  columnNumber: 9
233
259
  }
234
260
  }, "/giphy " + title)), _react["default"].createElement(_reactNative.View, {
@@ -236,10 +262,21 @@ var GiphyWithContext = function GiphyWithContext(props) {
236
262
  __self: _this,
237
263
  __source: {
238
264
  fileName: _jsxFileName,
239
- lineNumber: 215,
265
+ lineNumber: 244,
240
266
  columnNumber: 7
241
267
  }
242
268
  }, _react["default"].createElement(_reactNative.Image, {
269
+ onError: function onError(error) {
270
+ console.warn(error);
271
+ setLoadingImage(false);
272
+ setLoadingImageError(true);
273
+ },
274
+ onLoadEnd: function onLoadEnd() {
275
+ return setLoadingImage(false);
276
+ },
277
+ onLoadStart: function onLoadStart() {
278
+ return setLoadingImage(true);
279
+ },
243
280
  resizeMode: "contain",
244
281
  source: {
245
282
  uri: (0, _utils.makeImageCompatibleUrl)(uri)
@@ -248,14 +285,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
248
285
  __self: _this,
249
286
  __source: {
250
287
  fileName: _jsxFileName,
251
- lineNumber: 216,
288
+ lineNumber: 245,
252
289
  columnNumber: 9
253
290
  }
254
291
  })), _react["default"].createElement(_reactNative.View, {
255
292
  __self: _this,
256
293
  __source: {
257
294
  fileName: _jsxFileName,
258
- lineNumber: 222,
295
+ lineNumber: 258,
259
296
  columnNumber: 7
260
297
  }
261
298
  }, _react["default"].createElement(_reactNative.View, {
@@ -263,7 +300,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
263
300
  __self: _this,
264
301
  __source: {
265
302
  fileName: _jsxFileName,
266
- lineNumber: 223,
303
+ lineNumber: 259,
267
304
  columnNumber: 9
268
305
  }
269
306
  }, _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -280,7 +317,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
280
317
  __self: _this,
281
318
  __source: {
282
319
  fileName: _jsxFileName,
283
- lineNumber: 224,
320
+ lineNumber: 260,
284
321
  columnNumber: 11
285
322
  }
286
323
  }, _react["default"].createElement(_reactNative.Text, {
@@ -290,7 +327,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
290
327
  __self: _this,
291
328
  __source: {
292
329
  fileName: _jsxFileName,
293
- lineNumber: 237,
330
+ lineNumber: 273,
294
331
  columnNumber: 13
295
332
  }
296
333
  }, actions == null ? void 0 : actions[2].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -307,7 +344,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
307
344
  __self: _this,
308
345
  __source: {
309
346
  fileName: _jsxFileName,
310
- lineNumber: 239,
347
+ lineNumber: 275,
311
348
  columnNumber: 11
312
349
  }
313
350
  }, _react["default"].createElement(_reactNative.Text, {
@@ -317,7 +354,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
317
354
  __self: _this,
318
355
  __source: {
319
356
  fileName: _jsxFileName,
320
- lineNumber: 252,
357
+ lineNumber: 288,
321
358
  columnNumber: 13
322
359
  }
323
360
  }, actions == null ? void 0 : actions[1].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
@@ -333,7 +370,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
333
370
  __self: _this,
334
371
  __source: {
335
372
  fileName: _jsxFileName,
336
- lineNumber: 254,
373
+ lineNumber: 290,
337
374
  columnNumber: 11
338
375
  }
339
376
  }, _react["default"].createElement(_reactNative.Text, {
@@ -343,7 +380,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
343
380
  __self: _this,
344
381
  __source: {
345
382
  fileName: _jsxFileName,
346
- lineNumber: 263,
383
+ lineNumber: 299,
347
384
  columnNumber: 13
348
385
  }
349
386
  }, actions == null ? void 0 : actions[0].text))))) : _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
@@ -378,20 +415,32 @@ var GiphyWithContext = function GiphyWithContext(props) {
378
415
  __self: _this,
379
416
  __source: {
380
417
  fileName: _jsxFileName,
381
- lineNumber: 269,
418
+ lineNumber: 305,
382
419
  columnNumber: 5
383
420
  }
384
421
  }), _react["default"].createElement(_reactNative.View, {
385
- style: [styles.container, {
422
+ style: [styles.container, styles.centerChild, {
386
423
  backgroundColor: isMyMessage ? grey_gainsboro : white
387
424
  }, container],
388
425
  __self: _this,
389
426
  __source: {
390
427
  fileName: _jsxFileName,
391
- lineNumber: 299,
428
+ lineNumber: 335,
392
429
  columnNumber: 7
393
430
  }
394
431
  }, _react["default"].createElement(_reactNative.Image, {
432
+ accessibilityLabel: "giphy-attachment-image",
433
+ onError: function onError(error) {
434
+ console.warn(error);
435
+ setLoadingImage(false);
436
+ setLoadingImageError(true);
437
+ },
438
+ onLoadEnd: function onLoadEnd() {
439
+ return setLoadingImage(false);
440
+ },
441
+ onLoadStart: function onLoadStart() {
442
+ return setLoadingImage(true);
443
+ },
395
444
  resizeMode: "contain",
396
445
  source: {
397
446
  uri: (0, _utils.makeImageCompatibleUrl)(uri)
@@ -401,15 +450,51 @@ var GiphyWithContext = function GiphyWithContext(props) {
401
450
  __self: _this,
402
451
  __source: {
403
452
  fileName: _jsxFileName,
404
- lineNumber: 306,
453
+ lineNumber: 343,
405
454
  columnNumber: 9
406
455
  }
407
- }), _react["default"].createElement(_reactNative.View, {
456
+ }), isLoadingImageError && _react["default"].createElement(_reactNative.View, {
457
+ style: {
458
+ position: 'absolute'
459
+ },
460
+ __self: _this,
461
+ __source: {
462
+ fileName: _jsxFileName,
463
+ lineNumber: 359,
464
+ columnNumber: 11
465
+ }
466
+ }, _react["default"].createElement(ImageLoadingFailedIndicator, {
467
+ style: styles.imageErrorIndicatorStyle,
468
+ __self: _this,
469
+ __source: {
470
+ fileName: _jsxFileName,
471
+ lineNumber: 360,
472
+ columnNumber: 13
473
+ }
474
+ })), isLoadingImage && _react["default"].createElement(_reactNative.View, {
475
+ style: {
476
+ position: 'absolute'
477
+ },
478
+ __self: _this,
479
+ __source: {
480
+ fileName: _jsxFileName,
481
+ lineNumber: 364,
482
+ columnNumber: 11
483
+ }
484
+ }, _react["default"].createElement(ImageLoadingIndicator, {
485
+ style: styles.imageLoadingIndicatorStyle,
486
+ __self: _this,
487
+ __source: {
488
+ fileName: _jsxFileName,
489
+ lineNumber: 365,
490
+ columnNumber: 13
491
+ }
492
+ })), _react["default"].createElement(_reactNative.View, {
408
493
  style: [styles.giphyMask, giphyMask],
409
494
  __self: _this,
410
495
  __source: {
411
496
  fileName: _jsxFileName,
412
- lineNumber: 312,
497
+ lineNumber: 368,
413
498
  columnNumber: 9
414
499
  }
415
500
  }, _react["default"].createElement(_reactNative.View, {
@@ -419,7 +504,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
419
504
  __self: _this,
420
505
  __source: {
421
506
  fileName: _jsxFileName,
422
- lineNumber: 313,
507
+ lineNumber: 369,
423
508
  columnNumber: 11
424
509
  }
425
510
  }, _react["default"].createElement(_Lightning.Lightning, {
@@ -429,7 +514,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
429
514
  __self: _this,
430
515
  __source: {
431
516
  fileName: _jsxFileName,
432
- lineNumber: 320,
517
+ lineNumber: 376,
433
518
  columnNumber: 13
434
519
  }
435
520
  }), _react["default"].createElement(_reactNative.Text, {
@@ -439,7 +524,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
439
524
  __self: _this,
440
525
  __source: {
441
526
  fileName: _jsxFileName,
442
- lineNumber: 321,
527
+ lineNumber: 377,
443
528
  columnNumber: 13
444
529
  }
445
530
  }, type == null ? void 0 : type.toUpperCase())))));
@@ -494,10 +579,18 @@ var Giphy = function Giphy(props) {
494
579
  var _useOverlayContext = (0, _OverlayContext.useOverlayContext)(),
495
580
  setOverlay = _useOverlayContext.setOverlay;
496
581
 
582
+ var _useMessagesContext2 = (0, _MessagesContext.useMessagesContext)(),
583
+ ContextImageLoadingFailedIndicator = _useMessagesContext2.ImageLoadingFailedIndicator,
584
+ ContextImageLoadingIndicator = _useMessagesContext2.ImageLoadingIndicator;
585
+
586
+ var ImageLoadingFailedIndicator = ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;
587
+ var ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;
497
588
  return _react["default"].createElement(MemoizedGiphy, (0, _extends2["default"])({
498
589
  additionalTouchableProps: additionalTouchableProps,
499
590
  giphyVersion: giphyVersion,
500
591
  handleAction: handleAction,
592
+ ImageLoadingFailedIndicator: ImageLoadingFailedIndicator,
593
+ ImageLoadingIndicator: ImageLoadingIndicator,
501
594
  isMyMessage: isMyMessage,
502
595
  message: message,
503
596
  onLongPress: onLongPress,
@@ -511,7 +604,7 @@ var Giphy = function Giphy(props) {
511
604
  __self: _this,
512
605
  __source: {
513
606
  fileName: _jsxFileName,
514
- lineNumber: 391,
607
+ lineNumber: 456,
515
608
  columnNumber: 5
516
609
  }
517
610
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","display","padding","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","actions","giphyData","image_url","thumb_url","title","type","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","MemoizedGiphy","React","memo","Giphy","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\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 { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<MessagesContextValue<StreamChatGenerics>, 'giphyVersion' | 'additionalTouchableProps'> & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setImages([message]);\n setImage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <Image\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
1
+ {"version":3,"sources":["Giphy.tsx"],"names":["styles","StyleSheet","create","actionsRow","flexDirection","buttonContainer","alignItems","borderTopWidth","flex","justifyContent","cancel","fontSize","fontWeight","paddingVertical","centerChild","display","container","overflow","width","giphy","alignSelf","borderRadius","height","maxWidth","giphyContainer","giphyHeaderText","giphyHeaderTitle","marginLeft","giphyMask","bottom","left","position","giphyMaskText","header","padding","imageErrorIndicatorStyle","imageLoadingIndicatorStyle","selectionContainer","borderBottomRightRadius","borderWidth","selectionImageContainer","margin","send","shuffle","shuffleButton","GiphyWithContext","props","additionalTouchableProps","attachment","giphyVersion","handleAction","ImageLoadingFailedIndicator","ImageLoadingIndicator","isMyMessage","message","onLongPress","onPress","onPressIn","preventPress","setImage","setImages","setOverlay","actions","giphyData","image_url","thumb_url","title","type","isLoadingImage","isLoadingImageError","setLoadingImage","setLoadingImageError","theme","colors","accent_blue","black","grey","grey_dark","grey_gainsboro","label_bg_transparent","white","messageSimple","uri","giphyDimensions","defaultOnPress","messageId","id","url","giphyVersionInfo","parseFloat","backgroundColor","borderColor","color","error","console","warn","name","value","borderRightWidth","text","event","emitter","defaultHandler","toUpperCase","areEqual","prevProps","nextProps","prevActions","prevImageUrl","prevThumbUrl","prevGiphyVersion","prevIsMyMessage","nextActions","nextImageUrl","nextThumbUrl","nextGiphyVersion","nextIsMyMessage","imageUrlEqual","thumbUrlEqual","actionsEqual","Array","isArray","length","giphyVersionEqual","isMyMessageEqual","MemoizedGiphy","React","memo","Giphy","ContextImageLoadingFailedIndicator","ContextImageLoadingIndicator","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useLoadingImage } from './hooks/useLoadingImage';\n\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 { GiphyIcon } from '../../icons';\nimport { Lightning } from '../../icons/Lightning';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n actionsRow: {\n flexDirection: 'row',\n },\n buttonContainer: {\n alignItems: 'center',\n borderTopWidth: 1,\n flex: 1,\n justifyContent: 'center',\n },\n cancel: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n centerChild: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n },\n container: {\n overflow: 'hidden',\n width: 270,\n },\n giphy: {\n alignSelf: 'center',\n borderRadius: 2,\n height: 170,\n maxWidth: 270,\n width: 270,\n },\n giphyContainer: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n height: 24,\n justifyContent: 'center',\n width: 68,\n },\n giphyHeaderText: {\n fontSize: 16,\n fontWeight: '600',\n },\n giphyHeaderTitle: {\n fontSize: 14,\n marginLeft: 8,\n },\n giphyMask: {\n bottom: 8,\n left: 8,\n position: 'absolute',\n },\n giphyMaskText: {\n fontSize: 13,\n fontWeight: '600',\n },\n header: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 8,\n width: '60%',\n },\n imageErrorIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n },\n imageLoadingIndicatorStyle: {\n alignItems: 'center',\n flex: 1,\n justifyContent: 'center',\n position: 'absolute',\n },\n selectionContainer: {\n borderBottomRightRadius: 0,\n borderRadius: 16,\n borderWidth: 1,\n overflow: 'hidden',\n width: 272,\n },\n selectionImageContainer: {\n alignSelf: 'center',\n margin: 1,\n },\n send: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffle: {\n fontSize: 14,\n fontWeight: '600',\n paddingVertical: 16,\n },\n shuffleButton: {\n alignItems: 'center',\n borderRadius: 16,\n borderWidth: 1,\n height: 32,\n justifyContent: 'center',\n width: 32,\n },\n});\n\nexport type GiphyPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ImageGalleryContextValue<StreamChatGenerics>, 'setImage' | 'setImages'> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n | 'handleAction'\n | 'isMyMessage'\n | 'message'\n | 'onLongPress'\n | 'onPress'\n | 'onPressIn'\n | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n | 'giphyVersion'\n | 'additionalTouchableProps'\n | 'ImageLoadingIndicator'\n | 'ImageLoadingFailedIndicator'\n > & {\n attachment: Attachment<StreamChatGenerics>;\n } & Pick<OverlayContextValue, 'setOverlay'>;\n\nconst GiphyWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n } = props;\n\n const { actions, giphy: giphyData, image_url, thumb_url, title, type } = attachment;\n\n const { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError } =\n useLoadingImage();\n\n const {\n theme: {\n colors: { accent_blue, black, grey, grey_dark, grey_gainsboro, label_bg_transparent, white },\n messageSimple: {\n giphy: {\n buttonContainer,\n cancel,\n container,\n giphy,\n giphyContainer,\n giphyHeaderText,\n giphyHeaderTitle,\n giphyMask,\n giphyMaskText,\n header,\n selectionContainer,\n send,\n shuffle,\n },\n },\n },\n } = useTheme();\n\n let uri = image_url || thumb_url;\n const giphyDimensions: { height?: number; width?: number } = {};\n\n const defaultOnPress = () => {\n setImages([message]);\n setImage({ messageId: message.id, url: uri });\n setOverlay('gallery');\n };\n\n if (type === 'giphy' && giphyData) {\n const giphyVersionInfo = giphyData[giphyVersion];\n uri = giphyVersionInfo.url;\n giphyDimensions.height = parseFloat(giphyVersionInfo.height);\n giphyDimensions.width = parseFloat(giphyVersionInfo.width);\n }\n\n if (!uri) return null;\n\n return actions ? (\n <View\n style={[\n styles.selectionContainer,\n { backgroundColor: white, borderColor: `${black}0D` },\n selectionContainer,\n ]}\n testID='giphy-action-attachment'\n >\n <View style={[styles.header, header]}>\n <GiphyIcon />\n <Text style={[styles.giphyHeaderText, giphyHeaderText]}>Giphy</Text>\n <Text\n style={[styles.giphyHeaderTitle, giphyHeaderTitle, { color: grey_dark }]}\n >{`/giphy ${title}`}</Text>\n </View>\n <View style={styles.selectionImageContainer}>\n <Image\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n />\n </View>\n <View>\n <View style={styles.actionsRow}>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[2].name && actions?.[2].value && handleAction) {\n handleAction(actions[2].name, actions[2].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[2].value}-action-button`}\n >\n <Text style={[styles.cancel, { color: grey }, cancel]}>{actions?.[2].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[1].name && actions?.[1].value && handleAction) {\n handleAction(actions[1].name, actions[1].value);\n }\n }}\n style={[\n styles.buttonContainer,\n { borderColor: grey_gainsboro, borderRightWidth: 1 },\n buttonContainer,\n ]}\n testID={`${actions?.[1].value}-action-button`}\n >\n <Text style={[styles.shuffle, { color: grey }, shuffle]}>{actions?.[1].text}</Text>\n </TouchableOpacity>\n <TouchableOpacity\n onPress={() => {\n if (actions?.[0].name && actions?.[0].value && handleAction) {\n handleAction(actions[0].name, actions[0].value);\n }\n }}\n style={[styles.buttonContainer, { borderColor: grey_gainsboro }, buttonContainer]}\n testID={`${actions?.[0].value}-action-button`}\n >\n <Text style={[styles.send, { color: accent_blue }, send]}>{actions?.[0].text}</Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n ) : (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'giphy',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n emitter: 'giphy',\n event,\n });\n }\n }}\n testID='giphy-attachment'\n {...additionalTouchableProps}\n >\n <View\n style={[\n styles.container,\n styles.centerChild,\n { backgroundColor: isMyMessage ? grey_gainsboro : white },\n container,\n ]}\n >\n <Image\n accessibilityLabel='giphy-attachment-image'\n onError={(error) => {\n console.warn(error);\n setLoadingImage(false);\n setLoadingImageError(true);\n }}\n onLoadEnd={() => setLoadingImage(false)}\n onLoadStart={() => setLoadingImage(true)}\n resizeMode='contain'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.giphy, giphyDimensions, giphy]}\n testID='giphy-attachment-image'\n />\n\n {isLoadingImageError && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingFailedIndicator style={styles.imageErrorIndicatorStyle} />\n </View>\n )}\n {isLoadingImage && (\n <View style={{ position: 'absolute' }}>\n <ImageLoadingIndicator style={styles.imageLoadingIndicatorStyle} />\n </View>\n )}\n <View style={[styles.giphyMask, giphyMask]}>\n <View\n style={[\n styles.giphyContainer,\n { backgroundColor: label_bg_transparent },\n giphyContainer,\n ]}\n >\n <Lightning height={16} pathFill={white} width={16} />\n <Text style={[styles.giphyMaskText, { color: white }, giphyMaskText]}>\n {type?.toUpperCase()}\n </Text>\n </View>\n </View>\n </View>\n </TouchableOpacity>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: GiphyPropsWithContext<StreamChatGenerics>,\n nextProps: GiphyPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n attachment: { actions: prevActions, image_url: prevImageUrl, thumb_url: prevThumbUrl },\n giphyVersion: prevGiphyVersion,\n isMyMessage: prevIsMyMessage,\n } = prevProps;\n const {\n attachment: { actions: nextActions, image_url: nextImageUrl, thumb_url: nextThumbUrl },\n giphyVersion: nextGiphyVersion,\n isMyMessage: nextIsMyMessage,\n } = nextProps;\n\n const imageUrlEqual = prevImageUrl === nextImageUrl;\n if (!imageUrlEqual) return false;\n\n const thumbUrlEqual = prevThumbUrl === nextThumbUrl;\n if (!thumbUrlEqual) return false;\n\n const actionsEqual =\n Array.isArray(prevActions) === Array.isArray(nextActions) &&\n ((Array.isArray(prevActions) &&\n Array.isArray(nextActions) &&\n prevActions.length === nextActions.length) ||\n prevActions === nextActions);\n if (!actionsEqual) return false;\n\n const giphyVersionEqual = prevGiphyVersion === nextGiphyVersion;\n if (!giphyVersionEqual) return false;\n\n const isMyMessageEqual = prevIsMyMessage === nextIsMyMessage;\n if (!isMyMessageEqual) return false;\n\n return true;\n};\n\nconst MemoizedGiphy = React.memo(GiphyWithContext, areEqual) as typeof GiphyWithContext;\n\nexport type GiphyProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<GiphyPropsWithContext<StreamChatGenerics>> & {\n attachment: Attachment<StreamChatGenerics>;\n};\n\n/**\n * UI component for card in attachments.\n */\nexport const Giphy = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: GiphyProps<StreamChatGenerics>,\n) => {\n const { handleAction, isMyMessage, message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, giphyVersion } = useMessagesContext<StreamChatGenerics>();\n const { setImage, setImages } = useImageGalleryContext<StreamChatGenerics>();\n const { setOverlay } = useOverlayContext();\n\n const {\n ImageLoadingFailedIndicator: ContextImageLoadingFailedIndicator,\n ImageLoadingIndicator: ContextImageLoadingIndicator,\n } = useMessagesContext<StreamChatGenerics>();\n const ImageLoadingFailedIndicator =\n ContextImageLoadingFailedIndicator || props.ImageLoadingFailedIndicator;\n const ImageLoadingIndicator = ContextImageLoadingIndicator || props.ImageLoadingIndicator;\n\n return (\n <MemoizedGiphy\n {...{\n additionalTouchableProps,\n giphyVersion,\n handleAction,\n ImageLoadingFailedIndicator,\n ImageLoadingIndicator,\n isMyMessage,\n message,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n setImage,\n setImages,\n setOverlay,\n }}\n {...props}\n />\n );\n};\n\nGiphy.displayName = 'Giphy{messageSimple{giphy}}';\n"]}
@@ -0,0 +1,105 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageLoadingFailedIndicator = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _reactNative = require("react-native");
15
+
16
+ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
17
+
18
+ var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
19
+
20
+ var _icons = require("../../icons");
21
+
22
+ var _excluded = ["style"];
23
+
24
+ var _this = this,
25
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/ImageLoadingFailedIndicator.tsx";
26
+
27
+ var WARNING_ICON_SIZE = 14;
28
+
29
+ var styles = _reactNative.StyleSheet.create({
30
+ container: {
31
+ alignContent: 'center',
32
+ alignItems: 'center',
33
+ borderRadius: 20,
34
+ flexDirection: 'row',
35
+ justifyContent: 'center'
36
+ },
37
+ errorText: {
38
+ fontSize: 8,
39
+ justifyContent: 'center',
40
+ paddingHorizontal: 8
41
+ },
42
+ warningIconStyle: {
43
+ borderRadius: 24,
44
+ marginLeft: 4,
45
+ marginTop: 6
46
+ }
47
+ });
48
+
49
+ var ImageLoadingFailedIndicator = function ImageLoadingFailedIndicator(props) {
50
+ var _useTheme = (0, _ThemeContext.useTheme)(),
51
+ _useTheme$theme$color = _useTheme.theme.colors,
52
+ accent_red = _useTheme$theme$color.accent_red,
53
+ overlay = _useTheme$theme$color.overlay,
54
+ white = _useTheme$theme$color.white;
55
+
56
+ var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
57
+ t = _useTranslationContex.t;
58
+
59
+ var style = props.style,
60
+ rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
61
+ return _react["default"].createElement(_reactNative.View, (0, _extends2["default"])({}, rest, {
62
+ accessibilityHint: "image-loading-error",
63
+ style: [style],
64
+ __self: _this,
65
+ __source: {
66
+ fileName: _jsxFileName,
67
+ lineNumber: 44,
68
+ columnNumber: 5
69
+ }
70
+ }), _react["default"].createElement(_reactNative.View, {
71
+ style: [styles.container, {
72
+ backgroundColor: overlay
73
+ }],
74
+ __self: _this,
75
+ __source: {
76
+ fileName: _jsxFileName,
77
+ lineNumber: 45,
78
+ columnNumber: 7
79
+ }
80
+ }, _react["default"].createElement(_icons.Warning, {
81
+ height: WARNING_ICON_SIZE,
82
+ pathFill: accent_red,
83
+ style: styles.warningIconStyle,
84
+ width: WARNING_ICON_SIZE,
85
+ __self: _this,
86
+ __source: {
87
+ fileName: _jsxFileName,
88
+ lineNumber: 46,
89
+ columnNumber: 9
90
+ }
91
+ }), _react["default"].createElement(_reactNative.Text, {
92
+ style: [styles.errorText, {
93
+ color: white
94
+ }],
95
+ __self: _this,
96
+ __source: {
97
+ fileName: _jsxFileName,
98
+ lineNumber: 52,
99
+ columnNumber: 9
100
+ }
101
+ }, t('Error loading'))));
102
+ };
103
+
104
+ exports.ImageLoadingFailedIndicator = ImageLoadingFailedIndicator;
105
+ //# sourceMappingURL=ImageLoadingFailedIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ImageLoadingFailedIndicator.tsx"],"names":["WARNING_ICON_SIZE","styles","StyleSheet","create","container","alignContent","alignItems","borderRadius","flexDirection","justifyContent","errorText","fontSize","paddingHorizontal","warningIconStyle","marginLeft","marginTop","ImageLoadingFailedIndicator","props","theme","colors","accent_red","overlay","white","t","style","rest","backgroundColor","color"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;;;;;;AAEA,IAAMA,iBAAiB,GAAG,EAA1B;;AAEA,IAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,YAAY,EAAE,QADL;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,YAAY,EAAE,EAHL;AAITC,IAAAA,aAAa,EAAE,KAJN;AAKTC,IAAAA,cAAc,EAAE;AALP,GADoB;AAQ/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,CADD;AAETF,IAAAA,cAAc,EAAE,QAFP;AAGTG,IAAAA,iBAAiB,EAAE;AAHV,GARoB;AAa/BC,EAAAA,gBAAgB,EAAE;AAChBN,IAAAA,YAAY,EAAE,EADE;AAEhBO,IAAAA,UAAU,EAAE,CAFI;AAGhBC,IAAAA,SAAS,EAAE;AAHK;AAba,CAAlB,CAAf;;AAsBO,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,KAAD,EAA6C;AACtF,kBAII,6BAJJ;AAAA,wCACEC,KADF,CAEIC,MAFJ;AAAA,MAEcC,UAFd,yBAEcA,UAFd;AAAA,MAE0BC,OAF1B,yBAE0BA,OAF1B;AAAA,MAEmCC,KAFnC,yBAEmCA,KAFnC;;AAMA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AAEA,MAAQC,KAAR,GAA2BP,KAA3B,CAAQO,KAAR;AAAA,MAAkBC,IAAlB,6CAA2BR,KAA3B;AACA,SACE,gCAAC,iBAAD,gCAAUQ,IAAV;AAAgB,IAAA,iBAAiB,EAAC,qBAAlC;AAAwD,IAAA,KAAK,EAAE,CAACD,KAAD,CAA/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACG,SAAR,EAAmB;AAAEsB,MAAAA,eAAe,EAAEL;AAAnB,KAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,cAAD;AACE,IAAA,MAAM,EAAErB,iBADV;AAEE,IAAA,QAAQ,EAAEoB,UAFZ;AAGE,IAAA,KAAK,EAAEnB,MAAM,CAACY,gBAHhB;AAIE,IAAA,KAAK,EAAEb,iBAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACS,SAAR,EAAmB;AAAEiB,MAAAA,KAAK,EAAEL;AAAT,KAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAoDC,CAAC,CAAC,eAAD,CAArD,CAPF,CADF,CADF;AAaD,CAvBM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View, ViewProps } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nimport { Warning } from '../../icons';\n\nconst WARNING_ICON_SIZE = 14;\n\nconst styles = StyleSheet.create({\n container: {\n alignContent: 'center',\n alignItems: 'center',\n borderRadius: 20,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n errorText: {\n fontSize: 8,\n justifyContent: 'center',\n paddingHorizontal: 8,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginLeft: 4,\n marginTop: 6,\n },\n});\n\nexport type ImageLoadingFailedIndicatorProps = ViewProps;\n\nexport const ImageLoadingFailedIndicator = (props: ImageLoadingFailedIndicatorProps) => {\n const {\n theme: {\n colors: { accent_red, overlay, white },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n const { style, ...rest } = props;\n return (\n <View {...rest} accessibilityHint='image-loading-error' style={[style]}>\n <View style={[styles.container, { backgroundColor: overlay }]}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.errorText, { color: white }]}>{t('Error loading')}</Text>\n </View>\n </View>\n );\n};\n"]}
@@ -0,0 +1,58 @@
1
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ImageLoadingIndicator = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _reactNative = require("react-native");
15
+
16
+ var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
17
+
18
+ var _excluded = ["style"];
19
+
20
+ var _this = this,
21
+ _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/ImageLoadingIndicator.tsx";
22
+
23
+ var styles = _reactNative.StyleSheet.create({
24
+ container: {
25
+ alignItems: 'center',
26
+ display: 'flex',
27
+ justifyContent: 'center',
28
+ width: '100%'
29
+ }
30
+ });
31
+
32
+ var ImageLoadingIndicator = function ImageLoadingIndicator(props) {
33
+ var _useTheme = (0, _ThemeContext.useTheme)(),
34
+ container = _useTheme.theme.messageSimple.loadingIndicator.container;
35
+
36
+ var style = props.style,
37
+ rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
38
+ return _react["default"].createElement(_reactNative.View, (0, _extends2["default"])({}, rest, {
39
+ accessibilityHint: "image-loading",
40
+ style: [styles.container, container, style],
41
+ __self: _this,
42
+ __source: {
43
+ fileName: _jsxFileName,
44
+ lineNumber: 27,
45
+ columnNumber: 5
46
+ }
47
+ }), _react["default"].createElement(_reactNative.ActivityIndicator, {
48
+ __self: _this,
49
+ __source: {
50
+ fileName: _jsxFileName,
51
+ lineNumber: 28,
52
+ columnNumber: 7
53
+ }
54
+ }));
55
+ };
56
+
57
+ exports.ImageLoadingIndicator = ImageLoadingIndicator;
58
+ //# sourceMappingURL=ImageLoadingIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ImageLoadingIndicator.tsx"],"names":["styles","StyleSheet","create","container","alignItems","display","justifyContent","width","ImageLoadingIndicator","props","theme","messageSimple","loadingIndicator","style","rest"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,OAAO,EAAE,MAFA;AAGTC,IAAAA,cAAc,EAAE,QAHP;AAITC,IAAAA,KAAK,EAAE;AAJE;AADoB,CAAlB,CAAf;;AAWO,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,KAAD,EAAuC;AAC1E,kBAMI,6BANJ;AAAA,MAG0BN,SAH1B,aACEO,KADF,CAEIC,aAFJ,CAGMC,gBAHN,CAG0BT,SAH1B;;AAOA,MAAQU,KAAR,GAA2BJ,KAA3B,CAAQI,KAAR;AAAA,MAAkBC,IAAlB,6CAA2BL,KAA3B;AACA,SACE,gCAAC,iBAAD,gCAAUK,IAAV;AAAgB,IAAA,iBAAiB,EAAC,eAAlC;AAAkD,IAAA,KAAK,EAAE,CAACd,MAAM,CAACG,SAAR,EAAmBA,SAAnB,EAA8BU,KAA9B,CAAzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MACE,gCAAC,8BAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CADF;AAKD,CAdM","sourcesContent":["import React from 'react';\nimport { ActivityIndicator, StyleSheet, View, ViewProps } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n});\n\nexport type ImageLoadingIndicatorProps = ViewProps;\n\nexport const ImageLoadingIndicator = (props: ImageLoadingIndicatorProps) => {\n const {\n theme: {\n messageSimple: {\n loadingIndicator: { container },\n },\n },\n } = useTheme();\n const { style, ...rest } = props;\n return (\n <View {...rest} accessibilityHint='image-loading' style={[styles.container, container, style]}>\n <ActivityIndicator />\n </View>\n );\n};\n"]}