@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.
@@ -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
- * Renders as an upward-opening popover anchored to the trigger on web, and a
39
- * bottom-sheet style modal on native.
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 ProfileMenuBody = ({
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 (!open || !isWeb || typeof document === 'undefined') {
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
- }, [open, onClose]);
148
- if (!open) {
149
- return null;
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
- * Renders as an upward-opening popover anchored to the trigger on web, and a
35
- * bottom-sheet style modal on native.
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 ProfileMenuBody = ({
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 (!open || !isWeb || typeof document === 'undefined') {
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
- }, [open, onClose]);
144
- if (!open) {
145
- return null;
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: renders nothing and runs NO hooks until `open`. Mounting
29
- * the body only while open keeps the account hooks (`useDeviceAccounts` /
30
- * refresh-all, Bloom dialog/toast controls) off the render path when the menu is
31
- * closed, which is every time the sidebar or native drawer mounts
32
- * `ProfileButton`. A hook that is unsafe on a given platform (e.g. throws during
33
- * a native render) therefore never runs unless the user actually opens the menu.
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;AA2WD;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAK3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
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: renders nothing and runs NO hooks until `open`. Mounting
29
- * the body only while open keeps the account hooks (`useDeviceAccounts` /
30
- * refresh-all, Bloom dialog/toast controls) off the render path when the menu is
31
- * closed, which is every time the sidebar or native drawer mounts
32
- * `ProfileButton`. A hook that is unsafe on a given platform (e.g. throws during
33
- * a native render) therefore never runs unless the user actually opens the menu.
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;AA2WD;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAK3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
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.6",
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
- * Renders as an upward-opening popover anchored to the trigger on web, and a
63
- * bottom-sheet style modal on native.
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 ProfileMenuBody: React.FC<ProfileMenuProps> = ({
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 (!open || !isWeb || typeof document === 'undefined') {
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
- }, [open, onClose]);
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
- const content = (
183
- <Pressable
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
- </Pressable>
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
- {content}
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;