@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.
- package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
- package/build/components/conversation/attachments/giphy_attachment.js +2 -2
- package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
- package/build/components/conversation/message_form.d.ts.map +1 -1
- package/build/components/conversation/message_form.js +5 -3
- package/build/components/conversation/message_form.js.map +1 -1
- package/build/components/conversation/system_message.js +3 -3
- package/build/components/conversation/system_message.js.map +1 -1
- package/build/hooks/use_features.d.ts +2 -0
- package/build/hooks/use_features.d.ts.map +1 -1
- package/build/hooks/use_features.js +3 -1
- package/build/hooks/use_features.js.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
- package/build/screens/age_check/age_check_underage_screen.js +3 -2
- package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
- package/build/screens/bug_report_screen.d.ts.map +1 -1
- package/build/screens/bug_report_screen.js +2 -2
- package/build/screens/bug_report_screen.js.map +1 -1
- package/build/screens/get_help_screen.js +4 -4
- package/build/screens/get_help_screen.js.map +1 -1
- package/build/screens/send_giphy_screen.d.ts +1 -0
- package/build/screens/send_giphy_screen.d.ts.map +1 -1
- package/build/screens/send_giphy_screen.js +108 -106
- package/build/screens/send_giphy_screen.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/components/conversation/attachments/giphy_attachment.test.tsx +76 -0
- package/src/__tests__/screens/get_help_screen.test.ts +40 -0
- package/src/__tests__/screens/send_giphy_screen.test.tsx +102 -0
- package/src/components/conversation/attachments/giphy_attachment.tsx +2 -3
- package/src/components/conversation/message_form.tsx +4 -2
- package/src/components/conversation/system_message.tsx +3 -3
- package/src/hooks/use_features.ts +2 -0
- package/src/screens/age_check/age_check_underage_screen.tsx +3 -2
- package/src/screens/bug_report_screen.tsx +2 -10
- package/src/screens/get_help_screen.tsx +4 -4
- 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(
|
|
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] =
|
|
40
|
+
$[1] = reply_root_id;
|
|
41
|
+
$[2] = t1;
|
|
39
42
|
} else {
|
|
40
|
-
t1 = $[
|
|
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 ($[
|
|
62
|
+
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
|
|
60
63
|
t2 = /*#__PURE__*/_jsx(BlankState.Imagery, {
|
|
61
64
|
name: "general.bolt"
|
|
62
65
|
});
|
|
63
|
-
$[
|
|
66
|
+
$[3] = t2;
|
|
64
67
|
} else {
|
|
65
|
-
t2 = $[
|
|
68
|
+
t2 = $[3];
|
|
66
69
|
}
|
|
67
70
|
let t3;
|
|
68
|
-
if ($[
|
|
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
|
-
$[
|
|
79
|
+
$[4] = t3;
|
|
77
80
|
} else {
|
|
78
|
-
t3 = $[
|
|
81
|
+
t3 = $[4];
|
|
79
82
|
}
|
|
80
83
|
let t4;
|
|
81
|
-
if ($[
|
|
84
|
+
if ($[5] !== navigation) {
|
|
82
85
|
t4 = /*#__PURE__*/_jsx(BlankState.Button, {
|
|
83
86
|
onPress: () => navigation.goBack(),
|
|
84
87
|
title: "Close"
|
|
85
88
|
});
|
|
86
|
-
$[
|
|
87
|
-
$[
|
|
89
|
+
$[5] = navigation;
|
|
90
|
+
$[6] = t4;
|
|
88
91
|
} else {
|
|
89
|
-
t4 = $[
|
|
92
|
+
t4 = $[6];
|
|
90
93
|
}
|
|
91
94
|
let t5;
|
|
92
|
-
if ($[
|
|
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
|
-
$[
|
|
98
|
-
$[
|
|
99
|
-
$[
|
|
100
|
+
$[7] = styles.blankState;
|
|
101
|
+
$[8] = t4;
|
|
102
|
+
$[9] = t5;
|
|
100
103
|
} else {
|
|
101
|
-
t5 = $[
|
|
104
|
+
t5 = $[9];
|
|
102
105
|
}
|
|
103
106
|
let t6;
|
|
104
|
-
if ($[
|
|
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
|
-
$[
|
|
110
|
-
$[
|
|
111
|
-
$[
|
|
112
|
+
$[10] = styles.blankStateContainer;
|
|
113
|
+
$[11] = t5;
|
|
114
|
+
$[12] = t6;
|
|
112
115
|
} else {
|
|
113
|
-
t6 = $[
|
|
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 ($[
|
|
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.
|
|
131
|
-
navigation.dispatch(StackActions.popTo(
|
|
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
|
-
$[
|
|
141
|
-
$[
|
|
142
|
-
$[
|
|
144
|
+
$[13] = conversation_id;
|
|
145
|
+
$[14] = navigation;
|
|
146
|
+
$[15] = reply_root_id;
|
|
147
|
+
$[16] = t2;
|
|
143
148
|
} else {
|
|
144
|
-
t2 = $[
|
|
149
|
+
t2 = $[16];
|
|
145
150
|
}
|
|
146
151
|
const goBack = t2;
|
|
147
152
|
let t3;
|
|
148
|
-
if ($[
|
|
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
|
-
$[
|
|
162
|
-
$[
|
|
163
|
-
$[
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
+
$[17] = disabled;
|
|
167
|
+
$[18] = goBack;
|
|
168
|
+
$[19] = mutate;
|
|
169
|
+
$[20] = result;
|
|
170
|
+
$[21] = t3;
|
|
166
171
|
} else {
|
|
167
|
-
t3 = $[
|
|
172
|
+
t3 = $[21];
|
|
168
173
|
}
|
|
169
174
|
const sendGiphy = t3;
|
|
170
175
|
let t4;
|
|
171
|
-
if ($[
|
|
176
|
+
if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
|
|
172
177
|
t4 = {
|
|
173
178
|
uri: poweredByGiphyImage
|
|
174
179
|
};
|
|
175
|
-
$[
|
|
180
|
+
$[22] = t4;
|
|
176
181
|
} else {
|
|
177
|
-
t4 = $[
|
|
182
|
+
t4 = $[22];
|
|
178
183
|
}
|
|
179
184
|
let t5;
|
|
180
|
-
if ($[
|
|
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
|
-
$[
|
|
187
|
-
$[
|
|
191
|
+
$[23] = styles.poweredByGiphyImage;
|
|
192
|
+
$[24] = t5;
|
|
188
193
|
} else {
|
|
189
|
-
t5 = $[
|
|
194
|
+
t5 = $[24];
|
|
190
195
|
}
|
|
191
196
|
let t6;
|
|
192
|
-
if ($[
|
|
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
|
-
$[
|
|
198
|
-
$[
|
|
199
|
-
$[
|
|
202
|
+
$[25] = styles.poweredByGiphyContainer;
|
|
203
|
+
$[26] = t5;
|
|
204
|
+
$[27] = t6;
|
|
200
205
|
} else {
|
|
201
|
-
t6 = $[
|
|
206
|
+
t6 = $[27];
|
|
202
207
|
}
|
|
203
208
|
let t7;
|
|
204
|
-
if ($[
|
|
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
|
-
$[
|
|
212
|
-
$[
|
|
213
|
-
$[
|
|
216
|
+
$[28] = disabled;
|
|
217
|
+
$[29] = prevResult;
|
|
218
|
+
$[30] = t7;
|
|
214
219
|
} else {
|
|
215
|
-
t7 = $[
|
|
220
|
+
t7 = $[30];
|
|
216
221
|
}
|
|
217
222
|
let t8;
|
|
218
|
-
if ($[
|
|
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
|
-
$[
|
|
226
|
-
$[
|
|
227
|
-
$[
|
|
230
|
+
$[31] = disabled;
|
|
231
|
+
$[32] = nextResult;
|
|
232
|
+
$[33] = t8;
|
|
228
233
|
} else {
|
|
229
|
-
t8 = $[
|
|
234
|
+
t8 = $[33];
|
|
230
235
|
}
|
|
231
236
|
let t9;
|
|
232
|
-
if ($[
|
|
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
|
-
$[
|
|
238
|
-
$[
|
|
239
|
-
$[
|
|
240
|
-
$[
|
|
242
|
+
$[34] = styles.paginateButtonGroup;
|
|
243
|
+
$[35] = t7;
|
|
244
|
+
$[36] = t8;
|
|
245
|
+
$[37] = t9;
|
|
241
246
|
} else {
|
|
242
|
-
t9 = $[
|
|
247
|
+
t9 = $[37];
|
|
243
248
|
}
|
|
244
249
|
let t10;
|
|
245
|
-
if ($[
|
|
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
|
-
$[
|
|
255
|
-
$[
|
|
259
|
+
$[38] = goBack;
|
|
260
|
+
$[39] = t10;
|
|
256
261
|
} else {
|
|
257
|
-
t10 = $[
|
|
262
|
+
t10 = $[39];
|
|
258
263
|
}
|
|
259
264
|
let t11;
|
|
260
|
-
if ($[
|
|
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
|
-
$[
|
|
271
|
-
$[
|
|
272
|
-
$[
|
|
275
|
+
$[40] = disabled;
|
|
276
|
+
$[41] = sendGiphy;
|
|
277
|
+
$[42] = t11;
|
|
273
278
|
} else {
|
|
274
|
-
t11 = $[
|
|
279
|
+
t11 = $[42];
|
|
275
280
|
}
|
|
276
281
|
let t12;
|
|
277
|
-
if ($[
|
|
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
|
-
$[
|
|
283
|
-
$[
|
|
284
|
-
$[
|
|
285
|
-
$[
|
|
287
|
+
$[43] = styles.formButtonGroup;
|
|
288
|
+
$[44] = t10;
|
|
289
|
+
$[45] = t11;
|
|
290
|
+
$[46] = t12;
|
|
286
291
|
} else {
|
|
287
|
-
t12 = $[
|
|
292
|
+
t12 = $[46];
|
|
288
293
|
}
|
|
289
294
|
let t13;
|
|
290
|
-
if ($[
|
|
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
|
-
$[
|
|
297
|
-
$[
|
|
298
|
-
$[
|
|
299
|
-
$[
|
|
301
|
+
$[47] = styles.controlToolbar;
|
|
302
|
+
$[48] = t12;
|
|
303
|
+
$[49] = t9;
|
|
304
|
+
$[50] = t13;
|
|
300
305
|
} else {
|
|
301
|
-
t13 = $[
|
|
306
|
+
t13 = $[50];
|
|
302
307
|
}
|
|
303
308
|
let t14;
|
|
304
|
-
if ($[
|
|
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
|
-
$[
|
|
316
|
-
$[
|
|
317
|
-
$[
|
|
318
|
-
$[
|
|
319
|
-
$[
|
|
320
|
-
$[
|
|
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 = $[
|
|
327
|
+
t14 = $[56];
|
|
323
328
|
}
|
|
324
329
|
let t15;
|
|
325
|
-
if ($[
|
|
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
|
-
$[
|
|
331
|
-
$[
|
|
332
|
-
$[
|
|
333
|
-
$[
|
|
334
|
-
$[
|
|
335
|
+
$[57] = styles.container;
|
|
336
|
+
$[58] = t13;
|
|
337
|
+
$[59] = t14;
|
|
338
|
+
$[60] = t6;
|
|
339
|
+
$[61] = t15;
|
|
335
340
|
} else {
|
|
336
|
-
t15 = $[
|
|
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,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAWCAYAAACFbNPBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA\nGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABa9JREFUeNrsWy1z40gQla8EDAwE\nDAQCDAIMAgwCDA0XBgYGBu5PyM84aLgw8KDBAoMDBgsEAgQEBAQEBARclZ2uepPrne2WRrbls7Pq\nKpWc0UxPz0y//pIyen9/Dwa6LhqNRjNzmwmPcnOl5kzrYZdOQ+GwBVcDirG5LXGNG7rWpu/O3Dcu\nUEz7ytxW7gDT76WtjzYXAdJcW8MjFWR+EoBMAF4ra3wRmmkdG/Psq/kdac8Vfg/mtpAMiRnzt88C\n/xpU7yrAEZvbMxR33NLdAukZ4/okmmturicz1yNA3Be9Ku0rM2+keNlFR14DQK4UHE+K9Wwi6v94\nRlHnfc4HD5Uojx8826zHyQeAfJ6w6tHDa2jhz7czizwzMi969iK1Mu/cCRMjJbTa9JKDSG7M0N5M\nWDn9iOeUHWpl+hTs2UQZF6HvnrVNIGMFfpq8ltdEUhQeiyvr+FgLm1Pl0WVvWtb8sT6+bkZL5aBJ\nli1ZVLKGmN+GFDM8X3exlB6UCh4qUmTe9eRFKL96VTzVF/MshZ6sjg2tDknSF4pyECoTduALl69p\nr3CYpDB3aP7OnhOgqP3NXBkbeocFU9/bhjBj1yJjwpRFs3Al+IjzGB6Z4fHWdW+wJlpHaP7eWqBB\nqRdQ5n8VvksFHL8ov/ltZd8ZvkskwvmJlXMteLdnYa96zXtI1wCEmQDYZSBX9zqHVodWsSocuCVS\nphiKUDNFIcAU4B9D6DkUocCYqfUs8Dh2czN2AHQVZF3N3y4YXLms98hx2fXRvHMzvmBWmvf5sPgK\n6EiGG7pIhgaQuDxv2XoSgGTO+N7avZK8B5JMKbT6p+mgzbPtOWIpWPNdh4rXqUOtZ2F/NFnSrqHV\noQDZw1rZQ3wDKCLwCq3bZ0qXQtljeIoMijMFWDhAJtQXVta2Fc7BlIq15uEQlzEDQCfwEr/1URSA\nP6cw5h4gyZRwy503tyAgQ0AApTUh6R5DnqxBDs0SJk6s3aagaln1RFWsQ/KUlyPBWRoepPBfPHOx\n10PnOvY9CB8/gfC5Yl1JMSZQlg8AADQhlDdCuwXR3uUHyypVODSaCB4iEviULaDJ4AHGSqIYO7lI\nBABUTLGXAE0Y/PcOoQvll/ISsKGMehb5yFMiMZ+1dN20GcNTAmTMFCtk8WbeUoasBcDMAI4pU6B7\nKFoBxc49LWuqKKpNgksnQZYSzJR5GNF7dtiniAExpBAKYaINtYh+KIl50GEfzwkIX6ufnDnU+tri\nPY8KOTsDxFHQGiEVxaN7mzsIVi5ylCwHHwuQCjwKgO5GCq9gOXxjSQuOTLDUaYvXkWjqYd1TVqy4\ngww3dn54z0AArC/FweXT9lwTsVBrderQ6lCA0MFqJbwCSnSLqpEFTMhAVbAEr2IHnrHnFiA1S+K7\nhiEpqxJFx26S4XUDuWpPd73HAR3zZrlWPHjMwk4C3sYzUT2LRfeoFNVKZBB4hEsSSDbIxX6rbB4T\nWp0qB+GC2no8KdK9+V2Cv03g3Y/obEzPgWPzk7HkPaCsUtz7pliXBHMsqOLCQppYeHdR8QoVm8d6\nIhr7o8m6C6Fd0BK2NSbXSjslpmuWe6XO/vwfAClRXUs8Ddj6yDDubOFo2HETqhaQJCwBj9m4TPAG\nBZ6VTiyeYbxrZdpCkj341Q5oQyZP5qGwlfB3hTXUDXvjjtkrVarSYy1W9lLwgJS7PZjnr4KC9fkt\nVKq05Z7AuEryBkhDaCVVlFKPfqRAO6E9C359WWjb3zymb+XXtg7PeQ7am659ET5J3xQtUCxJmEGI\nmUfuI95fB38gDZ+7XzARmPBmPFYqZctLrnx9Bho+Vrx8WjcktT7g2AxbOADkM3uRGiDpGucTqE79\nweIQYg10sSD5xt5ezwL9K1/K/xIl1yk98kOfPl1A6tPWVAjwqQIeOq6VRsP/pF8vOZ/L5MP/ovew\nxwNABhpIp58CDAChjQWETVMlnAAAAABJRU5ErkJggg==`\n"],"mappings":"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","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
|
+
"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.
|
|
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": "
|
|
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
|
+
})
|