@oxyhq/services 13.1.2 → 13.1.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 (43) hide show
  1. package/lib/commonjs/index.js +1 -0
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/ui/components/ProfileButton.js +126 -11
  4. package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
  5. package/lib/commonjs/ui/context/OxyContext.js +45 -17
  6. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  7. package/lib/commonjs/ui/index.js.map +1 -1
  8. package/lib/commonjs/ui/screens/NotificationsScreen.js +1 -1
  9. package/lib/commonjs/ui/screens/NotificationsScreen.js.map +1 -1
  10. package/lib/commonjs/ui/utils/activeAuthuser.js +35 -14
  11. package/lib/commonjs/ui/utils/activeAuthuser.js.map +1 -1
  12. package/lib/module/index.js +1 -0
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/module/ui/components/ProfileButton.js +126 -11
  15. package/lib/module/ui/components/ProfileButton.js.map +1 -1
  16. package/lib/module/ui/context/OxyContext.js +45 -17
  17. package/lib/module/ui/context/OxyContext.js.map +1 -1
  18. package/lib/module/ui/index.js +1 -0
  19. package/lib/module/ui/index.js.map +1 -1
  20. package/lib/module/ui/screens/NotificationsScreen.js +1 -1
  21. package/lib/module/ui/screens/NotificationsScreen.js.map +1 -1
  22. package/lib/module/ui/utils/activeAuthuser.js +35 -14
  23. package/lib/module/ui/utils/activeAuthuser.js.map +1 -1
  24. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  25. package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +1 -1
  29. package/lib/typescript/module/index.d.ts.map +1 -1
  30. package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
  31. package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
  32. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  33. package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +1 -1
  34. package/lib/typescript/types/react-native-web-style.d.ts +27 -0
  35. package/package.json +1 -1
  36. package/src/index.ts +1 -0
  37. package/src/types/react-native-web-style.d.ts +27 -0
  38. package/src/ui/components/ProfileButton.tsx +135 -11
  39. package/src/ui/context/OxyContext.tsx +45 -17
  40. package/src/ui/index.ts +1 -0
  41. package/src/ui/screens/NotificationsScreen.tsx +1 -1
  42. package/src/ui/utils/__tests__/activeAuthuser.test.ts +75 -0
  43. package/src/ui/utils/activeAuthuser.ts +34 -14
@@ -696,6 +696,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
696
696
  */
697
697
 
698
698
  /// <reference path="./types/react-native-classname.d.ts" />
699
+ /// <reference path="./types/react-native-web-style.d.ts" />
699
700
 
700
701
  (0, _core.setPlatformOS)(_reactNative.Platform.OS);
701
702
 
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","_reactNative","_OxyProvider","_interopRequireDefault","_OxyContext","_useAuth","_FontLoader","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_useFollow","_useAccountQueries","_useServicesQueries","_useSecurityQueries","_usePaymentQueries","_useAccountMutations","_useServicesMutations","_mutationFactory","_mutationKeys","_queryKeys","_useMutationStatus","_useOnlineStatus","_errorHandlers","_crossApex","_useFileFiltering","_Avatar","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_FollowButton","_LogoIcon","_LogoText","_AccountMenu","_AccountMenuButton","_ProfileButton","_ProfileMenu","_AccountSwitcher","_interopRequireWildcard","_useDeviceAccounts","_ManageAccountScreen","_NotificationsScreen","_PreferencesScreen","_ConnectedAppsScreen","_AccountSwitcherScreen","_CreateAccountScreen","_AccountMembersScreen","_AccountSettingsScreen","_bottomSheetManager","_SignInModal","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","setPlatformOS","Platform","OS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","_reactNative","_OxyProvider","_interopRequireDefault","_OxyContext","_useAuth","_FontLoader","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_useFollow","_useAccountQueries","_useServicesQueries","_useSecurityQueries","_usePaymentQueries","_useAccountMutations","_useServicesMutations","_mutationFactory","_mutationKeys","_queryKeys","_useMutationStatus","_useOnlineStatus","_errorHandlers","_crossApex","_useFileFiltering","_Avatar","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_FollowButton","_LogoIcon","_LogoText","_AccountMenu","_AccountMenuButton","_ProfileButton","_ProfileMenu","_AccountSwitcher","_interopRequireWildcard","_useDeviceAccounts","_ManageAccountScreen","_NotificationsScreen","_PreferencesScreen","_ConnectedAppsScreen","_AccountSwitcherScreen","_CreateAccountScreen","_AccountMembersScreen","_AccountSettingsScreen","_bottomSheetManager","_SignInModal","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","setPlatformOS","Platform","OS"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -27,6 +27,33 @@ const MENU_WIDTH = 300;
27
27
 
