@planningcenter/chat-react-native 4.4.1-qa-staging.3 → 4.4.1-qa-staging.5

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 (36) hide show
  1. package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
  2. package/build/components/conversation/attachments/giphy_attachment.js +2 -2
  3. package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
  4. package/build/components/conversation/message_form.d.ts.map +1 -1
  5. package/build/components/conversation/message_form.js +5 -3
  6. package/build/components/conversation/message_form.js.map +1 -1
  7. package/build/components/conversation/system_message.js +3 -3
  8. package/build/components/conversation/system_message.js.map +1 -1
  9. package/build/hooks/use_features.d.ts +2 -0
  10. package/build/hooks/use_features.d.ts.map +1 -1
  11. package/build/hooks/use_features.js +3 -1
  12. package/build/hooks/use_features.js.map +1 -1
  13. package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
  14. package/build/screens/age_check/age_check_underage_screen.js +3 -2
  15. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  16. package/build/screens/bug_report_screen.d.ts.map +1 -1
  17. package/build/screens/bug_report_screen.js +2 -2
  18. package/build/screens/bug_report_screen.js.map +1 -1
  19. package/build/screens/get_help_screen.js +4 -4
  20. package/build/screens/get_help_screen.js.map +1 -1
  21. package/build/screens/send_giphy_screen.d.ts +1 -0
  22. package/build/screens/send_giphy_screen.d.ts.map +1 -1
  23. package/build/screens/send_giphy_screen.js +108 -106
  24. package/build/screens/send_giphy_screen.js.map +1 -1
  25. package/package.json +3 -3
  26. package/src/__tests__/components/conversation/attachments/giphy_attachment.test.tsx +76 -0
  27. package/src/__tests__/screens/get_help_screen.test.ts +40 -0
  28. package/src/__tests__/screens/send_giphy_screen.test.tsx +102 -0
  29. package/src/components/conversation/attachments/giphy_attachment.tsx +2 -3
  30. package/src/components/conversation/message_form.tsx +4 -2
  31. package/src/components/conversation/system_message.tsx +3 -3
  32. package/src/hooks/use_features.ts +2 -0
  33. package/src/screens/age_check/age_check_underage_screen.tsx +3 -2
  34. package/src/screens/bug_report_screen.tsx +2 -10
  35. package/src/screens/get_help_screen.tsx +4 -4
  36. package/src/screens/send_giphy_screen.tsx +6 -3
@@ -19,25 +19,28 @@ export const SendGiphyScreenOptions = getFormSheetScreenOptions({
19
19
  })
20
20
  });
