@oxyhq/services 13.1.6 → 13.1.7
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/lib/commonjs/ui/components/ProfileMenu.js +82 -66
- package/lib/commonjs/ui/components/ProfileMenu.js.map +1 -1
- package/lib/module/ui/components/ProfileMenu.js +83 -67
- package/lib/module/ui/components/ProfileMenu.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +10 -6
- package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileMenu.d.ts +10 -6
- package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ui/components/ProfileMenu.tsx +89 -73
|
@@ -28,6 +28,8 @@ const MENU_WIDTH = 300;
|
|
|
28
28
|
* ignores the anchor and docks the panel to the bottom as a sheet.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
+
/** Everything `ProfileMenuContent` needs, minus the `open` flag (always open). */
|
|
32
|
+
|
|
31
33
|
/**
|
|
32
34
|
* Clean device-account switcher, modeled on the inbox `AccountMenu` but written
|
|
33
35
|
* fresh with NativeWind classNames + Bloom primitives. Lists every account
|
|
@@ -35,13 +37,13 @@ const MENU_WIDTH = 300;
|
|
|
35
37
|
* switches, and each inactive row carries a sign-out icon. Below the list:
|
|
36
38
|
* Add account, Manage account, optional View profile, and Sign out of all.
|
|
37
39
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
+
* Heavy hooks (device accounts / refresh-all, Bloom dialog/toast controls, the
|
|
41
|
+
* escape-key listener) live here so they run ONLY while the menu is open — the
|
|
42
|
+
* outer {@link ProfileMenu} mounts this only when `open`. This component may
|
|
43
|
+
* therefore assume it is always open.
|
|
40
44
|
*/
|
|
41
|
-
const
|
|
42
|
-
open,
|
|
45
|
+
const ProfileMenuContent = ({
|
|
43
46
|
onClose,
|
|
44
|
-
anchor,
|
|
45
47
|
onNavigateManage,
|
|
46
48
|
onAddAccount,
|
|
47
49
|
onNavigateProfile,
|
|
@@ -131,9 +133,10 @@ const ProfileMenuBody = ({
|
|
|
131
133
|
}
|
|
132
134
|
}, [signingOutAll, logoutAll, t, onClose, onBeforeSessionChange]);
|
|
133
135
|
|
|
134
|
-
// Escape-to-close (web only).
|
|
136
|
+
// Escape-to-close (web only). This component only mounts while open, so the
|
|
137
|
+
// listener is attached exactly for the menu's lifetime.
|
|
135
138
|
(0, _react.useEffect)(() => {
|
|
136
|
-
if (!
|
|
139
|
+
if (!isWeb || typeof document === 'undefined') {
|
|
137
140
|
return undefined;
|
|
138
141
|
}
|
|
139
142
|
const onKey = event => {
|
|
@@ -144,34 +147,9 @@ const ProfileMenuBody = ({
|
|
|
144
147
|
};
|
|
145
148
|
document.addEventListener('keydown', onKey, true);
|
|
146
149
|
return () => document.removeEventListener('keydown', onKey, true);
|
|
147
|
-
}, [
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
153
|
-
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
154
|
-
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
155
|
-
const panelAnchorStyle = isWeb ? {
|
|
156
|
-
position: 'absolute',
|
|
157
|
-
width: MENU_WIDTH,
|
|
158
|
-
left: anchor?.left ?? 8,
|
|
159
|
-
bottom: anchor?.bottom ?? 8
|
|
160
|
-
} : undefined;
|
|
161
|
-
const content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable
|
|
162
|
-
// Swallow taps inside the panel so they never reach the overlay's
|
|
163
|
-
// outside-tap-to-close handler.
|
|
164
|
-
, {
|
|
165
|
-
onPress: () => undefined,
|
|
166
|
-
className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
|
|
167
|
-
style: [panelAnchorStyle, !isWeb ? {
|
|
168
|
-
maxHeight: '85%'
|
|
169
|
-
} : {
|
|
170
|
-
maxHeight: '85%'
|
|
171
|
-
}, styles.shadow],
|
|
172
|
-
accessibilityRole: "menu",
|
|
173
|
-
accessibilityLabel: t('accountMenu.label') || 'Account menu',
|
|
174
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
|
|
150
|
+
}, [onClose]);
|
|
151
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
152
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
|
|
175
153
|
className: "grow-0",
|
|
176
154
|
contentContainerClassName: "py-1",
|
|
177
155
|
showsVerticalScrollIndicator: false,
|
|
@@ -299,20 +277,6 @@ const ProfileMenuBody = ({
|
|
|
299
277
|
children: t('accountMenu.signOutAll') || 'Sign out of all accounts'
|
|
300
278
|
})]
|
|
301
279
|
})]
|
|
302
|
-
})
|
|
303
|
-
});
|
|
304
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Modal, {
|
|
305
|
-
visible: open,
|
|
306
|
-
transparent: true,
|
|
307
|
-
animationType: isWeb ? 'fade' : 'slide',
|
|
308
|
-
onRequestClose: onClose,
|
|
309
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
310
|
-
accessibilityRole: "button",
|
|
311
|
-
accessibilityLabel: t('common.actions.close') || 'Close',
|
|
312
|
-
onPress: onClose,
|
|
313
|
-
className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
|
|
314
|
-
style: !isWeb ? styles.nativeScrim : undefined,
|
|
315
|
-
children: content
|
|
316
280
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_bloom.Dialog, {
|
|
317
281
|
control: signOutAllDialog,
|
|
318
282
|
title: t('accountMenu.signOutAll') || 'Sign out of all accounts',
|
|
@@ -329,6 +293,75 @@ const ProfileMenuBody = ({
|
|
|
329
293
|
});
|
|
330
294
|
};
|
|
331
295
|
|
|
296
|
+
/**
|
|
297
|
+
* Public wrapper. The RN `Modal` shell is ALWAYS mounted (only `visible` toggles)
|
|
298
|
+
* so the react-native-web portal is created up front — mounting a web `Modal`
|
|
299
|
+
* already-`visible` is fragile (the first interaction can be eaten / the button
|
|
300
|
+
* "does nothing"). Only the heavy {@link ProfileMenuContent} mounts when open,
|
|
301
|
+
* keeping the account hooks off the render path when the menu is closed. On
|
|
302
|
+
* native that closed render is `<Modal visible={false}>{null}</Modal>` → no heavy
|
|
303
|
+
* hooks run (preserving the native-drawer crash fix).
|
|
304
|
+
*
|
|
305
|
+
* This outer component calls ONLY light, always-safe hooks (`useTheme`,
|
|
306
|
+
* `useI18n` for the overlay a11y label) and computes the panel/overlay layout.
|
|
307
|
+
*/
|
|
308
|
+
const ProfileMenu = ({
|
|
309
|
+
open,
|
|
310
|
+
onClose,
|
|
311
|
+
anchor,
|
|
312
|
+
onNavigateManage,
|
|
313
|
+
onAddAccount,
|
|
314
|
+
onNavigateProfile,
|
|
315
|
+
onBeforeSessionChange
|
|
316
|
+
}) => {
|
|
317
|
+
const {
|
|
318
|
+
t
|
|
319
|
+
} = (0, _useI18n.useI18n)();
|
|
320
|
+
|
|
321
|
+
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
322
|
+
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
323
|
+
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
324
|
+
const panelAnchorStyle = isWeb ? {
|
|
325
|
+
position: 'absolute',
|
|
326
|
+
width: MENU_WIDTH,
|
|
327
|
+
left: anchor?.left ?? 8,
|
|
328
|
+
bottom: anchor?.bottom ?? 8
|
|
329
|
+
} : undefined;
|
|
330
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
|
|
331
|
+
visible: open,
|
|
332
|
+
transparent: true,
|
|
333
|
+
animationType: isWeb ? 'fade' : 'slide',
|
|
334
|
+
onRequestClose: onClose,
|
|
335
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
336
|
+
accessibilityRole: "button",
|
|
337
|
+
accessibilityLabel: t('common.actions.close') || 'Close',
|
|
338
|
+
onPress: onClose,
|
|
339
|
+
className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
|
|
340
|
+
style: !isWeb ? styles.nativeScrim : undefined,
|
|
341
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable
|
|
342
|
+
// Swallow taps inside the panel so they never reach the overlay's
|
|
343
|
+
// outside-tap-to-close handler.
|
|
344
|
+
, {
|
|
345
|
+
onPress: () => undefined,
|
|
346
|
+
className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
|
|
347
|
+
style: [panelAnchorStyle, {
|
|
348
|
+
maxHeight: '85%'
|
|
349
|
+
}, styles.shadow],
|
|
350
|
+
accessibilityRole: "menu",
|
|
351
|
+
accessibilityLabel: t('accountMenu.label') || 'Account menu',
|
|
352
|
+
children: open ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ProfileMenuContent, {
|
|
353
|
+
onClose: onClose,
|
|
354
|
+
anchor: anchor,
|
|
355
|
+
onNavigateManage: onNavigateManage,
|
|
356
|
+
onAddAccount: onAddAccount,
|
|
357
|
+
onNavigateProfile: onNavigateProfile,
|
|
358
|
+
onBeforeSessionChange: onBeforeSessionChange
|
|
359
|
+
}) : null
|
|
360
|
+
})
|
|
361
|
+
})
|
|
362
|
+
});
|
|
363
|
+
};
|
|
364
|
+
|
|
332
365
|
/** Bottom-section action row (Add account / Manage / View profile). */
|
|
333
366
|
const ActionRow = ({
|
|
334
367
|
icon,
|
|
@@ -370,22 +403,5 @@ const styles = {
|
|
|
370
403
|
backgroundColor: 'rgba(0,0,0,0.32)'
|
|
371
404
|
}
|
|
372
405
|
};
|
|
373
|
-
|
|
374
|
-
/**
|
|
375
|
-
* Public wrapper: renders nothing — and runs NO hooks — until `open`. Mounting
|
|
376
|
-
* the body only while open keeps the account hooks (`useDeviceAccounts` /
|
|
377
|
-
* refresh-all, Bloom dialog/toast controls) off the render path when the menu is
|
|
378
|
-
* closed, which is every time the sidebar or native drawer mounts
|
|
379
|
-
* `ProfileButton`. A hook that is unsafe on a given platform (e.g. throws during
|
|
380
|
-
* a native render) therefore never runs unless the user actually opens the menu.
|
|
381
|
-
*/
|
|
382
|
-
const ProfileMenu = props => {
|
|
383
|
-
if (!props.open) {
|
|
384
|
-
return null;
|
|
385
|
-
}
|
|
386
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ProfileMenuBody, {
|
|
387
|
-
...props
|
|
388
|
-
});
|
|
389
|
-
};
|
|
390
406
|
var _default = exports.default = ProfileMenu;
|
|
391
407
|
//# sourceMappingURL=ProfileMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_bloom","_divider","_core","_OxyContext","_useI18n","_useDeviceAccounts","_jsxRuntime","isWeb","Platform","OS","MENU_WIDTH","ProfileMenuBody","open","onClose","anchor","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","useOxy","t","useI18n","colors","useTheme","accounts","useDeviceAccounts","busySessionId","setBusySessionId","useState","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","useDialogControl","isSwitching","actionDisabled","handleSwitch","useCallback","sessionId","toast","success","error","isDev","loggerUtil","warn","component","handleRemove","performSignOutAll","useEffect","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","panelAnchorStyle","position","width","left","bottom","content","jsx","Pressable","onPress","className","style","maxHeight","styles","shadow","accessibilityRole","accessibilityLabel","children","jsxs","ScrollView","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","displayName","accessibilityState","selected","disabled","Avatar","source","user","avatar","uri","avatarUrl","variant","name","size","View","Text","numberOfLines","email","ActivityIndicator","color","primary","MaterialCommunityIcons","textSecondary","hitSlop","top","right","Divider","border","spacing","ActionRow","icon","iconColor","label","Modal","visible","transparent","animationType","onRequestClose","nativeScrim","Dialog","control","title","description","actions","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor","ProfileMenu","props","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_bloom","_divider","_core","_OxyContext","_useI18n","_useDeviceAccounts","_jsxRuntime","isWeb","Platform","OS","MENU_WIDTH","ProfileMenuContent","onClose","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","useOxy","t","useI18n","colors","useTheme","accounts","useDeviceAccounts","busySessionId","setBusySessionId","useState","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","useDialogControl","isSwitching","actionDisabled","handleSwitch","useCallback","sessionId","toast","success","error","isDev","loggerUtil","warn","component","handleRemove","performSignOutAll","useEffect","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","jsxs","Fragment","children","ScrollView","className","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","Pressable","accessibilityRole","accessibilityLabel","displayName","accessibilityState","selected","onPress","disabled","jsx","Avatar","source","user","avatar","uri","avatarUrl","variant","name","size","View","Text","numberOfLines","email","ActivityIndicator","color","primary","MaterialCommunityIcons","textSecondary","hitSlop","top","bottom","left","right","Divider","border","spacing","ActionRow","icon","iconColor","label","open","style","Dialog","control","title","description","actions","ProfileMenu","anchor","panelAnchorStyle","position","width","Modal","visible","transparent","animationType","onRequestClose","styles","nativeScrim","maxHeight","shadow","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor","_default","exports","default"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ import { isDev, logger as loggerUtil } from '@oxyhq/core';
|
|
|
12
12
|
import { useOxy } from "../context/OxyContext.js";
|
|
13
13
|
import { useI18n } from "../hooks/useI18n.js";
|
|
14
14
|
import { useDeviceAccounts } from "../hooks/useDeviceAccounts.js";
|
|
15
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
16
16
|
const isWeb = Platform.OS === 'web';
|
|
17
17
|
|
|
18
18
|
/** Fixed popover width on web. `ProfileButton` mirrors this when anchoring. */
|
|
@@ -24,6 +24,8 @@ const MENU_WIDTH = 300;
|
|
|
24
24
|
* ignores the anchor and docks the panel to the bottom as a sheet.
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
|
+
/** Everything `ProfileMenuContent` needs, minus the `open` flag (always open). */
|
|
28
|
+
|
|
27
29
|
/**
|
|
28
30
|
* Clean device-account switcher, modeled on the inbox `AccountMenu` but written
|
|
29
31
|
* fresh with NativeWind classNames + Bloom primitives. Lists every account
|
|
@@ -31,13 +33,13 @@ const MENU_WIDTH = 300;
|
|
|
31
33
|
* switches, and each inactive row carries a sign-out icon. Below the list:
|
|
32
34
|
* Add account, Manage account, optional View profile, and Sign out of all.
|
|
33
35
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
+
* Heavy hooks (device accounts / refresh-all, Bloom dialog/toast controls, the
|
|
37
|
+
* escape-key listener) live here so they run ONLY while the menu is open — the
|
|
38
|
+
* outer {@link ProfileMenu} mounts this only when `open`. This component may
|
|
39
|
+
* therefore assume it is always open.
|
|
36
40
|
*/
|
|
37
|
-
const
|
|
38
|
-
open,
|
|
41
|
+
const ProfileMenuContent = ({
|
|
39
42
|
onClose,
|
|
40
|
-
anchor,
|
|
41
43
|
onNavigateManage,
|
|
42
44
|
onAddAccount,
|
|
43
45
|
onNavigateProfile,
|
|
@@ -127,9 +129,10 @@ const ProfileMenuBody = ({
|
|
|
127
129
|
}
|
|
128
130
|
}, [signingOutAll, logoutAll, t, onClose, onBeforeSessionChange]);
|
|
129
131
|
|
|
130
|
-
// Escape-to-close (web only).
|
|
132
|
+
// Escape-to-close (web only). This component only mounts while open, so the
|
|
133
|
+
// listener is attached exactly for the menu's lifetime.
|
|
131
134
|
useEffect(() => {
|
|
132
|
-
if (!
|
|
135
|
+
if (!isWeb || typeof document === 'undefined') {
|
|
133
136
|
return undefined;
|
|
134
137
|
}
|
|
135
138
|
const onKey = event => {
|
|
@@ -140,34 +143,9 @@ const ProfileMenuBody = ({
|
|
|
140
143
|
};
|
|
141
144
|
document.addEventListener('keydown', onKey, true);
|
|
142
145
|
return () => document.removeEventListener('keydown', onKey, true);
|
|
143
|
-
}, [
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
149
|
-
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
150
|
-
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
151
|
-
const panelAnchorStyle = isWeb ? {
|
|
152
|
-
position: 'absolute',
|
|
153
|
-
width: MENU_WIDTH,
|
|
154
|
-
left: anchor?.left ?? 8,
|
|
155
|
-
bottom: anchor?.bottom ?? 8
|
|
156
|
-
} : undefined;
|
|
157
|
-
const content = /*#__PURE__*/_jsx(Pressable
|
|
158
|
-
// Swallow taps inside the panel so they never reach the overlay's
|
|
159
|
-
// outside-tap-to-close handler.
|
|
160
|
-
, {
|
|
161
|
-
onPress: () => undefined,
|
|
162
|
-
className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
|
|
163
|
-
style: [panelAnchorStyle, !isWeb ? {
|
|
164
|
-
maxHeight: '85%'
|
|
165
|
-
} : {
|
|
166
|
-
maxHeight: '85%'
|
|
167
|
-
}, styles.shadow],
|
|
168
|
-
accessibilityRole: "menu",
|
|
169
|
-
accessibilityLabel: t('accountMenu.label') || 'Account menu',
|
|
170
|
-
children: /*#__PURE__*/_jsxs(ScrollView, {
|
|
146
|
+
}, [onClose]);
|
|
147
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
148
|
+
children: [/*#__PURE__*/_jsxs(ScrollView, {
|
|
171
149
|
className: "grow-0",
|
|
172
150
|
contentContainerClassName: "py-1",
|
|
173
151
|
showsVerticalScrollIndicator: false,
|
|
@@ -295,20 +273,6 @@ const ProfileMenuBody = ({
|
|
|
295
273
|
children: t('accountMenu.signOutAll') || 'Sign out of all accounts'
|
|
296
274
|
})]
|
|
297
275
|
})]
|
|
298
|
-
})
|
|
299
|
-
});
|
|
300
|
-
return /*#__PURE__*/_jsxs(Modal, {
|
|
301
|
-
visible: open,
|
|
302
|
-
transparent: true,
|
|
303
|
-
animationType: isWeb ? 'fade' : 'slide',
|
|
304
|
-
onRequestClose: onClose,
|
|
305
|
-
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
306
|
-
accessibilityRole: "button",
|
|
307
|
-
accessibilityLabel: t('common.actions.close') || 'Close',
|
|
308
|
-
onPress: onClose,
|
|
309
|
-
className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
|
|
310
|
-
style: !isWeb ? styles.nativeScrim : undefined,
|
|
311
|
-
children: content
|
|
312
276
|
}), /*#__PURE__*/_jsx(Dialog, {
|
|
313
277
|
control: signOutAllDialog,
|
|
314
278
|
title: t('accountMenu.signOutAll') || 'Sign out of all accounts',
|
|
@@ -325,6 +289,75 @@ const ProfileMenuBody = ({
|
|
|
325
289
|
});
|
|
326
290
|
};
|
|
327
291
|
|
|
292
|
+
/**
|
|
293
|
+
* Public wrapper. The RN `Modal` shell is ALWAYS mounted (only `visible` toggles)
|
|
294
|
+
* so the react-native-web portal is created up front — mounting a web `Modal`
|
|
295
|
+
* already-`visible` is fragile (the first interaction can be eaten / the button
|
|
296
|
+
* "does nothing"). Only the heavy {@link ProfileMenuContent} mounts when open,
|
|
297
|
+
* keeping the account hooks off the render path when the menu is closed. On
|
|
298
|
+
* native that closed render is `<Modal visible={false}>{null}</Modal>` → no heavy
|
|
299
|
+
* hooks run (preserving the native-drawer crash fix).
|
|
300
|
+
*
|
|
301
|
+
* This outer component calls ONLY light, always-safe hooks (`useTheme`,
|
|
302
|
+
* `useI18n` for the overlay a11y label) and computes the panel/overlay layout.
|
|
303
|
+
*/
|
|
304
|
+
const ProfileMenu = ({
|
|
305
|
+
open,
|
|
306
|
+
onClose,
|
|
307
|
+
anchor,
|
|
308
|
+
onNavigateManage,
|
|
309
|
+
onAddAccount,
|
|
310
|
+
onNavigateProfile,
|
|
311
|
+
onBeforeSessionChange
|
|
312
|
+
}) => {
|
|
313
|
+
const {
|
|
314
|
+
t
|
|
315
|
+
} = useI18n();
|
|
316
|
+
|
|
317
|
+
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
318
|
+
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
319
|
+
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
320
|
+
const panelAnchorStyle = isWeb ? {
|
|
321
|
+
position: 'absolute',
|
|
322
|
+
width: MENU_WIDTH,
|
|
323
|
+
left: anchor?.left ?? 8,
|
|
324
|
+
bottom: anchor?.bottom ?? 8
|
|
325
|
+
} : undefined;
|
|
326
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
327
|
+
visible: open,
|
|
328
|
+
transparent: true,
|
|
329
|
+
animationType: isWeb ? 'fade' : 'slide',
|
|
330
|
+
onRequestClose: onClose,
|
|
331
|
+
children: /*#__PURE__*/_jsx(Pressable, {
|
|
332
|
+
accessibilityRole: "button",
|
|
333
|
+
accessibilityLabel: t('common.actions.close') || 'Close',
|
|
334
|
+
onPress: onClose,
|
|
335
|
+
className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
|
|
336
|
+
style: !isWeb ? styles.nativeScrim : undefined,
|
|
337
|
+
children: /*#__PURE__*/_jsx(Pressable
|
|
338
|
+
// Swallow taps inside the panel so they never reach the overlay's
|
|
339
|
+
// outside-tap-to-close handler.
|
|
340
|
+
, {
|
|
341
|
+
onPress: () => undefined,
|
|
342
|
+
className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
|
|
343
|
+
style: [panelAnchorStyle, {
|
|
344
|
+
maxHeight: '85%'
|
|
345
|
+
}, styles.shadow],
|
|
346
|
+
accessibilityRole: "menu",
|
|
347
|
+
accessibilityLabel: t('accountMenu.label') || 'Account menu',
|
|
348
|
+
children: open ? /*#__PURE__*/_jsx(ProfileMenuContent, {
|
|
349
|
+
onClose: onClose,
|
|
350
|
+
anchor: anchor,
|
|
351
|
+
onNavigateManage: onNavigateManage,
|
|
352
|
+
onAddAccount: onAddAccount,
|
|
353
|
+
onNavigateProfile: onNavigateProfile,
|
|
354
|
+
onBeforeSessionChange: onBeforeSessionChange
|
|
355
|
+
}) : null
|
|
356
|
+
})
|
|
357
|
+
})
|
|
358
|
+
});
|
|
359
|
+
};
|
|
360
|
+
|
|
328
361
|
/** Bottom-section action row (Add account / Manage / View profile). */
|
|
329
362
|
const ActionRow = ({
|
|
330
363
|
icon,
|
|
@@ -366,22 +399,5 @@ const styles = {
|
|
|
366
399
|
backgroundColor: 'rgba(0,0,0,0.32)'
|
|
367
400
|
}
|
|
368
401
|
};
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Public wrapper: renders nothing — and runs NO hooks — until `open`. Mounting
|
|
372
|
-
* the body only while open keeps the account hooks (`useDeviceAccounts` /
|
|
373
|
-
* refresh-all, Bloom dialog/toast controls) off the render path when the menu is
|
|
374
|
-
* closed, which is every time the sidebar or native drawer mounts
|
|
375
|
-
* `ProfileButton`. A hook that is unsafe on a given platform (e.g. throws during
|
|
376
|
-
* a native render) therefore never runs unless the user actually opens the menu.
|
|
377
|
-
*/
|
|
378
|
-
const ProfileMenu = props => {
|
|
379
|
-
if (!props.open) {
|
|
380
|
-
return null;
|
|
381
|
-
}
|
|
382
|
-
return /*#__PURE__*/_jsx(ProfileMenuBody, {
|
|
383
|
-
...props
|
|
384
|
-
});
|
|
385
|
-
};
|
|
386
402
|
export default ProfileMenu;
|
|
387
403
|
//# sourceMappingURL=ProfileMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","View","Pressable","Modal","ScrollView","ActivityIndicator","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","toast","useDialogControl","Dialog","Divider","isDev","logger","loggerUtil","useOxy","useI18n","useDeviceAccounts","jsx","_jsx","jsxs","_jsxs","isWeb","OS","MENU_WIDTH","ProfileMenuBody","open","onClose","anchor","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","t","colors","accounts","busySessionId","setBusySessionId","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","isSwitching","actionDisabled","handleSwitch","sessionId","success","error","warn","component","handleRemove","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","panelAnchorStyle","position","width","left","bottom","content","onPress","className","style","maxHeight","styles","shadow","accessibilityRole","accessibilityLabel","children","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","displayName","accessibilityState","selected","disabled","source","user","avatar","uri","avatarUrl","variant","name","size","numberOfLines","email","color","primary","textSecondary","hitSlop","top","right","border","spacing","ActionRow","icon","iconColor","label","visible","transparent","animationType","onRequestClose","nativeScrim","control","title","description","actions","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor","ProfileMenu","props"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","View","Pressable","Modal","ScrollView","ActivityIndicator","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","toast","useDialogControl","Dialog","Divider","isDev","logger","loggerUtil","useOxy","useI18n","useDeviceAccounts","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","isWeb","OS","MENU_WIDTH","ProfileMenuContent","onClose","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","t","colors","accounts","busySessionId","setBusySessionId","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","isSwitching","actionDisabled","handleSwitch","sessionId","success","error","warn","component","handleRemove","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","children","className","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","accessibilityRole","accessibilityLabel","displayName","accessibilityState","selected","onPress","disabled","source","user","avatar","uri","avatarUrl","variant","name","size","numberOfLines","email","color","primary","textSecondary","hitSlop","top","bottom","left","right","border","spacing","ActionRow","icon","iconColor","label","open","style","control","title","description","actions","ProfileMenu","anchor","panelAnchorStyle","position","width","visible","transparent","animationType","onRequestClose","styles","nativeScrim","maxHeight","shadow","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,12 +25,16 @@ export interface ProfileMenuProps {
|
|
|
25
25
|
onBeforeSessionChange?: () => void | Promise<void>;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Public wrapper
|
|
29
|
-
* the
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* Public wrapper. The RN `Modal` shell is ALWAYS mounted (only `visible` toggles)
|
|
29
|
+
* so the react-native-web portal is created up front — mounting a web `Modal`
|
|
30
|
+
* already-`visible` is fragile (the first interaction can be eaten / the button
|
|
31
|
+
* "does nothing"). Only the heavy {@link ProfileMenuContent} mounts when open,
|
|
32
|
+
* keeping the account hooks off the render path when the menu is closed. On
|
|
33
|
+
* native that closed render is `<Modal visible={false}>{null}</Modal>` → no heavy
|
|
34
|
+
* hooks run (preserving the native-drawer crash fix).
|
|
35
|
+
*
|
|
36
|
+
* This outer component calls ONLY light, always-safe hooks (`useTheme`,
|
|
37
|
+
* `useI18n` for the overlay a11y label) and computes the panel/overlay layout.
|
|
34
38
|
*/
|
|
35
39
|
declare const ProfileMenu: React.FC<ProfileMenuProps>;
|
|
36
40
|
export default ProfileMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;
|
|
1
|
+
{"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAwRD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgE3C,CAAC;AAsCF,eAAe,WAAW,CAAC"}
|
|
@@ -25,12 +25,16 @@ export interface ProfileMenuProps {
|
|
|
25
25
|
onBeforeSessionChange?: () => void | Promise<void>;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
* Public wrapper
|
|
29
|
-
* the
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
28
|
+
* Public wrapper. The RN `Modal` shell is ALWAYS mounted (only `visible` toggles)
|
|
29
|
+
* so the react-native-web portal is created up front — mounting a web `Modal`
|
|
30
|
+
* already-`visible` is fragile (the first interaction can be eaten / the button
|
|
31
|
+
* "does nothing"). Only the heavy {@link ProfileMenuContent} mounts when open,
|
|
32
|
+
* keeping the account hooks off the render path when the menu is closed. On
|
|
33
|
+
* native that closed render is `<Modal visible={false}>{null}</Modal>` → no heavy
|
|
34
|
+
* hooks run (preserving the native-drawer crash fix).
|
|
35
|
+
*
|
|
36
|
+
* This outer component calls ONLY light, always-safe hooks (`useTheme`,
|
|
37
|
+
* `useI18n` for the overlay a11y label) and computes the panel/overlay layout.
|
|
34
38
|
*/
|
|
35
39
|
declare const ProfileMenu: React.FC<ProfileMenuProps>;
|
|
36
40
|
export default ProfileMenu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;
|
|
1
|
+
{"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAwRD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgE3C,CAAC;AAsCF,eAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "13.1.
|
|
3
|
+
"version": "13.1.7",
|
|
4
4
|
"description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"peerDependencies": {
|
|
154
154
|
"@expo/vector-icons": "^15.0.3",
|
|
155
155
|
"@oxyhq/bloom": ">=0.16.0",
|
|
156
|
-
"@oxyhq/core": "5.2.0",
|
|
156
|
+
"@oxyhq/core": "^5.2.0",
|
|
157
157
|
"@react-native-async-storage/async-storage": "^2.0.0",
|
|
158
158
|
"@react-native-community/netinfo": "^11.4.1",
|
|
159
159
|
"@tanstack/query-async-storage-persister": "^5.101",
|
|
@@ -52,6 +52,9 @@ export interface ProfileMenuProps {
|
|
|
52
52
|
onBeforeSessionChange?: () => void | Promise<void>;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/** Everything `ProfileMenuContent` needs, minus the `open` flag (always open). */
|
|
56
|
+
type ProfileMenuContentProps = Omit<ProfileMenuProps, 'open'>;
|
|
57
|
+
|
|
55
58
|
/**
|
|
56
59
|
* Clean device-account switcher, modeled on the inbox `AccountMenu` but written
|
|
57
60
|
* fresh with NativeWind classNames + Bloom primitives. Lists every account
|
|
@@ -59,13 +62,13 @@ export interface ProfileMenuProps {
|
|
|
59
62
|
* switches, and each inactive row carries a sign-out icon. Below the list:
|
|
60
63
|
* Add account, Manage account, optional View profile, and Sign out of all.
|
|
61
64
|
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
65
|
+
* Heavy hooks (device accounts / refresh-all, Bloom dialog/toast controls, the
|
|
66
|
+
* escape-key listener) live here so they run ONLY while the menu is open — the
|
|
67
|
+
* outer {@link ProfileMenu} mounts this only when `open`. This component may
|
|
68
|
+
* therefore assume it is always open.
|
|
64
69
|
*/
|
|
65
|
-
const
|
|
66
|
-
open,
|
|
70
|
+
const ProfileMenuContent: React.FC<ProfileMenuContentProps> = ({
|
|
67
71
|
onClose,
|
|
68
|
-
anchor,
|
|
69
72
|
onNavigateManage,
|
|
70
73
|
onAddAccount,
|
|
71
74
|
onNavigateProfile,
|
|
@@ -148,9 +151,10 @@ const ProfileMenuBody: React.FC<ProfileMenuProps> = ({
|
|
|
148
151
|
}
|
|
149
152
|
}, [signingOutAll, logoutAll, t, onClose, onBeforeSessionChange]);
|
|
150
153
|
|
|
151
|
-
// Escape-to-close (web only).
|
|
154
|
+
// Escape-to-close (web only). This component only mounts while open, so the
|
|
155
|
+
// listener is attached exactly for the menu's lifetime.
|
|
152
156
|
useEffect(() => {
|
|
153
|
-
if (!
|
|
157
|
+
if (!isWeb || typeof document === 'undefined') {
|
|
154
158
|
return undefined;
|
|
155
159
|
}
|
|
156
160
|
const onKey = (event: KeyboardEvent) => {
|
|
@@ -161,42 +165,10 @@ const ProfileMenuBody: React.FC<ProfileMenuProps> = ({
|
|
|
161
165
|
};
|
|
162
166
|
document.addEventListener('keydown', onKey, true);
|
|
163
167
|
return () => document.removeEventListener('keydown', onKey, true);
|
|
164
|
-
}, [
|
|
165
|
-
|
|
166
|
-
if (!open) {
|
|
167
|
-
return null;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
171
|
-
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
172
|
-
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
173
|
-
const panelAnchorStyle: ViewStyle | undefined = isWeb
|
|
174
|
-
? {
|
|
175
|
-
position: 'absolute',
|
|
176
|
-
width: MENU_WIDTH,
|
|
177
|
-
left: anchor?.left ?? 8,
|
|
178
|
-
bottom: anchor?.bottom ?? 8,
|
|
179
|
-
}
|
|
180
|
-
: undefined;
|
|
168
|
+
}, [onClose]);
|
|
181
169
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
// Swallow taps inside the panel so they never reach the overlay's
|
|
185
|
-
// outside-tap-to-close handler.
|
|
186
|
-
onPress={() => undefined}
|
|
187
|
-
className={
|
|
188
|
-
isWeb
|
|
189
|
-
? 'overflow-hidden rounded-2xl border border-border bg-background'
|
|
190
|
-
: 'overflow-hidden rounded-t-3xl bg-background pb-3'
|
|
191
|
-
}
|
|
192
|
-
style={[
|
|
193
|
-
panelAnchorStyle,
|
|
194
|
-
!isWeb ? { maxHeight: '85%' } : { maxHeight: '85%' },
|
|
195
|
-
styles.shadow,
|
|
196
|
-
]}
|
|
197
|
-
accessibilityRole="menu"
|
|
198
|
-
accessibilityLabel={t('accountMenu.label') || 'Account menu'}
|
|
199
|
-
>
|
|
170
|
+
return (
|
|
171
|
+
<>
|
|
200
172
|
<ScrollView
|
|
201
173
|
className="grow-0"
|
|
202
174
|
contentContainerClassName="py-1"
|
|
@@ -340,8 +312,58 @@ const ProfileMenuBody: React.FC<ProfileMenuProps> = ({
|
|
|
340
312
|
</Text>
|
|
341
313
|
</Pressable>
|
|
342
314
|
</ScrollView>
|
|
343
|
-
|
|
315
|
+
|
|
316
|
+
<Dialog
|
|
317
|
+
control={signOutAllDialog}
|
|
318
|
+
title={t('accountMenu.signOutAll') || 'Sign out of all accounts'}
|
|
319
|
+
description={t('common.confirms.signOutAll') || 'Are you sure you want to sign out of all accounts?'}
|
|
320
|
+
actions={[
|
|
321
|
+
{
|
|
322
|
+
label: t('accountMenu.signOutAll') || 'Sign out of all accounts',
|
|
323
|
+
color: 'destructive',
|
|
324
|
+
onPress: performSignOutAll,
|
|
325
|
+
},
|
|
326
|
+
{ label: t('common.cancel') || 'Cancel', color: 'cancel' },
|
|
327
|
+
]}
|
|
328
|
+
/>
|
|
329
|
+
</>
|
|
344
330
|
);
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Public wrapper. The RN `Modal` shell is ALWAYS mounted (only `visible` toggles)
|
|
335
|
+
* so the react-native-web portal is created up front — mounting a web `Modal`
|
|
336
|
+
* already-`visible` is fragile (the first interaction can be eaten / the button
|
|
337
|
+
* "does nothing"). Only the heavy {@link ProfileMenuContent} mounts when open,
|
|
338
|
+
* keeping the account hooks off the render path when the menu is closed. On
|
|
339
|
+
* native that closed render is `<Modal visible={false}>{null}</Modal>` → no heavy
|
|
340
|
+
* hooks run (preserving the native-drawer crash fix).
|
|
341
|
+
*
|
|
342
|
+
* This outer component calls ONLY light, always-safe hooks (`useTheme`,
|
|
343
|
+
* `useI18n` for the overlay a11y label) and computes the panel/overlay layout.
|
|
344
|
+
*/
|
|
345
|
+
const ProfileMenu: React.FC<ProfileMenuProps> = ({
|
|
346
|
+
open,
|
|
347
|
+
onClose,
|
|
348
|
+
anchor,
|
|
349
|
+
onNavigateManage,
|
|
350
|
+
onAddAccount,
|
|
351
|
+
onNavigateProfile,
|
|
352
|
+
onBeforeSessionChange,
|
|
353
|
+
}) => {
|
|
354
|
+
const { t } = useI18n();
|
|
355
|
+
|
|
356
|
+
// Web: anchor the panel's bottom-left corner to the measured trigger, falling
|
|
357
|
+
// back to a bottom-left placement when no anchor was captured. Native ignores
|
|
358
|
+
// this (the panel docks to the bottom via the overlay's flex-end).
|
|
359
|
+
const panelAnchorStyle: ViewStyle | undefined = isWeb
|
|
360
|
+
? {
|
|
361
|
+
position: 'absolute',
|
|
362
|
+
width: MENU_WIDTH,
|
|
363
|
+
left: anchor?.left ?? 8,
|
|
364
|
+
bottom: anchor?.bottom ?? 8,
|
|
365
|
+
}
|
|
366
|
+
: undefined;
|
|
345
367
|
|
|
346
368
|
return (
|
|
347
369
|
<Modal
|
|
@@ -357,22 +379,31 @@ const ProfileMenuBody: React.FC<ProfileMenuProps> = ({
|
|
|
357
379
|
className={isWeb ? 'flex-1 relative' : 'flex-1 justify-end'}
|
|
358
380
|
style={!isWeb ? styles.nativeScrim : undefined}
|
|
359
381
|
>
|
|
360
|
-
|
|
382
|
+
<Pressable
|
|
383
|
+
// Swallow taps inside the panel so they never reach the overlay's
|
|
384
|
+
// outside-tap-to-close handler.
|
|
385
|
+
onPress={() => undefined}
|
|
386
|
+
className={
|
|
387
|
+
isWeb
|
|
388
|
+
? 'overflow-hidden rounded-2xl border border-border bg-background'
|
|
389
|
+
: 'overflow-hidden rounded-t-3xl bg-background pb-3'
|
|
390
|
+
}
|
|
391
|
+
style={[panelAnchorStyle, { maxHeight: '85%' }, styles.shadow]}
|
|
392
|
+
accessibilityRole="menu"
|
|
393
|
+
accessibilityLabel={t('accountMenu.label') || 'Account menu'}
|
|
394
|
+
>
|
|
395
|
+
{open ? (
|
|
396
|
+
<ProfileMenuContent
|
|
397
|
+
onClose={onClose}
|
|
398
|
+
anchor={anchor}
|
|
399
|
+
onNavigateManage={onNavigateManage}
|
|
400
|
+
onAddAccount={onAddAccount}
|
|
401
|
+
onNavigateProfile={onNavigateProfile}
|
|
402
|
+
onBeforeSessionChange={onBeforeSessionChange}
|
|
403
|
+
/>
|
|
404
|
+
) : null}
|
|
405
|
+
</Pressable>
|
|
361
406
|
</Pressable>
|
|
362
|
-
|
|
363
|
-
<Dialog
|
|
364
|
-
control={signOutAllDialog}
|
|
365
|
-
title={t('accountMenu.signOutAll') || 'Sign out of all accounts'}
|
|
366
|
-
description={t('common.confirms.signOutAll') || 'Are you sure you want to sign out of all accounts?'}
|
|
367
|
-
actions={[
|
|
368
|
-
{
|
|
369
|
-
label: t('accountMenu.signOutAll') || 'Sign out of all accounts',
|
|
370
|
-
color: 'destructive',
|
|
371
|
-
onPress: performSignOutAll,
|
|
372
|
-
},
|
|
373
|
-
{ label: t('common.cancel') || 'Cancel', color: 'cancel' },
|
|
374
|
-
]}
|
|
375
|
-
/>
|
|
376
407
|
</Modal>
|
|
377
408
|
);
|
|
378
409
|
};
|
|
@@ -413,19 +444,4 @@ const styles = {
|
|
|
413
444
|
} satisfies ViewStyle,
|
|
414
445
|
};
|
|
415
446
|
|
|
416
|
-
/**
|
|
417
|
-
* Public wrapper: renders nothing — and runs NO hooks — until `open`. Mounting
|
|
418
|
-
* the body only while open keeps the account hooks (`useDeviceAccounts` /
|
|
419
|
-
* refresh-all, Bloom dialog/toast controls) off the render path when the menu is
|
|
420
|
-
* closed, which is every time the sidebar or native drawer mounts
|
|
421
|
-
* `ProfileButton`. A hook that is unsafe on a given platform (e.g. throws during
|
|
422
|
-
* a native render) therefore never runs unless the user actually opens the menu.
|
|
423
|
-
*/
|
|
424
|
-
const ProfileMenu: React.FC<ProfileMenuProps> = (props) => {
|
|
425
|
-
if (!props.open) {
|
|
426
|
-
return null;
|
|
427
|
-
}
|
|
428
|
-
return <ProfileMenuBody {...props} />;
|
|
429
|
-
};
|
|
430
|
-
|
|
431
447
|
export default ProfileMenu;
|