@planningcenter/chat-react-native 4.5.0-rc.2 → 4.5.0-rc.4

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 (38) hide show
  1. package/build/components/display/filter_dropdown.d.ts +16 -0
  2. package/build/components/display/filter_dropdown.d.ts.map +1 -1
  3. package/build/components/display/filter_dropdown.js +105 -57
  4. package/build/components/display/filter_dropdown.js.map +1 -1
  5. package/build/components/display/index.d.ts +1 -0
  6. package/build/components/display/index.d.ts.map +1 -1
  7. package/build/components/display/index.js +1 -0
  8. package/build/components/display/index.js.map +1 -1
  9. package/build/components/display/popover_menu_view.d.ts +8 -0
  10. package/build/components/display/popover_menu_view.d.ts.map +1 -0
  11. package/build/components/display/popover_menu_view.js +482 -0
  12. package/build/components/display/popover_menu_view.js.map +1 -0
  13. package/build/screens/conversations/components/filter_dropdown_list_header_component.d.ts.map +1 -1
  14. package/build/screens/conversations/components/filter_dropdown_list_header_component.js +159 -124
  15. package/build/screens/conversations/components/filter_dropdown_list_header_component.js.map +1 -1
  16. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  17. package/build/screens/conversations/conversations_screen.js +1 -2
  18. package/build/screens/conversations/conversations_screen.js.map +1 -1
  19. package/build/screens/design_system_screen.d.ts.map +1 -1
  20. package/build/screens/design_system_screen.js +289 -201
  21. package/build/screens/design_system_screen.js.map +1 -1
  22. package/build/utils/native_adapters/menu.d.ts +1 -2
  23. package/build/utils/native_adapters/menu.d.ts.map +1 -1
  24. package/build/utils/native_adapters/menu.js +2 -41
  25. package/build/utils/native_adapters/menu.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/components/display/__tests__/filter_dropdown.test.tsx +18 -2
  28. package/src/components/display/__tests__/popover_menu_view.test.tsx +63 -0
  29. package/src/components/display/filter_dropdown.tsx +53 -19
  30. package/src/components/display/index.ts +1 -0
  31. package/src/components/display/popover_menu_view.tsx +239 -0
  32. package/src/screens/conversations/__tests__/conversations_screen.test.tsx +2 -12
  33. package/src/screens/conversations/components/__tests__/filter_dropdown_list_header_component.test.tsx +0 -54
  34. package/src/screens/conversations/components/filter_dropdown_list_header_component.tsx +41 -27
  35. package/src/screens/conversations/conversations_screen.tsx +1 -2
  36. package/src/screens/design_system_screen.tsx +34 -1
  37. package/src/utils/native_adapters/menu.tsx +4 -18
  38. package/src/utils/native_adapters/__tests__/menu.test.tsx +0 -46
