stream-chat-react-native-core 4.3.1 → 4.4.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 +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +27 -25
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/Giphy.js +27 -25
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +11 -7
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +8 -6
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -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/Giphy.tsx +3 -1
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -13
- package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +8 -8
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +2 -2
- package/src/components/MessageList/ScrollToBottomButton.tsx +2 -1
- package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.js.snap +1 -0
- package/src/contexts/themeContext/utils/theme.ts +1 -0
- package/src/version.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Official React Native SDK for
|
|
1
|
+
# Official React Native SDK for Stream Chat
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<a href="https://getstream.io/chat/react-native-chat/tutorial/"><img src="https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/readme/cover.png" alt="react native chat" width="100%" /></a>
|
|
@@ -69,7 +69,8 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
69
69
|
fontWeight: '600'
|
|
70
70
|
},
|
|
71
71
|
giphyHeaderTitle: {
|
|
72
|
-
fontSize: 14
|
|
72
|
+
fontSize: 14,
|
|
73
|
+
marginLeft: 8
|
|
73
74
|
},
|
|
74
75
|
giphyMask: {
|
|
75
76
|
bottom: 8,
|
|
@@ -89,7 +90,8 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
89
90
|
width: '60%'
|
|
90
91
|
},
|
|
91
92
|
selectionContainer: {
|
|
92
|
-
|
|
93
|
+
borderBottomRightRadius: 0,
|
|
94
|
+
borderRadius: 16,
|
|
93
95
|
borderWidth: 1,
|
|
94
96
|
overflow: 'hidden',
|
|
95
97
|
width: 272
|
|
@@ -193,7 +195,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
193
195
|
__self: _this,
|
|
194
196
|
__source: {
|
|
195
197
|
fileName: _jsxFileName,
|
|
196
|
-
lineNumber:
|
|
198
|
+
lineNumber: 200,
|
|
197
199
|
columnNumber: 5
|
|
198
200
|
}
|
|
199
201
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -201,14 +203,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
201
203
|
__self: _this,
|
|
202
204
|
__source: {
|
|
203
205
|
fileName: _jsxFileName,
|
|
204
|
-
lineNumber:
|
|
206
|
+
lineNumber: 208,
|
|
205
207
|
columnNumber: 7
|
|
206
208
|
}
|
|
207
209
|
}, _react["default"].createElement(_icons.GiphyIcon, {
|
|
208
210
|
__self: _this,
|
|
209
211
|
__source: {
|
|
210
212
|
fileName: _jsxFileName,
|
|
211
|
-
lineNumber:
|
|
213
|
+
lineNumber: 209,
|
|
212
214
|
columnNumber: 9
|
|
213
215
|
}
|
|
214
216
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -216,7 +218,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
216
218
|
__self: _this,
|
|
217
219
|
__source: {
|
|
218
220
|
fileName: _jsxFileName,
|
|
219
|
-
lineNumber:
|
|
221
|
+
lineNumber: 210,
|
|
220
222
|
columnNumber: 9
|
|
221
223
|
}
|
|
222
224
|
}, "Giphy"), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -226,7 +228,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
226
228
|
__self: _this,
|
|
227
229
|
__source: {
|
|
228
230
|
fileName: _jsxFileName,
|
|
229
|
-
lineNumber:
|
|
231
|
+
lineNumber: 211,
|
|
230
232
|
columnNumber: 9
|
|
231
233
|
}
|
|
232
234
|
}, "/giphy " + title)), _react["default"].createElement(_reactNative.View, {
|
|
@@ -234,7 +236,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
234
236
|
__self: _this,
|
|
235
237
|
__source: {
|
|
236
238
|
fileName: _jsxFileName,
|
|
237
|
-
lineNumber:
|
|
239
|
+
lineNumber: 215,
|
|
238
240
|
columnNumber: 7
|
|
239
241
|
}
|
|
240
242
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -246,14 +248,14 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
246
248
|
__self: _this,
|
|
247
249
|
__source: {
|
|
248
250
|
fileName: _jsxFileName,
|
|
249
|
-
lineNumber:
|
|
251
|
+
lineNumber: 216,
|
|
250
252
|
columnNumber: 9
|
|
251
253
|
}
|
|
252
254
|
})), _react["default"].createElement(_reactNative.View, {
|
|
253
255
|
__self: _this,
|
|
254
256
|
__source: {
|
|
255
257
|
fileName: _jsxFileName,
|
|
256
|
-
lineNumber:
|
|
258
|
+
lineNumber: 222,
|
|
257
259
|
columnNumber: 7
|
|
258
260
|
}
|
|
259
261
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -261,7 +263,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
261
263
|
__self: _this,
|
|
262
264
|
__source: {
|
|
263
265
|
fileName: _jsxFileName,
|
|
264
|
-
lineNumber:
|
|
266
|
+
lineNumber: 223,
|
|
265
267
|
columnNumber: 9
|
|
266
268
|
}
|
|
267
269
|
}, _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -278,7 +280,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
278
280
|
__self: _this,
|
|
279
281
|
__source: {
|
|
280
282
|
fileName: _jsxFileName,
|
|
281
|
-
lineNumber:
|
|
283
|
+
lineNumber: 224,
|
|
282
284
|
columnNumber: 11
|
|
283
285
|
}
|
|
284
286
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -288,7 +290,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
288
290
|
__self: _this,
|
|
289
291
|
__source: {
|
|
290
292
|
fileName: _jsxFileName,
|
|
291
|
-
lineNumber:
|
|
293
|
+
lineNumber: 237,
|
|
292
294
|
columnNumber: 13
|
|
293
295
|
}
|
|
294
296
|
}, actions == null ? void 0 : actions[2].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -305,7 +307,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
305
307
|
__self: _this,
|
|
306
308
|
__source: {
|
|
307
309
|
fileName: _jsxFileName,
|
|
308
|
-
lineNumber:
|
|
310
|
+
lineNumber: 239,
|
|
309
311
|
columnNumber: 11
|
|
310
312
|
}
|
|
311
313
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -315,7 +317,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
315
317
|
__self: _this,
|
|
316
318
|
__source: {
|
|
317
319
|
fileName: _jsxFileName,
|
|
318
|
-
lineNumber:
|
|
320
|
+
lineNumber: 252,
|
|
319
321
|
columnNumber: 13
|
|
320
322
|
}
|
|
321
323
|
}, actions == null ? void 0 : actions[1].text)), _react["default"].createElement(_reactNative.TouchableOpacity, {
|
|
@@ -331,7 +333,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
331
333
|
__self: _this,
|
|
332
334
|
__source: {
|
|
333
335
|
fileName: _jsxFileName,
|
|
334
|
-
lineNumber:
|
|
336
|
+
lineNumber: 254,
|
|
335
337
|
columnNumber: 11
|
|
336
338
|
}
|
|
337
339
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -341,7 +343,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
341
343
|
__self: _this,
|
|
342
344
|
__source: {
|
|
343
345
|
fileName: _jsxFileName,
|
|
344
|
-
lineNumber:
|
|
346
|
+
lineNumber: 263,
|
|
345
347
|
columnNumber: 13
|
|
346
348
|
}
|
|
347
349
|
}, actions == null ? void 0 : actions[0].text))))) : _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
|
|
@@ -376,7 +378,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
376
378
|
__self: _this,
|
|
377
379
|
__source: {
|
|
378
380
|
fileName: _jsxFileName,
|
|
379
|
-
lineNumber:
|
|
381
|
+
lineNumber: 269,
|
|
380
382
|
columnNumber: 5
|
|
381
383
|
}
|
|
382
384
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -386,7 +388,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
386
388
|
__self: _this,
|
|
387
389
|
__source: {
|
|
388
390
|
fileName: _jsxFileName,
|
|
389
|
-
lineNumber:
|
|
391
|
+
lineNumber: 299,
|
|
390
392
|
columnNumber: 7
|
|
391
393
|
}
|
|
392
394
|
}, _react["default"].createElement(_reactNative.Image, {
|
|
@@ -399,7 +401,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
399
401
|
__self: _this,
|
|
400
402
|
__source: {
|
|
401
403
|
fileName: _jsxFileName,
|
|
402
|
-
lineNumber:
|
|
404
|
+
lineNumber: 306,
|
|
403
405
|
columnNumber: 9
|
|
404
406
|
}
|
|
405
407
|
}), _react["default"].createElement(_reactNative.View, {
|
|
@@ -407,7 +409,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
407
409
|
__self: _this,
|
|
408
410
|
__source: {
|
|
409
411
|
fileName: _jsxFileName,
|
|
410
|
-
lineNumber:
|
|
412
|
+
lineNumber: 312,
|
|
411
413
|
columnNumber: 9
|
|
412
414
|
}
|
|
413
415
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -417,7 +419,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
417
419
|
__self: _this,
|
|
418
420
|
__source: {
|
|
419
421
|
fileName: _jsxFileName,
|
|
420
|
-
lineNumber:
|
|
422
|
+
lineNumber: 313,
|
|
421
423
|
columnNumber: 11
|
|
422
424
|
}
|
|
423
425
|
}, _react["default"].createElement(_Lightning.Lightning, {
|
|
@@ -427,7 +429,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
427
429
|
__self: _this,
|
|
428
430
|
__source: {
|
|
429
431
|
fileName: _jsxFileName,
|
|
430
|
-
lineNumber:
|
|
432
|
+
lineNumber: 320,
|
|
431
433
|
columnNumber: 13
|
|
432
434
|
}
|
|
433
435
|
}), _react["default"].createElement(_reactNative.Text, {
|
|
@@ -437,7 +439,7 @@ var GiphyWithContext = function GiphyWithContext(props) {
|
|
|
437
439
|
__self: _this,
|
|
438
440
|
__source: {
|
|
439
441
|
fileName: _jsxFileName,
|
|
440
|
-
lineNumber:
|
|
442
|
+
lineNumber: 321,
|
|
441
443
|
columnNumber: 13
|
|
442
444
|
}
|
|
443
445
|
}, type == null ? void 0 : type.toUpperCase())))));
|
|
@@ -509,7 +511,7 @@ var Giphy = function Giphy(props) {
|
|
|
509
511
|
__self: _this,
|
|
510
512
|
__source: {
|
|
511
513
|
fileName: _jsxFileName,
|
|
512
|
-
lineNumber:
|
|
514
|
+
lineNumber: 391,
|
|
513
515
|
columnNumber: 5
|
|
514
516
|
}
|
|
515
517
|
}));
|
|
@@ -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","giphyMask","bottom","left","position","giphyMaskText","header","display","padding","selectionContainer","borderBottomLeftRadius","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":";;;;;;;;;AAAA;;AACA;;AAIA;;AAIA;;AAIA;;AAIA;;AAIA;;AACA;;AACA;;AAEA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE;AADL,GADmB;AAI/BC,EAAAA,eAAe,EAAE;AACfC,IAAAA,UAAU,EAAE,QADG;AAEfC,IAAAA,cAAc,EAAE,CAFD;AAGfC,IAAAA,IAAI,EAAE,CAHS;AAIfC,IAAAA,cAAc,EAAE;AAJD,GAJc;AAU/BC,EAAAA,MAAM,EAAE;AACNC,IAAAA,QAAQ,EAAE,EADJ;AAENC,IAAAA,UAAU,EAAE,KAFN;AAGNC,IAAAA,eAAe,EAAE;AAHX,GAVuB;AAe/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,QADD;AAETC,IAAAA,KAAK,EAAE;AAFE,GAfoB;AAmB/BC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE,QADN;AAELC,IAAAA,YAAY,EAAE,CAFT;AAGLC,IAAAA,MAAM,EAAE,GAHH;AAILC,IAAAA,QAAQ,EAAE,GAJL;AAKLL,IAAAA,KAAK,EAAE;AALF,GAnBwB;AA0B/BM,EAAAA,cAAc,EAAE;AACdhB,IAAAA,UAAU,EAAE,QADE;AAEda,IAAAA,YAAY,EAAE,EAFA;AAGdf,IAAAA,aAAa,EAAE,KAHD;AAIdgB,IAAAA,MAAM,EAAE,EAJM;AAKdX,IAAAA,cAAc,EAAE,QALF;AAMdO,IAAAA,KAAK,EAAE;AANO,GA1Be;AAkC/BO,EAAAA,eAAe,EAAE;AACfZ,IAAAA,QAAQ,EAAE,EADK;AAEfC,IAAAA,UAAU,EAAE;AAFG,GAlCc;AAsC/BY,EAAAA,gBAAgB,EAAE;AAChBb,IAAAA,QAAQ,EAAE;AADM,GAtCa;AAyC/Bc,EAAAA,SAAS,EAAE;AACTC,IAAAA,MAAM,EAAE,CADC;AAETC,IAAAA,IAAI,EAAE,CAFG;AAGTC,IAAAA,QAAQ,EAAE;AAHD,GAzCoB;AA8C/BC,EAAAA,aAAa,EAAE;AACblB,IAAAA,QAAQ,EAAE,EADG;AAEbC,IAAAA,UAAU,EAAE;AAFC,GA9CgB;AAkD/BkB,EAAAA,MAAM,EAAE;AACNxB,IAAAA,UAAU,EAAE,QADN;AAENyB,IAAAA,OAAO,EAAE,MAFH;AAGN3B,IAAAA,aAAa,EAAE,KAHT;AAINK,IAAAA,cAAc,EAAE,eAJV;AAKNuB,IAAAA,OAAO,EAAE,CALH;AAMNhB,IAAAA,KAAK,EAAE;AAND,GAlDuB;AA0D/BiB,EAAAA,kBAAkB,EAAE;AAClBC,IAAAA,sBAAsB,EAAE,CADN;AAElBC,IAAAA,WAAW,EAAE,CAFK;AAGlBpB,IAAAA,QAAQ,EAAE,QAHQ;AAIlBC,IAAAA,KAAK,EAAE;AAJW,GA1DW;AAgE/BoB,EAAAA,uBAAuB,EAAE;AACvBlB,IAAAA,SAAS,EAAE,QADY;AAEvBmB,IAAAA,MAAM,EAAE;AAFe,GAhEM;AAoE/BC,EAAAA,IAAI,EAAE;AACJ3B,IAAAA,QAAQ,EAAE,EADN;AAEJC,IAAAA,UAAU,EAAE,KAFR;AAGJC,IAAAA,eAAe,EAAE;AAHb,GApEyB;AAyE/B0B,EAAAA,OAAO,EAAE;AACP5B,IAAAA,QAAQ,EAAE,EADH;AAEPC,IAAAA,UAAU,EAAE,KAFL;AAGPC,IAAAA,eAAe,EAAE;AAHV,GAzEsB;AA8E/B2B,EAAAA,aAAa,EAAE;AACblC,IAAAA,UAAU,EAAE,QADC;AAEba,IAAAA,YAAY,EAAE,EAFD;AAGbgB,IAAAA,WAAW,EAAE,CAHA;AAIbf,IAAAA,MAAM,EAAE,EAJK;AAKbX,IAAAA,cAAc,EAAE,QALH;AAMbO,IAAAA,KAAK,EAAE;AANM;AA9EgB,CAAlB,CAAf;;AAyGA,IAAMyB,gBAAgB,GAAG,SAAnBA,gBAAmB,CAGvBC,KAHuB,EAIpB;AACH,MACEC,wBADF,GAcID,KAdJ,CACEC,wBADF;AAAA,MAEEC,UAFF,GAcIF,KAdJ,CAEEE,UAFF;AAAA,MAGEC,YAHF,GAcIH,KAdJ,CAGEG,YAHF;AAAA,MAIEC,YAJF,GAcIJ,KAdJ,CAIEI,YAJF;AAAA,MAKEC,WALF,GAcIL,KAdJ,CAKEK,WALF;AAAA,MAMEC,OANF,GAcIN,KAdJ,CAMEM,OANF;AAAA,MAOEC,YAPF,GAcIP,KAdJ,CAOEO,WAPF;AAAA,MAQEC,QARF,GAcIR,KAdJ,CAQEQ,OARF;AAAA,MASEC,UATF,GAcIT,KAdJ,CASES,SATF;AAAA,MAUEC,YAVF,GAcIV,KAdJ,CAUEU,YAVF;AAAA,MAWEC,QAXF,GAcIX,KAdJ,CAWEW,QAXF;AAAA,MAYEC,SAZF,GAcIZ,KAdJ,CAYEY,SAZF;AAAA,MAaEC,UAbF,GAcIb,KAdJ,CAaEa,UAbF;AAgBA,MAAQC,OAAR,GAAyEZ,UAAzE,CAAQY,OAAR;AAAA,MAAwBC,SAAxB,GAAyEb,UAAzE,CAAiB3B,KAAjB;AAAA,MAAmCyC,SAAnC,GAAyEd,UAAzE,CAAmCc,SAAnC;AAAA,MAA8CC,SAA9C,GAAyEf,UAAzE,CAA8Ce,SAA9C;AAAA,MAAyDC,KAAzD,GAAyEhB,UAAzE,CAAyDgB,KAAzD;AAAA,MAAgEC,IAAhE,GAAyEjB,UAAzE,CAAgEiB,IAAhE;;AAEA,kBAqBI,6BArBJ;AAAA,kCACEC,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,KAF3B,yBAE2BA,KAF3B;AAAA,MAEkCC,IAFlC,yBAEkCA,IAFlC;AAAA,MAEwCC,SAFxC,yBAEwCA,SAFxC;AAAA,MAEmDC,cAFnD,yBAEmDA,cAFnD;AAAA,MAEmEC,oBAFnE,yBAEmEA,oBAFnE;AAAA,MAEyFC,KAFzF,yBAEyFA,KAFzF;AAAA,8CAGIC,aAHJ,CAIMtD,KAJN;AAAA,MAKQZ,eALR,yBAKQA,eALR;AAAA,MAMQK,MANR,yBAMQA,MANR;AAAA,MAOQI,SAPR,yBAOQA,SAPR;AAAA,MAQQG,KARR,yBAQQA,KARR;AAAA,MASQK,cATR,yBASQA,cATR;AAAA,MAUQC,eAVR,yBAUQA,eAVR;AAAA,MAWQC,gBAXR,yBAWQA,gBAXR;AAAA,MAYQC,SAZR,yBAYQA,SAZR;AAAA,MAaQI,aAbR,yBAaQA,aAbR;AAAA,MAcQC,MAdR,yBAcQA,MAdR;AAAA,MAeQG,kBAfR,yBAeQA,kBAfR;AAAA,MAgBQK,IAhBR,yBAgBQA,IAhBR;AAAA,MAiBQC,OAjBR,yBAiBQA,OAjBR;;AAuBA,MAAIiC,GAAG,GAAGd,SAAS,IAAIC,SAAvB;AACA,MAAMc,eAAoD,GAAG,EAA7D;;AAEA,MAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3BpB,IAAAA,SAAS,CAAC,CAACN,OAAD,CAAD,CAAT;AACAK,IAAAA,QAAQ,CAAC;AAAEsB,MAAAA,SAAS,EAAE3B,OAAO,CAAC4B,EAArB;AAAyBC,MAAAA,GAAG,EAAEL;AAA9B,KAAD,CAAR;AACAjB,IAAAA,UAAU,CAAC,SAAD,CAAV;AACD,GAJD;;AAMA,MAAIM,IAAI,KAAK,OAAT,IAAoBJ,SAAxB,EAAmC;AACjC,QAAMqB,gBAAgB,GAAGrB,SAAS,CAACZ,YAAD,CAAlC;AACA2B,IAAAA,GAAG,GAAGM,gBAAgB,CAACD,GAAvB;AACAJ,IAAAA,eAAe,CAACrD,MAAhB,GAAyB2D,UAAU,CAACD,gBAAgB,CAAC1D,MAAlB,CAAnC;AACAqD,IAAAA,eAAe,CAACzD,KAAhB,GAAwB+D,UAAU,CAACD,gBAAgB,CAAC9D,KAAlB,CAAlC;AACD;;AAED,MAAI,CAACwD,GAAL,EAAU,OAAO,IAAP;AAEV,SAAOhB,OAAO,GACZ,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLxD,MAAM,CAACiC,kBADF,EAEL;AAAE+C,MAAAA,eAAe,EAAEV,KAAnB;AAA0BW,MAAAA,WAAW,EAAKhB,KAAL;AAArC,KAFK,EAGLhC,kBAHK,CADT;AAME,IAAA,MAAM,EAAC,yBANT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjC,MAAM,CAAC8B,MAAR,EAAgBA,MAAhB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,gBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAEE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAAC9B,MAAM,CAACuB,eAAR,EAAyBA,eAAzB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAFF,EAGE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACwB,gBAAR,EAA0BA,gBAA1B,EAA4C;AAAE0D,MAAAA,KAAK,EAAEf;AAAT,KAA5C,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAEYP,KAFZ,CAHF,CARF,EAeE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE5D,MAAM,CAACoC,uBAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,MAAM,EAAE;AAAEoC,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAACxE,MAAM,CAACiB,KAAR,EAAewD,eAAf,EAAgCxD,KAAhC,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CAfF,EAsBE,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAEjB,MAAM,CAACG,UAApB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAIqD,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAa2B,IAAb,IAAqB3B,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlC,IAA2CtC,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACU,OAAO,CAAC,CAAD,CAAP,CAAW2B,IAAZ,EAAkB3B,OAAO,CAAC,CAAD,CAAP,CAAW4B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CACLpF,MAAM,CAACK,eADF,EAEL;AAAE4E,MAAAA,WAAW,EAAEb,cAAf;AAA+BiB,MAAAA,gBAAgB,EAAE;AAAjD,KAFK,EAGLhF,eAHK,CANT;AAWE,IAAA,MAAM,GAAKmD,OAAL,oBAAKA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlB,oBAXR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAaE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpF,MAAM,CAACU,MAAR,EAAgB;AAAEwE,MAAAA,KAAK,EAAEhB;AAAT,KAAhB,EAAiCxD,MAAjC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAwD8C,OAAxD,oBAAwDA,OAAO,CAAG,CAAH,CAAP,CAAa8B,IAArE,CAbF,CADF,EAgBE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAI9B,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAa2B,IAAb,IAAqB3B,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlC,IAA2CtC,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACU,OAAO,CAAC,CAAD,CAAP,CAAW2B,IAAZ,EAAkB3B,OAAO,CAAC,CAAD,CAAP,CAAW4B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CACLpF,MAAM,CAACK,eADF,EAEL;AAAE4E,MAAAA,WAAW,EAAEb,cAAf;AAA+BiB,MAAAA,gBAAgB,EAAE;AAAjD,KAFK,EAGLhF,eAHK,CANT;AAWE,IAAA,MAAM,GAAKmD,OAAL,oBAAKA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlB,oBAXR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAaE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpF,MAAM,CAACuC,OAAR,EAAiB;AAAE2C,MAAAA,KAAK,EAAEhB;AAAT,KAAjB,EAAkC3B,OAAlC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA0DiB,OAA1D,oBAA0DA,OAAO,CAAG,CAAH,CAAP,CAAa8B,IAAvE,CAbF,CAhBF,EA+BE,gCAAC,6BAAD;AACE,IAAA,OAAO,EAAE,mBAAM;AACb,UAAI9B,OAAO,QAAP,IAAAA,OAAO,CAAG,CAAH,CAAP,CAAa2B,IAAb,IAAqB3B,OAArB,YAAqBA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlC,IAA2CtC,YAA/C,EAA6D;AAC3DA,QAAAA,YAAY,CAACU,OAAO,CAAC,CAAD,CAAP,CAAW2B,IAAZ,EAAkB3B,OAAO,CAAC,CAAD,CAAP,CAAW4B,KAA7B,CAAZ;AACD;AACF,KALH;AAME,IAAA,KAAK,EAAE,CAACpF,MAAM,CAACK,eAAR,EAAyB;AAAE4E,MAAAA,WAAW,EAAEb;AAAf,KAAzB,EAA0D/D,eAA1D,CANT;AAOE,IAAA,MAAM,GAAKmD,OAAL,oBAAKA,OAAO,CAAG,CAAH,CAAP,CAAa4B,KAAlB,oBAPR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KASE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACpF,MAAM,CAACsC,IAAR,EAAc;AAAE4C,MAAAA,KAAK,EAAElB;AAAT,KAAd,EAAsC1B,IAAtC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAA2DkB,OAA3D,oBAA2DA,OAAO,CAAG,CAAH,CAAP,CAAa8B,IAAxE,CATF,CA/BF,CADF,CAtBF,CADY,GAsEZ,gCAAC,6BAAD;AACE,IAAA,QAAQ,EAAElC,YADZ;AAEE,IAAA,WAAW,EAAE,qBAACmC,KAAD,EAAW;AACtB,UAAItC,YAAJ,EAAiB;AACfA,QAAAA,YAAW,CAAC;AACVuC,UAAAA,OAAO,EAAE,OADC;AAEVD,UAAAA,KAAK,EAALA;AAFU,SAAD,CAAX;AAID;AACF,KATH;AAUE,IAAA,OAAO,EAAE,iBAACA,KAAD,EAAW;AAClB,UAAIrC,QAAJ,EAAa;AACXA,QAAAA,QAAO,CAAC;AACNuC,UAAAA,cAAc,EAAEf,cADV;AAENc,UAAAA,OAAO,EAAE,OAFH;AAGND,UAAAA,KAAK,EAALA;AAHM,SAAD,CAAP;AAKD;AACF,KAlBH;AAmBE,IAAA,SAAS,EAAE,mBAACA,KAAD,EAAW;AACpB,UAAIpC,UAAJ,EAAe;AACbA,QAAAA,UAAS,CAAC;AACRqC,UAAAA,OAAO,EAAE,OADD;AAERD,UAAAA,KAAK,EAALA;AAFQ,SAAD,CAAT;AAID;AACF,KA1BH;AA2BE,IAAA,MAAM,EAAC;AA3BT,KA4BM5C,wBA5BN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MA8BE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACL3C,MAAM,CAACc,SADF,EAEL;AAAEkE,MAAAA,eAAe,EAAEjC,WAAW,GAAGqB,cAAH,GAAoBE;AAAlD,KAFK,EAGLxD,SAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,SADb;AAEE,IAAA,MAAM,EAAE;AAAE0D,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAACxE,MAAM,CAACiB,KAAR,EAAewD,eAAf,EAAgCxD,KAAhC,CAHT;AAIE,IAAA,MAAM,EAAC,wBAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAPF,EAaE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACjB,MAAM,CAACyB,SAAR,EAAmBA,SAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLzB,MAAM,CAACsB,cADF,EAEL;AAAE0D,MAAAA,eAAe,EAAEX;AAAnB,KAFK,EAGL/C,cAHK,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOE,gCAAC,oBAAD;AAAW,IAAA,MAAM,EAAE,EAAnB;AAAuB,IAAA,QAAQ,EAAEgD,KAAjC;AAAwC,IAAA,KAAK,EAAE,EAA/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAPF,EAQE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACtE,MAAM,CAAC6B,aAAR,EAAuB;AAAEqD,MAAAA,KAAK,EAAEZ;AAAT,KAAvB,EAAyCzC,aAAzC,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACGgC,IADH,oBACGA,IAAI,CAAE6B,WAAN,EADH,CARF,CADF,CAbF,CA9BF,CAtEF;AAkID,CAlMD;;AAoMA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CACfC,SADe,EAEfC,SAFe,EAGZ;AACH,8BAIID,SAJJ,CACEhD,UADF;AAAA,MACyBkD,WADzB,yBACgBtC,OADhB;AAAA,MACiDuC,YADjD,yBACsCrC,SADtC;AAAA,MAC0EsC,YAD1E,yBAC+DrC,SAD/D;AAAA,MAEgBsC,gBAFhB,GAIIL,SAJJ,CAEE/C,YAFF;AAAA,MAGeqD,eAHf,GAIIN,SAJJ,CAGE7C,WAHF;AAKA,8BAII8C,SAJJ,CACEjD,UADF;AAAA,MACyBuD,WADzB,yBACgB3C,OADhB;AAAA,MACiD4C,YADjD,yBACsC1C,SADtC;AAAA,MAC0E2C,YAD1E,yBAC+D1C,SAD/D;AAAA,MAEgB2C,gBAFhB,GAIIT,SAJJ,CAEEhD,YAFF;AAAA,MAGe0D,eAHf,GAIIV,SAJJ,CAGE9C,WAHF;AAMA,MAAMyD,aAAa,GAAGT,YAAY,KAAKK,YAAvC;AACA,MAAI,CAACI,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,aAAa,GAAGT,YAAY,KAAKK,YAAvC;AACA,MAAI,CAACI,aAAL,EAAoB,OAAO,KAAP;AAEpB,MAAMC,YAAY,GAChBC,KAAK,CAACC,OAAN,CAAcd,WAAd,MAA+Ba,KAAK,CAACC,OAAN,CAAcT,WAAd,CAA/B,KACEQ,KAAK,CAACC,OAAN,CAAcd,WAAd,KACAa,KAAK,CAACC,OAAN,CAAcT,WAAd,CADA,IAEAL,WAAW,CAACe,MAAZ,KAAuBV,WAAW,CAACU,MAFpC,IAGCf,WAAW,KAAKK,WAJlB,CADF;AAMA,MAAI,CAACO,YAAL,EAAmB,OAAO,KAAP;AAEnB,MAAMI,iBAAiB,GAAGb,gBAAgB,KAAKK,gBAA/C;AACA,MAAI,CAACQ,iBAAL,EAAwB,OAAO,KAAP;AAExB,MAAMC,gBAAgB,GAAGb,eAAe,KAAKK,eAA7C;AACA,MAAI,CAACQ,gBAAL,EAAuB,OAAO,KAAP;AAEvB,SAAO,IAAP;AACD,CApCD;;AAsCA,IAAMC,aAAa,GAAGC,kBAAMC,IAAN,CAAWzE,gBAAX,EAA6BkD,QAA7B,CAAtB;;AAWO,IAAMwB,KAAK,GAAG,SAARA,KAAQ,CAGnBzE,KAHmB,EAIhB;AACH,2BACE,wCADF;AAAA,MAAQI,YAAR,sBAAQA,YAAR;AAAA,MAAsBC,WAAtB,sBAAsBA,WAAtB;AAAA,MAAmCC,OAAnC,sBAAmCA,OAAnC;AAAA,MAA4CC,WAA5C,sBAA4CA,WAA5C;AAAA,MAAyDC,OAAzD,sBAAyDA,OAAzD;AAAA,MAAkEC,SAAlE,sBAAkEA,SAAlE;AAAA,MAA6EC,YAA7E,sBAA6EA,YAA7E;;AAEA,4BAAmD,0CAAnD;AAAA,MAAQT,wBAAR,uBAAQA,wBAAR;AAAA,MAAkCE,YAAlC,uBAAkCA,YAAlC;;AACA,8BAAgC,kDAAhC;AAAA,MAAQQ,QAAR,yBAAQA,QAAR;AAAA,MAAkBC,SAAlB,yBAAkBA,SAAlB;;AACA,2BAAuB,wCAAvB;AAAA,MAAQC,UAAR,sBAAQA,UAAR;;AACA,SACE,gCAAC,aAAD;AAEIZ,IAAAA,wBAAwB,EAAxBA,wBAFJ;AAGIE,IAAAA,YAAY,EAAZA,YAHJ;AAIIC,IAAAA,YAAY,EAAZA,YAJJ;AAKIC,IAAAA,WAAW,EAAXA,WALJ;AAMIC,IAAAA,OAAO,EAAPA,OANJ;AAOIC,IAAAA,WAAW,EAAXA,WAPJ;AAQIC,IAAAA,OAAO,EAAPA,OARJ;AASIC,IAAAA,SAAS,EAATA,SATJ;AAUIC,IAAAA,YAAY,EAAZA,YAVJ;AAWIC,IAAAA,QAAQ,EAARA,QAXJ;AAYIC,IAAAA,SAAS,EAATA,SAZJ;AAaIC,IAAAA,UAAU,EAAVA;AAbJ,KAeMb,KAfN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAmBD,CA7BM;;;AA+BPyE,KAAK,CAACC,WAAN,GAAoB,6BAApB","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 },\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 borderBottomLeftRadius: 8,\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","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"]}
|
|
@@ -48,7 +48,7 @@ var styles = _reactNative.StyleSheet.create({
|
|
|
48
48
|
|
|
49
49
|
var screenHeight = (0, _utils.vh)(100);
|
|
50
50
|
|
|
51
|
-
var fullScreenHeight = _reactNative.Dimensions.get('
|
|
51
|
+
var fullScreenHeight = _reactNative.Dimensions.get('window').height;
|
|
52
52
|
|
|
53
53
|
var AttachmentImage = function AttachmentImage(props) {
|
|
54
54
|
var ImageOverlaySelectedComponent = props.ImageOverlaySelectedComponent,
|
|
@@ -337,9 +337,13 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
337
337
|
var statusBarHeight = (_StatusBar$currentHei = _reactNative.StatusBar.currentHeight) != null ? _StatusBar$currentHei : 0;
|
|
338
338
|
var bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;
|
|
339
339
|
var androidBottomBarHeightAdjustment = _reactNative.Platform.OS === 'android' ? bottomBarHeight === statusBarHeight ? translucentStatusBar ? 0 : (_StatusBar$currentHei2 = _reactNative.StatusBar.currentHeight) != null ? _StatusBar$currentHei2 : 0 : translucentStatusBar ? bottomBarHeight > statusBarHeight ? -bottomBarHeight + statusBarHeight : bottomBarHeight > 0 ? -statusBarHeight : 0 : bottomBarHeight > 0 ? 0 : statusBarHeight : 0;
|
|
340
|
-
var
|
|
341
|
-
return
|
|
342
|
-
}, [
|
|
340
|
+
var initialSnapPoint = (0, _react.useMemo)(function () {
|
|
341
|
+
return (attachmentPickerBottomSheetHeight != null ? attachmentPickerBottomSheetHeight : _reactNative.Platform.OS === 'android') ? 308 + (fullScreenHeight - screenHeight + androidBottomBarHeightAdjustment) - handleHeight : 308 + (fullScreenHeight - screenHeight + androidBottomBarHeightAdjustment);
|
|
342
|
+
}, [attachmentPickerBottomSheetHeight, androidBottomBarHeightAdjustment, fullScreenHeight, handleHeight, screenHeight]);
|
|
343
|
+
var finalSnapPoint = (0, _react.useMemo)(function () {
|
|
344
|
+
return _reactNative.Platform.OS === 'android' ? fullScreenHeight - topInset - handleHeight : fullScreenHeight - topInset;
|
|
345
|
+
}, [fullScreenHeight, handleHeight, topInset]);
|
|
346
|
+
var snapPoints = [initialSnapPoint, finalSnapPoint];
|
|
343
347
|
return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_bottomSheet["default"], {
|
|
344
348
|
containerHeight: fullScreenHeight,
|
|
345
349
|
enablePanDownToClose: true,
|
|
@@ -354,7 +358,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
354
358
|
__self: _this,
|
|
355
359
|
__source: {
|
|
356
360
|
fileName: _jsxFileName,
|
|
357
|
-
lineNumber:
|
|
361
|
+
lineNumber: 361,
|
|
358
362
|
columnNumber: 9
|
|
359
363
|
}
|
|
360
364
|
}, _react["default"].createElement(_bottomSheet.BottomSheetFlatList, {
|
|
@@ -373,7 +377,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
373
377
|
__self: _this,
|
|
374
378
|
__source: {
|
|
375
379
|
fileName: _jsxFileName,
|
|
376
|
-
lineNumber:
|
|
380
|
+
lineNumber: 377,
|
|
377
381
|
columnNumber: 11
|
|
378
382
|
}
|
|
379
383
|
})), selectedPicker === 'images' && photoError && _react["default"].createElement(AttachmentPickerError, {
|
|
@@ -384,7 +388,7 @@ var AttachmentPicker = _react["default"].forwardRef(function (props, ref) {
|
|
|
384
388
|
__self: _this,
|
|
385
389
|
__source: {
|
|
386
390
|
fileName: _jsxFileName,
|
|
387
|
-
lineNumber:
|
|
391
|
+
lineNumber: 392,
|
|
388
392
|
columnNumber: 11
|
|
389
393
|
}
|
|
390
394
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AttachmentPicker.tsx"],"names":["styles","StyleSheet","create","container","flexGrow","overlay","alignItems","flex","screenHeight","fullScreenHeight","Dimensions","get","height","AttachmentImage","props","ImageOverlaySelectedComponent","numberOfAttachmentPickerImageColumns","onPress","selected","uri","theme","attachmentPicker","image","imageOverlay","colors","size","margin","width","backgroundColor","renderImage","item","asset","maxNumberOfFiles","setSelectedImages","images","filter","length","AttachmentPicker","React","forwardRef","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","numberOfAttachmentImagesToLoadPerCall","translucentStatusBar","bottomSheetContentContainer","white","closePicker","selectedImages","selectedPicker","setSelectedPicker","topInset","currentIndex","setCurrentIndex","endCursor","setEndCursor","photoError","setPhotoError","hasNextPage","setHasNextPage","loadingPhotos","setLoadingPhotos","photos","setPhotos","hideAttachmentPicker","undefined","current","close","getMorePhotos","after","first","results","assets","console","log","backAction","backHandler","BackHandler","addEventListener","remove","keyboardSubscription","Platform","OS","Keyboard","addListener","removeListener","selectedPhotos","map","some","handleHeight","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidBottomBarHeightAdjustment","snapPoints","index","opacity","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n BackHandler,\n Dimensions,\n ImageBackground,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport BottomSheet, {\n BottomSheetFlatList,\n BottomSheetHandleProps,\n TouchableOpacity,\n} from '@gorhom/bottom-sheet';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Asset, getPhotos } from '../../native';\nimport { vh, vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n});\n\nconst screenHeight = vh(100);\nconst fullScreenHeight = Dimensions.get('screen').height;\n\ntype AttachmentImageProps = {\n ImageOverlaySelectedComponent: React.ComponentType;\n onPress: () => void;\n selected: boolean;\n uri: string;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n ImageOverlaySelectedComponent,\n numberOfAttachmentPickerImageColumns,\n onPress,\n selected,\n uri,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n return (\n <TouchableOpacity onPress={onPress}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst renderImage = ({\n item,\n}: {\n item: {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n maxNumberOfFiles: number;\n selected: boolean;\n setSelectedImages: React.Dispatch<React.SetStateAction<Asset[]>>;\n numberOfAttachmentPickerImageColumns?: number;\n };\n}) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n selected,\n setSelectedImages,\n } = item;\n const onPress = () => {\n if (selected) {\n setSelectedImages((images) => images.filter((image) => image.uri !== asset.uri));\n } else {\n setSelectedImages((images) => {\n if (images.length >= maxNumberOfFiles) {\n return images;\n }\n return [...images, asset];\n });\n }\n };\n\n return (\n <AttachmentImage\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n onPress={onPress}\n selected={selected}\n uri={asset.uri}\n />\n );\n};\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedImages,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const [endCursor, setEndCursor] = useState<string>();\n const [photoError, setPhotoError] = useState(false);\n const [hasNextPage, setHasNextPage] = useState(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n\n const hideAttachmentPicker = () => {\n setSelectedPicker(undefined);\n if ((ref as React.MutableRefObject<BottomSheet>)?.current) {\n (ref as React.MutableRefObject<BottomSheet>).current.close();\n }\n };\n\n const getMorePhotos = async () => {\n if (hasNextPage && !loadingPhotos && currentIndex > -1 && selectedPicker === 'images') {\n setLoadingPhotos(true);\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n if (endCursor) {\n setPhotos([...photos, ...results.assets]);\n } else {\n setPhotos(results.assets);\n }\n setEndCursor(results.endCursor);\n setHasNextPage(results.hasNextPage || false);\n } catch (error) {\n console.log(error);\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n };\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker]);\n\n useEffect(() => {\n const keyboardSubscription =\n Platform.OS === 'ios'\n ? Keyboard.addListener('keyboardWillShow', hideAttachmentPicker)\n : Keyboard.addListener('keyboardDidShow', hideAttachmentPicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n if (Platform.OS === 'ios') {\n Keyboard.removeListener('keyboardWillShow', hideAttachmentPicker);\n } else {\n Keyboard.removeListener('keyboardDidShow', hideAttachmentPicker);\n }\n };\n }, []);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n setEndCursor(undefined);\n setHasNextPage(true);\n }\n }\n }, [currentIndex]);\n\n useEffect(() => {\n if (\n selectedPicker === 'images' &&\n endCursor === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n setPhotoError(false);\n getMorePhotos();\n }\n }, [currentIndex, selectedPicker]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n selected: selectedImages.some((image) => image.uri === asset.uri),\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n const androidBottomBarHeightAdjustment =\n Platform.OS === 'android'\n ? bottomBarHeight === statusBarHeight\n ? translucentStatusBar\n ? 0\n : StatusBar.currentHeight ?? 0\n : translucentStatusBar\n ? bottomBarHeight > statusBarHeight\n ? -bottomBarHeight + statusBarHeight\n : bottomBarHeight > 0\n ? -statusBarHeight\n : 0\n : bottomBarHeight > 0\n ? 0\n : statusBarHeight\n : 0;\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = useMemo(\n () => [\n attachmentPickerBottomSheetHeight ??\n 308 + (fullScreenHeight - screenHeight + androidBottomBarHeightAdjustment) - handleHeight,\n fullScreenHeight - topInset - handleHeight,\n ],\n [\n androidBottomBarHeightAdjustment,\n attachmentPickerBottomSheetHeight,\n fullScreenHeight,\n handleHeight,\n screenHeight,\n topInset,\n ],\n );\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={(index: number) => setCurrentIndex(index)}\n ref={ref}\n snapPoints={snapPoints}\n >\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={getMorePhotos}\n renderItem={renderImage}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={attachmentPickerBottomSheetHeight}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"]}
|
|
1
|
+
{"version":3,"sources":["AttachmentPicker.tsx"],"names":["styles","StyleSheet","create","container","flexGrow","overlay","alignItems","flex","screenHeight","fullScreenHeight","Dimensions","get","height","AttachmentImage","props","ImageOverlaySelectedComponent","numberOfAttachmentPickerImageColumns","onPress","selected","uri","theme","attachmentPicker","image","imageOverlay","colors","size","margin","width","backgroundColor","renderImage","item","asset","maxNumberOfFiles","setSelectedImages","images","filter","length","AttachmentPicker","React","forwardRef","ref","AttachmentPickerBottomSheetHandle","attachmentPickerBottomSheetHandleHeight","attachmentPickerBottomSheetHeight","AttachmentPickerError","attachmentPickerErrorButtonText","AttachmentPickerErrorImage","attachmentPickerErrorText","numberOfAttachmentImagesToLoadPerCall","translucentStatusBar","bottomSheetContentContainer","white","closePicker","selectedImages","selectedPicker","setSelectedPicker","topInset","currentIndex","setCurrentIndex","endCursor","setEndCursor","photoError","setPhotoError","hasNextPage","setHasNextPage","loadingPhotos","setLoadingPhotos","photos","setPhotos","hideAttachmentPicker","undefined","current","close","getMorePhotos","after","first","results","assets","console","log","backAction","backHandler","BackHandler","addEventListener","remove","keyboardSubscription","Platform","OS","Keyboard","addListener","removeListener","selectedPhotos","map","some","handleHeight","statusBarHeight","StatusBar","currentHeight","bottomBarHeight","androidBottomBarHeightAdjustment","initialSnapPoint","finalSnapPoint","snapPoints","index","opacity","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n BackHandler,\n Dimensions,\n ImageBackground,\n Keyboard,\n Platform,\n StatusBar,\n StyleSheet,\n View,\n} from 'react-native';\n\nimport BottomSheet, {\n BottomSheetFlatList,\n BottomSheetHandleProps,\n TouchableOpacity,\n} from '@gorhom/bottom-sheet';\n\nimport type { AttachmentPickerErrorProps } from './components/AttachmentPickerError';\n\nimport { useAttachmentPickerContext } from '../../contexts/attachmentPickerContext/AttachmentPickerContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Asset, getPhotos } from '../../native';\nimport { vh, vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n flexGrow: 1,\n },\n overlay: {\n alignItems: 'flex-end',\n flex: 1,\n },\n});\n\nconst screenHeight = vh(100);\nconst fullScreenHeight = Dimensions.get('window').height;\n\ntype AttachmentImageProps = {\n ImageOverlaySelectedComponent: React.ComponentType;\n onPress: () => void;\n selected: boolean;\n uri: string;\n numberOfAttachmentPickerImageColumns?: number;\n};\n\nconst AttachmentImage: React.FC<AttachmentImageProps> = (props) => {\n const {\n ImageOverlaySelectedComponent,\n numberOfAttachmentPickerImageColumns,\n onPress,\n selected,\n uri,\n } = props;\n const {\n theme: {\n attachmentPicker: { image, imageOverlay },\n colors: { overlay },\n },\n } = useTheme();\n\n const size = vw(100) / (numberOfAttachmentPickerImageColumns || 3) - 2;\n\n return (\n <TouchableOpacity onPress={onPress}>\n <ImageBackground\n source={{ uri }}\n style={[\n {\n height: size,\n margin: 1,\n width: size,\n },\n image,\n ]}\n >\n {selected && (\n <View style={[styles.overlay, { backgroundColor: overlay }, imageOverlay]}>\n <ImageOverlaySelectedComponent />\n </View>\n )}\n </ImageBackground>\n </TouchableOpacity>\n );\n};\n\nconst renderImage = ({\n item,\n}: {\n item: {\n asset: Asset;\n ImageOverlaySelectedComponent: React.ComponentType;\n maxNumberOfFiles: number;\n selected: boolean;\n setSelectedImages: React.Dispatch<React.SetStateAction<Asset[]>>;\n numberOfAttachmentPickerImageColumns?: number;\n };\n}) => {\n const {\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n selected,\n setSelectedImages,\n } = item;\n const onPress = () => {\n if (selected) {\n setSelectedImages((images) => images.filter((image) => image.uri !== asset.uri));\n } else {\n setSelectedImages((images) => {\n if (images.length >= maxNumberOfFiles) {\n return images;\n }\n return [...images, asset];\n });\n }\n };\n\n return (\n <AttachmentImage\n ImageOverlaySelectedComponent={ImageOverlaySelectedComponent}\n numberOfAttachmentPickerImageColumns={numberOfAttachmentPickerImageColumns}\n onPress={onPress}\n selected={selected}\n uri={asset.uri}\n />\n );\n};\n\nexport type AttachmentPickerProps = {\n /**\n * Custom UI component to render [draggable handle](https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/docs/1.png) of attachment picker.\n *\n * **Default** [AttachmentPickerBottomSheetHandle](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerBottomSheetHandle.tsx)\n */\n AttachmentPickerBottomSheetHandle: React.FC<BottomSheetHandleProps>;\n /**\n * Custom UI component to render error component while opening attachment picker.\n *\n * **Default** [AttachmentPickerError](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerError.tsx)\n */\n AttachmentPickerError: React.ComponentType<AttachmentPickerErrorProps>;\n /**\n * Custom UI component to render error image for attachment picker\n *\n * **Default** [AttachmentPickerErrorImage](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/AttachmentPickerErrorImage.tsx)\n */\n AttachmentPickerErrorImage: React.ComponentType;\n /**\n * Custom UI component to render overlay component, that shows up on top of [selected image](https://github.com/GetStream/stream-chat-react-native/blob/master/screenshots/docs/1.png) (with tick mark)\n *\n * **Default** [ImageOverlaySelectedComponent](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/AttachmentPicker/components/ImageOverlaySelectedComponent.tsx)\n */\n ImageOverlaySelectedComponent: React.ComponentType;\n attachmentPickerBottomSheetHandleHeight?: number;\n attachmentPickerBottomSheetHeight?: number;\n attachmentPickerErrorButtonText?: string;\n attachmentPickerErrorText?: string;\n numberOfAttachmentImagesToLoadPerCall?: number;\n numberOfAttachmentPickerImageColumns?: number;\n translucentStatusBar?: boolean;\n};\n\nexport const AttachmentPicker = React.forwardRef(\n (props: AttachmentPickerProps, ref: React.ForwardedRef<BottomSheet>) => {\n const {\n AttachmentPickerBottomSheetHandle,\n attachmentPickerBottomSheetHandleHeight,\n attachmentPickerBottomSheetHeight,\n AttachmentPickerError,\n attachmentPickerErrorButtonText,\n AttachmentPickerErrorImage,\n attachmentPickerErrorText,\n ImageOverlaySelectedComponent,\n numberOfAttachmentImagesToLoadPerCall,\n numberOfAttachmentPickerImageColumns,\n translucentStatusBar,\n } = props;\n\n const {\n theme: {\n attachmentPicker: { bottomSheetContentContainer },\n colors: { white },\n },\n } = useTheme();\n const {\n closePicker,\n maxNumberOfFiles,\n selectedImages,\n selectedPicker,\n setSelectedImages,\n setSelectedPicker,\n topInset,\n } = useAttachmentPickerContext();\n\n const [currentIndex, setCurrentIndex] = useState(-1);\n const [endCursor, setEndCursor] = useState<string>();\n const [photoError, setPhotoError] = useState(false);\n const [hasNextPage, setHasNextPage] = useState(true);\n const [loadingPhotos, setLoadingPhotos] = useState(false);\n const [photos, setPhotos] = useState<Asset[]>([]);\n\n const hideAttachmentPicker = () => {\n setSelectedPicker(undefined);\n if ((ref as React.MutableRefObject<BottomSheet>)?.current) {\n (ref as React.MutableRefObject<BottomSheet>).current.close();\n }\n };\n\n const getMorePhotos = async () => {\n if (hasNextPage && !loadingPhotos && currentIndex > -1 && selectedPicker === 'images') {\n setLoadingPhotos(true);\n try {\n const results = await getPhotos({\n after: endCursor,\n first: numberOfAttachmentImagesToLoadPerCall ?? 60,\n });\n if (endCursor) {\n setPhotos([...photos, ...results.assets]);\n } else {\n setPhotos(results.assets);\n }\n setEndCursor(results.endCursor);\n setHasNextPage(results.hasNextPage || false);\n } catch (error) {\n console.log(error);\n setPhotoError(true);\n }\n setLoadingPhotos(false);\n }\n };\n\n useEffect(() => {\n const backAction = () => {\n if (selectedPicker) {\n setSelectedPicker(undefined);\n closePicker();\n return true;\n }\n\n return false;\n };\n\n const backHandler = BackHandler.addEventListener('hardwareBackPress', backAction);\n\n return () => backHandler.remove();\n }, [selectedPicker]);\n\n useEffect(() => {\n const keyboardSubscription =\n Platform.OS === 'ios'\n ? Keyboard.addListener('keyboardWillShow', hideAttachmentPicker)\n : Keyboard.addListener('keyboardDidShow', hideAttachmentPicker);\n\n return () => {\n if (keyboardSubscription?.remove) {\n keyboardSubscription.remove();\n return;\n }\n\n // To keep compatibility with older versions of React Native, where `remove()` is not available\n if (Platform.OS === 'ios') {\n Keyboard.removeListener('keyboardWillShow', hideAttachmentPicker);\n } else {\n Keyboard.removeListener('keyboardDidShow', hideAttachmentPicker);\n }\n };\n }, []);\n\n useEffect(() => {\n if (currentIndex < 0) {\n setSelectedPicker(undefined);\n if (!loadingPhotos) {\n setEndCursor(undefined);\n setHasNextPage(true);\n }\n }\n }, [currentIndex]);\n\n useEffect(() => {\n if (\n selectedPicker === 'images' &&\n endCursor === undefined &&\n currentIndex > -1 &&\n !loadingPhotos\n ) {\n setPhotoError(false);\n getMorePhotos();\n }\n }, [currentIndex, selectedPicker]);\n\n const selectedPhotos = photos.map((asset) => ({\n asset,\n ImageOverlaySelectedComponent,\n maxNumberOfFiles,\n numberOfAttachmentPickerImageColumns,\n selected: selectedImages.some((image) => image.uri === asset.uri),\n setSelectedImages,\n }));\n\n const handleHeight = attachmentPickerBottomSheetHandleHeight || 20;\n\n /**\n * This is to handle issues with Android measurements coming back incorrect.\n * If the StatusBar height is perfectly 1/2 of the difference between the two\n * dimensions for screen and window, it is incorrect and we need to account for\n * this. If you use a translucent header bar more adjustments are needed.\n */\n const statusBarHeight = StatusBar.currentHeight ?? 0;\n const bottomBarHeight = fullScreenHeight - screenHeight - statusBarHeight;\n const androidBottomBarHeightAdjustment =\n Platform.OS === 'android'\n ? bottomBarHeight === statusBarHeight\n ? translucentStatusBar\n ? 0\n : StatusBar.currentHeight ?? 0\n : translucentStatusBar\n ? bottomBarHeight > statusBarHeight\n ? -bottomBarHeight + statusBarHeight\n : bottomBarHeight > 0\n ? -statusBarHeight\n : 0\n : bottomBarHeight > 0\n ? 0\n : statusBarHeight\n : 0;\n\n const initialSnapPoint = useMemo(\n () =>\n attachmentPickerBottomSheetHeight ?? Platform.OS === 'android'\n ? 308 +\n (fullScreenHeight - screenHeight + androidBottomBarHeightAdjustment) -\n handleHeight\n : 308 + (fullScreenHeight - screenHeight + androidBottomBarHeightAdjustment),\n [\n attachmentPickerBottomSheetHeight,\n androidBottomBarHeightAdjustment,\n fullScreenHeight,\n handleHeight,\n screenHeight,\n ],\n );\n\n const finalSnapPoint = useMemo(\n () =>\n Platform.OS === 'android'\n ? fullScreenHeight - topInset - handleHeight\n : fullScreenHeight - topInset,\n [fullScreenHeight, handleHeight, topInset],\n );\n\n /**\n * Snap points changing cause a rerender of the position,\n * this is an issue if you are calling close on the bottom sheet.\n */\n const snapPoints = [initialSnapPoint, finalSnapPoint];\n\n return (\n <>\n <BottomSheet\n containerHeight={fullScreenHeight}\n enablePanDownToClose={true}\n handleComponent={\n /**\n * using `null` here instead of `style={{ opacity: photoError ? 0 : 1 }}`\n * as opacity is not an allowed style\n */\n photoError ? null : AttachmentPickerBottomSheetHandle\n }\n handleHeight={handleHeight}\n index={-1}\n onChange={(index: number) => setCurrentIndex(index)}\n ref={ref}\n snapPoints={snapPoints}\n >\n <BottomSheetFlatList\n contentContainerStyle={[\n styles.container,\n { backgroundColor: white },\n bottomSheetContentContainer,\n { opacity: photoError ? 0 : 1 },\n ]}\n data={selectedPhotos}\n keyExtractor={(item) => item.asset.uri}\n numColumns={numberOfAttachmentPickerImageColumns ?? 3}\n onEndReached={getMorePhotos}\n renderItem={renderImage}\n />\n </BottomSheet>\n {selectedPicker === 'images' && photoError && (\n <AttachmentPickerError\n attachmentPickerBottomSheetHeight={attachmentPickerBottomSheetHeight}\n attachmentPickerErrorButtonText={attachmentPickerErrorButtonText}\n AttachmentPickerErrorImage={AttachmentPickerErrorImage}\n attachmentPickerErrorText={attachmentPickerErrorText}\n />\n )}\n </>\n );\n },\n);\n\nAttachmentPicker.displayName = 'AttachmentPicker';\n"]}
|
|
@@ -72,6 +72,7 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
72
72
|
black = _useTheme$theme$color.black,
|
|
73
73
|
white = _useTheme$theme$color.white,
|
|
74
74
|
_useTheme$theme$messa = _useTheme$theme.messageList.scrollToBottomButton,
|
|
75
|
+
chevronColor = _useTheme$theme$messa.chevronColor,
|
|
75
76
|
container = _useTheme$theme$messa.container,
|
|
76
77
|
touchable = _useTheme$theme$messa.touchable,
|
|
77
78
|
unreadCountNotificationContainer = _useTheme$theme$messa.unreadCountNotificationContainer,
|
|
@@ -86,7 +87,7 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
86
87
|
__self: _this,
|
|
87
88
|
__source: {
|
|
88
89
|
fileName: _jsxFileName,
|
|
89
|
-
lineNumber:
|
|
90
|
+
lineNumber: 80,
|
|
90
91
|
columnNumber: 5
|
|
91
92
|
}
|
|
92
93
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -94,7 +95,7 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
94
95
|
__self: _this,
|
|
95
96
|
__source: {
|
|
96
97
|
fileName: _jsxFileName,
|
|
97
|
-
lineNumber:
|
|
98
|
+
lineNumber: 85,
|
|
98
99
|
columnNumber: 7
|
|
99
100
|
}
|
|
100
101
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -105,14 +106,15 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
105
106
|
__self: _this,
|
|
106
107
|
__source: {
|
|
107
108
|
fileName: _jsxFileName,
|
|
108
|
-
lineNumber:
|
|
109
|
+
lineNumber: 86,
|
|
109
110
|
columnNumber: 9
|
|
110
111
|
}
|
|
111
112
|
}, _react["default"].createElement(_icons.Down, {
|
|
113
|
+
pathFill: chevronColor ? chevronColor : black,
|
|
112
114
|
__self: _this,
|
|
113
115
|
__source: {
|
|
114
116
|
fileName: _jsxFileName,
|
|
115
|
-
lineNumber:
|
|
117
|
+
lineNumber: 87,
|
|
116
118
|
columnNumber: 11
|
|
117
119
|
}
|
|
118
120
|
})), !!unreadCount && _react["default"].createElement(_reactNative.View, {
|
|
@@ -122,7 +124,7 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
122
124
|
__self: _this,
|
|
123
125
|
__source: {
|
|
124
126
|
fileName: _jsxFileName,
|
|
125
|
-
lineNumber:
|
|
127
|
+
lineNumber: 90,
|
|
126
128
|
columnNumber: 11
|
|
127
129
|
}
|
|
128
130
|
}, _react["default"].createElement(_reactNative.Text, {
|
|
@@ -133,7 +135,7 @@ var ScrollToBottomButton = function ScrollToBottomButton(props) {
|
|
|
133
135
|
__self: _this,
|
|
134
136
|
__source: {
|
|
135
137
|
fileName: _jsxFileName,
|
|
136
|
-
lineNumber:
|
|
138
|
+
lineNumber: 97,
|
|
137
139
|
columnNumber: 13
|
|
138
140
|
}
|
|
139
141
|
}, unreadCount))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollToBottomButton.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","elevation","height","justifyContent","shadowOffset","width","shadowOpacity","shadowRadius","touchable","bottom","position","right","unreadCountNotificationContainer","minWidth","paddingHorizontal","top","unreadCountNotificationText","fontSize","textAlign","textAlignVertical","wrapper","ScrollToBottomButton","props","onPress","showNotification","unreadCount","theme","colors","accent_blue","black","white","messageList","scrollToBottomButton","backgroundColor","shadowColor","color","displayName"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,YAAY,EAAE,EAFL;AAGTC,IAAAA,SAAS,EAAE,CAHF;AAITC,IAAAA,MAAM,EAAE,EAJC;AAKTC,IAAAA,cAAc,EAAE,QALP;AAMTC,IAAAA,YAAY,EAAE;AACZF,MAAAA,MAAM,EAAE,CADI;AAEZG,MAAAA,KAAK,EAAE;AAFK,KANL;AAUTC,IAAAA,aAAa,EAAE,IAVN;AAWTC,IAAAA,YAAY,EAAE,CAXL;AAYTF,IAAAA,KAAK,EAAE;AAZE,GADoB;AAe/BG,EAAAA,SAAS,EAAE;AACTC,IAAAA,MAAM,EAAE,EADC;AAETC,IAAAA,QAAQ,EAAE,UAFD;AAGTC,IAAAA,KAAK,EAAE;AAHE,GAfoB;AAoB/BC,EAAAA,gCAAgC,EAAE;AAChCb,IAAAA,UAAU,EAAE,QADoB;AAEhCC,IAAAA,YAAY,EAAE,EAFkB;AAGhCC,IAAAA,SAAS,EAAE,CAHqB;AAIhCC,IAAAA,MAAM,EAAE,EAJwB;AAKhCC,IAAAA,cAAc,EAAE,QALgB;AAMhCU,IAAAA,QAAQ,EAAE,EANsB;AAOhCC,IAAAA,iBAAiB,EAAE,CAPa;AAQhCJ,IAAAA,QAAQ,EAAE,UARsB;AAShCK,IAAAA,GAAG,EAAE;AAT2B,GApBH;AA+B/BC,EAAAA,2BAA2B,EAAE;AAC3BC,IAAAA,QAAQ,EAAE,EADiB;AAE3BC,IAAAA,SAAS,EAAE,QAFgB;AAG3BC,IAAAA,iBAAiB,EAAE;AAHQ,GA/BE;AAoC/BC,EAAAA,OAAO,EAAE;AACPrB,IAAAA,UAAU,EAAE,QADL;AAEPG,IAAAA,MAAM,EAAE,EAFD;AAGPC,IAAAA,cAAc,EAAE;AAHT;AApCsB,CAAlB,CAAf;;AAmDO,IAAMkB,oBAAyD,GAAG,SAA5DA,oBAA4D,CAACC,KAAD,EAAW;AAClF,MAAQC,OAAR,GAA0DD,KAA1D,CAAQC,OAAR;AAAA,8BAA0DD,KAA1D,CAAiBE,gBAAjB;AAAA,MAAiBA,gBAAjB,sCAAoC,IAApC;AAAA,MAA0CC,WAA1C,GAA0DH,KAA1D,CAA0CG,WAA1C;;AAEA,
|
|
1
|
+
{"version":3,"sources":["ScrollToBottomButton.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","elevation","height","justifyContent","shadowOffset","width","shadowOpacity","shadowRadius","touchable","bottom","position","right","unreadCountNotificationContainer","minWidth","paddingHorizontal","top","unreadCountNotificationText","fontSize","textAlign","textAlignVertical","wrapper","ScrollToBottomButton","props","onPress","showNotification","unreadCount","theme","colors","accent_blue","black","white","messageList","scrollToBottomButton","chevronColor","backgroundColor","shadowColor","color","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { GestureResponderEvent, StyleSheet, Text, TouchableOpacity, View } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { Down } from '../../icons';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 20,\n elevation: 5,\n height: 40,\n justifyContent: 'center',\n shadowOffset: {\n height: 2,\n width: 0,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n width: 40,\n },\n touchable: {\n bottom: 20,\n position: 'absolute',\n right: 20,\n },\n unreadCountNotificationContainer: {\n alignItems: 'center',\n borderRadius: 10,\n elevation: 6,\n height: 20,\n justifyContent: 'center',\n minWidth: 20,\n paddingHorizontal: 4,\n position: 'absolute',\n top: 0,\n },\n unreadCountNotificationText: {\n fontSize: 11,\n textAlign: 'center',\n textAlignVertical: 'center',\n },\n wrapper: {\n alignItems: 'center',\n height: 50,\n justifyContent: 'flex-end',\n },\n});\n\nexport type ScrollToBottomButtonProps = {\n /** onPress handler */\n onPress: (event: GestureResponderEvent) => void;\n /** If we should show the notification or not */\n showNotification?: boolean;\n unreadCount?: number;\n};\n\nexport const ScrollToBottomButton: React.FC<ScrollToBottomButtonProps> = (props) => {\n const { onPress, showNotification = true, unreadCount } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, white },\n messageList: {\n scrollToBottomButton: {\n chevronColor,\n container,\n touchable,\n unreadCountNotificationContainer,\n unreadCountNotificationText,\n wrapper,\n },\n },\n },\n } = useTheme();\n\n if (!showNotification) return null;\n\n return (\n <TouchableOpacity\n onPress={onPress}\n style={[styles.touchable, touchable]}\n testID='message-notification'\n >\n <View style={[styles.wrapper, wrapper]}>\n <View style={[styles.container, { backgroundColor: white, shadowColor: black }, container]}>\n <Down pathFill={chevronColor ? chevronColor : black} />\n </View>\n {!!unreadCount && (\n <View\n style={[\n styles.unreadCountNotificationContainer,\n { backgroundColor: accent_blue },\n unreadCountNotificationContainer,\n ]}\n >\n <Text\n style={[\n styles.unreadCountNotificationText,\n { color: white },\n unreadCountNotificationText,\n ]}\n testID='unread-count'\n >\n {unreadCount}\n </Text>\n </View>\n )}\n </View>\n </TouchableOpacity>\n );\n};\n\nScrollToBottomButton.displayName = 'ScrollToBottomButton{messageList{scrollToBottomButton}}';\n"]}
|