stream-chat-react-native-core 4.3.1-beta.2 → 4.4.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 (76) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/components/Attachment/Card.js +25 -28
  3. package/lib/commonjs/components/Attachment/Card.js.map +1 -1
  4. package/lib/commonjs/components/Attachment/FileAttachment.js +19 -24
  5. package/lib/commonjs/components/Attachment/FileAttachment.js.map +1 -1
  6. package/lib/commonjs/components/Attachment/Giphy.js +27 -25
  7. package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
  8. package/lib/commonjs/components/Attachment/hooks/useGoToURL.js +42 -0
  9. package/lib/commonjs/components/Attachment/hooks/useGoToURL.js.map +1 -0
  10. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +11 -7
  11. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  12. package/lib/commonjs/components/Chat/Chat.js +4 -8
  13. package/lib/commonjs/components/Chat/Chat.js.map +1 -1
  14. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js +1 -3
  15. package/lib/commonjs/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  16. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js +20 -14
  17. package/lib/commonjs/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  18. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +8 -6
  19. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
  20. package/lib/commonjs/contexts/chatContext/ChatContext.js +2 -2
  21. package/lib/commonjs/contexts/chatContext/ChatContext.js.map +1 -1
  22. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  23. package/lib/commonjs/version.json +1 -1
  24. package/lib/module/components/Attachment/Card.js +25 -28
  25. package/lib/module/components/Attachment/Card.js.map +1 -1
  26. package/lib/module/components/Attachment/FileAttachment.js +19 -24
  27. package/lib/module/components/Attachment/FileAttachment.js.map +1 -1
  28. package/lib/module/components/Attachment/Giphy.js +27 -25
  29. package/lib/module/components/Attachment/Giphy.js.map +1 -1
  30. package/lib/module/components/Attachment/hooks/useGoToURL.js +42 -0
  31. package/lib/module/components/Attachment/hooks/useGoToURL.js.map +1 -0
  32. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +11 -7
  33. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  34. package/lib/module/components/Chat/Chat.js +4 -8
  35. package/lib/module/components/Chat/Chat.js.map +1 -1
  36. package/lib/module/components/Chat/hooks/useCreateChatContext.js +1 -3
  37. package/lib/module/components/Chat/hooks/useCreateChatContext.js.map +1 -1
  38. package/lib/module/components/Message/MessageSimple/utils/renderText.js +20 -14
  39. package/lib/module/components/Message/MessageSimple/utils/renderText.js.map +1 -1
  40. package/lib/module/components/MessageList/ScrollToBottomButton.js +8 -6
  41. package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
  42. package/lib/module/contexts/chatContext/ChatContext.js +2 -2
  43. package/lib/module/contexts/chatContext/ChatContext.js.map +1 -1
  44. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  45. package/lib/module/version.json +1 -1
  46. package/lib/typescript/components/Attachment/FileAttachment.d.ts +0 -1
  47. package/lib/typescript/components/Attachment/hooks/useGoToURL.d.ts +2 -0
  48. package/lib/typescript/components/Chat/hooks/useCreateChatContext.d.ts +1 -1
  49. package/lib/typescript/contexts/chatContext/ChatContext.d.ts +1 -5
  50. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  51. package/package.json +2 -2
  52. package/src/components/Attachment/Card.tsx +5 -13
  53. package/src/components/Attachment/FileAttachment.tsx +5 -13
  54. package/src/components/Attachment/Giphy.tsx +3 -1
  55. package/src/components/Attachment/__tests__/Attachment.test.js +39 -0
  56. package/src/components/Attachment/hooks/useGoToURL.ts +27 -0
  57. package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -13
  58. package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +0 -1
  59. package/src/components/Chat/Chat.tsx +0 -4
  60. package/src/components/Chat/hooks/useCreateChatContext.ts +0 -2
  61. package/src/components/Message/MessageSimple/utils/renderText.tsx +8 -2
  62. package/src/components/MessageInput/__tests__/__snapshots__/FileUploadPreview.test.js.snap +8 -8
  63. package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +2 -2
  64. package/src/components/MessageList/ScrollToBottomButton.tsx +2 -1
  65. package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.js.snap +1 -0
  66. package/src/contexts/chatContext/ChatContext.tsx +1 -5
  67. package/src/contexts/themeContext/utils/theme.ts +1 -0
  68. package/src/version.json +1 -1
  69. package/lib/commonjs/components/Chat/hooks/useAppSettings.js +0 -80
  70. package/lib/commonjs/components/Chat/hooks/useAppSettings.js.map +0 -1
  71. package/lib/module/components/Chat/hooks/useAppSettings.js +0 -80
  72. package/lib/module/components/Chat/hooks/useAppSettings.js.map +0 -1
  73. package/lib/typescript/components/Chat/hooks/__tests__/useAppSettings.test.d.ts +0 -1
  74. package/lib/typescript/components/Chat/hooks/useAppSettings.d.ts +0 -3
  75. package/src/components/Chat/hooks/__tests__/useAppSettings.test.tsx +0 -34
  76. package/src/components/Chat/hooks/useAppSettings.ts +0 -39
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Official React Native SDK for [Stream Chat](https://getstream.io/chat/)
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>
@@ -7,12 +7,16 @@ exports.Card = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
10
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
13
 
12
14
  var _react = _interopRequireDefault(require("react"));
13
15
 
14
16
  var _reactNative = require("react-native");
15
17
 
18
+ var _useGoToURL3 = require("./hooks/useGoToURL");
19
+
16
20
  var _MessageContext = require("../../contexts/messageContext/MessageContext");
17
21
 
18
22
  var _MessagesContext = require("../../contexts/messagesContext/MessagesContext");
@@ -70,18 +74,6 @@ var styles = _reactNative.StyleSheet.create({
70
74
  }
71
75
  });