@@ -0,0 +1,482 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import { clamp } from 'lodash';
3
+ import React, { useRef, useState } from 'react';
4
+ import { Modal, Pressable, ScrollView, StyleSheet, useWindowDimensions, View } from 'react-native';
5
+ import { useChatContext } from '../../contexts/chat_context';
6
+ import { useCreateAndroidRippleColor, useFontScale, useTheme } from '../../hooks';
7
+ import { platformPressedOpacityStyle } from '../../utils';
8
+ import { tokens } from '../../vendor/tapestry/tokens';
9
+ import { Icon } from './icon';
10
+ import { Text } from './text';
11
+
12
+ // =================================
13
+ // ====== Constants ================
14
+ // =================================
15
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
+ const MENU_WIDTH = 240;
17
+ const MENU_OFFSET = 4;
18
+ const SCREEN_MARGIN = 16;
19
+ const CLOSED_ANCHOR = {
20
+ x: 0,
21
+ y: 0,
22
+ width: 0,
23
+ height: 0
24
+ };
25
+
26
+ // =================================
27
+ // ====== Rows =====================
28
+ // =================================
29
+
30
+ const actionId = action => action.id ?? action.title;
31
+ const visibleActions = actions => actions.filter(action => !action.attributes?.hidden);
32
+
33
+ // Lays the actions out the way the native menus draw them: an inline section's
34
+ // subactions sit at the top level, divided from neighboring rows by a separator.
35
+ const buildRows = actions => {
36
+ const rows = [];
37
+ const pushSeparator = () => {
38
+ if (rows.length > 0 && rows[rows.length - 1].kind !== 'separator') {
39
+ rows.push({
40
+ kind: 'separator'
41
+ });
42
+ }
43
+ };
44
+ visibleActions(actions).forEach((action, index, visible) => {
45
+ if (action.displayInline && action.subactions) {
46
+ pushSeparator();
47
+ visibleActions(action.subactions).forEach(subaction => rows.push({
48
+ kind: 'action',
49
+ action: subaction
50
+ }));
51
+ if (index < visible.length - 1) pushSeparator();
52
+ } else {
53
+ rows.push({
54
+ kind: 'action',
55
+ action
56
+ });
57
+ }
58
+ });
59
+ return rows;
60
+ };
61
+
62
+ // =================================
63
+ // ====== Component ================
64
+ // =================================
65
+
66
+ /**
67
+ * A JS-only `MenuView` for hosts that cannot supply a native menu. Wraps the
68
+ * trigger in a pressable and opens a popover of the actions under it, or above
69
+ * it when the trigger sits in the lower half of the window.
70
+ */
71
+ export function PopoverMenuView(t0) {
72
+ const $ = _c(51);
73
+ const {
74
+ actions,
75
+ onPressAction,
76
+ onOpenMenu,
77
+ onCloseMenu,
78
+ style,
79
+ testID,
80
+ children
81
+ } = t0;
82
+ const triggerRef = useRef(null);
83
+ const [expanded, setExpanded] = useState(false);
84
+ const [anchor, setAnchor] = useState(CLOSED_ANCHOR);
85
+ const {
86
+ edgeToEdge: t1
87
+ } = useChatContext();
88
+ const edgeToEdge = t1 === undefined ? true : t1;
89
+ const {
90
+ width: windowWidth,
91
+ height: windowHeight
92
+ } = useWindowDimensions();
93
+ const fontScale = useFontScale();
94
+ const styles = useStyles();
95
+ let t2;
96
+ if ($[0] !== onOpenMenu) {
97
+ t2 = () => {
98
+ triggerRef.current?.measureInWindow((x, y, width, height) => {
99
+ setAnchor({
100
+ x,
101
+ y,
102
+ width,
103
+ height
104
+ });
105
+ });
106
+ setExpanded(true);
107
+ onOpenMenu?.();
108
+ };
109
+ $[0] = onOpenMenu;
110
+ $[1] = t2;
111
+ } else {
112
+ t2 = $[1];
113
+ }
114
+ const open = t2;
115
+ let t3;
116
+ if ($[2] !== onCloseMenu) {
117
+ t3 = () => {
118
+ setExpanded(false);
119
+ onCloseMenu?.();
120
+ };
121
+ $[2] = onCloseMenu;
122
+ $[3] = t3;
123
+ } else {
124
+ t3 = $[3];
125
+ }
126
+ const close = t3;
127
+ let t4;
128
+ if ($[4] !== close || $[5] !== onPressAction) {
129
+ t4 = action => {
130
+ onPressAction?.({
131
+ nativeEvent: {
132
+ event: actionId(action)
133
+ }
134
+ });
135
+ close();
136
+ };
137
+ $[4] = close;
138
+ $[5] = onPressAction;
139
+ $[6] = t4;
140
+ } else {
141
+ t4 = $[6];
142
+ }
143
+ const handlePress = t4;
144
+ const menuWidth = clamp(MENU_WIDTH * fontScale, MENU_WIDTH, windowWidth - SCREEN_MARGIN * 2);
145
+ const anchorBottom = anchor.y + anchor.height;
146
+ const opensUpward = anchor.y + anchor.height / 2 > windowHeight / 2;
147
+ const t5 = anchor.x;
148
+ const t6 = Math.max(SCREEN_MARGIN, windowWidth - menuWidth - SCREEN_MARGIN);
149
+ let t7;
150
+ if ($[7] !== anchor.x || $[8] !== t6) {
151
+ t7 = clamp(t5, SCREEN_MARGIN, t6);
152
+ $[7] = anchor.x;
153
+ $[8] = t6;
154
+ $[9] = t7;
155
+ } else {
156
+ t7 = $[9];
157
+ }
158
+ let t8;
159
+ if ($[10] !== anchor.y || $[11] !== anchorBottom || $[12] !== opensUpward || $[13] !== windowHeight) {
160
+ t8 = opensUpward ? {
161
+ bottom: windowHeight - anchor.y + MENU_OFFSET,
162
+ maxHeight: anchor.y - MENU_OFFSET - SCREEN_MARGIN
163
+ } : {
164
+ top: anchorBottom + MENU_OFFSET,
165
+ maxHeight: windowHeight - anchorBottom - MENU_OFFSET - SCREEN_MARGIN
166
+ };
167
+ $[10] = anchor.y;
168
+ $[11] = anchorBottom;
169
+ $[12] = opensUpward;
170
+ $[13] = windowHeight;
171
+ $[14] = t8;
172
+ } else {
173
+ t8 = $[14];
174
+ }
175
+ let t9;
176
+ if ($[15] !== menuWidth || $[16] !== t7 || $[17] !== t8) {
177
+ t9 = {
178
+ width: menuWidth,
179
+ left: t7,
180
+ ...t8
181
+ };
182
+ $[15] = menuWidth;
183
+ $[16] = t7;
184
+ $[17] = t8;
185
+ $[18] = t9;
186
+ } else {
187
+ t9 = $[18];
188
+ }
189
+ const menuPosition = t9;
190
+ let t10;
191
+ if ($[19] !== children || $[20] !== open || $[21] !== style || $[22] !== testID) {
192
+ t10 = /*#__PURE__*/_jsx(Pressable, {
193
+ ref: triggerRef,
194
+ style: style,
195
+ testID: testID,
196
+ onPress: open,
197
+ accessible: false,
198
+ children: children
199
+ });
200
+ $[19] = children;
201
+ $[20] = open;
202
+ $[21] = style;
203
+ $[22] = testID;
204
+ $[23] = t10;
205
+ } else {
206
+ t10 = $[23];
207
+ }
208
+ let t11;
209
+ if ($[24] !== close || $[25] !== styles.scrim) {
210
+ t11 = /*#__PURE__*/_jsx(Pressable, {
211
+ style: styles.scrim,
212
+ onPress: close,
213
+ accessibilityRole: "button",
214
+ accessibilityLabel: "Close menu"
215
+ });
216
+ $[24] = close;
217
+ $[25] = styles.scrim;
218
+ $[26] = t11;
219
+ } else {
220
+ t11 = $[26];
221
+ }
222
+ let t12;
223
+ if ($[27] !== menuPosition || $[28] !== styles.menu) {
224
+ t12 = [styles.menu, menuPosition];
225
+ $[27] = menuPosition;
226
+ $[28] = styles.menu;
227
+ $[29] = t12;
228
+ } else {
229
+ t12 = $[29];
230
+ }
231
+ let t13;
232
+ if ($[30] !== actions || $[31] !== handlePress || $[32] !== styles.separator) {
233
+ let t14;
234
+ if ($[34] !== handlePress || $[35] !== styles.separator) {
235
+ t14 = (row, index) => row.kind === "separator" ? /*#__PURE__*/_jsx(View, {
236
+ style: styles.separator
237
+ }, index) : /*#__PURE__*/_jsx(PopoverMenuItem, {
238
+ action: row.action,
239
+ onPress: () => handlePress(row.action)
240
+ }, index);
241
+ $[34] = handlePress;
242
+ $[35] = styles.separator;
243
+ $[36] = t14;
244
+ } else {
245
+ t14 = $[36];
246
+ }
247
+ t13 = buildRows(actions).map(t14);
248
+ $[30] = actions;
249
+ $[31] = handlePress;
250
+ $[32] = styles.separator;
251
+ $[33] = t13;
252
+ } else {
253
+ t13 = $[33];
254
+ }
255
+ let t14;
256
+ if ($[37] !== t13) {
257
+ t14 = /*#__PURE__*/_jsx(ScrollView, {
258
+ bounces: false,
259
+ children: t13
260
+ });
261
+ $[37] = t13;
262
+ $[38] = t14;
263
+ } else {
264
+ t14 = $[38];
265
+ }
266
+ let t15;
267
+ if ($[39] !== t12 || $[40] !== t14) {
268
+ t15 = /*#__PURE__*/_jsx(View, {
269
+ style: t12,
270
+ accessibilityRole: "menu",
271
+ children: t14
272
+ });
273
+ $[39] = t12;
274
+ $[40] = t14;
275
+ $[41] = t15;
276
+ } else {
277
+ t15 = $[41];
278
+ }
279
+ let t16;
280
+ if ($[42] !== close || $[43] !== edgeToEdge || $[44] !== expanded || $[45] !== t11 || $[46] !== t15) {
281
+ t16 = /*#__PURE__*/_jsxs(Modal, {
282
+ visible: expanded,
283
+ transparent: true,
284
+ animationType: "fade",
285
+ statusBarTranslucent: edgeToEdge,
286
+ navigationBarTranslucent: edgeToEdge,
287
+ onRequestClose: close,
288
+ children: [t11, t15]
289
+ });
290
+ $[42] = close;
291
+ $[43] = edgeToEdge;
292
+ $[44] = expanded;
293
+ $[45] = t11;
294
+ $[46] = t15;
295
+ $[47] = t16;
296
+ } else {
297
+ t16 = $[47];
298
+ }
299
+ let t17;
300
+ if ($[48] !== t10 || $[49] !== t16) {
301
+ t17 = /*#__PURE__*/_jsxs(_Fragment, {
302
+ children: [t10, t16]
303
+ });
304
+ $[48] = t10;
305
+ $[49] = t16;
306
+ $[50] = t17;
307
+ } else {
308
+ t17 = $[50];
309
+ }
310
+ return t17;
311
+ }
312
+ function PopoverMenuItem(t0) {
313
+ const $ = _c(25);
314
+ const {
315
+ action,
316
+ onPress
317
+ } = t0;
318
+ const styles = useStyles();
319
+ const {
320
+ colors
321
+ } = useTheme();
322
+ let t1;
323
+ if ($[0] !== colors.fillColorNeutral050Base) {
324
+ t1 = {
325
+ color: colors.fillColorNeutral050Base
326
+ };
327
+ $[0] = colors.fillColorNeutral050Base;
328
+ $[1] = t1;
329
+ } else {
330
+ t1 = $[1];
331
+ }
332
+ const androidRippleColor = useCreateAndroidRippleColor(t1);
333
+ const selected = action.state === "on";
334
+ const disabled = action.attributes?.disabled === true;
335
+ let t2;
336
+ if ($[2] !== disabled || $[3] !== styles.item || $[4] !== styles.itemDisabled) {
337
+ t2 = t3 => {
338
+ const {
339
+ pressed
340
+ } = t3;
341
+ return [styles.item, pressed && platformPressedOpacityStyle, disabled && styles.itemDisabled];
342
+ };
343
+ $[2] = disabled;
344
+ $[3] = styles.item;
345
+ $[4] = styles.itemDisabled;
346
+ $[5] = t2;
347
+ } else {
348
+ t2 = $[5];
349
+ }
350
+ let t3;
351
+ if ($[6] !== disabled || $[7] !== selected) {
352
+ t3 = {
353
+ selected,
354
+ disabled
355
+ };
356
+ $[6] = disabled;
357
+ $[7] = selected;
358
+ $[8] = t3;
359
+ } else {
360
+ t3 = $[8];
361
+ }
362
+ let t4;
363
+ if ($[9] !== androidRippleColor) {
364
+ t4 = {
365
+ color: androidRippleColor,
366
+ borderless: false,
367
+ foreground: true
368
+ };
369
+ $[9] = androidRippleColor;
370
+ $[10] = t4;
371
+ } else {
372
+ t4 = $[10];
373
+ }
374
+ let t5;
375
+ if ($[11] !== action.title || $[12] !== styles.itemLabel) {
376
+ t5 = /*#__PURE__*/_jsx(Text, {
377
+ style: styles.itemLabel,
378
+ children: action.title
379
+ });
380
+ $[11] = action.title;
381
+ $[12] = styles.itemLabel;
382
+ $[13] = t5;
383
+ } else {
384
+ t5 = $[13];
385
+ }
386
+ let t6;
387
+ if ($[14] !== selected || $[15] !== styles.itemCheck) {
388
+ t6 = selected && /*#__PURE__*/_jsx(Icon, {
389
+ name: "general.check",
390
+ style: styles.itemCheck,
391
+ accessibilityElementsHidden: true
392
+ });
393
+ $[14] = selected;
394
+ $[15] = styles.itemCheck;
395
+ $[16] = t6;
396
+ } else {
397
+ t6 = $[16];
398
+ }
399
+ let t7;
400
+ if ($[17] !== disabled || $[18] !== onPress || $[19] !== t2 || $[20] !== t3 || $[21] !== t4 || $[22] !== t5 || $[23] !== t6) {
401
+ t7 = /*#__PURE__*/_jsxs(Pressable, {
402
+ style: t2,
403
+ onPress: onPress,
404
+ disabled: disabled,
405
+ accessibilityRole: "menuitem",
406
+ accessibilityState: t3,
407
+ android_ripple: t4,
408
+ children: [t5, t6]
409
+ });
410
+ $[17] = disabled;
411
+ $[18] = onPress;
412
+ $[19] = t2;
413
+ $[20] = t3;
414
+ $[21] = t4;
415
+ $[22] = t5;
416
+ $[23] = t6;
417
+ $[24] = t7;
418
+ } else {
419
+ t7 = $[24];
420
+ }
421
+ return t7;
422
+ }
423
+
424
+ // =================================
425
+ // ====== Styles ===================
426
+ // =================================
427
+
428
+ const useStyles = () => {
429
+ const $ = _c(4);
430
+ const {
431
+ colors
432
+ } = useTheme();
433
+ let t0;
434
+ if ($[0] !== colors.fillColorNeutral050Base || $[1] !== colors.fillColorNeutral100Inverted || $[2] !== colors.interaction) {
435
+ t0 = StyleSheet.create({
436
+ scrim: {
437
+ ...StyleSheet.absoluteFill
438
+ },
439
+ menu: {
440
+ position: "absolute",
441
+ paddingVertical: 4,
442
+ borderRadius: 8,
443
+ borderWidth: StyleSheet.hairlineWidth,
444
+ borderColor: colors.fillColorNeutral050Base,
445
+ backgroundColor: colors.fillColorNeutral100Inverted,
446
+ boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
447
+ elevation: 4,
448
+ overflow: "hidden"
449
+ },
450
+ item: {
451
+ flexDirection: "row",
452
+ alignItems: "center",
453
+ gap: 12,
454
+ paddingHorizontal: 16,
455
+ paddingVertical: 12
456
+ },
457
+ itemDisabled: {
458
+ opacity: 0.4
459
+ },
460
+ itemLabel: {
461
+ flex: 1
462
+ },
463
+ itemCheck: {
464
+ fontSize: tokens.fontSizeSm,
465
+ color: colors.interaction
466
+ },
467
+ separator: {
468
+ height: StyleSheet.hairlineWidth,
469
+ marginVertical: 4,
470
+ backgroundColor: colors.fillColorNeutral050Base
471
+ }
472
+ });
473
+ $[0] = colors.fillColorNeutral050Base;
474
+ $[1] = colors.fillColorNeutral100Inverted;
475
+ $[2] = colors.interaction;
476
+ $[3] = t0;
477
+ } else {
478
+ t0 = $[3];
479
+ }
480
+ return t0;
481
+ };
482
+ //# sourceMappingURL=popover_menu_view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover_menu_view.js","names":["clamp","React","useRef","useState","Modal","Pressable","ScrollView","StyleSheet","useWindowDimensions","View","useChatContext","useCreateAndroidRippleColor","useFontScale","useTheme","platformPressedOpacityStyle","tokens","Icon","Text","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MENU_WIDTH","MENU_OFFSET","SCREEN_MARGIN","CLOSED_ANCHOR","x","y","width","height","actionId","action","id","title","visibleActions","actions","filter","attributes","hidden","buildRows","rows","pushSeparator","length","kind","push","forEach","index","visible","displayInline","subactions","subaction","PopoverMenuView","t0","$","_c","onPressAction","onOpenMenu","onCloseMenu","style","testID","children","triggerRef","expanded","setExpanded","anchor","setAnchor","edgeToEdge","t1","undefined","windowWidth","windowHeight","fontScale","styles","useStyles","t2","current","measureInWindow","open","t3","close","t4","nativeEvent","event","handlePress","menuWidth","anchorBottom","opensUpward","t5","t6","Math","max","t7","t8","bottom","maxHeight","top","t9","left","menuPosition","t10","accessible","t11","scrim","accessibilityRole","accessibilityLabel","t12","menu","t13","separator","t14","row","PopoverMenuItem","onPress","map","bounces","t15","t16","transparent","animationType","t17","colors","fillColorNeutral050Base","color","androidRippleColor","selected","state","disabled","item","itemDisabled","pressed","borderless","foreground","itemLabel","itemCheck","name","accessibilityElementsHidden","accessibilityState","android_ripple","fillColorNeutral100Inverted","interaction","create","absoluteFill","position","paddingVertical","borderRadius","borderWidth","hairlineWidth","borderColor","backgroundColor","boxShadow","elevation","overflow","flexDirection","alignItems","gap","paddingHorizontal","opacity","flex","fontSize","fontSizeSm","marginVertical"],"sources":["../../../src/components/display/popover_menu_view.tsx"],"sourcesContent":["import { clamp } from 'lodash'\nimport React, { useRef, useState } from 'react'\nimport { Modal, Pressable, ScrollView, StyleSheet, useWindowDimensions, View } from 'react-native'\nimport { useChatContext } from '../../contexts/chat_context'\nimport { useCreateAndroidRippleColor, useFontScale, useTheme } from '../../hooks'\nimport { MenuAction, MenuViewProps, platformPressedOpacityStyle } from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Icon } from './icon'\nimport { Text } from './text'\n\n// =================================\n// ====== Constants ================\n// =================================\n\nconst MENU_WIDTH = 240\nconst MENU_OFFSET = 4\nconst SCREEN_MARGIN = 16\n\nconst CLOSED_ANCHOR = { x: 0, y: 0, width: 0, height: 0 }\n\n// =================================\n// ====== Rows =====================\n// =================================\n\ntype Row = { kind: 'action'; action: MenuAction } | { kind: 'separator' }\n\nconst actionId = (action: MenuAction) => action.id ?? action.title\n\nconst visibleActions = (actions: MenuAction[]) =>\n actions.filter(action => !action.attributes?.hidden)\n\n// Lays the actions out the way the native menus draw them: an inline section's\n// subactions sit at the top level, divided from neighboring rows by a separator.\nconst buildRows = (actions: MenuAction[]): Row[] => {\n const rows: Row[] = []\n const pushSeparator = () => {\n if (rows.length > 0 && rows[rows.length - 1].kind !== 'separator') {\n rows.push({ kind: 'separator' })\n }\n }\n\n visibleActions(actions).forEach((action, index, visible) => {\n if (action.displayInline && action.subactions) {\n pushSeparator()\n visibleActions(action.subactions).forEach(subaction =>\n rows.push({ kind: 'action', action: subaction })\n )\n if (index < visible.length - 1) pushSeparator()\n } else {\n rows.push({ kind: 'action', action })\n }\n })\n\n return rows\n}\n\n// =================================\n// ====== Component ================\n// =================================\n\n/**\n * A JS-only `MenuView` for hosts that cannot supply a native menu. Wraps the\n * trigger in a pressable and opens a popover of the actions under it, or above\n * it when the trigger sits in the lower half of the window.\n */\nexport function PopoverMenuView({\n actions,\n onPressAction,\n onOpenMenu,\n onCloseMenu,\n style,\n testID,\n children,\n}: MenuViewProps) {\n const triggerRef = useRef<View>(null)\n const [expanded, setExpanded] = useState(false)\n const [anchor, setAnchor] = useState(CLOSED_ANCHOR)\n const { edgeToEdge = true } = useChatContext()\n const { width: windowWidth, height: windowHeight } = useWindowDimensions()\n const fontScale = useFontScale()\n const styles = useStyles()\n\n const open = () => {\n triggerRef.current?.measureInWindow((x, y, width, height) => {\n setAnchor({ x, y, width, height })\n })\n setExpanded(true)\n onOpenMenu?.()\n }\n\n const close = () => {\n setExpanded(false)\n onCloseMenu?.()\n }\n\n const handlePress = (action: MenuAction) => {\n onPressAction?.({ nativeEvent: { event: actionId(action) } })\n close()\n }\n\n const menuWidth = clamp(MENU_WIDTH * fontScale, MENU_WIDTH, windowWidth - SCREEN_MARGIN * 2)\n const anchorBottom = anchor.y + anchor.height\n const opensUpward = anchor.y + anchor.height / 2 > windowHeight / 2\n const menuPosition = {\n width: menuWidth,\n left: clamp(\n anchor.x,\n SCREEN_MARGIN,\n Math.max(SCREEN_MARGIN, windowWidth - menuWidth - SCREEN_MARGIN)\n ),\n ...(opensUpward\n ? {\n bottom: windowHeight - anchor.y + MENU_OFFSET,\n maxHeight: anchor.y - MENU_OFFSET - SCREEN_MARGIN,\n }\n : {\n top: anchorBottom + MENU_OFFSET,\n maxHeight: windowHeight - anchorBottom - MENU_OFFSET - SCREEN_MARGIN,\n }),\n }\n\n return (\n <>\n <Pressable ref={triggerRef} style={style} testID={testID} onPress={open} accessible={false}>\n {children}\n </Pressable>\n <Modal\n visible={expanded}\n transparent\n animationType=\"fade\"\n statusBarTranslucent={edgeToEdge}\n navigationBarTranslucent={edgeToEdge}\n onRequestClose={close}\n >\n <Pressable\n style={styles.scrim}\n onPress={close}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Close menu\"\n />\n <View style={[styles.menu, menuPosition]} accessibilityRole=\"menu\">\n <ScrollView bounces={false}>\n {buildRows(actions).map((row, index) =>\n row.kind === 'separator' ? (\n <View key={index} style={styles.separator} />\n ) : (\n <PopoverMenuItem\n key={index}\n action={row.action}\n onPress={() => handlePress(row.action)}\n />\n )\n )}\n </ScrollView>\n </View>\n </Modal>\n </>\n )\n}\n\ninterface PopoverMenuItemProps {\n action: MenuAction\n onPress: () => void\n}\n\nfunction PopoverMenuItem({ action, onPress }: PopoverMenuItemProps) {\n const styles = useStyles()\n const { colors } = useTheme()\n const androidRippleColor = useCreateAndroidRippleColor({ color: colors.fillColorNeutral050Base })\n const selected = action.state === 'on'\n const disabled = action.attributes?.disabled === true\n\n return (\n <Pressable\n style={({ pressed }) => [\n styles.item,\n pressed && platformPressedOpacityStyle,\n disabled && styles.itemDisabled,\n ]}\n onPress={onPress}\n disabled={disabled}\n accessibilityRole=\"menuitem\"\n accessibilityState={{ selected, disabled }}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n >\n <Text style={styles.itemLabel}>{action.title}</Text>\n {selected && (\n <Icon name=\"general.check\" style={styles.itemCheck} accessibilityElementsHidden />\n )}\n </Pressable>\n )\n}\n\n// =================================\n// ====== Styles ===================\n// =================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n scrim: {\n ...StyleSheet.absoluteFill,\n },\n menu: {\n position: 'absolute',\n paddingVertical: 4,\n borderRadius: 8,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: colors.fillColorNeutral050Base,\n backgroundColor: colors.fillColorNeutral100Inverted,\n boxShadow: '0px 4px 12px rgba(0, 0, 0, 0.15)',\n elevation: 4,\n overflow: 'hidden',\n },\n item: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n paddingHorizontal: 16,\n paddingVertical: 12,\n },\n itemDisabled: {\n opacity: 0.4,\n },\n itemLabel: {\n flex: 1,\n },\n itemCheck: {\n fontSize: tokens.fontSizeSm,\n color: colors.interaction,\n },\n separator: {\n height: StyleSheet.hairlineWidth,\n marginVertical: 4,\n backgroundColor: colors.fillColorNeutral050Base,\n },\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"AAiDA,eAAO,MAAM,iCAAiC,+CAmP7C,CAAA"}
1
+ {"version":3,"file":"filter_dropdown_list_header_component.d.ts","sourceRoot":"","sources":["../../../../src/screens/conversations/components/filter_dropdown_list_header_component.tsx"],"names":[],"mappings":"AAoDA,eAAO,MAAM,iCAAiC,+CA2P7C,CAAA"}