@oxyhq/services 10.2.0 → 10.2.1
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/README.md +2 -2
- package/lib/commonjs/index.js +10 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/AccountMenu.js +297 -226
- package/lib/commonjs/ui/components/AccountMenu.js.map +1 -1
- package/lib/commonjs/ui/components/AccountMenuButton.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +1 -1
- package/lib/commonjs/ui/components/SignInModal.js +11 -12
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/components/accountMenuRows.js +18 -30
- package/lib/commonjs/ui/components/accountMenuRows.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +33 -65
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +7 -13
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +9 -39
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDeviceAccounts.js +285 -0
- package/lib/commonjs/ui/hooks/useDeviceAccounts.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js +5 -6
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionSocket.js +4 -5
- package/lib/commonjs/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +1 -1
- package/lib/commonjs/ui/navigation/routes.js +7 -7
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +6 -7
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +18 -20
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +4 -4
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/{karma/KarmaAboutScreen.js → trust/TrustAboutScreen.js} +11 -11
- package/lib/commonjs/ui/screens/trust/TrustAboutScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/{karma/KarmaCenterScreen.js → trust/TrustCenterScreen.js} +91 -41
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/{karma/KarmaFAQScreen.js → trust/TrustFAQScreen.js} +11 -11
- package/lib/commonjs/ui/screens/{karma/KarmaFAQScreen.js.map → trust/TrustFAQScreen.js.map} +1 -1
- package/lib/commonjs/ui/screens/{karma/KarmaLeaderboardScreen.js → trust/TrustLeaderboardScreen.js} +63 -42
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/{karma/KarmaRewardsScreen.js → trust/TrustRewardsScreen.js} +54 -54
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/{karma/KarmaRulesScreen.js → trust/TrustRulesScreen.js} +45 -16
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/trust/trustTier.js +23 -0
- package/lib/commonjs/ui/screens/trust/trustTier.js.map +1 -0
- package/lib/commonjs/utils/deviceFlowSignIn.js +12 -10
- package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/AccountMenu.js +297 -226
- package/lib/module/ui/components/AccountMenu.js.map +1 -1
- package/lib/module/ui/components/AccountMenuButton.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +1 -1
- package/lib/module/ui/components/SignInModal.js +11 -12
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/components/accountMenuRows.js +18 -30
- package/lib/module/ui/components/accountMenuRows.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +33 -65
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +7 -13
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +9 -39
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useDeviceAccounts.js +281 -0
- package/lib/module/ui/hooks/useDeviceAccounts.js.map +1 -0
- package/lib/module/ui/hooks/useSessionManagement.js +5 -6
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/hooks/useSessionSocket.js +4 -5
- package/lib/module/ui/hooks/useSessionSocket.js.map +1 -1
- package/lib/module/ui/hooks/useWebSSO.js +1 -1
- package/lib/module/ui/navigation/routes.js +7 -7
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +6 -7
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +18 -20
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +4 -4
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/screens/{karma/KarmaAboutScreen.js → trust/TrustAboutScreen.js} +11 -11
- package/lib/module/ui/screens/trust/TrustAboutScreen.js.map +1 -0
- package/lib/module/ui/screens/{karma/KarmaCenterScreen.js → trust/TrustCenterScreen.js} +92 -42
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -0
- package/lib/module/ui/screens/{karma/KarmaFAQScreen.js → trust/TrustFAQScreen.js} +11 -11
- package/lib/module/ui/screens/{karma/KarmaFAQScreen.js.map → trust/TrustFAQScreen.js.map} +1 -1
- package/lib/module/ui/screens/{karma/KarmaLeaderboardScreen.js → trust/TrustLeaderboardScreen.js} +63 -42
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -0
- package/lib/module/ui/screens/{karma/KarmaRewardsScreen.js → trust/TrustRewardsScreen.js} +54 -54
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js.map +1 -0
- package/lib/module/ui/screens/{karma/KarmaRulesScreen.js → trust/TrustRulesScreen.js} +45 -16
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -0
- package/lib/module/ui/screens/trust/trustTier.js +19 -0
- package/lib/module/ui/screens/trust/trustTier.js.map +1 -0
- package/lib/module/utils/deviceFlowSignIn.js +13 -10
- package/lib/module/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +3 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +30 -10
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +1 -1
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts +19 -12
- package/lib/typescript/commonjs/ui/components/accountMenuRows.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +3 -3
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts +3 -7
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts +133 -0
- package/lib/typescript/commonjs/ui/hooks/useDeviceAccounts.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionSocket.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustAboutScreen.d.ts +5 -0
- package/lib/typescript/commonjs/ui/screens/{karma/KarmaAboutScreen.d.ts.map → trust/TrustAboutScreen.d.ts.map} +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts +5 -0
- package/lib/typescript/commonjs/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -0
- package/lib/typescript/{module/ui/screens/karma/KarmaFAQScreen.d.ts → commonjs/ui/screens/trust/TrustFAQScreen.d.ts} +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts +5 -0
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/trust/TrustRewardsScreen.d.ts +5 -0
- package/lib/typescript/commonjs/ui/screens/{karma/KarmaRewardsScreen.d.ts.map → trust/TrustRewardsScreen.d.ts.map} +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts +5 -0
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts +9 -0
- package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +1 -1
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +11 -9
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +3 -1
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AccountMenu.d.ts +30 -10
- package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SignInModal.d.ts +1 -1
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/accountMenuRows.d.ts +19 -12
- package/lib/typescript/module/ui/components/accountMenuRows.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +3 -3
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +1 -7
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts +3 -7
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts +133 -0
- package/lib/typescript/module/ui/hooks/useDeviceAccounts.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionSocket.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustAboutScreen.d.ts +5 -0
- package/lib/typescript/module/ui/screens/{karma/KarmaAboutScreen.d.ts.map → trust/TrustAboutScreen.d.ts.map} +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts +5 -0
- package/lib/typescript/module/ui/screens/trust/TrustCenterScreen.d.ts.map +1 -0
- package/lib/typescript/{commonjs/ui/screens/karma/KarmaFAQScreen.d.ts → module/ui/screens/trust/TrustFAQScreen.d.ts} +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustFAQScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts +5 -0
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/trust/TrustRewardsScreen.d.ts +5 -0
- package/lib/typescript/module/ui/screens/{karma/KarmaRewardsScreen.d.ts.map → trust/TrustRewardsScreen.d.ts.map} +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts +5 -0
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/trust/trustTier.d.ts +9 -0
- package/lib/typescript/module/ui/screens/trust/trustTier.d.ts.map +1 -0
- package/lib/typescript/module/ui/types/navigation.d.ts +1 -1
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +11 -9
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +10 -1
- package/src/ui/components/AccountMenu.tsx +311 -253
- package/src/ui/components/AccountMenuButton.tsx +2 -2
- package/src/ui/components/OxySignInButton.tsx +1 -1
- package/src/ui/components/SignInModal.tsx +13 -14
- package/src/ui/components/accountMenuRows.ts +28 -40
- package/src/ui/context/OxyContext.tsx +43 -61
- package/src/ui/context/hooks/useAuthOperations.ts +7 -13
- package/src/ui/hooks/useAuth.ts +11 -48
- package/src/ui/hooks/useDeviceAccounts.ts +348 -0
- package/src/ui/hooks/useSessionManagement.ts +5 -14
- package/src/ui/hooks/useSessionSocket.ts +4 -5
- package/src/ui/hooks/useWebSSO.ts +1 -1
- package/src/ui/navigation/routes.ts +13 -13
- package/src/ui/screens/OxyAuthScreen.tsx +6 -7
- package/src/ui/screens/ProfileScreen.tsx +15 -17
- package/src/ui/screens/WelcomeNewUserScreen.tsx +2 -2
- package/src/ui/screens/{karma/KarmaAboutScreen.tsx → trust/TrustAboutScreen.tsx} +15 -15
- package/src/ui/screens/{karma/KarmaCenterScreen.tsx → trust/TrustCenterScreen.tsx} +87 -41
- package/src/ui/screens/{karma/KarmaFAQScreen.tsx → trust/TrustFAQScreen.tsx} +10 -10
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +101 -0
- package/src/ui/screens/{karma/KarmaRewardsScreen.tsx → trust/TrustRewardsScreen.tsx} +54 -54
- package/src/ui/screens/{karma/KarmaRulesScreen.tsx → trust/TrustRulesScreen.tsx} +27 -13
- package/src/ui/screens/trust/trustTier.ts +20 -0
- package/src/ui/types/navigation.ts +1 -2
- package/src/utils/__tests__/deviceFlowSignIn.test.ts +2 -3
- package/src/utils/deviceFlowSignIn.ts +18 -12
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +0 -1
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +0 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +0 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +0 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +0 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +0 -1
- package/lib/typescript/commonjs/ui/screens/karma/KarmaAboutScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/karma/KarmaCenterScreen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/karma/KarmaFAQScreen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/karma/KarmaRewardsScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts +0 -5
- package/lib/typescript/commonjs/ui/screens/karma/KarmaRulesScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/karma/KarmaAboutScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/karma/KarmaCenterScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/karma/KarmaFAQScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/karma/KarmaRewardsScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts +0 -5
- package/lib/typescript/module/ui/screens/karma/KarmaRulesScreen.d.ts.map +0 -1
- package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +0 -88
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.markCurrentAccount = markCurrentAccount;
|
|
7
|
+
exports.useDeviceAccounts = useDeviceAccounts;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
10
|
+
var _core = require("@oxyhq/core");
|
|
11
|
+
var _OxyContext = require("../context/OxyContext.js");
|
|
12
|
+
var _useI18n = require("./useI18n.js");
|
|
13
|
+
var _queryKeys = require("./queries/queryKeys.js");
|
|
14
|
+
/**
|
|
15
|
+
* The per-account user shape carried by a {@link DeviceAccount}. Either:
|
|
16
|
+
* - the minimal projection returned by `POST /auth/refresh-all`
|
|
17
|
+
* ({@link RefreshAllAccountUser}, the shared apex path), or
|
|
18
|
+
* - the SDK's canonical {@link User} document (the active row on the local
|
|
19
|
+
* fallback path, which already has the full user loaded in `useOxy()`).
|
|
20
|
+
*
|
|
21
|
+
* Both satisfy `getAccountDisplayName`'s `DisplayNameUserShape`, so display
|
|
22
|
+
* resolution is uniform across paths.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* One signed-in account on this device, fully hydrated for the account
|
|
27
|
+
* chooser. Unlike the old `AccountMenu` behaviour (which only carried the
|
|
28
|
+
* ACTIVE session's user), EVERY entry here carries real per-account
|
|
29
|
+
* `displayName` / `email` / `avatarUrl` / `color`.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Resolve which entries are the current account, robustly.
|
|
34
|
+
*
|
|
35
|
+
* Primary signal: `entry.sessionId === activeSessionId`. On the web shared-apex
|
|
36
|
+
* path, `refreshAllSessions()` returns SERVER-side session ids that may not
|
|
37
|
+
* equal the locally-stored `activeSessionId` (a different storage namespace /
|
|
38
|
+
* server perspective), so a pure `sessionId` match can flag NO row as current —
|
|
39
|
+
* the bug that surfaced as "Not signed in" even while authenticated.
|
|
40
|
+
*
|
|
41
|
+
* Fallbacks, applied only when the `sessionId` match found nothing AND the user
|
|
42
|
+
* is authenticated:
|
|
43
|
+
* 1. Match the live `user.id` against each entry's per-account user id.
|
|
44
|
+
* 2. If still nothing and there is exactly one account, mark that one current.
|
|
45
|
+
*
|
|
46
|
+
* At most ONE entry is ever marked current.
|
|
47
|
+
*
|
|
48
|
+
* Pure & side-effect free so it is unit-testable without rendering React.
|
|
49
|
+
*/
|
|
50
|
+
function markCurrentAccount(accounts, activeSessionId, liveUserId, isAuthenticated) {
|
|
51
|
+
const bySession = accounts.map(account => ({
|
|
52
|
+
...account,
|
|
53
|
+
isCurrent: Boolean(activeSessionId) && account.sessionId === activeSessionId
|
|
54
|
+
}));
|
|
55
|
+
if (bySession.some(account => account.isCurrent) || !isAuthenticated) {
|
|
56
|
+
return bySession;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// No row matched by session id: fall back to the live user's id, marking at
|
|
60
|
+
// most the FIRST matching entry current (never more than one).
|
|
61
|
+
if (liveUserId) {
|
|
62
|
+
let matched = false;
|
|
63
|
+
const byUser = bySession.map(account => {
|
|
64
|
+
if (!matched && account.user.id === liveUserId) {
|
|
65
|
+
matched = true;
|
|
66
|
+
return {
|
|
67
|
+
...account,
|
|
68
|
+
isCurrent: true
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return account;
|
|
72
|
+
});
|
|
73
|
+
if (matched) {
|
|
74
|
+
return byUser;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Authenticated, nothing matched, but there is exactly one account → it must
|
|
79
|
+
// be the current one (single-account shared-apex / cross-domain case).
|
|
80
|
+
if (bySession.length === 1) {
|
|
81
|
+
return [{
|
|
82
|
+
...bySession[0],
|
|
83
|
+
isCurrent: true
|
|
84
|
+
}];
|
|
85
|
+
}
|
|
86
|
+
return bySession;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Resolve every account signed in on this device for the unified account
|
|
91
|
+
* switcher, with real per-account name / email / avatar / color.
|
|
92
|
+
*
|
|
93
|
+
* ## Data sources (web vs native)
|
|
94
|
+
*
|
|
95
|
+
* - **Web on a `*.oxy.so` host** → `oxyServices.refreshAllSessions()` returns
|
|
96
|
+
* the full apex device-account list (identical to what `auth.oxy.so` sees,
|
|
97
|
+
* because the `Domain=oxy.so` refresh cookies reach `api.oxy.so`). Used
|
|
98
|
+
* directly — this is the `fromSharedApex: true` path.
|
|
99
|
+
* - **Cross-domain web (non-`oxy.so` apex)** OR **native (no browser cookies)**
|
|
100
|
+
* → `refreshAllSessions()` yields `{ accounts: [] }` (the apex cookies never
|
|
101
|
+
* reach the request: cross-domain by `Domain`, native by having no cookie
|
|
102
|
+
* jar at all; a 401 is also normalised to `{ accounts: [] }` inside the
|
|
103
|
+
* core mixin). In that case we FALL BACK to the SDK's local multi-account
|
|
104
|
+
* list from `useOxy()` (`sessions` + `activeSessionId` + the active `user`).
|
|
105
|
+
* This is the `fromSharedApex: false` path.
|
|
106
|
+
*
|
|
107
|
+
* The fallback decision is purely data-driven: **if `refreshAllSessions()`
|
|
108
|
+
* returns >0 accounts, use the shared path; otherwise fall back to local
|
|
109
|
+
* `useOxy()` sessions.** No host sniffing is needed — the cookie scoping does
|
|
110
|
+
* the discrimination for us, and the same code path works on native (where the
|
|
111
|
+
* fetch returns `{ accounts: [] }`).
|
|
112
|
+
*
|
|
113
|
+
* ## Why React Query (not a `useRef`/`useState` start-once like the auth app)
|
|
114
|
+
*
|
|
115
|
+
* The auth app's `use-device-accounts.ts` hand-rolls a `startedRef` because it
|
|
116
|
+
* has no React Query. The SDK does. `refreshAllSessions()` ROTATES single-use
|
|
117
|
+
* refresh cookies on every call, so it must run AT MOST ONCE per page load:
|
|
118
|
+
* we model that with `staleTime: Infinity` + `gcTime: Infinity` +
|
|
119
|
+
* `refetchOnWindowFocus/Reconnect/Mount: false` + `retry: false`. React Query
|
|
120
|
+
* dedupes concurrent mounts and caches the single result for the page's
|
|
121
|
+
* lifetime — the exact "run once" guarantee the auth app documents, but
|
|
122
|
+
* without the manual ref/state machinery.
|
|
123
|
+
*
|
|
124
|
+
* ## Validation note (intentionally NO zod re-parse)
|
|
125
|
+
*
|
|
126
|
+
* The auth app's hook calls `fetch` directly, so IT must `safeParse` the wire
|
|
127
|
+
* response with `@oxyhq/contracts`. This hook calls
|
|
128
|
+
* `oxyServices.refreshAllSessions()`, whose core mixin ALREADY validates and
|
|
129
|
+
* normalises the wire response (skips entries missing required fields,
|
|
130
|
+
* normalises `authuser` null→0, builds the `RefreshAllAccountUser` shape) — the
|
|
131
|
+
* mixin is the single source of truth. Re-validating the SDK's own already-typed
|
|
132
|
+
* output here would be redundant double-validation, so we do not re-parse.
|
|
133
|
+
*
|
|
134
|
+
* ## Error handling
|
|
135
|
+
*
|
|
136
|
+
* `refreshAllSessions()` already maps 401/404/abort to `{ accounts: [] }`
|
|
137
|
+
* internally. Any OTHER failure (network, 5xx) propagates as a thrown error and
|
|
138
|
+
* is surfaced by React Query (`query.isError`) — never swallowed. Callers that
|
|
139
|
+
* don't care can ignore it; the hook still returns the local fallback list so
|
|
140
|
+
* the chooser stays usable.
|
|
141
|
+
*/
|
|
142
|
+
function useDeviceAccounts() {
|
|
143
|
+
const {
|
|
144
|
+
oxyServices,
|
|
145
|
+
sessions,
|
|
146
|
+
activeSessionId,
|
|
147
|
+
user,
|
|
148
|
+
isAuthenticated
|
|
149
|
+
} = (0, _OxyContext.useOxy)();
|
|
150
|
+
const {
|
|
151
|
+
locale
|
|
152
|
+
} = (0, _useI18n.useI18n)();
|
|
153
|
+
|
|
154
|
+
// Stable, per-API-origin query key. `refreshAllSessions` resolves against
|
|
155
|
+
// the session base url derived from `getBaseURL()`, so keying on it scopes
|
|
156
|
+
// the cached result to the API the provider is pointed at.
|
|
157
|
+
const baseURL = oxyServices.getBaseURL();
|
|
158
|
+
const query = (0, _reactQuery.useQuery)({
|
|
159
|
+
queryKey: [..._queryKeys.queryKeys.accounts.all, 'deviceAccounts', baseURL],
|
|
160
|
+
queryFn: () => oxyServices.refreshAllSessions(),
|
|
161
|
+
// Only attempt the shared apex path while signed in. When logged out
|
|
162
|
+
// there is nothing to enumerate and the fallback (also empty) is used.
|
|
163
|
+
enabled: isAuthenticated,
|
|
164
|
+
// Single-use cookie rotation → run at most once per page load.
|
|
165
|
+
staleTime: Number.POSITIVE_INFINITY,
|
|
166
|
+
gcTime: Number.POSITIVE_INFINITY,
|
|
167
|
+
refetchOnWindowFocus: false,
|
|
168
|
+
refetchOnReconnect: false,
|
|
169
|
+
refetchOnMount: false,
|
|
170
|
+
retry: false
|
|
171
|
+
});
|
|
172
|
+
const sharedAccounts = query.data?.accounts ?? [];
|
|
173
|
+
const fromSharedApex = sharedAccounts.length > 0;
|
|
174
|
+
const accounts = (0, _react.useMemo)(() => {
|
|
175
|
+
const resolveAvatarUrl = avatar => avatar ? oxyServices.getFileDownloadUrl(avatar, 'thumb') : undefined;
|
|
176
|
+
|
|
177
|
+
// Build a single current-account row from the live `useOxy().user`. Used
|
|
178
|
+
// as a last-resort fallback when neither the shared-apex probe nor the
|
|
179
|
+
// local session store yielded a row but the user IS authenticated (e.g.
|
|
180
|
+
// a cross-domain host where the apex probe returned empty before the
|
|
181
|
+
// local session store hydrated). The signed-in user must ALWAYS be
|
|
182
|
+
// represented. Email is the REAL email or the `@handle` line — never a
|
|
183
|
+
// synthesized `username@oxy.so`.
|
|
184
|
+
const liveUserRow = () => {
|
|
185
|
+
if (!isAuthenticated || !user || !activeSessionId) {
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
const displayName = (0, _core.getAccountDisplayName)(user, locale);
|
|
189
|
+
const handle = (0, _core.getAccountFallbackHandle)(user);
|
|
190
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
191
|
+
return [{
|
|
192
|
+
sessionId: activeSessionId,
|
|
193
|
+
authuser: undefined,
|
|
194
|
+
isCurrent: true,
|
|
195
|
+
displayName,
|
|
196
|
+
email: user.email ?? secondaryHandle,
|
|
197
|
+
avatarUrl: resolveAvatarUrl(user.avatar),
|
|
198
|
+
color: user.color ?? null,
|
|
199
|
+
user
|
|
200
|
+
}];
|
|
201
|
+
};
|
|
202
|
+
let built;
|
|
203
|
+
if (fromSharedApex) {
|
|
204
|
+
// Shared apex path: every entry carries a real per-account user.
|
|
205
|
+
built = sharedAccounts.map(entry => {
|
|
206
|
+
// `entry.user` is non-null on the refresh-all path; the core
|
|
207
|
+
// mixin skips entries without a valid user. The fallback below
|
|
208
|
+
// keeps rendering defensive if a server response is incomplete.
|
|
209
|
+
const accountUser = entry.user ?? {
|
|
210
|
+
id: '',
|
|
211
|
+
username: ''
|
|
212
|
+
};
|
|
213
|
+
const displayName = (0, _core.getAccountDisplayName)(accountUser, locale);
|
|
214
|
+
const handle = (0, _core.getAccountFallbackHandle)(accountUser);
|
|
215
|
+
const email = entry.user?.email ?? null;
|
|
216
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
217
|
+
return {
|
|
218
|
+
sessionId: entry.sessionId,
|
|
219
|
+
authuser: entry.authuser,
|
|
220
|
+
// Provisional; finalised by `markCurrentAccount` below so the
|
|
221
|
+
// shared-apex path is robust to server/local session-id skew.
|
|
222
|
+
isCurrent: false,
|
|
223
|
+
displayName,
|
|
224
|
+
// Real email, or null (NEVER synthesized). The UI uses the
|
|
225
|
+
// `@handle` line only when email is genuinely absent.
|
|
226
|
+
email: email ?? secondaryHandle,
|
|
227
|
+
avatarUrl: resolveAvatarUrl(entry.user?.avatar),
|
|
228
|
+
color: entry.user?.color ?? null,
|
|
229
|
+
user: accountUser
|
|
230
|
+
};
|
|
231
|
+
});
|
|
232
|
+
} else {
|
|
233
|
+
// Local fallback path: build from the SDK's multi-session store. The
|
|
234
|
+
// active session row gets the full loaded `user`; inactive fallback
|
|
235
|
+
// rows carry only what the `ClientSession` exposes (no synthesized
|
|
236
|
+
// identity — they show the active user's data only when active).
|
|
237
|
+
built = (sessions ?? []).map(session => {
|
|
238
|
+
const isCurrent = session.sessionId === activeSessionId;
|
|
239
|
+
const accountUser = isCurrent && user ? user : {
|
|
240
|
+
id: session.userId ?? '',
|
|
241
|
+
username: ''
|
|
242
|
+
};
|
|
243
|
+
const displayName = (0, _core.getAccountDisplayName)(accountUser, locale);
|
|
244
|
+
const handle = (0, _core.getAccountFallbackHandle)(accountUser);
|
|
245
|
+
const email = isCurrent && user?.email ? user.email : null;
|
|
246
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
247
|
+
const avatar = isCurrent && user ? user.avatar : undefined;
|
|
248
|
+
const color = isCurrent && user?.color ? user.color : null;
|
|
249
|
+
return {
|
|
250
|
+
sessionId: session.sessionId,
|
|
251
|
+
authuser: session.authuser,
|
|
252
|
+
isCurrent,
|
|
253
|
+
displayName,
|
|
254
|
+
email: email ?? secondaryHandle,
|
|
255
|
+
avatarUrl: resolveAvatarUrl(avatar),
|
|
256
|
+
color,
|
|
257
|
+
user: accountUser
|
|
258
|
+
};
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Robust current-account detection: tolerate server/local session-id
|
|
263
|
+
// skew on the shared-apex path by falling back to the live user's id and
|
|
264
|
+
// the single-account heuristic.
|
|
265
|
+
const flagged = markCurrentAccount(built, activeSessionId, user?.id ?? null, isAuthenticated);
|
|
266
|
+
|
|
267
|
+
// The signed-in user must ALWAYS be represented. If detection produced
|
|
268
|
+
// an empty list yet the user is authenticated, synthesize a single
|
|
269
|
+
// current row from the live `useOxy().user`.
|
|
270
|
+
if (flagged.length === 0) {
|
|
271
|
+
return liveUserRow();
|
|
272
|
+
}
|
|
273
|
+
return flagged;
|
|
274
|
+
}, [fromSharedApex, sharedAccounts, sessions, activeSessionId, user, isAuthenticated, locale, oxyServices]);
|
|
275
|
+
return {
|
|
276
|
+
accounts,
|
|
277
|
+
// `isLoading` only reflects the shared probe while it's the relevant
|
|
278
|
+
// source. Once we know we're on the fallback (probe settled with 0
|
|
279
|
+
// accounts) the local list is synchronously available.
|
|
280
|
+
isLoading: isAuthenticated && query.isLoading,
|
|
281
|
+
currentSessionId: activeSessionId ?? null,
|
|
282
|
+
fromSharedApex
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=useDeviceAccounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactQuery","_core","_OxyContext","_useI18n","_queryKeys","markCurrentAccount","accounts","activeSessionId","liveUserId","isAuthenticated","bySession","map","account","isCurrent","Boolean","sessionId","some","matched","byUser","user","id","length","useDeviceAccounts","oxyServices","sessions","useOxy","locale","useI18n","baseURL","getBaseURL","query","useQuery","queryKey","queryKeys","all","queryFn","refreshAllSessions","enabled","staleTime","Number","POSITIVE_INFINITY","gcTime","refetchOnWindowFocus","refetchOnReconnect","refetchOnMount","retry","sharedAccounts","data","fromSharedApex","useMemo","resolveAvatarUrl","avatar","getFileDownloadUrl","undefined","liveUserRow","displayName","getAccountDisplayName","handle","getAccountFallbackHandle","secondaryHandle","authuser","email","avatarUrl","color","built","entry","accountUser","username","session","userId","flagged","isLoading","currentSessionId"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDeviceAccounts.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AASA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AA4CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,kBAAkBA,CAC9BC,QAAyB,EACzBC,eAA0C,EAC1CC,UAAqC,EACrCC,eAAwB,EACT;EACf,MAAMC,SAAS,GAAGJ,QAAQ,CAACK,GAAG,CAAEC,OAAO,KAAqB;IACxD,GAAGA,OAAO;IACVC,SAAS,EAAEC,OAAO,CAACP,eAAe,CAAC,IAAIK,OAAO,CAACG,SAAS,KAAKR;EACjE,CAAC,CAAC,CAAC;EAEH,IAAIG,SAAS,CAACM,IAAI,CAAEJ,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC,IAAI,CAACJ,eAAe,EAAE;IACpE,OAAOC,SAAS;EACpB;;EAEA;EACA;EACA,IAAIF,UAAU,EAAE;IACZ,IAAIS,OAAO,GAAG,KAAK;IACnB,MAAMC,MAAM,GAAGR,SAAS,CAACC,GAAG,CAAEC,OAAO,IAAoB;MACrD,IAAI,CAACK,OAAO,IAAIL,OAAO,CAACO,IAAI,CAACC,EAAE,KAAKZ,UAAU,EAAE;QAC5CS,OAAO,GAAG,IAAI;QACd,OAAO;UAAE,GAAGL,OAAO;UAAEC,SAAS,EAAE;QAAK,CAAC;MAC1C;MACA,OAAOD,OAAO;IAClB,CAAC,CAAC;IACF,IAAIK,OAAO,EAAE;MACT,OAAOC,MAAM;IACjB;EACJ;;EAEA;EACA;EACA,IAAIR,SAAS,CAACW,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO,CAAC;MAAE,GAAGX,SAAS,CAAC,CAAC,CAAC;MAAEG,SAAS,EAAE;IAAK,CAAC,CAAC;EACjD;EAEA,OAAOH,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASY,iBAAiBA,CAAA,EAA4B;EACzD,MAAM;IACFC,WAAW;IACXC,QAAQ;IACRjB,eAAe;IACfY,IAAI;IACJV;EACJ,CAAC,GAAG,IAAAgB,kBAAM,EAAC,CAAC;EACZ,MAAM;IAAEC;EAAO,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;;EAE5B;EACA;EACA;EACA,MAAMC,OAAO,GAAGL,WAAW,CAACM,UAAU,CAAC,CAAC;EAExC,MAAMC,KAAK,GAAG,IAAAC,oBAAQ,EAAC;IACnBC,QAAQ,EAAE,CAAC,GAAGC,oBAAS,CAAC3B,QAAQ,CAAC4B,GAAG,EAAE,gBAAgB,EAAEN,OAAO,CAAU;IACzEO,OAAO,EAAEA,CAAA,KAAMZ,WAAW,CAACa,kBAAkB,CAAC,CAAC;IAC/C;IACA;IACAC,OAAO,EAAE5B,eAAe;IACxB;IACA6B,SAAS,EAAEC,MAAM,CAACC,iBAAiB;IACnCC,MAAM,EAAEF,MAAM,CAACC,iBAAiB;IAChCE,oBAAoB,EAAE,KAAK;IAC3BC,kBAAkB,EAAE,KAAK;IACzBC,cAAc,EAAE,KAAK;IACrBC,KAAK,EAAE;EACX,CAAC,CAAC;EAEF,MAAMC,cAAc,GAAGhB,KAAK,CAACiB,IAAI,EAAEzC,QAAQ,IAAI,EAAE;EACjD,MAAM0C,cAAc,GAAGF,cAAc,CAACzB,MAAM,GAAG,CAAC;EAEhD,MAAMf,QAAQ,GAAG,IAAA2C,cAAO,EAAkB,MAAM;IAC5C,MAAMC,gBAAgB,GAAIC,MAAiC,IACvDA,MAAM,GAAG5B,WAAW,CAAC6B,kBAAkB,CAACD,MAAM,EAAE,OAAO,CAAC,GAAGE,SAAS;;IAExE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,WAAW,GAAGA,CAAA,KAAuB;MACvC,IAAI,CAAC7C,eAAe,IAAI,CAACU,IAAI,IAAI,CAACZ,eAAe,EAAE;QAC/C,OAAO,EAAE;MACb;MACA,MAAMgD,WAAW,GAAG,IAAAC,2BAAqB,EAACrC,IAAI,EAAEO,MAAM,CAAC;MACvD,MAAM+B,MAAM,GAAG,IAAAC,8BAAwB,EAACvC,IAAI,CAAC;MAC7C,MAAMwC,eAAe,GAAGF,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;MACpD,OAAO,CAAC;QACJ1C,SAAS,EAAER,eAAe;QAC1BqD,QAAQ,EAAEP,SAAS;QACnBxC,SAAS,EAAE,IAAI;QACf0C,WAAW;QACXM,KAAK,EAAE1C,IAAI,CAAC0C,KAAK,IAAIF,eAAe;QACpCG,SAAS,EAAEZ,gBAAgB,CAAC/B,IAAI,CAACgC,MAAM,CAAC;QACxCY,KAAK,EAAE5C,IAAI,CAAC4C,KAAK,IAAI,IAAI;QACzB5C;MACJ,CAAC,CAAC;IACN,CAAC;IAED,IAAI6C,KAAsB;IAE1B,IAAIhB,cAAc,EAAE;MAChB;MACAgB,KAAK,GAAGlB,cAAc,CAACnC,GAAG,CAAEsD,KAAK,IAAoB;QACjD;QACA;QACA;QACA,MAAMC,WAA8B,GAAGD,KAAK,CAAC9C,IAAI,IAAI;UACjDC,EAAE,EAAE,EAAE;UACN+C,QAAQ,EAAE;QACd,CAAC;QACD,MAAMZ,WAAW,GAAG,IAAAC,2BAAqB,EAACU,WAAW,EAAExC,MAAM,CAAC;QAC9D,MAAM+B,MAAM,GAAG,IAAAC,8BAAwB,EAACQ,WAAW,CAAC;QACpD,MAAML,KAAK,GAAGI,KAAK,CAAC9C,IAAI,EAAE0C,KAAK,IAAI,IAAI;QACvC,MAAMF,eAAe,GAAGF,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;QACpD,OAAO;UACH1C,SAAS,EAAEkD,KAAK,CAAClD,SAAS;UAC1B6C,QAAQ,EAAEK,KAAK,CAACL,QAAQ;UACxB;UACA;UACA/C,SAAS,EAAE,KAAK;UAChB0C,WAAW;UACX;UACA;UACAM,KAAK,EAAEA,KAAK,IAAIF,eAAe;UAC/BG,SAAS,EAAEZ,gBAAgB,CAACe,KAAK,CAAC9C,IAAI,EAAEgC,MAAM,CAAC;UAC/CY,KAAK,EAAEE,KAAK,CAAC9C,IAAI,EAAE4C,KAAK,IAAI,IAAI;UAChC5C,IAAI,EAAE+C;QACV,CAAC;MACL,CAAC,CAAC;IACN,CAAC,MAAM;MACH;MACA;MACA;MACA;MACAF,KAAK,GAAG,CAACxC,QAAQ,IAAI,EAAE,EAAEb,GAAG,CAAEyD,OAAsB,IAAoB;QACpE,MAAMvD,SAAS,GAAGuD,OAAO,CAACrD,SAAS,KAAKR,eAAe;QACvD,MAAM2D,WAA8B,GAAGrD,SAAS,IAAIM,IAAI,GAClDA,IAAI,GACJ;UAAEC,EAAE,EAAEgD,OAAO,CAACC,MAAM,IAAI,EAAE;UAAEF,QAAQ,EAAE;QAAG,CAAC;QAChD,MAAMZ,WAAW,GAAG,IAAAC,2BAAqB,EAACU,WAAW,EAAExC,MAAM,CAAC;QAC9D,MAAM+B,MAAM,GAAG,IAAAC,8BAAwB,EAACQ,WAAW,CAAC;QACpD,MAAML,KAAK,GAAGhD,SAAS,IAAIM,IAAI,EAAE0C,KAAK,GAAG1C,IAAI,CAAC0C,KAAK,GAAG,IAAI;QAC1D,MAAMF,eAAe,GAAGF,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;QACpD,MAAMN,MAAM,GAAGtC,SAAS,IAAIM,IAAI,GAAGA,IAAI,CAACgC,MAAM,GAAGE,SAAS;QAC1D,MAAMU,KAAK,GAAGlD,SAAS,IAAIM,IAAI,EAAE4C,KAAK,GAAG5C,IAAI,CAAC4C,KAAK,GAAG,IAAI;QAC1D,OAAO;UACHhD,SAAS,EAAEqD,OAAO,CAACrD,SAAS;UAC5B6C,QAAQ,EAAEQ,OAAO,CAACR,QAAQ;UAC1B/C,SAAS;UACT0C,WAAW;UACXM,KAAK,EAAEA,KAAK,IAAIF,eAAe;UAC/BG,SAAS,EAAEZ,gBAAgB,CAACC,MAAM,CAAC;UACnCY,KAAK;UACL5C,IAAI,EAAE+C;QACV,CAAC;MACL,CAAC,CAAC;IACN;;IAEA;IACA;IACA;IACA,MAAMI,OAAO,GAAGjE,kBAAkB,CAC9B2D,KAAK,EACLzD,eAAe,EACfY,IAAI,EAAEC,EAAE,IAAI,IAAI,EAChBX,eACJ,CAAC;;IAED;IACA;IACA;IACA,IAAI6D,OAAO,CAACjD,MAAM,KAAK,CAAC,EAAE;MACtB,OAAOiC,WAAW,CAAC,CAAC;IACxB;IACA,OAAOgB,OAAO;EAClB,CAAC,EAAE,CACCtB,cAAc,EACdF,cAAc,EACdtB,QAAQ,EACRjB,eAAe,EACfY,IAAI,EACJV,eAAe,EACfiB,MAAM,EACNH,WAAW,CACd,CAAC;EAEF,OAAO;IACHjB,QAAQ;IACR;IACA;IACA;IACAiE,SAAS,EAAE9D,eAAe,IAAIqB,KAAK,CAACyC,SAAS;IAC7CC,gBAAgB,EAAEjE,eAAe,IAAI,IAAI;IACzCyC;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -147,14 +147,13 @@ const useSessionManagement = ({
|
|
|
147
147
|
onAuthStateChange?.(null);
|
|
148
148
|
}, [clearSessionStorage, logoutStore, onAuthStateChange, oxyServices, queryClient, storage, logger]);
|
|
149
149
|
const activateSession = (0, _react.useCallback)(async (sessionId, user) => {
|
|
150
|
-
await oxyServices.getTokenBySession(sessionId);
|
|
151
150
|
setTokenReady?.(true);
|
|
152
151
|
setActiveSessionId(sessionId);
|
|
153
152
|
loginSuccess(user);
|
|
154
153
|
await saveActiveSessionId(sessionId);
|
|
155
154
|
await applyLanguagePreference(user);
|
|
156
155
|
onAuthStateChange?.(user);
|
|
157
|
-
}, [applyLanguagePreference, loginSuccess, onAuthStateChange,
|
|
156
|
+
}, [applyLanguagePreference, loginSuccess, onAuthStateChange, saveActiveSessionId, setTokenReady]);
|
|
158
157
|
const removalTimerIdsRef = (0, _react.useRef)(new Set());
|
|
159
158
|
const trackRemovedSession = (0, _react.useCallback)(sessionId => {
|
|
160
159
|
removedSessionsRef.current.add(sessionId);
|
|
@@ -196,10 +195,10 @@ const useSessionManagement = ({
|
|
|
196
195
|
// `refreshAllSessions` it carries its `authuser` slot index. We
|
|
197
196
|
// proactively plant that slot's access token via the httpOnly
|
|
198
197
|
// refresh cookie BEFORE validating, so the bearer-protected
|
|
199
|
-
// validate/getCurrentUser calls
|
|
200
|
-
//
|
|
201
|
-
//
|
|
202
|
-
// `
|
|
198
|
+
// validate/getCurrentUser calls have the correct in-memory token
|
|
199
|
+
// after a cold reload or account switch in another tab. The native
|
|
200
|
+
// path arrives here only after a bearer has been planted by
|
|
201
|
+
// `claimSessionByToken` or secure shared-session restore.
|
|
203
202
|
if ((0, _useWebSSO.isWebBrowser)()) {
|
|
204
203
|
const targetSession = sessionsRef.current.find(s => s.sessionId === sessionId);
|
|
205
204
|
const targetAuthuser = targetSession?.authuser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","_useWebSSO","_activeAuthuser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","sessionsRef","useRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","clearQueryCache","activateSession","user","getTokenBySession","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","useEffect","forEach","clearTimeout","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","isWebBrowser","targetSession","s","targetAuthuser","authuser","refreshed","refreshTokenViaCookie","Error","httpService","setTokens","accessToken","writeActiveAuthuser","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","_useWebSSO","_activeAuthuser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","sessionsRef","useRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","clearQueryCache","activateSession","user","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","useEffect","forEach","clearTimeout","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","isWebBrowser","targetSession","s","targetAuthuser","authuser","refreshed","refreshTokenViaCookie","Error","httpService","setTokens","accessToken","writeActiveAuthuser","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -122,8 +122,7 @@ function useSessionSocket({
|
|
|
122
122
|
// appear in the switch. Anything unknown falls through to `default`,
|
|
123
123
|
// which is intentionally a no-op for session lifecycle — it only logs
|
|
124
124
|
// in dev. This guards against future server-side event additions
|
|
125
|
-
//
|
|
126
|
-
// "legacy fallback" branch.
|
|
125
|
+
// accidentally triggering sign-out.
|
|
127
126
|
switch (data.type) {
|
|
128
127
|
case 'session_removed':
|
|
129
128
|
{
|
|
@@ -169,9 +168,9 @@ function useSessionSocket({
|
|
|
169
168
|
case 'session_update':
|
|
170
169
|
{
|
|
171
170
|
// Lifecycle event for the current user. Just resync the sessions
|
|
172
|
-
// list — never sign out.
|
|
173
|
-
//
|
|
174
|
-
//
|
|
171
|
+
// list — never sign out. A prior implementation compared
|
|
172
|
+
// `data.sessionId === currentActiveSessionId` and signed the user
|
|
173
|
+
// out if true, which was catastrophic: a
|
|
175
174
|
// `session_created` event fired immediately after a successful
|
|
176
175
|
// sign-in carries the user's NEW (now-active) session id, which
|
|
177
176
|
// matched and triggered an instant remote sign-out toast on every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_socket","_interopRequireDefault","_bloom","_core","e","__esModule","default","debug","createDebugLogger","useSessionSocket","userId","activeSessionId","currentDeviceId","refreshSessions","clearSessionState","baseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","socketRef","useRef","refreshSessionsRef","clearSessionStateRef","onRemoteSignOutRef","onSessionRemovedRef","activeSessionIdRef","currentDeviceIdRef","getAccessTokenRef","useEffect","current","disconnect","io","transports","auth","cb","token","socket","handleConnect","log","id","refreshSessionsSafe","catch","error","__DEV__","logger","component","triggerLocalSignOut","toastMessage","errorContext","toast","info","Error","String","handleSessionUpdate","data","currentActiveSessionId","currentDeviceIdValue","type","sessionId","sessionIds","deviceId","includes","warn","on","off"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionSocket.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAqC,SAAAE,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrC,MAAMG,KAAK,GAAG,IAAAC,uBAAiB,EAAC,eAAe,CAAC;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BO,SAASC,gBAAgBA,CAAC;EAC/BC,MAAM;EACNC,eAAe;EACfC,eAAe;EACfC,eAAe;EACfC,iBAAiB;EACjBC,OAAO;EACPC,cAAc;EACdC,eAAe;EACfC;AACqB,CAAC,EAAE;EACxB,MAAMC,SAAS,GAAG,IAAAC,aAAM,EAAgB,IAAI,CAAC;;EAE7C;EACA,MAAMC,kBAAkB,GAAG,IAAAD,aAAM,EAACP,eAAe,CAAC;EAClD,MAAMS,oBAAoB,GAAG,IAAAF,aAAM,EAACN,iBAAiB,CAAC;EACtD,MAAMS,kBAAkB,GAAG,IAAAH,aAAM,EAACH,eAAe,CAAC;EAClD,MAAMO,mBAAmB,GAAG,IAAAJ,aAAM,EAACF,gBAAgB,CAAC;EACpD,MAAMO,kBAAkB,GAAG,IAAAL,aAAM,EAACT,eAAe,CAAC;EAClD,MAAMe,kBAAkB,GAAG,IAAAN,aAAM,EAACR,eAAe,CAAC;EAClD,MAAMe,iBAAiB,GAAG,IAAAP,aAAM,EAACJ,cAAc,CAAC;;EAEhD;EACA,IAAAY,gBAAS,EAAC,MAAM;IACdP,kBAAkB,CAACQ,OAAO,GAAGhB,eAAe;IAC5CS,oBAAoB,CAACO,OAAO,GAAGf,iBAAiB;IAChDS,kBAAkB,CAACM,OAAO,GAAGZ,eAAe;IAC5CO,mBAAmB,CAACK,OAAO,GAAGX,gBAAgB;IAC9CO,kBAAkB,CAACI,OAAO,GAAGlB,eAAe;IAC5Ce,kBAAkB,CAACG,OAAO,GAAGjB,eAAe;IAC5Ce,iBAAiB,CAACE,OAAO,GAAGb,cAAc;EAC5C,CAAC,EAAE,CAACH,eAAe,EAAEC,iBAAiB,EAAEG,eAAe,EAAEC,gBAAgB,EAAEP,eAAe,EAAEC,eAAe,EAAEI,cAAc,CAAC,CAAC;EAE7H,IAAAY,gBAAS,EAAC,MAAM;IACd,IAAI,CAAClB,MAAM,IAAI,CAACK,OAAO,EAAE;MACvB;MACA,IAAII,SAAS,CAACU,OAAO,EAAE;QACrBV,SAAS,CAACU,OAAO,CAACC,UAAU,CAAC,CAAC;QAC9BX,SAAS,CAACU,OAAO,GAAG,IAAI;MAC1B;MACA;IACF;;IAEA;IACA,IAAIV,SAAS,CAACU,OAAO,EAAE;MACrBV,SAAS,CAACU,OAAO,CAACC,UAAU,CAAC,CAAC;MAC9BX,SAAS,CAACU,OAAO,GAAG,IAAI;IAC1B;;IAEA;IACAV,SAAS,CAACU,OAAO,GAAG,IAAAE,eAAE,EAAChB,OAAO,EAAE;MAC9BiB,UAAU,EAAE,CAAC,WAAW,CAAC;MACzBC,IAAI,EAAGC,EAAE,IAAK;QACZ,MAAMC,KAAK,GAAGR,iBAAiB,CAACE,OAAO,CAAC,CAAC;QACzCK,EAAE,CAAC;UAAEC,KAAK,EAAEA,KAAK,IAAI;QAAG,CAAC,CAAC;MAC5B;IACF,CAAC,CAAC;IACF,MAAMC,MAAM,GAAGjB,SAAS,CAACU,OAAO;;IAEhC;IACA,MAAMQ,aAAa,GAAGA,CAAA,KAAM;MAC1B9B,KAAK,CAAC+B,GAAG,CAAC,mBAAmB,EAAEF,MAAM,CAACG,EAAE,CAAC;IAC3C,CAAC;IAED,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;MAChCnB,kBAAkB,CAACQ,OAAO,CAAC,CAAC,CAACY,KAAK,CAAEC,KAAc,IAAK;QACrD;QACA;QACA,IAAIC,OAAO,EAAE;UACXC,YAAM,CAACrC,KAAK,CACV,iDAAiD,EACjD;YAAEsC,SAAS,EAAE;UAAmB,CAAC,EACjCH,KACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ,CAAC;IAED,MAAMI,mBAAmB,GAAG,MAAAA,CAAOC,YAAoB,EAAEC,YAAoB,KAAK;MAChF,IAAIzB,kBAAkB,CAACM,OAAO,EAAE;QAC9BN,kBAAkB,CAACM,OAAO,CAAC,CAAC;MAC9B,CAAC,MAAM;QACLoB,YAAK,CAACC,IAAI,CAACH,YAAY,CAAC;MAC1B;MACA;MACA;MACA,IAAI;QACF,MAAMzB,oBAAoB,CAACO,OAAO,CAAC,CAAC;MACtC,CAAC,CAAC,OAAOa,KAAK,EAAE;QACd,IAAIC,OAAO,EAAE;UACXC,YAAM,CAACF,KAAK,CACV,uCAAuCM,YAAY,EAAE,EACrDN,KAAK,YAAYS,KAAK,GAAGT,KAAK,GAAG,IAAIS,KAAK,CAACC,MAAM,CAACV,KAAK,CAAC,CAAC,EACzD;YAAEG,SAAS,EAAE;UAAmB,CAClC,CAAC;QACH;MACF;IACF,CAAC;IAED,MAAMQ,mBAAmB,GAAG,MAAOC,IAA0B,IAAK;MAChE/C,KAAK,CAAC+B,GAAG,CAAC,0BAA0B,EAAEgB,IAAI,CAAC;MAE3C,MAAMC,sBAAsB,GAAG9B,kBAAkB,CAACI,OAAO;MACzD,MAAM2B,oBAAoB,GAAG9B,kBAAkB,CAACG,OAAO;;MAEvD;MACA;MACA;MACA;MACA;MACA
|
|
1
|
+
{"version":3,"names":["_react","require","_socket","_interopRequireDefault","_bloom","_core","e","__esModule","default","debug","createDebugLogger","useSessionSocket","userId","activeSessionId","currentDeviceId","refreshSessions","clearSessionState","baseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","socketRef","useRef","refreshSessionsRef","clearSessionStateRef","onRemoteSignOutRef","onSessionRemovedRef","activeSessionIdRef","currentDeviceIdRef","getAccessTokenRef","useEffect","current","disconnect","io","transports","auth","cb","token","socket","handleConnect","log","id","refreshSessionsSafe","catch","error","__DEV__","logger","component","triggerLocalSignOut","toastMessage","errorContext","toast","info","Error","String","handleSessionUpdate","data","currentActiveSessionId","currentDeviceIdValue","type","sessionId","sessionIds","deviceId","includes","warn","on","off"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionSocket.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ var _silentGuardKey = require("../../utils/silentGuardKey.js");
|
|
|
17
17
|
* without relying on third-party cookies.
|
|
18
18
|
*
|
|
19
19
|
* For browsers without FedCM support, users will need to click a sign-in button
|
|
20
|
-
* which triggers
|
|
20
|
+
* which triggers redirect authentication.
|
|
21
21
|
*
|
|
22
22
|
* This is called automatically by OxyContext on web platforms.
|
|
23
23
|
*
|
|
@@ -37,13 +37,13 @@ const screenLoaders = {
|
|
|
37
37
|
EditProfileField: () => require('../screens/EditProfileFieldScreen').default,
|
|
38
38
|
// Informational screens
|
|
39
39
|
LearnMoreUsernames: () => require('../screens/LearnMoreUsernamesScreen').default,
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
// Oxy Trust screens
|
|
41
|
+
TrustCenter: () => require('../screens/trust/TrustCenterScreen').default,
|
|
42
|
+
TrustLeaderboard: () => require('../screens/trust/TrustLeaderboardScreen').default,
|
|
43
|
+
TrustRewards: () => require('../screens/trust/TrustRewardsScreen').default,
|
|
44
|
+
TrustRules: () => require('../screens/trust/TrustRulesScreen').default,
|
|
45
|
+
AboutTrust: () => require('../screens/trust/TrustAboutScreen').default,
|
|
46
|
+
TrustFAQ: () => require('../screens/trust/TrustFAQScreen').default,
|
|
47
47
|
// User list screens (followers/following)
|
|
48
48
|
FollowersList: () => require('../screens/FollowersListScreen').default,
|
|
49
49
|
FollowingList: () => require('../screens/FollowingListScreen').default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfileField","LearnMoreUsernames","
|
|
1
|
+
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateManagedAccount","AvatarCrop","Notifications","ConnectedApps","Preferences","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","DEFAULT_SHEET_CONFIG","scrollable","manualActivation","dynamicBackdrop","getSheetConfig","screenProps"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":";;;;;;AAGA;AACA;AACA;;AAEA;;AAmCqB;;AAErB;AACA;AACA,MAAMA,aAAsE,GAAG;EAC3EC,OAAO,EAAEA,CAAA,KAAMC,OAAO,CAAC,0BAA0B,CAAC,CAACC,OAAO;EAC1DC,aAAa,EAAEA,CAAA,KAAMF,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EACtEE,mBAAmB,EAAEA,CAAA,KAAMH,OAAO,CAAC,sCAAsC,CAAC,CAACC,OAAO;EAClFG,cAAc,EAAEA,CAAA,KAAMJ,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EACxEI,OAAO,EAAEA,CAAA,KAAML,OAAO,CAAC,0BAA0B,CAAC,CAACC,OAAO;EAC1DK,gBAAgB,EAAEA,CAAA,KAAMN,OAAO,CAAC,mCAAmC,CAAC,CAACC,OAAO;EAC5EM,eAAe,EAAEA,CAAA,KAAMP,OAAO,CAAC,kCAAkC,CAAC,CAACC,OAAO;EAC1EO,cAAc,EAAEA,CAAA,KAAMR,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EACxEQ,cAAc,EAAEA,CAAA,KAAMT,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EACxES,WAAW,EAAEA,CAAA,KAAMV,OAAO,CAAC,8BAA8B,CAAC,CAACC,OAAO;EAClEU,GAAG,EAAEA,CAAA,KAAMX,OAAO,CAAC,sBAAsB,CAAC,CAACC,OAAO;EAClDW,QAAQ,EAAEA,CAAA,KAAMZ,OAAO,CAAC,2BAA2B,CAAC,CAACC,OAAO;EAC5DY,cAAc,EAAEA,CAAA,KAAMb,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EACxEa,OAAO,EAAEA,CAAA,KAAMd,OAAO,CAAC,0BAA0B,CAAC,CAACC,OAAO;EAC1Dc,mBAAmB,EAAEA,CAAA,KAAMf,OAAO,CAAC,sCAAsC,CAAC,CAACC,OAAO;EAClFe,cAAc,EAAEA,CAAA,KAAMhB,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EACxEgB,SAAS,EAAEA,CAAA,KAAMjB,OAAO,CAAC,4BAA4B,CAAC,CAACC,OAAO;EAC9DiB,WAAW,EAAEA,CAAA,KAAMlB,OAAO,CAAC,8BAA8B,CAAC,CAACC,OAAO;EAClEkB,gBAAgB,EAAEA,CAAA,KAAMnB,OAAO,CAAC,mCAAmC,CAAC,CAACC,OAAO;EAC5EmB,gBAAgB,EAAEA,CAAA,KAAMpB,OAAO,CAAC,mCAAmC,CAAC,CAACC,OAAO;EAC5E;EACAoB,kBAAkB,EAAEA,CAAA,KAAMrB,OAAO,CAAC,qCAAqC,CAAC,CAACC,OAAO;EAChF;EACAqB,WAAW,EAAEA,CAAA,KAAMtB,OAAO,CAAC,oCAAoC,CAAC,CAACC,OAAO;EACxEsB,gBAAgB,EAAEA,CAAA,KAAMvB,OAAO,CAAC,yCAAyC,CAAC,CAACC,OAAO;EAClFuB,YAAY,EAAEA,CAAA,KAAMxB,OAAO,CAAC,qCAAqC,CAAC,CAACC,OAAO;EAC1EwB,UAAU,EAAEA,CAAA,KAAMzB,OAAO,CAAC,mCAAmC,CAAC,CAACC,OAAO;EACtEyB,UAAU,EAAEA,CAAA,KAAM1B,OAAO,CAAC,mCAAmC,CAAC,CAACC,OAAO;EACtE0B,QAAQ,EAAEA,CAAA,KAAM3B,OAAO,CAAC,iCAAiC,CAAC,CAACC,OAAO;EAClE;EACA2B,aAAa,EAAEA,CAAA,KAAM5B,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EACtE4B,aAAa,EAAEA,CAAA,KAAM7B,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EACtE6B,oBAAoB,EAAEA,CAAA,KAAM9B,OAAO,CAAC,uCAAuC,CAAC,CAACC,OAAO;EACpF8B,UAAU,EAAEA,CAAA,KAAM/B,OAAO,CAAC,6BAA6B,CAAC,CAACC,OAAO;EAChE+B,aAAa,EAAEA,CAAA,KAAMhC,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EACtEgC,aAAa,EAAEA,CAAA,KAAMjC,OAAO,CAAC,gCAAgC,CAAC,CAACC,OAAO;EACtEiC,WAAW,EAAEA,CAAA,KAAMlC,OAAO,CAAC,8BAA8B,CAAC,CAACC;AAC/D,CAAC;;AAED;AACA,MAAMkC,WAAW,GAAG,IAAIC,GAAG,CAA4C,CAAC;;AAExE;AACO,MAAMC,kBAAkB,GAAIC,SAAoB,IAAiD;EACpG;EACA,IAAIH,WAAW,CAACI,GAAG,CAACD,SAAS,CAAC,EAAE;IAC5B,OAAOH,WAAW,CAACK,GAAG,CAACF,SAAS,CAAC;EACrC;;EAEA;EACA,MAAMG,MAAM,GAAG3C,aAAa,CAACwC,SAAS,CAAC;EACvC,IAAIG,MAAM,EAAE;IACR,IAAI;MACA,MAAMC,SAAS,GAAGD,MAAM,CAAC,CAAC;MAC1BN,WAAW,CAACQ,GAAG,CAACL,SAAS,EAAEI,SAAS,CAAC;MACrC,OAAOA,SAAS;IACpB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACZ,IAAIC,OAAO,EAAE;QACTC,OAAO,CAACF,KAAK,CAAC,mCAAmCN,SAAS,EAAE,EAAEM,KAAK,CAAC;MACxE;MACA,OAAOG,SAAS;IACpB;EACJ;EAEA,OAAOA,SAAS;AACpB,CAAC;;AAED;AACA;AAAAC,OAAA,CAAAX,kBAAA,GAAAA,kBAAA;AACO,MAAMY,YAAY,GAAIX,SAAiB,IAA6B;EACvE,OAAOA,SAAS,IAAIxC,aAAa;AACrC,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAkD,OAAA,CAAAC,YAAA,GAAAA,YAAA;AAyCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,+BAA+B,GAAIC,KAA8B,IAAc;EACjF,IAAI,CAACA,KAAK,CAACC,UAAU,EAAE,OAAO,KAAK;EACnC,MAAMC,QAAQ,GAAGF,KAAK,CAACG,iBAAiB;EACxC,IAAI,CAACC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,IAAIA,QAAQ,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK;EACnE,MAAMlB,GAAG,GAAImB,SAAkC,IAC3CL,QAAQ,CAACM,IAAI,CAAEC,EAAE,IAAK,OAAOA,EAAE,KAAK,QAAQ,IAAIF,SAAS,CAACE,EAAE,CAAC,CAAC;EAClE,MAAMC,YAAY,GAAGtB,GAAG,CAAEqB,EAAE,IAAKA,EAAE,KAAK,QAAQ,IAAIA,EAAE,CAACE,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC5E,MAAMC,WAAW,GAAGxB,GAAG,CAAEqB,EAAE,IAAKA,EAAE,KAAK,QAAQ,IAAIA,EAAE,CAACE,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC3E,MAAME,UAAU,GAAGzB,GAAG,CACjBqB,EAAE,IAAKA,EAAE,KAAK,iBAAiB,IAAIA,EAAE,KAAK,cAAc,IAAIA,EAAE,CAACE,UAAU,CAAC,cAAc,CAC7F,CAAC;EACD,OAAOD,YAAY,IAAIE,WAAW,IAAIC,UAAU;AACpD,CAAC;;AAED;AACA,MAAMC,oBAAsC,GAAG;EAC3CC,UAAU,EAAE,IAAI;EAChBC,gBAAgB,EAAE,IAAI;EACtBC,eAAe,EAAE;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAc,GAAGA,CAC1B/B,SAA2B,EAC3BgC,WAAoC,KACjB;EACnB,IAAI,CAAChC,SAAS,EAAE,OAAO2B,oBAAoB;EAC3C,IAAI3B,SAAS,KAAK,gBAAgB,IAAIY,+BAA+B,CAACoB,WAAW,CAAC,EAAE;IAChF;IACA;IACA;IACA,OAAO;MAAE,GAAGL,oBAAoB;MAAEC,UAAU,EAAE;IAAM,CAAC;EACzD;EACA,OAAOD,oBAAoB;AAC/B,CAAC;AAACjB,OAAA,CAAAqB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -122,13 +122,12 @@ const OxyAuthScreen = ({
|
|
|
122
122
|
// `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
123
123
|
// code-for-token exchange (RFC 8628 §3.4).
|
|
124
124
|
//
|
|
125
|
-
// Without that exchange the SDK has no bearer token
|
|
126
|
-
//
|
|
127
|
-
//
|
|
128
|
-
//
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
// `switchSession` path. This mirrors `SignInModal`'s web flow exactly.
|
|
125
|
+
// Without that exchange the SDK has no bearer token — the session is
|
|
126
|
+
// authorized server-side but the app never becomes authenticated and the
|
|
127
|
+
// sheet sits "Waiting for authorization..." forever. Once
|
|
128
|
+
// `claimSessionByToken` plants the tokens in the HttpService, the rest of the
|
|
129
|
+
// session wiring flows through the normal `switchSession` path. This mirrors
|
|
130
|
+
// `SignInModal`'s web flow exactly.
|
|
132
131
|
const handleAuthSuccess = (0, _react.useCallback)(async (sessionId, sessionToken) => {
|
|
133
132
|
if (isProcessingRef.current) return;
|
|
134
133
|
isProcessingRef.current = true;
|