28
28
  /** Gutter, in px, kept between the popover and the viewport edges on web. */
29
29
  const VIEWPORT_GUTTER = 8;
30
+
31
+ /**
32
+ * Web-only Bluesky-style hover animation timings, mirrored from
33
+ * `social-app/src/view/shell/desktop/LeftNav.tsx`. The row background and the
34
+ * name/handle/chevron opacity cross-fade quickly; the avatar shrink+slide is
35
+ * slower and more deliberate. A short delay on the LEAVE transition keeps the
36
+ * row from flickering when the pointer crosses a child boundary.
37
+ */
38
+ const BG_TRANSITION_MS = 150;
39
+ const AVATAR_TRANSITION_MS = 250;
40
+ const OPACITY_TRANSITION_MS = 150;
41
+ const LEAVE_DELAY_MS = 50;
42
+
43
+ /** Shrunk-avatar scale on hover, matching Bluesky's `scale: 2/3`. */
44
+ const ACTIVE_AVATAR_SCALE = 2 / 3;
45
+
46
+ /**
47
+ * Reads the OS "reduce motion" preference on web. Guards `window`/`matchMedia`
48
+ * so it is safe during SSR and on native (where it is never called). When
49
+ * reduced motion is on, the avatar transform snaps instead of transitioning.
50
+ */
51
+ const prefersReducedMotion = () => {
52
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
53
+ return false;
54
+ }
55
+ return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
56
+ };
30
57
  /**
31
58
  * Self-contained sidebar account trigger, modeled on Bluesky's ProfileCard and
32
59
  * the Oxy inbox's `MailboxDrawer` footer. Owns its own open state + anchor
@@ -72,6 +99,11 @@ const ProfileButton = ({
72
99
  const [menuOpen, setMenuOpen] = (0, _react.useState)(false);
73
100
  const [anchor, setAnchor] = (0, _react.useState)(null);
74
101
 
102
+ // Web-only hover/focus tracking for the Bluesky-style reveal animation.
103
+ // Native has no hover, so these stay false and the row renders statically.
104
+ const [hovered, setHovered] = (0, _react.useState)(false);
105
+ const [focused, setFocused] = (0, _react.useState)(false);
106
+
75
107
  // Trigger ref for the web anchor measurement. RN-Web exposes `measure()` on
76
108
  // host views, so we anchor the popover to the button rect and open upward.
77
109
  const triggerRef = (0, _react.useRef)(null);
@@ -167,18 +199,44 @@ const ProfileButton = ({
167
199
  name: displayName,
168
200
  size: resolvedAvatarSize
169
201
  });
202
+
203
+ // `active` combines hover, keyboard focus, and menu-open — exactly like
204
+ // Bluesky's `state.hovered || state.focused || control.isOpen`. Only web
205
+ // ever sets `hovered`/`focused`, so on native this reduces to `menuOpen`.
206
+ const active = hovered || focused || menuOpen;
207
+ const accountLabel = t('accountSwitcher.switchWhileSignedInAs', {
208
+ name: displayName
209
+ }) || `Switch account, signed in as ${displayName}`;
210
+
211
+ // Web-only pointer/focus handlers. RN-Web forwards `onHoverIn`/`onHoverOut`
212
+ // to the underlying element; native Pressable ignores them harmlessly, but
213
+ // we only attach them on web to keep the native path pristine.
214
+ const webInteractionProps = isWeb ? {
215
+ onHoverIn: () => setHovered(true),
216
+ onHoverOut: () => setHovered(false),
217
+ onFocus: () => setFocused(true),
218
+ onBlur: () => setFocused(false)
219
+ } : undefined;
170
220
  if (!expanded) {
221
+ // Collapsed: avatar-only. On web, hovering just fades a subtle round
222
+ // background behind the avatar — no shrink, no text.
223
+ const collapsedBgStyle = isWeb ? {
224
+ backgroundColor: active ? colors.backgroundSecondary : 'transparent',
225
+ transitionProperty: 'background-color',
226
+ transitionDuration: `${BG_TRANSITION_MS}ms`,
227
+ transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
228
+ } : undefined;
171
229
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
172
230
  className: className,
173
231
  style: style,
174
232
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
175
233
  ref: triggerRef,
176
234
  className: "rounded-full",
235
+ style: collapsedBgStyle,
177
236
  onPress: openMenu,
178
237
  accessibilityRole: "button",
179
- accessibilityLabel: t('accountSwitcher.switchWhileSignedInAs', {
180
- name: displayName
181
- }) || `Switch account, signed in as ${displayName}`,
238
+ accessibilityLabel: accountLabel,
239
+ ...webInteractionProps,
182
240
  children: avatarNode
183
241
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
184
242
  open: menuOpen,
@@ -191,19 +249,73 @@ const ProfileButton = ({
191
249
  })]
192
250
  });
193
251
  }
252
+
253
+ // ── Expanded row animation ──────────────────────────────────────────────
254
+ // On native everything is statically visible (no hover exists). On web we
255
+ // reproduce Bluesky's reveal: the row fills with a subtle contrast bg, the
256
+ // avatar shrinks + slides left, and the name/handle/chevron fade in. The
257
+ // negative left margin tucks the identity block under the shrunk avatar so
258
+ // it slides out from behind it as the avatar contracts.
259
+ const reducedMotion = isWeb && prefersReducedMotion();
260
+
261
+ // Slide the shrunk avatar left so its visual left edge stays put as it
262
+ // contracts. The avatar loses `size * (1 - scale)` of width; half of that
263
+ // (the left half, since scale is centered) is the offset, plus the row's
264
+ // left padding (px-2 = 8px) so it hugs the row edge like Bluesky's.
265
+ const activeAvatarTranslateX = -(resolvedAvatarSize * (1 - ACTIVE_AVATAR_SCALE)) / 2 - 8;
266
+ const rowStyle = isWeb ? {
267
+ backgroundColor: active ? colors.backgroundSecondary : 'transparent',
268
+ transitionProperty: 'background-color',
269
+ transitionDuration: `${BG_TRANSITION_MS}ms`,
270
+ transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
271
+ } : undefined;
272
+ const avatarWrapperStyle = isWeb ? {
273
+ zIndex: 10,
274
+ ...(reducedMotion ? {} : {
275
+ transitionProperty: 'transform',
276
+ transitionDuration: `${AVATAR_TRANSITION_MS}ms`,
277
+ transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
278
+ }),
279
+ transform: active ? [{
280
+ scale: ACTIVE_AVATAR_SCALE
281
+ }, {
282
+ translateX: activeAvatarTranslateX
283
+ }] : [{
284
+ scale: 1
285
+ }, {
286
+ translateX: 0
287
+ }]
288
+ } : undefined;
289
+ const identityStyle = isWeb ? {
290
+ marginLeft: -resolvedAvatarSize / 2,
291
+ opacity: active ? 1 : 0,
292
+ transitionProperty: 'opacity',
293
+ transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
294
+ transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
295
+ } : undefined;
296
+ const chevronStyle = isWeb ? {
297
+ opacity: active ? 1 : 0,
298
+ transitionProperty: 'opacity',
299
+ transitionDuration: `${OPACITY_TRANSITION_MS}ms`,
300
+ transitionDelay: active ? '0ms' : `${LEAVE_DELAY_MS}ms`
301
+ } : undefined;
194
302
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
195
303
  className: className,
196
304
  style: style,
197
305
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
198
306
  ref: triggerRef,
199
307
  className: "flex-row items-center gap-3 rounded-full px-2 py-2",
308
+ style: rowStyle,
200
309
  onPress: openMenu,
201
310
  accessibilityRole: "button",
202
- accessibilityLabel: t('accountSwitcher.switchWhileSignedInAs', {
203
- name: displayName
204
- }) || `Switch account, signed in as ${displayName}`,
205
- children: [avatarNode, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
311
+ accessibilityLabel: accountLabel,
312
+ ...webInteractionProps,
313
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
314
+ style: avatarWrapperStyle,
315
+ children: avatarNode
316
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
206
317
  className: "min-w-0 flex-1",
318
+ style: identityStyle,
207
319
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_typography.Text, {
208
320
  className: "font-bold text-foreground",
209
321
  numberOfLines: 1,
@@ -213,10 +325,13 @@ const ProfileButton = ({
213
325
  numberOfLines: 1,
214
326
  children: handleLine
215
327
  }) : null]
216
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
217
- name: "unfold-more-horizontal",
218
- size: 18,
219
- color: colors.textSecondary
328
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
329
+ style: chevronStyle,
330
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_vectorIcons.MaterialCommunityIcons, {
331
+ name: "unfold-more-horizontal",
332
+ size: 18,
333
+ color: colors.textSecondary
334
+ })
220
335
  })]
221
336
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ProfileMenu.default, {
222
337
  open: menuOpen,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_core","_useAuth","_useI18n","_ProfileMenu","_interopRequireDefault","_jsxRuntime","e","__esModule","default","isWeb","Platform","OS","MENU_WIDTH","VIEWPORT_GUTTER","ProfileButton","expanded","avatarSize","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","className","style","user","isAuthenticated","isAuthResolved","isPrivateApiPending","signIn","useAuth","colors","useTheme","t","locale","useI18n","menuOpen","setMenuOpen","useState","anchor","setAnchor","triggerRef","useRef","resolvedAvatarSize","openMenu","useCallback","node","current","measure","window","_x","_y","_w","_h","pageX","pageY","maxLeft","Math","max","innerWidth","left","min","bottom","innerHeight","handleClose","jsx","View","accessibilityElementsHidden","importantForAccessibility","children","width","height","signInLabel","jsxs","Pressable","onPress","accessibilityRole","accessibilityLabel","MaterialCommunityIcons","name","size","round","color","icon","Text","numberOfLines","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","handleLine","avatarNode","Avatar","source","avatar","undefined","variant","ref","open","onClose","textSecondary","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_vectorIcons","_avatar","_typography","_theme","_core","_useAuth","_useI18n","_ProfileMenu","_interopRequireDefault","_jsxRuntime","e","__esModule","default","isWeb","Platform","OS","MENU_WIDTH","VIEWPORT_GUTTER","BG_TRANSITION_MS","AVATAR_TRANSITION_MS","OPACITY_TRANSITION_MS","LEAVE_DELAY_MS","ACTIVE_AVATAR_SCALE","prefersReducedMotion","window","matchMedia","matches","ProfileButton","expanded","avatarSize","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","className","style","user","isAuthenticated","isAuthResolved","isPrivateApiPending","signIn","useAuth","colors","useTheme","t","locale","useI18n","menuOpen","setMenuOpen","useState","anchor","setAnchor","hovered","setHovered","focused","setFocused","triggerRef","useRef","resolvedAvatarSize","openMenu","useCallback","node","current","measure","_x","_y","_w","_h","pageX","pageY","maxLeft","Math","max","innerWidth","left","min","bottom","innerHeight","handleClose","jsx","View","accessibilityElementsHidden","importantForAccessibility","children","width","height","signInLabel","jsxs","Pressable","onPress","accessibilityRole","accessibilityLabel","MaterialCommunityIcons","name","size","round","color","icon","Text","numberOfLines","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","handleLine","avatarNode","Avatar","source","avatar","undefined","variant","active","accountLabel","webInteractionProps","onHoverIn","onHoverOut","onFocus","onBlur","collapsedBgStyle","backgroundColor","backgroundSecondary","transitionProperty","transitionDuration","transitionDelay","ref","open","onClose","reducedMotion","activeAvatarTranslateX","rowStyle","avatarWrapperStyle","zIndex","transform","scale","translateX","identityStyle","marginLeft","opacity","chevronStyle","textSecondary","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -1118,16 +1118,27 @@ const OxyProvider = ({
1118
1118
  // to the cross-domain fallbacks exactly as before.
1119
1119
  const prioritizeMultiAccount = (0, _useWebSSO.isWebBrowser)() && (0, _activeAuthuser.readActiveAuthuser)() !== null;
1120
1120
 
1121
- // DELIBERATELY-SIGNED-OUT gate (web): when the user pressed "Sign out", the
1122
- // central IdP session (FedCM credential association / per-apex `fedcm_session`
1123
- // cookie) can still be live, so the AUTOMATIC silent steps below
1124
- // (`fedcm-silent`, `silent-iframe`) would re-mint a session on the very next
1125
- // cold boot and sign the user back in without intent. Read the durable flag
1126
- // ONCE here (synchronously usable by the step `enabled` gates) and skip those
1127
- // two steps while it is set. Any deliberate sign-in clears it. The `sso-bounce`
1128
- // step is already self-suppressed after sign-out (its `hasPriorSession` hint is
1129
- // cleared), and the local restore steps (`stored-session`, cookie-restore) are
1130
- // unaffected a deliberate sign-out clears those credentials anyway.
1121
+ // DELIBERATELY-SIGNED-OUT gate (web): when the user pressed "Sign out", any
1122
+ // credential that can silently re-mint a session may still be live on the
1123
+ // next reload the central IdP session (FedCM credential association /
1124
+ // per-apex `fedcm_session` cookie) AND the device refresh cookies. Since
1125
+ // PR #455 the PRIMARY web session also joins the `oxy_rt_<authuser>` device
1126
+ // set, so the un-gated cookie-restore steps would `refresh-all` that still-
1127
+ // present cookie and sign the user back in without intent exactly the
1128
+ // "sign-out is silently undone" regression. So this flag gates EVERY
1129
+ // AUTOMATIC silent-restore cold-boot step: `stored-session`,
1130
+ // `cookie-restore-active`, `fedcm-silent`, `silent-iframe`, and
1131
+ // `cookie-restore`. The gate — not a cookie wipe — is the authority: the
1132
+ // account may stay "known" for a fast deliberate re-sign-in, but no step
1133
+ // restores it silently while the flag is set. Read the durable flag ONCE here
1134
+ // (synchronously usable by every step `enabled` gate). Any deliberate sign-in
1135
+ // (password, FedCM, account switch, device claim) clears it, so there is no
1136
+ // "stuck signed out" state. The `sso-bounce` step needs no extra gate: it is
1137
+ // already self-suppressed after sign-out (its `hasPriorSession` hint is
1138
+ // cleared). `sso-return` is NOT gated — it commits the result of a deliberate
1139
+ // top-level `/sso` bounce the user just initiated. `shared-key-signin` is
1140
+ // native-only and the flag never sets on native (`markSignedOut` no-ops
1141
+ // off-web), so its gate would be moot; it is left untouched.
1131
1142
  const silentRestoreBlocked = (0, _activeAuthuser.isSilentRestoreSuppressed)();
1132
1143
  try {
1133
1144
  const outcome = await (0, _core.runColdBoot)({
@@ -1149,12 +1160,17 @@ const OxyProvider = ({
1149
1160
  };
1150
1161
  }
1151
1162
  }, {
1152
- // 2) Stored-session bearer restore. NO `enabled` gate runs on ALL
1153
- // platforms. This is native's ONLY restore path (every web-only step
1154
- // is disabled off-browser, so native reaches exactly this) AND the
1155
- // common WEB reload winner.
1163
+ // 2) Stored-session bearer restore. Runs on ALL platforms EXCEPT when
1164
+ // the deliberately-signed-out flag is set (web only it never sets on
1165
+ // native, so native still always reaches exactly this step, its ONLY
1166
+ // restore path). This is also the common WEB reload winner.
1156
1167
  //
1157
- // ORDERING (FIX A): this step now runs BEFORE the slow web-only
1168
+ // SIGNED-OUT GATE: after a deliberate full sign-out the stored session
1169
+ // state is cleared, so this would normally skip anyway — but the gate
1170
+ // makes that authoritative rather than incidental, so no residual
1171
+ // stored token can silently restore while the user is signed out.
1172
+ //
1173
+ // ORDERING (FIX A): this step runs BEFORE the slow web-only
1158
1174
  // probes (`fedcm-silent`, `silent-iframe`, `cookie-restore`). On a
1159
1175
  // normal reload the local bearer validates in one round-trip and
1160
1176
  // wins; `runColdBoot` then short-circuits and never even evaluates
@@ -1165,6 +1181,7 @@ const OxyProvider = ({
1165
1181
  // local session this step skips and the cross-domain fallback chain
1166
1182
  // (fedcm → iframe → cookie → sso-bounce) runs exactly as before.
1167
1183
  id: 'stored-session',
1184
+ enabled: () => !silentRestoreBlocked,
1168
1185
  run: async () => {
1169
1186
  const restored = await restoreStoredSession();
1170
1187
  if (restored) {
@@ -1248,8 +1265,14 @@ const OxyProvider = ({
1248
1265
  // When no slot is persisted this is disabled and the original order is
1249
1266
  // unchanged; when the slot's cookies have lapsed it returns no accounts
1250
1267
  // and the chain falls through to the cross-domain fallbacks below.
1268
+ //
1269
+ // SIGNED-OUT GATE: since PR #455 the primary's `oxy_rt` slot survives a
1270
+ // deliberate sign-out, so without this gate `refresh-all` would re-mint
1271
+ // and silently re-log-in the user on reload. The flag is cleared by any
1272
+ // deliberate sign-in (including an account SWITCH, which also writes the
1273
+ // new active slot), so the switch-survives-reload path is unaffected.
1251
1274
  id: 'cookie-restore-active',
1252
- enabled: () => prioritizeMultiAccount,
1275
+ enabled: () => prioritizeMultiAccount && !silentRestoreBlocked,
1253
1276
  run: async () => {
1254
1277
  const restored = await restoreViaRefreshCookie();
1255
1278
  return restored ? {
@@ -1349,8 +1372,13 @@ const OxyProvider = ({
1349
1372
  // would be a redundant second `refreshAllSessions`. It still runs in the
1350
1373
  // common no-persisted-slot case (e.g. first visit to a first-party app
1351
1374
  // whose central refresh cookies already exist).
1375
+ //
1376
+ // SIGNED-OUT GATE (same rationale as `cookie-restore-active`): the
1377
+ // primary's `oxy_rt` slot survives a deliberate sign-out (PR #455), so
1378
+ // this must be skipped while the signed-out flag is set or it would
1379
+ // silently re-restore the primary on reload.
1352
1380
  id: 'cookie-restore',
1353
- enabled: () => (0, _useWebSSO.isWebBrowser)() && !prioritizeMultiAccount,
1381
+ enabled: () => (0, _useWebSSO.isWebBrowser)() && !prioritizeMultiAccount && !silentRestoreBlocked,
1354
1382
  run: async () => {
1355
1383
  const restored = await restoreViaRefreshCookie();
1356
1384
  return restored ? {