21
21
  export function SendGiphyScreen(t0) {
22
- const $ = _c(60);
22
+ const $ = _c(62);
23
23
  const {
24
24
  route
25
25
  } = t0;
26
26
  const {
27
27
  conversation_id,
28
+ reply_root_id,
28
29
  search_term
29
30
  } = route.params;
30
31
  const styles = useStyles();
31
32
  const navigation = useNavigation();
32
33
  let t1;
33
- if ($[0] !== conversation_id) {
34
+ if ($[0] !== conversation_id || $[1] !== reply_root_id) {
34
35
  t1 = {
35
- conversationId: conversation_id
36
+ conversationId: conversation_id,
37
+ replyRootId: reply_root_id
36
38
  };
37
39
  $[0] = conversation_id;
38
- $[1] = t1;
40
+ $[1] = reply_root_id;
41
+ $[2] = t1;
39
42
  } else {
40
- t1 = $[1];
43
+ t1 = $[2];
41
44
  }
42
45
  const {
43
46
  isPending,
@@ -56,16 +59,16 @@ export function SendGiphyScreen(t0) {
56
59
  const size = width - 24;
57
60
  if (!result) {
58
61
  let t2;
59
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
62
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
60
63
  t2 = /*#__PURE__*/_jsx(BlankState.Imagery, {
61
64
  name: "general.bolt"
62
65
  });
63
- $[2] = t2;
66
+ $[3] = t2;
64
67
  } else {
65
- t2 = $[2];
68
+ t2 = $[3];
66
69
  }
67
70
  let t3;
68
- if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
71
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
69
72
  t3 = /*#__PURE__*/_jsxs(BlankState.Content, {
70
73
  children: [/*#__PURE__*/_jsx(BlankState.Heading, {
71
74
  children: "No Giphys found"
@@ -73,44 +76,44 @@ export function SendGiphyScreen(t0) {
73
76
  children: "Try a different search term."
74
77
  })]
75
78
  });
76
- $[3] = t3;
79
+ $[4] = t3;
77
80
  } else {
78
- t3 = $[3];
81
+ t3 = $[4];
79
82
  }
80
83
  let t4;
81
- if ($[4] !== navigation) {
84
+ if ($[5] !== navigation) {
82
85
  t4 = /*#__PURE__*/_jsx(BlankState.Button, {
83
86
  onPress: () => navigation.goBack(),
84
87
  title: "Close"
85
88
  });
86
- $[4] = navigation;
87
- $[5] = t4;
89
+ $[5] = navigation;
90
+ $[6] = t4;
88
91
  } else {
89
- t4 = $[5];
92
+ t4 = $[6];
90
93
  }
91
94
  let t5;
92
- if ($[6] !== styles.blankState || $[7] !== t4) {
95
+ if ($[7] !== styles.blankState || $[8] !== t4) {
93
96
  t5 = /*#__PURE__*/_jsxs(BlankState.Root, {
94
97
  style: styles.blankState,
95
98
  children: [t2, t3, t4]
96
99
  });
97
- $[6] = styles.blankState;
98
- $[7] = t4;
99
- $[8] = t5;
100
+ $[7] = styles.blankState;
101
+ $[8] = t4;
102
+ $[9] = t5;
100
103
  } else {
101
- t5 = $[8];
104
+ t5 = $[9];
102
105
  }
103
106
  let t6;
104
- if ($[9] !== styles.blankStateContainer || $[10] !== t5) {
107
+ if ($[10] !== styles.blankStateContainer || $[11] !== t5) {
105
108
  t6 = /*#__PURE__*/_jsx(FormSheet.Root, {
106
109
  contentStyle: styles.blankStateContainer,
107
110
  children: t5
108
111
  });
109
- $[9] = styles.blankStateContainer;
110
- $[10] = t5;
111
- $[11] = t6;
112
+ $[10] = styles.blankStateContainer;
113
+ $[11] = t5;
114
+ $[12] = t6;
112
115
  } else {
113
- t6 = $[11];
116
+ t6 = $[12];
114
117
  }
115
118
  return t6;
116
119
  }
@@ -119,16 +122,17 @@ export function SendGiphyScreen(t0) {
119
122
  url
120
123
  } = gif;
121
124
  let t2;
122
- if ($[12] !== conversation_id || $[13] !== navigation) {
125
+ if ($[13] !== conversation_id || $[14] !== navigation || $[15] !== reply_root_id) {
123
126
  t2 = function goBack(t3) {
124
127
  const {
125
128
  clearInput: t4
126
129
  } = t3;
127
130
  const clearInput = t4 === undefined ? false : t4;
128
131
  if (clearInput) {
132
+ const routeName = reply_root_id ? "ConversationReply" : "Conversation";
129
133
  const routes = navigation.getState()?.routes || [];
130
- const conversationParams = routes.find(_temp)?.params || {};
131
- navigation.dispatch(StackActions.popTo("Conversation", {
134
+ const conversationParams = routes.findLast(r => r.name === routeName)?.params || {};
135
+ navigation.dispatch(StackActions.popTo(routeName, {
132
136
  ...conversationParams,
133
137
  conversation_id,
134
138
  clear_input: true
@@ -137,15 +141,16 @@ export function SendGiphyScreen(t0) {
137
141
  navigation.goBack();
138
142
  }
139
143
  };
140
- $[12] = conversation_id;
141
- $[13] = navigation;
142
- $[14] = t2;
144
+ $[13] = conversation_id;
145
+ $[14] = navigation;
146
+ $[15] = reply_root_id;
147
+ $[16] = t2;
143
148
  } else {
144
- t2 = $[14];
149
+ t2 = $[16];
145
150
  }
146
151
  const goBack = t2;
147
152
  let t3;
148
- if ($[15] !== disabled || $[16] !== goBack || $[17] !== mutate || $[18] !== result) {
153
+ if ($[17] !== disabled || $[18] !== goBack || $[19] !== mutate || $[20] !== result) {
149
154
  t3 = function sendGiphy() {
150
155
  if (disabled) {
151
156
  return;
@@ -158,91 +163,91 @@ export function SendGiphyScreen(t0) {
158
163
  clearInput: true
159
164
  });
160
165
  };
161
- $[15] = disabled;
162
- $[16] = goBack;
163
- $[17] = mutate;
164
- $[18] = result;
165
- $[19] = t3;
166
+ $[17] = disabled;
167
+ $[18] = goBack;
168
+ $[19] = mutate;
169
+ $[20] = result;
170
+ $[21] = t3;
166
171
  } else {
167
- t3 = $[19];
172
+ t3 = $[21];
168
173
  }
169
174
  const sendGiphy = t3;
170
175
  let t4;
171
- if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
176
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
172
177
  t4 = {
173
178
  uri: poweredByGiphyImage
174
179
  };
175
- $[20] = t4;
180
+ $[22] = t4;
176
181
  } else {
177
- t4 = $[20];
182
+ t4 = $[22];
178
183
  }
179
184
  let t5;
180
- if ($[21] !== styles.poweredByGiphyImage) {
185
+ if ($[23] !== styles.poweredByGiphyImage) {
181
186
  t5 = /*#__PURE__*/_jsx(NativeImage, {
182
187
  alt: "Powered by Giphy",
183
188
  style: styles.poweredByGiphyImage,
184
189
  source: t4
185
190
  });
186
- $[21] = styles.poweredByGiphyImage;
187
- $[22] = t5;
191
+ $[23] = styles.poweredByGiphyImage;
192
+ $[24] = t5;
188
193
  } else {
189
- t5 = $[22];
194
+ t5 = $[24];
190
195
  }
191
196
  let t6;
192
- if ($[23] !== styles.poweredByGiphyContainer || $[24] !== t5) {
197
+ if ($[25] !== styles.poweredByGiphyContainer || $[26] !== t5) {
193
198
  t6 = /*#__PURE__*/_jsx(View, {
194
199
  style: styles.poweredByGiphyContainer,
195
200
  children: t5
196
201
  });
197
- $[23] = styles.poweredByGiphyContainer;
198
- $[24] = t5;
199
- $[25] = t6;
202
+ $[25] = styles.poweredByGiphyContainer;
203
+ $[26] = t5;
204
+ $[27] = t6;
200
205
  } else {
201
- t6 = $[25];
206
+ t6 = $[27];
202
207
  }
203
208
  let t7;
204
- if ($[26] !== disabled || $[27] !== prevResult) {
209
+ if ($[28] !== disabled || $[29] !== prevResult) {
205
210
  t7 = /*#__PURE__*/_jsx(PaginateButton, {
206
211
  name: "general.leftArrow",
207
212
  accessibilityLabel: "Previous Giphy",
208
213
  onPress: prevResult,
209
214
  disabled: disabled
210
215
  });
211
- $[26] = disabled;
212
- $[27] = prevResult;
213
- $[28] = t7;
216
+ $[28] = disabled;
217
+ $[29] = prevResult;
218
+ $[30] = t7;
214
219
  } else {
215
- t7 = $[28];
220
+ t7 = $[30];
216
221
  }
217
222
  let t8;
218
- if ($[29] !== disabled || $[30] !== nextResult) {
223
+ if ($[31] !== disabled || $[32] !== nextResult) {
219
224
  t8 = /*#__PURE__*/_jsx(PaginateButton, {
220
225
  name: "general.rightArrow",
221
226
  accessibilityLabel: "Next GIF",
222
227
  onPress: nextResult,
223
228
  disabled: disabled
224
229
  });
225
- $[29] = disabled;
226
- $[30] = nextResult;
227
- $[31] = t8;
230
+ $[31] = disabled;
231
+ $[32] = nextResult;
232
+ $[33] = t8;
228
233
  } else {
229
- t8 = $[31];
234
+ t8 = $[33];
230
235
  }
231
236
  let t9;
232
- if ($[32] !== styles.paginateButtonGroup || $[33] !== t7 || $[34] !== t8) {
237
+ if ($[34] !== styles.paginateButtonGroup || $[35] !== t7 || $[36] !== t8) {
233
238
  t9 = /*#__PURE__*/_jsxs(View, {
234
239
  style: styles.paginateButtonGroup,
235
240
  children: [t7, t8]
236
241
  });
237
- $[32] = styles.paginateButtonGroup;
238
- $[33] = t7;
239
- $[34] = t8;
240
- $[35] = t9;
242
+ $[34] = styles.paginateButtonGroup;
243
+ $[35] = t7;
244
+ $[36] = t8;
245
+ $[37] = t9;
241
246
  } else {
242
- t9 = $[35];
247
+ t9 = $[37];
243
248
  }
244
249
  let t10;
245
- if ($[36] !== goBack) {
250
+ if ($[38] !== goBack) {
246
251
  t10 = /*#__PURE__*/_jsx(TextButton, {
247
252
  onPress: () => goBack({
248
253
  clearInput: false
@@ -251,13 +256,13 @@ export function SendGiphyScreen(t0) {
251
256
  accessibilityHint: "Cancels the Giphy selection and closes this modal.",
252
257
  children: "Cancel"
253
258
  });
254
- $[36] = goBack;
255
- $[37] = t10;
259
+ $[38] = goBack;
260
+ $[39] = t10;
256
261
  } else {
257
- t10 = $[37];
262
+ t10 = $[39];
258
263
  }
259
264
  let t11;
260
- if ($[38] !== disabled || $[39] !== sendGiphy) {
265
+ if ($[40] !== disabled || $[41] !== sendGiphy) {
261
266
  t11 = /*#__PURE__*/_jsx(Button, {
262
267
  onPress: sendGiphy,
263
268
  title: "Send",
@@ -267,41 +272,41 @@ export function SendGiphyScreen(t0) {
267
272
  accessibilityLabel: "Send Giphy",
268
273
  accessibilityHint: "Sends the selected Giphy as a message to the conversation."
269
274
  });
270
- $[38] = disabled;
271
- $[39] = sendGiphy;
272
- $[40] = t11;
275
+ $[40] = disabled;
276
+ $[41] = sendGiphy;
277
+ $[42] = t11;
273
278
  } else {
274
- t11 = $[40];
279
+ t11 = $[42];
275
280
  }
276
281
  let t12;
277
- if ($[41] !== styles.formButtonGroup || $[42] !== t10 || $[43] !== t11) {
282
+ if ($[43] !== styles.formButtonGroup || $[44] !== t10 || $[45] !== t11) {
278
283
  t12 = /*#__PURE__*/_jsxs(View, {
279
284
  style: styles.formButtonGroup,
280
285
  children: [t10, t11]
281
286
  });
282
- $[41] = styles.formButtonGroup;
283
- $[42] = t10;
284
- $[43] = t11;
285
- $[44] = t12;
287
+ $[43] = styles.formButtonGroup;
288
+ $[44] = t10;
289
+ $[45] = t11;
290
+ $[46] = t12;
286
291
  } else {
287
- t12 = $[44];
292
+ t12 = $[46];
288
293
  }
289
294
  let t13;
290
- if ($[45] !== styles.controlToolbar || $[46] !== t12 || $[47] !== t9) {
295
+ if ($[47] !== styles.controlToolbar || $[48] !== t12 || $[49] !== t9) {
291
296
  t13 = /*#__PURE__*/_jsxs(View, {
292
297
  style: styles.controlToolbar,
293
298
  accessibilityRole: "toolbar",
294
299
  children: [t9, t12]
295
300
  });
296
- $[45] = styles.controlToolbar;
297
- $[46] = t12;
298
- $[47] = t9;
299
- $[48] = t13;
301
+ $[47] = styles.controlToolbar;
302
+ $[48] = t12;
303
+ $[49] = t9;
304
+ $[50] = t13;
300
305
  } else {
301
- t13 = $[48];
306
+ t13 = $[50];
302
307
  }
303
308
  let t14;
304
- if ($[49] !== isSearching || $[50] !== result.title || $[51] !== size || $[52] !== styles.image || $[53] !== url) {
309
+ if ($[51] !== isSearching || $[52] !== result.title || $[53] !== size || $[54] !== styles.image || $[55] !== url) {
305
310
  t14 = isSearching ? /*#__PURE__*/_jsx(DefaultLoading, {}) : /*#__PURE__*/_jsx(NativeImage, {
306
311
  source: {
307
312
  uri: url
@@ -312,34 +317,31 @@ export function SendGiphyScreen(t0) {
312
317
  height: size
313
318
  }]
314
319
  });
315
- $[49] = isSearching;
316
- $[50] = result.title;
317
- $[51] = size;
318
- $[52] = styles.image;
319
- $[53] = url;
320
- $[54] = t14;
320
+ $[51] = isSearching;
321
+ $[52] = result.title;
322
+ $[53] = size;
323
+ $[54] = styles.image;
324
+ $[55] = url;
325
+ $[56] = t14;
321
326
  } else {
322
- t14 = $[54];
327
+ t14 = $[56];
323
328
  }
324
329
  let t15;
325
- if ($[55] !== styles.container || $[56] !== t13 || $[57] !== t14 || $[58] !== t6) {
330
+ if ($[57] !== styles.container || $[58] !== t13 || $[59] !== t14 || $[60] !== t6) {
326
331
  t15 = /*#__PURE__*/_jsxs(FormSheet.Root, {
327
332
  contentStyle: styles.container,
328
333
  children: [t6, t13, t14]
329
334
  });
330
- $[55] = styles.container;
331
- $[56] = t13;
332
- $[57] = t14;
333
- $[58] = t6;
334
- $[59] = t15;
335
+ $[57] = styles.container;
336
+ $[58] = t13;
337
+ $[59] = t14;
338
+ $[60] = t6;
339
+ $[61] = t15;
335
340
  } else {
336
- t15 = $[59];
341
+ t15 = $[61];
337
342
  }
338
343
  return t15;
339
344
  }
340
- function _temp(r) {
341
- return r.name === "Conversation";
342
- }
343
345
  function PaginateButton(t0) {
344
346
  const $ = _c(14);
345
347
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"send_giphy_screen.js","names":["StackActions","useNavigation","React","Image","NativeImage","Platform","StyleSheet","useWindowDimensions","View","Button","IconButton","TextButton","DefaultLoading","BlankState","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useTheme","useGiphy","useMessageCreateOrUpdate","tokens","jsx","_jsx","jsxs","_jsxs","SendGiphyScreenOptions","headerTitle","sheetAllowedDetents","select","android","default","SendGiphyScreen","t0","$","_c","route","conversation_id","search_term","params","styles","useStyles","navigation","t1","conversationId","isPending","mutate","isSearching","result","nextResult","prevResult","disabled","width","size","t2","Symbol","for","Imagery","name","t3","Content","children","Heading","Text","t4","onPress","goBack","title","t5","blankState","Root","style","t6","blankStateContainer","contentStyle","gif","giphy","fixed_width","url","clearInput","undefined","routes","getState","conversationParams","find","_temp","dispatch","popTo","clear_input","sendGiphy","text","attachments","uri","poweredByGiphyImage","alt","source","poweredByGiphyContainer","t7","PaginateButton","accessibilityLabel","t8","t9","paginateButtonGroup","t10","maxFontSizeMultiplier","accessibilityHint","t11","t12","formButtonGroup","t13","controlToolbar","accessibilityRole","t14","image","height","t15","container","r","colors","interaction","color","androidRippleColor","paginateButtonDisabled","paginateButton","borderless","foreground","appearance","android_ripple","fillColorButtonNeutralSolidDisabled","create","paddingTop","paddingHorizontal","gap","paddingVertical","flex","flexGrow","alignSelf","padding","borderRadius","backgroundColor","colorNeutral68","flexDirection","justifyContent","alignItems","borderColor","borderWidth","overflow","maxWidth"],"sources":["../../src/screens/send_giphy_screen.tsx"],"sourcesContent":["import { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { Image as NativeImage, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { Button, IconButton, IconString, TextButton } from '../components'\nimport { DefaultLoading } from '../components/page/loading'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useTheme } from '../hooks'\nimport { useGiphy } from '../hooks/use_giphy'\nimport { useMessageCreateOrUpdate } from '../hooks/use_message_create_or_update'\nimport { tokens } from '../vendor/tapestry/tokens'\n\nexport const SendGiphyScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Send Giphy',\n sheetAllowedDetents: Platform.select({ android: [0.7, 0.94], default: [0.7, 1] }),\n})\n\nexport type SendGiphyScreenProps = StaticScreenProps<{\n conversation_id: number\n search_term: string\n}>\n\nexport function SendGiphyScreen({ route }: SendGiphyScreenProps) {\n const { conversation_id, search_term } = route.params\n const styles = useStyles()\n const navigation = useNavigation()\n\n const { isPending, mutate } = useMessageCreateOrUpdate({\n conversationId: conversation_id,\n })\n const { isSearching, result, nextResult, prevResult } = useGiphy(search_term)\n const disabled = isPending || isSearching\n\n const { width } = useWindowDimensions()\n const size = width - 24\n\n if (!result)\n return (\n <FormSheet.Root contentStyle={styles.blankStateContainer}>\n <BlankState.Root style={styles.blankState}>\n <BlankState.Imagery name=\"general.bolt\" />\n <BlankState.Content>\n <BlankState.Heading>No Giphys found</BlankState.Heading>\n <BlankState.Text>Try a different search term.</BlankState.Text>\n </BlankState.Content>\n <BlankState.Button onPress={() => navigation.goBack()} title=\"Close\" />\n </BlankState.Root>\n </FormSheet.Root>\n )\n\n const gif = result.giphy.fixed_width\n const { url } = gif\n\n function goBack({ clearInput = false }) {\n if (clearInput) {\n const routes = navigation.getState()?.routes || []\n const conversationParams = routes.find(r => r.name === 'Conversation')?.params || {}\n\n navigation.dispatch(\n StackActions.popTo('Conversation', {\n ...conversationParams,\n conversation_id,\n clear_input: true,\n })\n )\n } else {\n navigation.goBack()\n }\n }\n\n function sendGiphy() {\n if (disabled) return\n\n mutate({ text: '', attachments: [result] })\n goBack({ clearInput: true })\n }\n\n return (\n <FormSheet.Root contentStyle={styles.container}>\n <View style={styles.poweredByGiphyContainer}>\n <NativeImage\n alt=\"Powered by Giphy\"\n style={styles.poweredByGiphyImage}\n source={{ uri: poweredByGiphyImage }}\n />\n </View>\n <View style={styles.controlToolbar} accessibilityRole=\"toolbar\">\n <View style={styles.paginateButtonGroup}>\n <PaginateButton\n name=\"general.leftArrow\"\n accessibilityLabel=\"Previous Giphy\"\n onPress={prevResult}\n disabled={disabled}\n />\n <PaginateButton\n name=\"general.rightArrow\"\n accessibilityLabel=\"Next GIF\"\n onPress={nextResult}\n disabled={disabled}\n />\n </View>\n <View style={styles.formButtonGroup}>\n <TextButton\n onPress={() => goBack({ clearInput: false })}\n maxFontSizeMultiplier={1}\n accessibilityHint=\"Cancels the Giphy selection and closes this modal.\"\n >\n Cancel\n </TextButton>\n <Button\n onPress={sendGiphy}\n title=\"Send\"\n size=\"lg\"\n disabled={disabled}\n maxFontSizeMultiplier={1}\n accessibilityLabel=\"Send Giphy\"\n accessibilityHint=\"Sends the selected Giphy as a message to the conversation.\"\n />\n </View>\n </View>\n {isSearching ? (\n <DefaultLoading />\n ) : (\n <NativeImage\n source={{ uri: url }}\n alt={result.title}\n style={[styles.image, { width: size, height: size }]}\n />\n )}\n </FormSheet.Root>\n )\n}\n\ninterface PaginateButtonProps {\n name: IconString\n accessibilityLabel: string\n onPress: () => void\n disabled: boolean\n}\n\nfunction PaginateButton({ name, accessibilityLabel, onPress, disabled }: PaginateButtonProps) {\n const styles = useStyles()\n const { colors } = useTheme()\n const androidRippleColor = useCreateAndroidRippleColor({ color: colors.interaction })\n\n return (\n <IconButton\n name={name}\n accessibilityLabel={accessibilityLabel}\n size=\"md\"\n appearance=\"interaction\"\n onPress={onPress}\n disabled={disabled}\n style={[styles.paginateButton, disabled && styles.paginateButtonDisabled]}\n android_ripple={{\n color: androidRippleColor,\n borderless: true,\n foreground: true,\n }}\n maxFontSizeMultiplier={1}\n />\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n paddingTop: 32,\n paddingHorizontal: 16,\n gap: 8,\n },\n blankStateContainer: {\n paddingVertical: 64,\n },\n blankState: {\n flex: 0,\n flexGrow: 1,\n },\n poweredByGiphyContainer: {\n alignSelf: 'flex-start',\n padding: 4,\n borderRadius: 4,\n backgroundColor: colors.name === 'dark' ? tokens.colorNeutral68 : 'transparent',\n },\n poweredByGiphyImage: {\n width: 170,\n height: 20,\n },\n controlToolbar: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n formButtonGroup: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 16,\n },\n paginateButtonGroup: {\n flexDirection: 'row',\n gap: 8,\n },\n paginateButton: {\n borderColor: colors.interaction,\n borderWidth: 1,\n height: 28,\n paddingHorizontal: 12,\n borderRadius: 16,\n overflow: 'hidden',\n },\n paginateButtonDisabled: {\n backgroundColor: colors.fillColorButtonNeutralSolidDisabled,\n borderColor: colors.fillColorButtonNeutralSolidDisabled,\n },\n image: {\n borderRadius: 8,\n maxWidth: '100%',\n },\n })\n}\n\nconst poweredByGiphyImage = `data:image/png;base64,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`\n"],"mappings":";AAAA,SAASA,YAAY,EAAqBC,aAAa,QAAQ,0BAA0B;AACzF,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,IAAIC,WAAW,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AACpG,SAASC,MAAM,EAAEC,UAAU,EAAcC,UAAU,QAAQ,eAAe;AAC1E,SAASC,cAAc,QAAQ,4BAA4B;AAC3D,OAAOC,UAAU,MAAM,+CAA+C;AACtE,OAAOC,SAAS,IAAIC,yBAAyB,QAAQ,oCAAoC;AACzF,SAASC,2BAA2B,EAAEC,QAAQ,QAAQ,UAAU;AAChE,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,wBAAwB,QAAQ,uCAAuC;AAChF,SAASC,MAAM,QAAQ,2BAA2B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,OAAO,MAAMC,sBAAsB,GAAGV,yBAAyB,CAAC;EAC9DW,WAAW,EAAE,YAAY;EACzBC,mBAAmB,EAAEtB,QAAQ,CAACuB,MAAM,CAAC;IAAEC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;IAAEC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;EAAE,CAAC;AAClF,CAAC,CAAC;AAOF,OAAO,SAAAC,gBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAyB;IAAAC;EAAA,IAAAH,EAA+B;EAC7D;IAAAI,eAAA;IAAAC;EAAA,IAAyCF,KAAK,CAAAG,MAAO;EACrD,MAAAC,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B,MAAAC,UAAA,GAAmBxC,aAAa,CAAC,CAAC;EAAA,IAAAyC,EAAA;EAAA,IAAAT,CAAA,QAAAG,eAAA;IAEqBM,EAAA;MAAAC,cAAA,EACrCP;IAClB,CAAC;IAAAH,CAAA,MAAAG,eAAA;IAAAH,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAFD;IAAAW,SAAA;IAAAC;EAAA,IAA8B1B,wBAAwB,CAACuB,EAEtD,CAAC;EACF;IAAAI,WAAA;IAAAC,MAAA;IAAAC,UAAA;IAAAC;EAAA,IAAwD/B,QAAQ,CAACmB,WAAW,CAAC;EAC7E,MAAAa,QAAA,GAAiBN,SAAwB,IAAxBE,WAAwB;EAEzC;IAAAK;EAAA,IAAkB5C,mBAAmB,CAAC,CAAC;EACvC,MAAA6C,IAAA,GAAaD,KAAK,GAAG,EAAE;EAEvB,IAAI,CAACJ,MAAM;IAAA,IAAAM,EAAA;IAAA,IAAApB,CAAA,QAAAqB,MAAA,CAAAC,GAAA;MAIHF,EAAA,gBAAA/B,IAAA,CAAAT,UAAA,CAAA2C,OAAA;QAAyBC,IAAc,EAAd;MAAc,CAAE,CAAC;MAAAxB,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAAA,IAAAyB,EAAA;IAAA,IAAAzB,CAAA,QAAAqB,MAAA,CAAAC,GAAA;MAC1CG,EAAA,gBAAAlC,KAAA,CAAAX,UAAA,CAAA8C,OAAA;QAAAC,QAAA,gBACEtC,IAAA,CAAAT,UAAA,CAAAgD,OAAA;UAAAD,QAAA,EAAoB;QAAe,CAAoB,CAAC,eACxDtC,IAAA,CAAAT,UAAA,CAAAiD,IAAA;UAAAF,QAAA,EAAiB;QAA4B,CAAiB,CAAC;MAAA,CAC7C,CAAC;MAAA3B,CAAA,MAAAyB,EAAA;IAAA;MAAAA,EAAA,GAAAzB,CAAA;IAAA;IAAA,IAAA8B,EAAA;IAAA,IAAA9B,CAAA,QAAAQ,UAAA;MACrBsB,EAAA,gBAAAzC,IAAA,CAAAT,UAAA,CAAAJ,MAAA;QAA4BuD,OAAyB,EAAzBA,CAAA,KAAMvB,UAAU,CAAAwB,MAAO,CAAC,CAAC;QAAQC,KAAO,EAAP;MAAO,CAAE,CAAC;MAAAjC,CAAA,MAAAQ,UAAA;MAAAR,CAAA,MAAA8B,EAAA;IAAA;MAAAA,EAAA,GAAA9B,CAAA;IAAA;IAAA,IAAAkC,EAAA;IAAA,IAAAlC,CAAA,QAAAM,MAAA,CAAA6B,UAAA,IAAAnC,CAAA,QAAA8B,EAAA;MANzEI,EAAA,gBAAA3C,KAAA,CAAAX,UAAA,CAAAwD,IAAA;QAAwBC,KAAiB,EAAjB/B,MAAM,CAAA6B,UAAW;QAAAR,QAAA,GACvCP,EAA0C,EAC1CK,EAGqB,EACrBK,EAAuE;MAAA,CACxD,CAAC;MAAA9B,CAAA,MAAAM,MAAA,CAAA6B,UAAA;MAAAnC,CAAA,MAAA8B,EAAA;MAAA9B,CAAA,MAAAkC,EAAA;IAAA;MAAAA,EAAA,GAAAlC,CAAA;IAAA;IAAA,IAAAsC,EAAA;IAAA,IAAAtC,CAAA,QAAAM,MAAA,CAAAiC,mBAAA,IAAAvC,CAAA,SAAAkC,EAAA;MARpBI,EAAA,gBAAAjD,IAAA,CAAAR,SAAA,CAAAuD,IAAA;QAA8BI,YAA0B,EAA1BlC,MAAM,CAAAiC,mBAAoB;QAAAZ,QAAA,EACtDO;MAOkB,CACJ,CAAC;MAAAlC,CAAA,MAAAM,MAAA,CAAAiC,mBAAA;MAAAvC,CAAA,OAAAkC,EAAA;MAAAlC,CAAA,OAAAsC,EAAA;IAAA;MAAAA,EAAA,GAAAtC,CAAA;IAAA;IAAA,OATjBsC,EASiB;EAAA;EAGrB,MAAAG,GAAA,GAAY3B,MAAM,CAAA4B,KAAM,CAAAC,WAAY;EACpC;IAAAC;EAAA,IAAgBH,GAAG;EAAA,IAAArB,EAAA;EAAA,IAAApB,CAAA,SAAAG,eAAA,IAAAH,CAAA,SAAAQ,UAAA;IAEnBY,EAAA,YAAAY,OAAAP,EAAA;MAAgB;QAAAoB,UAAA,EAAAf;MAAA,IAAAL,EAAsB;MAApB,MAAAoB,UAAA,GAAAf,EAAkB,KAAlBgB,SAAkB,GAAlB,KAAkB,GAAlBhB,EAAkB;MAClC,IAAIe,UAAU;QACZ,MAAAE,MAAA,GAAevC,UAAU,CAAAwC,QAAS,CAAS,CAAC,EAAAD,MAAM,IAAnC,EAAmC;QAClD,MAAAE,kBAAA,GAA2BF,MAAM,CAAAG,IAAK,CAACC,KAAsC,CAAC,EAAA9C,MAAM,IAAzD,CAAwD,CAAC;QAEpFG,UAAU,CAAA4C,QAAS,CACjBrF,YAAY,CAAAsF,KAAM,CAAC,cAAc,EAAE;UAAA,GAC9BJ,kBAAkB;UAAA9C,eAAA;UAAAmD,WAAA,EAER;QACf,CAAC,CACH,CAAC;MAAA;QAED9C,UAAU,CAAAwB,MAAO,CAAC,CAAC;MAAA;IACpB,CACF;IAAAhC,CAAA,OAAAG,eAAA;IAAAH,CAAA,OAAAQ,UAAA;IAAAR,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAfD,MAAAgC,MAAA,GAAAZ,EAeC;EAAA,IAAAK,EAAA;EAAA,IAAAzB,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAgC,MAAA,IAAAhC,CAAA,SAAAY,MAAA,IAAAZ,CAAA,SAAAc,MAAA;IAEDW,EAAA,YAAA8B,UAAA;MACE,IAAItC,QAAQ;QAAA;MAAA;MAEZL,MAAM,CAAC;QAAA4C,IAAA,EAAQ,EAAE;QAAAC,WAAA,EAAe,CAAC3C,MAAM;MAAE,CAAC,CAAC;MAC3CkB,MAAM,CAAC;QAAAa,UAAA,EAAc;MAAK,CAAC,CAAC;IAAA,CAC7B;IAAA7C,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAgC,MAAA;IAAAhC,CAAA,OAAAY,MAAA;IAAAZ,CAAA,OAAAc,MAAA;IAAAd,CAAA,OAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EALD,MAAAuD,SAAA,GAAA9B,EAKC;EAAA,IAAAK,EAAA;EAAA,IAAA9B,CAAA,SAAAqB,MAAA,CAAAC,GAAA;IAQeQ,EAAA;MAAA4B,GAAA,EAAOC;IAAoB,CAAC;IAAA3D,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,SAAAM,MAAA,CAAAqD,mBAAA;IAHtCzB,EAAA,gBAAA7C,IAAA,CAAClB,WAAW;MACNyF,GAAkB,EAAlB,kBAAkB;MACfvB,KAA0B,EAA1B/B,MAAM,CAAAqD,mBAAoB;MACzBE,MAA4B,EAA5B/B;IAA4B,CACrC,CAAC;IAAA9B,CAAA,OAAAM,MAAA,CAAAqD,mBAAA;IAAA3D,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,IAAAsC,EAAA;EAAA,IAAAtC,CAAA,SAAAM,MAAA,CAAAwD,uBAAA,IAAA9D,CAAA,SAAAkC,EAAA;IALJI,EAAA,gBAAAjD,IAAA,CAACd,IAAI;MAAQ8D,KAA8B,EAA9B/B,MAAM,CAAAwD,uBAAwB;MAAAnC,QAAA,EACzCO;IAIE,CACE,CAAC;IAAAlC,CAAA,OAAAM,MAAA,CAAAwD,uBAAA;IAAA9D,CAAA,OAAAkC,EAAA;IAAAlC,CAAA,OAAAsC,EAAA;EAAA;IAAAA,EAAA,GAAAtC,CAAA;EAAA;EAAA,IAAA+D,EAAA;EAAA,IAAA/D,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAgB,UAAA;IAGH+C,EAAA,gBAAA1E,IAAA,CAAC2E,cAAc;MACRxC,IAAmB,EAAnB,mBAAmB;MACLyC,kBAAgB,EAAhB,gBAAgB;MAC1BjD,OAAU,EAAVA,UAAU;MACTC,QAAQ,EAARA;IAAQ,CACnB,CAAC;IAAAjB,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAgB,UAAA;IAAAhB,CAAA,OAAA+D,EAAA;EAAA;IAAAA,EAAA,GAAA/D,CAAA;EAAA;EAAA,IAAAkE,EAAA;EAAA,IAAAlE,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAe,UAAA;IACFmD,EAAA,gBAAA7E,IAAA,CAAC2E,cAAc;MACRxC,IAAoB,EAApB,oBAAoB;MACNyC,kBAAU,EAAV,UAAU;MACpBlD,OAAU,EAAVA,UAAU;MACTE,QAAQ,EAARA;IAAQ,CACnB,CAAC;IAAAjB,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAe,UAAA;IAAAf,CAAA,OAAAkE,EAAA;EAAA;IAAAA,EAAA,GAAAlE,CAAA;EAAA;EAAA,IAAAmE,EAAA;EAAA,IAAAnE,CAAA,SAAAM,MAAA,CAAA8D,mBAAA,IAAApE,CAAA,SAAA+D,EAAA,IAAA/D,CAAA,SAAAkE,EAAA;IAZJC,EAAA,gBAAA5E,KAAA,CAAChB,IAAI;MAAQ8D,KAA0B,EAA1B/B,MAAM,CAAA8D,mBAAoB;MAAAzC,QAAA,GACrCoC,EAKE,EACFG,EAKE;IAAA,CACE,CAAC;IAAAlE,CAAA,OAAAM,MAAA,CAAA8D,mBAAA;IAAApE,CAAA,OAAA+D,EAAA;IAAA/D,CAAA,OAAAkE,EAAA;IAAAlE,CAAA,OAAAmE,EAAA;EAAA;IAAAA,EAAA,GAAAnE,CAAA;EAAA;EAAA,IAAAqE,GAAA;EAAA,IAAArE,CAAA,SAAAgC,MAAA;IAELqC,GAAA,gBAAAhF,IAAA,CAACX,UAAU;MACAqD,OAAmC,EAAnCA,CAAA,KAAMC,MAAM,CAAC;QAAAa,UAAA,EAAc;MAAM,CAAC,CAAC;MACrByB,qBAAC,EAAD,CAAC;MACNC,iBAAoD,EAApD,oDAAoD;MAAA5C,QAAA,EACvE;IAED,CAAY,CAAC;IAAA3B,CAAA,OAAAgC,MAAA;IAAAhC,CAAA,OAAAqE,GAAA;EAAA;IAAAA,GAAA,GAAArE,CAAA;EAAA;EAAA,IAAAwE,GAAA;EAAA,IAAAxE,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAuD,SAAA;IACbiB,GAAA,gBAAAnF,IAAA,CAACb,MAAM;MACI+E,OAAS,EAATA,SAAS;MACZtB,KAAM,EAAN,MAAM;MACPd,IAAI,EAAJ,IAAI;MACCF,QAAQ,EAARA,QAAQ;MACKqD,qBAAC,EAAD,CAAC;MACLL,kBAAY,EAAZ,YAAY;MACbM,iBAA4D,EAA5D;IAA4D,CAC/E,CAAC;IAAAvE,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAuD,SAAA;IAAAvD,CAAA,OAAAwE,GAAA;EAAA;IAAAA,GAAA,GAAAxE,CAAA;EAAA;EAAA,IAAAyE,GAAA;EAAA,IAAAzE,CAAA,SAAAM,MAAA,CAAAoE,eAAA,IAAA1E,CAAA,SAAAqE,GAAA,IAAArE,CAAA,SAAAwE,GAAA;IAhBJC,GAAA,gBAAAlF,KAAA,CAAChB,IAAI;MAAQ8D,KAAsB,EAAtB/B,MAAM,CAAAoE,eAAgB;MAAA/C,QAAA,GACjC0C,GAMa,EACbG,GAQE;IAAA,CACE,CAAC;IAAAxE,CAAA,OAAAM,MAAA,CAAAoE,eAAA;IAAA1E,CAAA,OAAAqE,GAAA;IAAArE,CAAA,OAAAwE,GAAA;IAAAxE,CAAA,OAAAyE,GAAA;EAAA;IAAAA,GAAA,GAAAzE,CAAA;EAAA;EAAA,IAAA2E,GAAA;EAAA,IAAA3E,CAAA,SAAAM,MAAA,CAAAsE,cAAA,IAAA5E,CAAA,SAAAyE,GAAA,IAAAzE,CAAA,SAAAmE,EAAA;IAhCTQ,GAAA,gBAAApF,KAAA,CAAChB,IAAI;MAAQ8D,KAAqB,EAArB/B,MAAM,CAAAsE,cAAe;MAAoBC,iBAAS,EAAT,SAAS;MAAAlD,QAAA,GAC7DwC,EAaO,EACPM,GAiBO;IAAA,CACH,CAAC;IAAAzE,CAAA,OAAAM,MAAA,CAAAsE,cAAA;IAAA5E,CAAA,OAAAyE,GAAA;IAAAzE,CAAA,OAAAmE,EAAA;IAAAnE,CAAA,OAAA2E,GAAA;EAAA;IAAAA,GAAA,GAAA3E,CAAA;EAAA;EAAA,IAAA8E,GAAA;EAAA,IAAA9E,CAAA,SAAAa,WAAA,IAAAb,CAAA,SAAAc,MAAA,CAAAmB,KAAA,IAAAjC,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAM,MAAA,CAAAyE,KAAA,IAAA/E,CAAA,SAAA4C,GAAA;IACNkC,GAAA,GAAAjE,WAAW,gBAAXxB,IAAA,CACEV,cAAc,IAOjB,CAAC,gBARAU,IAAA,CAGElB,WAAW;MACF0F,MAAY,EAAZ;QAAAH,GAAA,EAAOd;MAAI,CAAC;MACfgB,GAAY,EAAZ9C,MAAM,CAAAmB,KAAM;MACVI,KAA6C,EAA7C,CAAC/B,MAAM,CAAAyE,KAAM,EAAE;QAAA7D,KAAA,EAASC,IAAI;QAAA6D,MAAA,EAAU7D;MAAK,CAAC;IAAC,CAExD,CAAC;IAAAnB,CAAA,OAAAa,WAAA;IAAAb,CAAA,OAAAc,MAAA,CAAAmB,KAAA;IAAAjC,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAM,MAAA,CAAAyE,KAAA;IAAA/E,CAAA,OAAA4C,GAAA;IAAA5C,CAAA,OAAA8E,GAAA;EAAA;IAAAA,GAAA,GAAA9E,CAAA;EAAA;EAAA,IAAAiF,GAAA;EAAA,IAAAjF,CAAA,SAAAM,MAAA,CAAA4E,SAAA,IAAAlF,CAAA,SAAA2E,GAAA,IAAA3E,CAAA,SAAA8E,GAAA,IAAA9E,CAAA,SAAAsC,EAAA;IAlDH2C,GAAA,gBAAA1F,KAAA,CAAAV,SAAA,CAAAuD,IAAA;MAA8BI,YAAgB,EAAhBlC,MAAM,CAAA4E,SAAU;MAAAvD,QAAA,GAC5CW,EAMO,EACPqC,GAiCO,EACNG,GAQA;IAAA,CACa,CAAC;IAAA9E,CAAA,OAAAM,MAAA,CAAA4E,SAAA;IAAAlF,CAAA,OAAA2E,GAAA;IAAA3E,CAAA,OAAA8E,GAAA;IAAA9E,CAAA,OAAAsC,EAAA;IAAAtC,CAAA,OAAAiF,GAAA;EAAA;IAAAA,GAAA,GAAAjF,CAAA;EAAA;EAAA,OAnDjBiF,GAmDiB;AAAA;AA3Gd,SAAA9B,MAAAgC,CAAA;EAAA,OAkC2CA,CAAC,CAAA3D,IAAK,KAAK,cAAc;AAAA;AAoF3E,SAAAwC,eAAAjE,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAwB;IAAAuB,IAAA;IAAAyC,kBAAA;IAAAlC,OAAA;IAAAd;EAAA,IAAAlB,EAAoE;EAC1F,MAAAO,MAAA,GAAeC,SAAS,CAAC,CAAC;EAC1B;IAAA6E;EAAA,IAAmBpG,QAAQ,CAAC,CAAC;EAAA,IAAAyB,EAAA;EAAA,IAAAT,CAAA,QAAAoF,MAAA,CAAAC,WAAA;IAC0B5E,EAAA;MAAA6E,KAAA,EAASF,MAAM,CAAAC;IAAa,CAAC;IAAArF,CAAA,MAAAoF,MAAA,CAAAC,WAAA;IAAArF,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAApF,MAAAuF,kBAAA,GAA2BxG,2BAA2B,CAAC0B,EAA6B,CAAC;EAUlD,MAAAW,EAAA,GAAAH,QAAyC,IAA7BX,MAAM,CAAAkF,sBAAuB;EAAA,IAAA/D,EAAA;EAAA,IAAAzB,CAAA,QAAAM,MAAA,CAAAmF,cAAA,IAAAzF,CAAA,QAAAoB,EAAA;IAAjEK,EAAA,IAACnB,MAAM,CAAAmF,cAAe,EAAErE,EAAyC,CAAC;IAAApB,CAAA,MAAAM,MAAA,CAAAmF,cAAA;IAAAzF,CAAA,MAAAoB,EAAA;IAAApB,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAAA,IAAA8B,EAAA;EAAA,IAAA9B,CAAA,QAAAuF,kBAAA;IACzDzD,EAAA;MAAAwD,KAAA,EACPC,kBAAkB;MAAAG,UAAA,EACb,IAAI;MAAAC,UAAA,EACJ;IACd,CAAC;IAAA3F,CAAA,MAAAuF,kBAAA;IAAAvF,CAAA,MAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAAA,IAAAkC,EAAA;EAAA,IAAAlC,CAAA,QAAAiE,kBAAA,IAAAjE,CAAA,QAAAiB,QAAA,IAAAjB,CAAA,QAAAwB,IAAA,IAAAxB,CAAA,SAAA+B,OAAA,IAAA/B,CAAA,SAAAyB,EAAA,IAAAzB,CAAA,SAAA8B,EAAA;IAZHI,EAAA,gBAAA7C,IAAA,CAACZ,UAAU;MACH+C,IAAI,EAAJA,IAAI;MACUyC,kBAAkB,EAAlBA,kBAAkB;MACjC9C,IAAI,EAAJ,IAAI;MACEyE,UAAa,EAAb,aAAa;MACf7D,OAAO,EAAPA,OAAO;MACNd,QAAQ,EAARA,QAAQ;MACXoB,KAAkE,EAAlEZ,EAAkE;MACzDoE,cAIf,EAJe/D,EAIf;MACsBwC,qBAAC,EAAD;IAAC,CACzB,CAAC;IAAAtE,CAAA,MAAAiE,kBAAA;IAAAjE,CAAA,MAAAiB,QAAA;IAAAjB,CAAA,MAAAwB,IAAA;IAAAxB,CAAA,OAAA+B,OAAA;IAAA/B,CAAA,OAAAyB,EAAA;IAAAzB,CAAA,OAAA8B,EAAA;IAAA9B,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAAA,OAdFkC,EAcE;AAAA;AAIN,MAAM3B,SAAS,GAAGA,CAAA;EAAA,MAAAP,CAAA,GAAAC,EAAA;EAChB;IAAAmF;EAAA,IAAmBpG,QAAQ,CAAC,CAAC;EAAA,IAAAe,EAAA;EAAA,IAAAC,CAAA,QAAAoF,MAAA,CAAAU,mCAAA,IAAA9F,CAAA,QAAAoF,MAAA,CAAAC,WAAA,IAAArF,CAAA,QAAAoF,MAAA,CAAA5D,IAAA;IAEtBzB,EAAA,GAAA1B,UAAU,CAAA0H,MAAO,CAAC;MAAAb,SAAA,EACZ;QAAAc,UAAA,EACG,EAAE;QAAAC,iBAAA,EACK,EAAE;QAAAC,GAAA,EAChB;MACP,CAAC;MAAA3D,mBAAA,EACoB;QAAA4D,eAAA,EACF;MACnB,CAAC;MAAAhE,UAAA,EACW;QAAAiE,IAAA,EACJ,CAAC;QAAAC,QAAA,EACG;MACZ,CAAC;MAAAvC,uBAAA,EACwB;QAAAwC,SAAA,EACZ,YAAY;QAAAC,OAAA,EACd,CAAC;QAAAC,YAAA,EACI,CAAC;QAAAC,eAAA,EACErB,MAAM,CAAA5D,IAAK,KAAK,MAA8C,GAArCrC,MAAM,CAAAuH,cAA+B,GAA9D;MACnB,CAAC;MAAA/C,mBAAA,EACoB;QAAAzC,KAAA,EACZ,GAAG;QAAA8D,MAAA,EACF;MACV,CAAC;MAAAJ,cAAA,EACe;QAAA+B,aAAA,EACC,KAAK;QAAAC,cAAA,EACJ,eAAe;QAAAC,UAAA,EACnB;MACd,CAAC;MAAAnC,eAAA,EACgB;QAAAiC,aAAA,EACA,KAAK;QAAAE,UAAA,EACR,QAAQ;QAAAX,GAAA,EACf;MACP,CAAC;MAAA9B,mBAAA,EACoB;QAAAuC,aAAA,EACJ,KAAK;QAAAT,GAAA,EACf;MACP,CAAC;MAAAT,cAAA,EACe;QAAAqB,WAAA,EACD1B,MAAM,CAAAC,WAAY;QAAA0B,WAAA,EAClB,CAAC;QAAA/B,MAAA,EACN,EAAE;QAAAiB,iBAAA,EACS,EAAE;QAAAO,YAAA,EACP,EAAE;QAAAQ,QAAA,EACN;MACZ,CAAC;MAAAxB,sBAAA,EACuB;QAAAiB,eAAA,EACLrB,MAAM,CAAAU,mCAAoC;QAAAgB,WAAA,EAC9C1B,MAAM,CAAAU;MACrB,CAAC;MAAAf,KAAA,EACM;QAAAyB,YAAA,EACS,CAAC;QAAAS,QAAA,EACL;MACZ;IACF,CAAC,CAAC;IAAAjH,CAAA,MAAAoF,MAAA,CAAAU,mCAAA;IAAA9F,CAAA,MAAAoF,MAAA,CAAAC,WAAA;IAAArF,CAAA,MAAAoF,MAAA,CAAA5D,IAAA;IAAAxB,CAAA,MAAAD,EAAA;EAAA;IAAAA,EAAA,GAAAC,CAAA;EAAA;EAAA,OArDKD,EAqDL;AAAA,CACH;AAED,MAAM4D,mBAAmB,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C","ignoreList":[]}
1
+ {"version":3,"file":"send_giphy_screen.js","names":["StackActions","useNavigation","React","Image","NativeImage","Platform","StyleSheet","useWindowDimensions","View","Button","IconButton","TextButton","DefaultLoading","BlankState","FormSheet","getFormSheetScreenOptions","useCreateAndroidRippleColor","useTheme","useGiphy","useMessageCreateOrUpdate","tokens","jsx","_jsx","jsxs","_jsxs","SendGiphyScreenOptions","headerTitle","sheetAllowedDetents","select","android","default","SendGiphyScreen","t0","$","_c","route","conversation_id","reply_root_id","search_term","params","styles","useStyles","navigation","t1","conversationId","replyRootId","isPending","mutate","isSearching","result","nextResult","prevResult","disabled","width","size","t2","Symbol","for","Imagery","name","t3","Content","children","Heading","Text","t4","onPress","goBack","title","t5","blankState","Root","style","t6","blankStateContainer","contentStyle","gif","giphy","fixed_width","url","clearInput","undefined","routeName","routes","getState","conversationParams","findLast","r","dispatch","popTo","clear_input","sendGiphy","text","attachments","uri","poweredByGiphyImage","alt","source","poweredByGiphyContainer","t7","PaginateButton","accessibilityLabel","t8","t9","paginateButtonGroup","t10","maxFontSizeMultiplier","accessibilityHint","t11","t12","formButtonGroup","t13","controlToolbar","accessibilityRole","t14","image","height","t15","container","colors","interaction","color","androidRippleColor","paginateButtonDisabled","paginateButton","borderless","foreground","appearance","android_ripple","fillColorButtonNeutralSolidDisabled","create","paddingTop","paddingHorizontal","gap","paddingVertical","flex","flexGrow","alignSelf","padding","borderRadius","backgroundColor","colorNeutral68","flexDirection","justifyContent","alignItems","borderColor","borderWidth","overflow","maxWidth"],"sources":["../../src/screens/send_giphy_screen.tsx"],"sourcesContent":["import { StackActions, StaticScreenProps, useNavigation } from '@react-navigation/native'\nimport React from 'react'\nimport { Image as NativeImage, Platform, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { Button, IconButton, IconString, TextButton } from '../components'\nimport { DefaultLoading } from '../components/page/loading'\nimport BlankState from '../components/primitive/blank_state_primitive'\nimport FormSheet, { getFormSheetScreenOptions } from '../components/primitive/form_sheet'\nimport { useCreateAndroidRippleColor, useTheme } from '../hooks'\nimport { useGiphy } from '../hooks/use_giphy'\nimport { useMessageCreateOrUpdate } from '../hooks/use_message_create_or_update'\nimport { tokens } from '../vendor/tapestry/tokens'\n\nexport const SendGiphyScreenOptions = getFormSheetScreenOptions({\n headerTitle: 'Send Giphy',\n sheetAllowedDetents: Platform.select({ android: [0.7, 0.94], default: [0.7, 1] }),\n})\n\nexport type SendGiphyScreenProps = StaticScreenProps<{\n conversation_id: number\n reply_root_id?: string | null\n search_term: string\n}>\n\nexport function SendGiphyScreen({ route }: SendGiphyScreenProps) {\n const { conversation_id, reply_root_id, search_term } = route.params\n const styles = useStyles()\n const navigation = useNavigation()\n\n const { isPending, mutate } = useMessageCreateOrUpdate({\n conversationId: conversation_id,\n replyRootId: reply_root_id,\n })\n const { isSearching, result, nextResult, prevResult } = useGiphy(search_term)\n const disabled = isPending || isSearching\n\n const { width } = useWindowDimensions()\n const size = width - 24\n\n if (!result)\n return (\n <FormSheet.Root contentStyle={styles.blankStateContainer}>\n <BlankState.Root style={styles.blankState}>\n <BlankState.Imagery name=\"general.bolt\" />\n <BlankState.Content>\n <BlankState.Heading>No Giphys found</BlankState.Heading>\n <BlankState.Text>Try a different search term.</BlankState.Text>\n </BlankState.Content>\n <BlankState.Button onPress={() => navigation.goBack()} title=\"Close\" />\n </BlankState.Root>\n </FormSheet.Root>\n )\n\n const gif = result.giphy.fixed_width\n const { url } = gif\n\n function goBack({ clearInput = false }) {\n if (clearInput) {\n const routeName = reply_root_id ? 'ConversationReply' : 'Conversation'\n const routes = navigation.getState()?.routes || []\n const conversationParams = routes.findLast(r => r.name === routeName)?.params || {}\n\n navigation.dispatch(\n StackActions.popTo(routeName, {\n ...conversationParams,\n conversation_id,\n clear_input: true,\n })\n )\n } else {\n navigation.goBack()\n }\n }\n\n function sendGiphy() {\n if (disabled) return\n\n mutate({ text: '', attachments: [result] })\n goBack({ clearInput: true })\n }\n\n return (\n <FormSheet.Root contentStyle={styles.container}>\n <View style={styles.poweredByGiphyContainer}>\n <NativeImage\n alt=\"Powered by Giphy\"\n style={styles.poweredByGiphyImage}\n source={{ uri: poweredByGiphyImage }}\n />\n </View>\n <View style={styles.controlToolbar} accessibilityRole=\"toolbar\">\n <View style={styles.paginateButtonGroup}>\n <PaginateButton\n name=\"general.leftArrow\"\n accessibilityLabel=\"Previous Giphy\"\n onPress={prevResult}\n disabled={disabled}\n />\n <PaginateButton\n name=\"general.rightArrow\"\n accessibilityLabel=\"Next GIF\"\n onPress={nextResult}\n disabled={disabled}\n />\n </View>\n <View style={styles.formButtonGroup}>\n <TextButton\n onPress={() => goBack({ clearInput: false })}\n maxFontSizeMultiplier={1}\n accessibilityHint=\"Cancels the Giphy selection and closes this modal.\"\n >\n Cancel\n </TextButton>\n <Button\n onPress={sendGiphy}\n title=\"Send\"\n size=\"lg\"\n disabled={disabled}\n maxFontSizeMultiplier={1}\n accessibilityLabel=\"Send Giphy\"\n accessibilityHint=\"Sends the selected Giphy as a message to the conversation.\"\n />\n </View>\n </View>\n {isSearching ? (\n <DefaultLoading />\n ) : (\n <NativeImage\n source={{ uri: url }}\n alt={result.title}\n style={[styles.image, { width: size, height: size }]}\n />\n )}\n </FormSheet.Root>\n )\n}\n\ninterface PaginateButtonProps {\n name: IconString\n accessibilityLabel: string\n onPress: () => void\n disabled: boolean\n}\n\nfunction PaginateButton({ name, accessibilityLabel, onPress, disabled }: PaginateButtonProps) {\n const styles = useStyles()\n const { colors } = useTheme()\n const androidRippleColor = useCreateAndroidRippleColor({ color: colors.interaction })\n\n return (\n <IconButton\n name={name}\n accessibilityLabel={accessibilityLabel}\n size=\"md\"\n appearance=\"interaction\"\n onPress={onPress}\n disabled={disabled}\n style={[styles.paginateButton, disabled && styles.paginateButtonDisabled]}\n android_ripple={{\n color: androidRippleColor,\n borderless: true,\n foreground: true,\n }}\n maxFontSizeMultiplier={1}\n />\n )\n}\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n paddingTop: 32,\n paddingHorizontal: 16,\n gap: 8,\n },\n blankStateContainer: {\n paddingVertical: 64,\n },\n blankState: {\n flex: 0,\n flexGrow: 1,\n },\n poweredByGiphyContainer: {\n alignSelf: 'flex-start',\n padding: 4,\n borderRadius: 4,\n backgroundColor: colors.name === 'dark' ? tokens.colorNeutral68 : 'transparent',\n },\n poweredByGiphyImage: {\n width: 170,\n height: 20,\n },\n controlToolbar: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n formButtonGroup: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 16,\n },\n paginateButtonGroup: {\n flexDirection: 'row',\n gap: 8,\n },\n paginateButton: {\n borderColor: colors.interaction,\n borderWidth: 1,\n height: 28,\n paddingHorizontal: 12,\n borderRadius: 16,\n overflow: 'hidden',\n },\n paginateButtonDisabled: {\n backgroundColor: colors.fillColorButtonNeutralSolidDisabled,\n borderColor: colors.fillColorButtonNeutralSolidDisabled,\n },\n image: {\n borderRadius: 8,\n maxWidth: '100%',\n },\n })\n}\n\nconst poweredByGiphyImage = `data:image/png;base64,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`\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/chat-react-native",
3
- "version": "4.4.1-qa-staging.3",
3
+ "version": "4.4.1-qa-staging.5",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@fortawesome/fontawesome-svg-core": "^7.2.0",
35
35
  "@fortawesome/react-native-fontawesome": "^0.3.2",
36
- "@planningcenter/emoji-keyboard": "4.4.1-qa-staging.3",
36
+ "@planningcenter/emoji-keyboard": "4.4.1-qa-staging.5",
37
37
  "lodash-inflection": "^1.5.0"
38
38
  },
39
39
  "peerDependencies": {
@@ -84,5 +84,5 @@
84
84
  "sf-symbols-typescript": "^2.2.0",
85
85
  "typescript": "~6.0.3"
86
86
  },
87
- "gitHead": "5b1b37d9943e2726aacabdd5a59add02d4dfb04c"
87
+ "gitHead": "17212db05daa7344948839e554cd1aa580c5003c"
88
88
  }
@@ -0,0 +1,76 @@
1
+ import { DefaultTheme, ThemeProvider } from '@react-navigation/native'
2
+ import { fireEvent, render } from '@testing-library/react-native'
3
+ import React from 'react'
4
+ import { Linking as RNLinking } from 'react-native'
5
+ import { GiphyAttachment } from '../../../../components/conversation/attachments/giphy_attachment'
6
+ import {
7
+ DenormalizedGiphyAttachmentResource,
8
+ GiphyAttachmentVariant,
9
+ } from '../../../../types/resources/denormalized_attachment_resource'
10
+ import {
11
+ AudioAdapter,
12
+ ChatAdapters,
13
+ ClipboardAdapter,
14
+ ImagePickerAdapter,
15
+ LinkingAdapter,
16
+ VideoAdapter,
17
+ } from '../../../../utils/native_adapters'
18
+
19
+ const variant: GiphyAttachmentVariant = {
20
+ url: 'https://media.giphy.com/cat.gif',
21
+ width: '200',
22
+ height: '100',
23
+ size: '1',
24
+ frames: '1',
25
+ }
26
+
27
+ const attachment: DenormalizedGiphyAttachmentResource = {
28
+ type: 'giphy',
29
+ id: '1',
30
+ title: 'cat',
31
+ titleLink: 'https://giphy.com/gifs/cat',
32
+ thumbUrl: variant.url,
33
+ giphy: {
34
+ original: variant,
35
+ fixedHeight: variant,
36
+ fixedHeightStill: variant,
37
+ fixedHeightDownsampled: variant,
38
+ fixedWidth: variant,
39
+ fixedWidthStill: variant,
40
+ fixedWidthDownsampled: variant,
41
+ },
42
+ }
43
+
44
+ const hostOpenURL = jest.fn(async (_: string) => {})
45
+
46
+ describe('GiphyAttachment', () => {
47
+ beforeAll(() => {
48
+ ChatAdapters.configure({
49
+ clipboard: new ClipboardAdapter({
50
+ getStringAsync: async () => '',
51
+ setStringAsync: async () => {},
52
+ }),
53
+ audio: new AudioAdapter({ useAudio: () => ({}) as any }),
54
+ video: new VideoAdapter({ Player: React.forwardRef(() => null) }),
55
+ imagePicker: new ImagePickerAdapter({
56
+ openCameraAsync: async () => ({ canceled: true, assets: null }),
57
+ openImageLibraryAsync: async () => ({ canceled: true, assets: null }),
58
+ }),
59
+ linking: new LinkingAdapter({ openURL: hostOpenURL, canOpenURL: async () => true }),
60
+ })
61
+ })
62
+
63
+ it("opens the Giphy link through the host app's linking adapter", () => {
64
+ const rnOpenURL = jest.spyOn(RNLinking, 'openURL')
65
+ const { getByText } = render(
66
+ <ThemeProvider value={DefaultTheme}>
67
+ <GiphyAttachment attachment={attachment} onMessageLongPress={jest.fn()} />
68
+ </ThemeProvider>
69
+ )
70
+
71
+ fireEvent.press(getByText('/giphy'))
72
+
73
+ expect(hostOpenURL).toHaveBeenCalledWith('https://giphy.com/gifs/cat')
74
+ expect(rnOpenURL).not.toHaveBeenCalled()
75
+ })
76
+ })
@@ -0,0 +1,40 @@
1
+ import React from 'react'
2
+ import { Linking as RNLinking } from 'react-native'
3
+ import { sendEmail } from '../../screens/get_help_screen'
4
+ import {
5
+ AudioAdapter,
6
+ ChatAdapters,
7
+ ClipboardAdapter,
8
+ ImagePickerAdapter,
9
+ LinkingAdapter,
10
+ VideoAdapter,
11
+ } from '../../utils/native_adapters'
12
+
13
+ const hostOpenURL = jest.fn(async (_: string) => {})
14
+
15
+ describe('sendEmail', () => {
16
+ beforeAll(() => {
17
+ ChatAdapters.configure({
18
+ clipboard: new ClipboardAdapter({
19
+ getStringAsync: async () => '',
20
+ setStringAsync: async () => {},
21
+ }),
22
+ audio: new AudioAdapter({ useAudio: () => ({}) as any }),
23
+ video: new VideoAdapter({ Player: React.forwardRef(() => null) }),
24
+ imagePicker: new ImagePickerAdapter({
25
+ openCameraAsync: async () => ({ canceled: true, assets: null }),
26
+ openImageLibraryAsync: async () => ({ canceled: true, assets: null }),
27
+ }),
28
+ linking: new LinkingAdapter({ openURL: hostOpenURL, canOpenURL: async () => true }),
29
+ })
30
+ })
31
+
32
+ it("opens mailto with the system, not the host app's linking adapter", () => {
33
+ const rnOpenURL = jest.spyOn(RNLinking, 'openURL').mockResolvedValue(undefined)
34
+
35
+ sendEmail('help@example.com')
36
+
37
+ expect(rnOpenURL).toHaveBeenCalledWith('mailto:help@example.com')
38
+ expect(hostOpenURL).not.toHaveBeenCalled()
39
+ })
40
+ })