72
76
 
73
- var goToURL = function goToURL(url) {
74
- if (!url) return;
75
-
76
- _reactNative.Linking.canOpenURL(url).then(function (supported) {
77
- if (supported) {
78
- _reactNative.Linking.openURL(url);
79
- } else {
80
- console.log("Don't know how to open URI: " + url);
81
- }
82
- });
83
- };
84
-
85
77
  var CardWithContext = function CardWithContext(props) {
86
78
  var additionalTouchableProps = props.additionalTouchableProps,
87
79
  author_name = props.author_name,
@@ -123,8 +115,13 @@ var CardWithContext = function CardWithContext(props) {
123
115
 
124
116
  var uri = image_url || thumb_url;
125
117
 
118
+ var _useGoToURL = (0, _useGoToURL3.useGoToURL)(og_scrape_url || uri),
119
+ _useGoToURL2 = (0, _slicedToArray2["default"])(_useGoToURL, 2),
120
+ error = _useGoToURL2[0],
121
+ openURL = _useGoToURL2[1];
122
+
126
123
  var defaultOnPress = function defaultOnPress() {
127
- return goToURL(og_scrape_url || uri);
124
+ return !error && openURL && openURL();
128
125
  };
129
126
 
130
127
  return _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
@@ -161,28 +158,28 @@ var CardWithContext = function CardWithContext(props) {
161
158
  __self: _this,
162
159
  __source: {
163
160
  fileName: _jsxFileName,
164
- lineNumber: 155,
161
+ lineNumber: 147,
165
162
  columnNumber: 5
166
163
  }
167
164
  }), CardHeader && _react["default"].createElement(CardHeader, (0, _extends2["default"])({}, props, {
168
165
  __self: _this,
169
166
  __source: {
170
167
  fileName: _jsxFileName,
171
- lineNumber: 187,
168
+ lineNumber: 179,
172
169
  columnNumber: 22
173
170
  }
174
171
  })), CardCover && _react["default"].createElement(CardCover, (0, _extends2["default"])({}, props, {
175
172
  __self: _this,
176
173
  __source: {
177
174
  fileName: _jsxFileName,
178
- lineNumber: 188,
175
+ lineNumber: 180,
179
176
  columnNumber: 21
180
177
  }
181
178
  })), uri && !CardCover && _react["default"].createElement(_reactNative.View, {
182
179
  __self: _this,
183
180
  __source: {
184
181
  fileName: _jsxFileName,
185
- lineNumber: 190,
182
+ lineNumber: 182,
186
183
  columnNumber: 9
187
184
  }
188
185
  }, _react["default"].createElement(_reactNative.Image, {
@@ -194,7 +191,7 @@ var CardWithContext = function CardWithContext(props) {
194
191
  __self: _this,
195
192
  __source: {
196
193
  fileName: _jsxFileName,
197
- lineNumber: 191,
194
+ lineNumber: 183,
198
195
  columnNumber: 11
199
196
  }
200
197
  }), author_name && _react["default"].createElement(_reactNative.View, {
@@ -202,7 +199,7 @@ var CardWithContext = function CardWithContext(props) {
202
199
  __self: _this,
203
200
  __source: {
204
201
  fileName: _jsxFileName,
205
- lineNumber: 197,
202
+ lineNumber: 189,
206
203
  columnNumber: 13
207
204
  }
208
205
  }, _react["default"].createElement(_reactNative.View, {
@@ -212,7 +209,7 @@ var CardWithContext = function CardWithContext(props) {
212
209
  __self: _this,
213
210
  __source: {
214
211
  fileName: _jsxFileName,
215
- lineNumber: 198,
212
+ lineNumber: 190,
216
213
  columnNumber: 15
217
214
  }
218
215
  }, _react["default"].createElement(_reactNative.Text, {
@@ -222,14 +219,14 @@ var CardWithContext = function CardWithContext(props) {
222
219
  __self: _this,
223
220
  __source: {
224
221
  fileName: _jsxFileName,
225
- lineNumber: 206,
222
+ lineNumber: 198,
226
223
  columnNumber: 17
227
224
  }
228
225
  }, author_name)))), CardFooter ? _react["default"].createElement(CardFooter, (0, _extends2["default"])({}, props, {
229
226
  __self: _this,
230
227
  __source: {
231
228
  fileName: _jsxFileName,
232
- lineNumber: 222,
229
+ lineNumber: 214,
233
230
  columnNumber: 9
234
231
  }
235
232
  })) : _react["default"].createElement(_reactNative.View, {
@@ -237,7 +234,7 @@ var CardWithContext = function CardWithContext(props) {
237
234
  __self: _this,
238
235
  __source: {
239
236
  fileName: _jsxFileName,
240
- lineNumber: 224,
237
+ lineNumber: 216,
241
238
  columnNumber: 9
242
239
  }
243
240
  }, _react["default"].createElement(_reactNative.View, {
@@ -249,7 +246,7 @@ var CardWithContext = function CardWithContext(props) {
249
246
  __self: _this,
250
247
  __source: {
251
248
  fileName: _jsxFileName,
252
- lineNumber: 225,
249
+ lineNumber: 217,
253
250
  columnNumber: 11
254
251
  }
255
252
  }, !uri && author_name && _react["default"].createElement(_reactNative.Text, {
@@ -259,7 +256,7 @@ var CardWithContext = function CardWithContext(props) {
259
256
  __self: _this,
260
257
  __source: {
261
258
  fileName: _jsxFileName,
262
- lineNumber: 234,
259
+ lineNumber: 226,
263
260
  columnNumber: 15
264
261
  }
265
262
  }, author_name), title && _react["default"].createElement(_reactNative.Text, {
@@ -270,7 +267,7 @@ var CardWithContext = function CardWithContext(props) {
270
267
  __self: _this,
271
268
  __source: {
272
269
  fileName: _jsxFileName,
273
- lineNumber: 246,
270
+ lineNumber: 238,
274
271
  columnNumber: 15
275
272
  }
276
273
  }, title), text && _react["default"].createElement(_reactNative.Text, {
@@ -281,7 +278,7 @@ var CardWithContext = function CardWithContext(props) {
281
278
  __self: _this,
282
279
  __source: {
283
280
  fileName: _jsxFileName,
284
- lineNumber: 254,
281
+ lineNumber: 246,
285
282
  columnNumber: 15
286
283
  }
287
284
  }, text))));
@@ -320,7 +317,7 @@ var Card = function Card(props) {
320
317
  __self: _this,
321
318
  __source: {
322
319
  fileName: _jsxFileName,
323
- lineNumber: 295,
320
+ lineNumber: 287,
324
321
  columnNumber: 5
325
322
  }
326
323
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","borderRadius","height","marginHorizontal","cardFooter","flexDirection","justifyContent","container","overflow","width","description","title","goToURL","url","Linking","canOpenURL","then","supported","openURL","console","log","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","theme","colors","accent_blue","black","blue_alice","transparent","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","uri","defaultOnPress","event","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAeA;;AAIA;;AAIA;;AAEA;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,UAAU,EAAE;AAAEC,IAAAA,QAAQ,EAAE,IAAZ;AAAkBC,IAAAA,UAAU,EAAE;AAA9B,GADmB;AAE/BC,EAAAA,mBAAmB,EAAE;AACnBC,IAAAA,oBAAoB,EAAE,EADH;AAEnBC,IAAAA,iBAAiB,EAAE,CAFA;AAGnBC,IAAAA,UAAU,EAAE;AAHO,GAFU;AAO/BC,EAAAA,gBAAgB,EAAE;AAChBN,IAAAA,QAAQ,EAAE,IADM;AAEhBC,IAAAA,UAAU,EAAE,KAFI;AAGhBM,IAAAA,OAAO,EAAE;AAHO,GAPa;AAY/BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,MAAM,EAAE,CADM;AAEdC,IAAAA,IAAI,EAAE,CAFQ;AAGdC,IAAAA,QAAQ,EAAE;AAHI,GAZe;AAiB/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,YAAY,EAAE,CADL;AAETC,IAAAA,MAAM,EAAE,GAFC;AAGTC,IAAAA,gBAAgB,EAAE;AAHT,GAjBoB;AAsB/BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE,KADL;AAEVC,IAAAA,cAAc,EAAE,eAFN;AAGVX,IAAAA,OAAO,EAAE;AAHC,GAtBmB;AA2B/BY,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,QADD;AAETC,IAAAA,KAAK,EAAE;AAFE,GA3BoB;AA+B/BC,EAAAA,WAAW,EAAE;AACXtB,IAAAA,QAAQ,EAAE,EADC;AAEXe,IAAAA,gBAAgB,EAAE;AAFP,GA/BkB;AAmC/BQ,EAAAA,KAAK,EAAE;AACLvB,IAAAA,QAAQ,EAAE,EADL;AAELe,IAAAA,gBAAgB,EAAE;AAFb;AAnCwB,CAAlB,CAAf;;AAyCA,IAAMS,OAAO,GAAG,SAAVA,OAAU,CAACC,GAAD,EAAkB;AAChC,MAAI,CAACA,GAAL,EAAU;;AACVC,uBAAQC,UAAR,CAAmBF,GAAnB,EAAwBG,IAAxB,CAA6B,UAACC,SAAD,EAAe;AAC1C,QAAIA,SAAJ,EAAe;AACbH,2BAAQI,OAAR,CAAgBL,GAAhB;AACD,KAFD,MAEO;AACLM,MAAAA,OAAO,CAACC,GAAR,kCAA2CP,GAA3C;AACD;AACF,GAND;AAOD,CATD;;AAsCA,IAAMQ,eAAe,GAAG,SAAlBA,eAAkB,CAGtBC,KAHsB,EAInB;AACH,MACEC,wBADF,GAgBID,KAhBJ,CACEC,wBADF;AAAA,MAEEC,WAFF,GAgBIF,KAhBJ,CAEEE,WAFF;AAAA,MAGEC,SAHF,GAgBIH,KAhBJ,CAGEG,SAHF;AAAA,MAIEC,UAJF,GAgBIJ,KAhBJ,CAIEI,UAJF;AAAA,MAKEC,UALF,GAgBIL,KAhBJ,CAKEK,UALF;AAAA,MAMEC,SANF,GAgBIN,KAhBJ,CAMEM,SANF;AAAA,MAOEC,aAPF,GAgBIP,KAhBJ,CAOEO,aAPF;AAAA,MAQEC,YARF,GAgBIR,KAhBJ,CAQEQ,WARF;AAAA,MASEC,QATF,GAgBIT,KAhBJ,CASES,OATF;AAAA,MAUEC,UAVF,GAgBIV,KAhBJ,CAUEU,SAVF;AAAA,MAWEC,YAXF,GAgBIX,KAhBJ,CAWEW,YAXF;AAAA,sBAgBIX,KAhBJ,CAYEtC,MAZF;AAAA,MAYUkD,UAZV,8BAYuB,EAZvB;AAAA,MAaEC,IAbF,GAgBIb,KAhBJ,CAaEa,IAbF;AAAA,MAcEC,SAdF,GAgBId,KAhBJ,CAcEc,SAdF;AAAA,MAeEzB,KAfF,GAgBIW,KAhBJ,CAeEX,KAfF;;AAkBA,kBAiBI,6BAjBJ;AAAA,kCACE0B,KADF;AAAA,8CAEIC,MAFJ;AAAA,MAEcC,WAFd,yBAEcA,WAFd;AAAA,MAE2BC,KAF3B,yBAE2BA,KAF3B;AAAA,MAEkCC,UAFlC,yBAEkCA,UAFlC;AAAA,MAE8CC,WAF9C,yBAE8CA,WAF9C;AAAA,8CAGIC,aAHJ,CAIMC,IAJN;AAAA,MAKQzD,UALR,yBAKQA,UALR;AAAA,MAMQG,mBANR,yBAMQA,mBANR;AAAA,MAOQI,gBAPR,yBAOQA,gBAPR;AAAA,MAQQmD,yBARR,yBAQQA,yBARR;AAAA,MASQjD,cATR,yBASQA,cATR;AAAA,MAUQW,SAVR,yBAUQA,SAVR;AAAA,MAWQuC,KAXR,yBAWQA,KAXR;AAAA,qDAYQC,MAZR;AAAA,MAYkBrC,WAZlB,0BAYkBA,WAZlB;AAAA,MAYsCsC,UAZtC,0BAY+BrC,KAZ/B;AAAA,MAYqDsC,WAZrD;AAAA,MAaQC,KAbR,yBAaQA,KAbR;;AAmBA,MAAMC,GAAG,GAAGvB,SAAS,IAAIQ,SAAzB;;AAEA,MAAMgB,cAAc,GAAG,SAAjBA,cAAiB;AAAA,WAAMxC,OAAO,CAACiB,aAAa,IAAIsB,GAAlB,CAAb;AAAA,GAAvB;;AAEA,SACE,gCAAC,6BAAD;AACE,IAAA,QAAQ,EAAElB,YADZ;AAEE,IAAA,WAAW,EAAE,qBAACoB,KAAD,EAAW;AACtB,UAAIvB,YAAJ,EAAiB;AACfA,QAAAA,YAAW,CAAC;AACVwB,UAAAA,OAAO,EAAE,MADC;AAEVD,UAAAA,KAAK,EAALA;AAFU,SAAD,CAAX;AAID;AACF,KATH;AAUE,IAAA,OAAO,EAAE,iBAACA,KAAD,EAAW;AAClB,UAAItB,QAAJ,EAAa;AACXA,QAAAA,QAAO,CAAC;AACNwB,UAAAA,cAAc,EAAEH,cADV;AAENE,UAAAA,OAAO,EAAE,MAFH;AAGND,UAAAA,KAAK,EAALA;AAHM,SAAD,CAAP;AAKD;AACF,KAlBH;AAmBE,IAAA,SAAS,EAAE,mBAACA,KAAD,EAAW;AACpB,UAAIrB,UAAJ,EAAe;AACbA,QAAAA,UAAS,CAAC;AACRuB,UAAAA,cAAc,EAAEH,cADR;AAERE,UAAAA,OAAO,EAAE,MAFD;AAGRD,UAAAA,KAAK,EAALA;AAHQ,SAAD,CAAT;AAKD;AACF,KA3BH;AA4BE,IAAA,KAAK,EAAE,CAACrE,MAAM,CAACuB,SAAR,EAAmBA,SAAnB,EAA8B2B,UAAU,CAAC3B,SAAzC,CA5BT;AA6BE,IAAA,MAAM,EAAC;AA7BT,KA8BMgB,wBA9BN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAgCGI,UAAU,IAAI,gCAAC,UAAD,gCAAgBL,KAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAhCjB,EAiCGG,SAAS,IAAI,gCAAC,SAAD,gCAAeH,KAAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAjChB,EAkCG6B,GAAG,IAAI,CAAC1B,SAAR,IACC,gCAAC,iBAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,kBAAD;AACE,IAAA,UAAU,EAAC,OADb;AAEE,IAAA,MAAM,EAAE;AAAE0B,MAAAA,GAAG,EAAE,mCAAuBA,GAAvB;AAAP,KAFV;AAGE,IAAA,KAAK,EAAE,CAACnE,MAAM,CAACgB,SAAR,EAAmB8C,KAAnB,EAA0BZ,UAAU,CAAClC,SAArC,CAHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAMGwB,WAAW,IACV,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACxC,MAAM,CAACY,cAAR,EAAwBA,cAAxB,EAAwCsC,UAAU,CAACtC,cAAnD,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLZ,MAAM,CAACM,mBADF,EAEL;AAAEkE,MAAAA,eAAe,EAAEf;AAAnB,KAFK,EAGLnD,mBAHK,EAIL4C,UAAU,CAAC5C,mBAJN,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLN,MAAM,CAACG,UADF,EAEL;AAAEsE,MAAAA,KAAK,EAAElB;AAAT,KAFK,EAGLpD,UAHK,EAIL+C,UAAU,CAAC/C,UAJN,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQGqC,WARH,CARF,CADF,CAPJ,CAnCJ,EAkEGE,UAAU,GACT,gCAAC,UAAD,gCAAgBJ,KAAhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADS,GAGT,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACtC,MAAM,CAACoB,UAAR,EAAoB6C,WAApB,EAAiCf,UAAU,CAAC9B,UAA5C,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLyC,yBADK,EAEL;AAAEW,MAAAA,eAAe,EAAEd;AAAnB,KAFK,EAGL,CAACS,GAAD;AAASO,MAAAA,eAAe,EAAEnB;AAA1B,OAA0CW,KAA1C,IAAoD,EAH/C,EAILhB,UAAU,CAACW,yBAJN,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQG,CAACM,GAAD,IAAQ3B,WAAR,IACC,gCAAC,iBAAD;AACE,IAAA,KAAK,EAAE,CACLxC,MAAM,CAACU,gBADF,EAEL;AAAE+D,MAAAA,KAAK,EAAElB;AAAT,KAFK,EAGL7C,gBAHK,EAILwC,UAAU,CAACxC,gBAJN,CADT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQG8B,WARH,CATJ,EAoBGb,KAAK,IACJ,gCAAC,iBAAD;AACE,IAAA,aAAa,EAAE,CADjB;AAEE,IAAA,KAAK,EAAE,CAAC3B,MAAM,CAAC2B,KAAR,EAAe;AAAE8C,MAAAA,KAAK,EAAEjB;AAAT,KAAf,EAAiCQ,UAAjC,EAA6Cd,UAAU,CAACvB,KAAxD,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAIGA,KAJH,CArBJ,EA4BGwB,IAAI,IACH,gCAAC,iBAAD;AACE,IAAA,aAAa,EAAE,CADjB;AAEE,IAAA,KAAK,EAAE,CAACnD,MAAM,CAAC0B,WAAR,EAAqB;AAAE+C,MAAAA,KAAK,EAAEjB;AAAT,KAArB,EAAuC9B,WAAvC,EAAoDwB,UAAU,CAACxB,WAA/D,CAFT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAIGyB,IAJH,CA7BJ,CADF,CArEJ,CADF;AAgHD,CA9JD;;AAgKA,IAAMwB,YAAY,GAAGC,kBAAMC,IAAN,CAAWxC,eAAX,EAA4B;AAAA,SAAM,IAAN;AAAA,CAA5B,CAArB;;AAgBO,IAAMyC,IAAI,GAAG,SAAPA,IAAO,CAGlBxC,KAHkB,EAIf;AACH,2BACE,wCADF;AAAA,MAAQyC,OAAR,sBAAQA,OAAR;AAAA,MAAiBjC,WAAjB,sBAAiBA,WAAjB;AAAA,MAA8BC,OAA9B,sBAA8BA,OAA9B;AAAA,MAAuCC,SAAvC,sBAAuCA,SAAvC;AAAA,MAAkDC,YAAlD,sBAAkDA,YAAlD;;AAEA,4BACE,0CADF;AAAA,MAAQV,wBAAR,uBAAQA,wBAAR;AAAA,MAAkCE,SAAlC,uBAAkCA,SAAlC;AAAA,MAA6CC,UAA7C,uBAA6CA,UAA7C;AAAA,MAAyDC,UAAzD,uBAAyDA,UAAzD;;AAGA,SACE,gCAAC,YAAD;AAEIJ,IAAAA,wBAAwB,EAAxBA,wBAFJ;AAGIE,IAAAA,SAAS,EAATA,SAHJ;AAIIC,IAAAA,UAAU,EAAVA,UAJJ;AAKIC,IAAAA,UAAU,EAAVA,UALJ;AAMIqC,IAAAA,SAAS,EAAED,OAAO,CAACE,GANvB;AAOIC,IAAAA,SAAS,EAAEH,OAAO,CAACI,EAPvB;AAQIrC,IAAAA,WAAW,EAAXA,WARJ;AASIC,IAAAA,OAAO,EAAPA,OATJ;AAUIC,IAAAA,SAAS,EAATA,SAVJ;AAWIC,IAAAA,YAAY,EAAZA;AAXJ,KAaMX,KAbN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KADF;AAiBD,CA3BM;;;AA6BPwC,IAAI,CAACM,WAAL,GAAmB,2BAAnB","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageStyle,\n Linking,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 8,\n position: 'absolute',\n },\n cardCover: {\n borderRadius: 8,\n height: 140,\n marginHorizontal: 8,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nconst goToURL = (url?: string) => {\n if (!url) return;\n Linking.canOpenURL(url).then((supported) => {\n if (supported) {\n Linking.openURL(url);\n } else {\n console.log(`Don't know how to open URI: ${url}`);\n }\n });\n};\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const defaultOnPress = () => goToURL(og_scrape_url || uri);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n />\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
1
+ {"version":3,"sources":["Card.tsx"],"names":["styles","StyleSheet","create","authorName","fontSize","fontWeight","authorNameContainer","borderTopRightRadius","paddingHorizontal","paddingTop","authorNameFooter","padding","authorNameMask","bottom","left","position","cardCover","borderRadius","height","marginHorizontal","cardFooter","flexDirection","justifyContent","container","overflow","width","description","title","CardWithContext","props","additionalTouchableProps","author_name","CardCover","CardFooter","CardHeader","image_url","og_scrape_url","onLongPress","onPress","onPressIn","preventPress","stylesProp","text","thumb_url","theme","colors","accent_blue","black","blue_alice","transparent","messageSimple","card","authorNameFooterContainer","cover","footer","titleStyle","footerStyle","noURI","uri","error","openURL","defaultOnPress","event","emitter","defaultHandler","backgroundColor","color","borderLeftColor","MemoizedCard","React","memo","Card","message","channelId","cid","messageId","id","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Image,\n ImageStyle,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useGoToURL } from './hooks/useGoToURL';\n\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { makeImageCompatibleUrl } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n authorName: { fontSize: 14.5, fontWeight: '600' },\n authorNameContainer: {\n borderTopRightRadius: 15,\n paddingHorizontal: 8,\n paddingTop: 8,\n },\n authorNameFooter: {\n fontSize: 14.5,\n fontWeight: '600',\n padding: 8,\n },\n authorNameMask: {\n bottom: 0,\n left: 8,\n position: 'absolute',\n },\n cardCover: {\n borderRadius: 8,\n height: 140,\n marginHorizontal: 8,\n },\n cardFooter: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n },\n container: {\n overflow: 'hidden',\n width: 256,\n },\n description: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n title: {\n fontSize: 12,\n marginHorizontal: 8,\n },\n});\n\nexport type CardPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n > &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n > & {\n channelId: string | undefined;\n messageId: string | undefined;\n styles?: Partial<{\n authorName: StyleProp<TextStyle>;\n authorNameContainer: StyleProp<ViewStyle>;\n authorNameFooter: StyleProp<TextStyle>;\n authorNameFooterContainer: StyleProp<ViewStyle>;\n authorNameMask: StyleProp<ViewStyle>;\n cardCover: StyleProp<ImageStyle>;\n cardFooter: StyleProp<ViewStyle>;\n container: StyleProp<ViewStyle>;\n description: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst CardWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n author_name,\n CardCover,\n CardFooter,\n CardHeader,\n image_url,\n og_scrape_url,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n text,\n thumb_url,\n title,\n } = props;\n\n const {\n theme: {\n colors: { accent_blue, black, blue_alice, transparent },\n messageSimple: {\n card: {\n authorName,\n authorNameContainer,\n authorNameFooter,\n authorNameFooterContainer,\n authorNameMask,\n container,\n cover,\n footer: { description, title: titleStyle, ...footerStyle },\n noURI,\n },\n },\n },\n } = useTheme();\n\n const uri = image_url || thumb_url;\n\n const [error, openURL] = useGoToURL(og_scrape_url || uri);\n\n const defaultOnPress = () => !error && openURL && openURL();\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'card',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'card',\n event,\n });\n }\n }}\n style={[styles.container, container, stylesProp.container]}\n testID='card-attachment'\n {...additionalTouchableProps}\n >\n {CardHeader && <CardHeader {...props} />}\n {CardCover && <CardCover {...props} />}\n {uri && !CardCover && (\n <View>\n <Image\n resizeMode='cover'\n source={{ uri: makeImageCompatibleUrl(uri) }}\n style={[styles.cardCover, cover, stylesProp.cardCover]}\n />\n {author_name && (\n <View style={[styles.authorNameMask, authorNameMask, stylesProp.authorNameMask]}>\n <View\n style={[\n styles.authorNameContainer,\n { backgroundColor: blue_alice },\n authorNameContainer,\n stylesProp.authorNameContainer,\n ]}\n >\n <Text\n style={[\n styles.authorName,\n { color: accent_blue },\n authorName,\n stylesProp.authorName,\n ]}\n >\n {author_name}\n </Text>\n </View>\n </View>\n )}\n </View>\n )}\n {CardFooter ? (\n <CardFooter {...props} />\n ) : (\n <View style={[styles.cardFooter, footerStyle, stylesProp.cardFooter]}>\n <View\n style={[\n authorNameFooterContainer,\n { backgroundColor: transparent },\n !uri ? { borderLeftColor: accent_blue, ...noURI } : {},\n stylesProp.authorNameFooterContainer,\n ]}\n >\n {!uri && author_name && (\n <Text\n style={[\n styles.authorNameFooter,\n { color: accent_blue },\n authorNameFooter,\n stylesProp.authorNameFooter,\n ]}\n >\n {author_name}\n </Text>\n )}\n {title && (\n <Text\n numberOfLines={1}\n style={[styles.title, { color: black }, titleStyle, stylesProp.title]}\n >\n {title}\n </Text>\n )}\n {text && (\n <Text\n numberOfLines={3}\n style={[styles.description, { color: black }, description, stylesProp.description]}\n >\n {text}\n </Text>\n )}\n </View>\n </View>\n )}\n </TouchableOpacity>\n );\n};\n\nconst MemoizedCard = React.memo(CardWithContext, () => true) as typeof CardWithContext;\n\nexport type CardProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Attachment<StreamChatGenerics> &\n Partial<\n Pick<MessageContextValue<StreamChatGenerics>, 'onLongPress' | 'onPress' | 'onPressIn'> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'CardCover' | 'CardFooter' | 'CardHeader'\n >\n >;\n\n/**\n * UI component for card in attachments.\n */\nexport const Card = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: CardProps<StreamChatGenerics>,\n) => {\n const { message, onLongPress, onPress, onPressIn, preventPress } =\n useMessageContext<StreamChatGenerics>();\n const { additionalTouchableProps, CardCover, CardFooter, CardHeader } =\n useMessagesContext<StreamChatGenerics>();\n\n return (\n <MemoizedCard\n {...{\n additionalTouchableProps,\n CardCover,\n CardFooter,\n CardHeader,\n channelId: message.cid,\n messageId: message.id,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nCard.displayName = 'Card{messageSimple{card}}';\n"]}
@@ -3,14 +3,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.goToURL = exports.getFileSizeDisplayText = exports.FileAttachment = void 0;
6
+ exports.getFileSizeDisplayText = exports.FileAttachment = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
12
14
  var _reactNative = require("react-native");
13
15
 
16
+ var _useGoToURL3 = require("./hooks/useGoToURL");
17
+
14
18
  var _AttachmentActions = require("../../components/Attachment/AttachmentActions");
15
19
 
16
20
  var _FileIcon = require("../../components/Attachment/FileIcon");
@@ -73,8 +77,13 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
73
77
  fileSize = _useTheme$theme$messa.fileSize,
74
78
  title = _useTheme$theme$messa.title;
75
79
 
80
+ var _useGoToURL = (0, _useGoToURL3.useGoToURL)(attachment.asset_url),
81
+ _useGoToURL2 = (0, _slicedToArray2["default"])(_useGoToURL, 2),
82
+ error = _useGoToURL2[0],
83
+ openURL = _useGoToURL2[1];
84
+
76
85
  var defaultOnPress = function defaultOnPress() {
77
- return goToURL(attachment.asset_url);
86
+ return !error && openURL && openURL();
78
87
  };
79
88
 
80
89
  return _react["default"].createElement(_reactNative.TouchableOpacity, (0, _extends2["default"])({
@@ -110,7 +119,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
110
119
  __self: _this,
111
120
  __source: {
112
121
  fileName: _jsxFileName,
113
- lineNumber: 100,
122
+ lineNumber: 103,
114
123
  columnNumber: 5
115
124
  }
116
125
  }), _react["default"].createElement(_reactNative.View, {
@@ -120,7 +129,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
120
129
  __self: _this,
121
130
  __source: {
122
131
  fileName: _jsxFileName,
123
- lineNumber: 131,
132
+ lineNumber: 134,
124
133
  columnNumber: 7
125
134
  }
126
135
  }, _react["default"].createElement(FileAttachmentIcon, {
@@ -129,7 +138,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
129
138
  __self: _this,
130
139
  __source: {
131
140
  fileName: _jsxFileName,
132
- lineNumber: 132,
141
+ lineNumber: 135,
133
142
  columnNumber: 9
134
143
  }
135
144
  }), _react["default"].createElement(_reactNative.View, {
@@ -137,7 +146,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
137
146
  __self: _this,
138
147
  __source: {
139
148
  fileName: _jsxFileName,
140
- lineNumber: 133,
149
+ lineNumber: 136,
141
150
  columnNumber: 9
142
151
  }
143
152
  }, _react["default"].createElement(_reactNative.Text, {
@@ -148,7 +157,7 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
148
157
  __self: _this,
149
158
  __source: {
150
159
  fileName: _jsxFileName,
151
- lineNumber: 134,
160
+ lineNumber: 137,
152
161
  columnNumber: 11
153
162
  }
154
163
  }, attachment.title), _react["default"].createElement(_reactNative.Text, {
@@ -158,14 +167,14 @@ var FileAttachmentWithContext = function FileAttachmentWithContext(props) {
158
167
  __self: _this,
159
168
  __source: {
160
169
  fileName: _jsxFileName,
161
- lineNumber: 137,
170
+ lineNumber: 140,
162
171
  columnNumber: 11
163
172
  }
164
173
  }, getFileSizeDisplayText(attachment.file_size)))), (_attachment$actions = attachment.actions) != null && _attachment$actions.length ? _react["default"].createElement(AttachmentActions, (0, _extends2["default"])({}, attachment, {
165
174
  __self: _this,
166
175
  __source: {
167
176
  fileName: _jsxFileName,
168
- lineNumber: 142,
177
+ lineNumber: 145,
169
178
  columnNumber: 37
170
179
  }
171
180
  })) : null);
@@ -197,7 +206,7 @@ var FileAttachment = function FileAttachment(props) {
197
206
  __self: _this,
198
207
  __source: {
199
208
  fileName: _jsxFileName,
200
- lineNumber: 165,
209
+ lineNumber: 168,
201
210
  columnNumber: 5
202
211
  }
203
212
  }));
@@ -220,19 +229,5 @@ var getFileSizeDisplayText = function getFileSizeDisplayText(size) {
220
229
  };
221
230
 
222
231
  exports.getFileSizeDisplayText = getFileSizeDisplayText;
223
-
224
- var goToURL = function goToURL(url) {
225
- if (!url) return;
226
-
227
- _reactNative.Linking.canOpenURL(url).then(function (supported) {
228
- if (supported) {
229
- _reactNative.Linking.openURL(url);
230
- } else {
231
- console.log("Don't know how to open URI: " + url);
232
- }
233
- });
234
- };
235
-
236
- exports.goToURL = goToURL;
237
232
  FileAttachment.displayName = 'FileAttachment{messageSimple{file}}';
238
233
  //# sourceMappingURL=FileAttachment.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["FileAttachment.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","maxWidth","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","stylesProp","theme","colors","black","grey","white","messageSimple","file","fileSize","defaultOnPress","goToURL","asset_url","event","emitter","defaultHandler","backgroundColor","mime_type","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","AttachmentActionsDefault","FileIconDefault","parseFloat","Math","floor","url","Linking","canOpenURL","then","supported","openURL","console","log","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Linking,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n maxWidth: vw(60),\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n\n const defaultOnPress = () => goToURL(attachment.asset_url);\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View style={[styles.details, details, stylesProp.details]}>\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nexport const goToURL = (url?: string) => {\n if (!url) return;\n Linking.canOpenURL(url).then((supported) => {\n if (supported) {\n Linking.openURL(url);\n } else {\n console.log(`Don't know how to open URI: ${url}`);\n }\n });\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"]}
1
+ {"version":3,"sources":["FileAttachment.tsx"],"names":["styles","StyleSheet","create","container","alignItems","borderRadius","flexDirection","padding","details","maxWidth","paddingLeft","size","fontSize","title","fontWeight","FileAttachmentWithContext","props","additionalTouchableProps","attachment","attachmentSize","AttachmentActions","FileAttachmentIcon","onLongPress","onPress","onPressIn","preventPress","stylesProp","theme","colors","black","grey","white","messageSimple","file","fileSize","asset_url","error","openURL","defaultOnPress","event","emitter","defaultHandler","backgroundColor","mime_type","color","getFileSizeDisplayText","file_size","actions","length","FileAttachment","AttachmentActionsDefault","FileIconDefault","parseFloat","Math","floor","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { Attachment } from 'stream-chat';\n\nimport { useGoToURL } from './hooks/useGoToURL';\n\nimport { AttachmentActions as AttachmentActionsDefault } from '../../components/Attachment/AttachmentActions';\nimport { FileIcon as FileIconDefault } from '../../components/Attachment/FileIcon';\nimport {\n MessageContextValue,\n useMessageContext,\n} from '../../contexts/messageContext/MessageContext';\nimport {\n MessagesContextValue,\n useMessagesContext,\n} from '../../contexts/messagesContext/MessagesContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { vw } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n borderRadius: 12,\n flexDirection: 'row',\n padding: 8,\n },\n details: {\n maxWidth: vw(60),\n paddingLeft: 16,\n },\n size: {\n fontSize: 12,\n },\n title: {\n fontSize: 14,\n fontWeight: '700',\n },\n});\n\nexport type FileAttachmentPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n MessageContextValue<StreamChatGenerics>,\n 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress'\n> &\n Pick<\n MessagesContextValue<StreamChatGenerics>,\n 'additionalTouchableProps' | 'AttachmentActions' | 'FileAttachmentIcon'\n > & {\n /** The attachment to render */\n attachment: Attachment<StreamChatGenerics>;\n attachmentSize?: number;\n styles?: Partial<{\n container: StyleProp<ViewStyle>;\n details: StyleProp<ViewStyle>;\n size: StyleProp<TextStyle>;\n title: StyleProp<TextStyle>;\n }>;\n };\n\nconst FileAttachmentWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTouchableProps,\n attachment,\n attachmentSize,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n styles: stylesProp = {},\n } = props;\n\n const {\n theme: {\n colors: { black, grey, white },\n messageSimple: {\n file: { container, details, fileSize, title },\n },\n },\n } = useTheme();\n\n const [error, openURL] = useGoToURL(attachment.asset_url);\n\n const defaultOnPress = () => !error && openURL && openURL();\n\n return (\n <TouchableOpacity\n disabled={preventPress}\n onLongPress={(event) => {\n if (onLongPress) {\n onLongPress({\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPress={(event) => {\n if (onPress) {\n onPress({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n onPressIn={(event) => {\n if (onPressIn) {\n onPressIn({\n defaultHandler: defaultOnPress,\n emitter: 'fileAttachment',\n event,\n });\n }\n }}\n testID='file-attachment'\n {...additionalTouchableProps}\n >\n <View style={[styles.container, { backgroundColor: white }, container, stylesProp.container]}>\n <FileAttachmentIcon mimeType={attachment.mime_type} size={attachmentSize} />\n <View style={[styles.details, details, stylesProp.details]}>\n <Text numberOfLines={2} style={[styles.title, { color: black }, title, stylesProp.title]}>\n {attachment.title}\n </Text>\n <Text style={[styles.size, { color: grey }, fileSize, stylesProp.size]}>\n {getFileSizeDisplayText(attachment.file_size)}\n </Text>\n </View>\n </View>\n {attachment.actions?.length ? <AttachmentActions {...attachment} /> : null}\n </TouchableOpacity>\n );\n};\n\nexport type FileAttachmentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<Omit<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>> &\n Pick<FileAttachmentPropsWithContext<StreamChatGenerics>, 'attachment'>;\n\nexport const FileAttachment = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: FileAttachmentProps<StreamChatGenerics>,\n) => {\n const { onLongPress, onPress, onPressIn, preventPress } = useMessageContext<StreamChatGenerics>();\n const {\n additionalTouchableProps,\n AttachmentActions = AttachmentActionsDefault,\n FileAttachmentIcon = FileIconDefault,\n } = useMessagesContext<StreamChatGenerics>();\n\n return (\n <FileAttachmentWithContext\n {...{\n additionalTouchableProps,\n AttachmentActions,\n FileAttachmentIcon,\n onLongPress,\n onPress,\n onPressIn,\n preventPress,\n }}\n {...props}\n />\n );\n};\n\nexport const getFileSizeDisplayText = (size?: number | string) => {\n if (!size) return;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n\n if (size < 1000 * 1000) {\n return `${Math.floor(Math.floor(size / 10) / 100)} KB`;\n }\n\n return `${Math.floor(Math.floor(size / 10000) / 100)} MB`;\n};\n\nFileAttachment.displayName = 'FileAttachment{messageSimple{file}}';\n"]}
@@ -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
- borderBottomLeftRadius: 8,
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,
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,
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: 207,
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: 208,
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: 209,
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: 213,
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: 214,
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: 220,
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: 221,
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: 222,
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: 235,
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: 237,
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: 250,
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: 252,
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: 261,
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: 267,
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: 297,
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: 304,
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: 310,
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: 311,
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: 318,
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: 319,
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: 389,
514
+ lineNumber: 391,
513
515
  columnNumber: 5
514
516
  }
515
517
  }));