@oxyhq/services 10.2.0 → 10.2.2
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 +9 -13
- 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/FollowButton.js +3 -1
- package/lib/commonjs/ui/components/FollowButton.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 +57 -78
- 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 +10 -40
- 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/useFollow.js +21 -7
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- 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/FollowButton.js +3 -1
- package/lib/module/ui/components/FollowButton.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 +58 -79
- 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 +10 -40
- 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/useFollow.js +21 -7
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- 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/useFollow.d.ts +1 -1
- package/lib/typescript/commonjs/ui/hooks/useFollow.d.ts.map +1 -1
- 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/useFollow.d.ts +1 -1
- package/lib/typescript/module/ui/hooks/useFollow.d.ts.map +1 -1
- 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 +2 -2
- 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/FollowButton.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 +71 -74
- package/src/ui/context/hooks/useAuthOperations.ts +7 -13
- package/src/ui/hooks/useAuth.ts +12 -49
- package/src/ui/hooks/useDeviceAccounts.ts +348 -0
- package/src/ui/hooks/useFollow.ts +16 -8
- 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
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* Cross-domain SSO:
|
|
23
23
|
* - Web: Automatic via FedCM (Chrome 108+, Safari 16.4+)
|
|
24
24
|
* - Native: Automatic via shared Keychain/Account Manager
|
|
25
|
-
* - Manual sign-in: signIn()
|
|
25
|
+
* - Manual sign-in: signIn() redirects to the IdP (web) or opens the auth sheet (native)
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
import { useCallback } from 'react';
|
|
@@ -46,7 +46,6 @@ export function useAuth() {
|
|
|
46
46
|
isAuthResolved,
|
|
47
47
|
error,
|
|
48
48
|
signIn: oxySignIn,
|
|
49
|
-
handlePopupSession,
|
|
50
49
|
logout,
|
|
51
50
|
logoutAll,
|
|
52
51
|
refreshSessions,
|
|
@@ -56,7 +55,7 @@ export function useAuth() {
|
|
|
56
55
|
showBottomSheet,
|
|
57
56
|
openAvatarPicker
|
|
58
57
|
} = useOxy();
|
|
59
|
-
const signIn = useCallback(async
|
|
58
|
+
const signIn = useCallback(async publicKey => {
|
|
60
59
|
// Check if we're on the identity provider itself
|
|
61
60
|
// Only the IdP has local login forms - other apps are client apps
|
|
62
61
|
const authWebUrl = oxyServices.config?.authWebUrl;
|
|
@@ -68,42 +67,13 @@ export function useAuth() {
|
|
|
68
67
|
}
|
|
69
68
|
const isIdentityProvider = isWebBrowser() && window.location.hostname === idpHostname;
|
|
70
69
|
|
|
71
|
-
// Web (not on IdP):
|
|
72
|
-
//
|
|
73
|
-
// FedCM silent SSO already runs on page load via useWebSSO
|
|
74
|
-
// If user is clicking "Sign In", they need interactive auth NOW
|
|
70
|
+
// Web (not on IdP): use the tokenless redirect SSO flow. FedCM / silent SSO
|
|
71
|
+
// already run on page load; an explicit click needs interactive auth.
|
|
75
72
|
if (isWebBrowser() && !publicKey && !isIdentityProvider) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// ahead of their own awaits), reuse it.
|
|
81
|
-
const popup = preOpenedPopup ?? oxyServices.openBlankPopup?.() ?? null;
|
|
82
|
-
try {
|
|
83
|
-
const popupSession = await oxyServices.signInWithPopup?.({
|
|
84
|
-
popup
|
|
85
|
-
});
|
|
86
|
-
if (popupSession?.user) {
|
|
87
|
-
// The popup auth flow fetches full user data, so the session user
|
|
88
|
-
// contains full User fields even though the base type is MinimalUserData.
|
|
89
|
-
// Cast to the expected shape for handlePopupSession.
|
|
90
|
-
const sessionWithUser = {
|
|
91
|
-
...popupSession,
|
|
92
|
-
user: popupSession.user
|
|
93
|
-
};
|
|
94
|
-
await handlePopupSession(sessionWithUser);
|
|
95
|
-
return sessionWithUser.user;
|
|
96
|
-
}
|
|
97
|
-
throw new Error('Sign-in failed. Please try again.');
|
|
98
|
-
} catch (popupError) {
|
|
99
|
-
if (popup && !popup.closed) {
|
|
100
|
-
popup.close();
|
|
101
|
-
}
|
|
102
|
-
if (popupError instanceof Error && popupError.message.includes('blocked')) {
|
|
103
|
-
throw new Error('Popup blocked. Please allow popups for this site.');
|
|
104
|
-
}
|
|
105
|
-
throw popupError;
|
|
106
|
-
}
|
|
73
|
+
oxyServices.signInWithRedirect?.({
|
|
74
|
+
redirectUri: window.location.href
|
|
75
|
+
});
|
|
76
|
+
return new Promise(() => undefined);
|
|
107
77
|
}
|
|
108
78
|
|
|
109
79
|
// Native: Use cryptographic identity
|
|
@@ -138,7 +108,7 @@ export function useAuth() {
|
|
|
138
108
|
return new Promise(() => {}); // Never resolves, page will redirect
|
|
139
109
|
}
|
|
140
110
|
throw new Error('No authentication method available');
|
|
141
|
-
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet, oxyServices
|
|
111
|
+
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet, oxyServices]);
|
|
142
112
|
const signOut = useCallback(async () => {
|
|
143
113
|
await logout();
|
|
144
114
|
}, [logout]);
|
|
@@ -152,7 +122,7 @@ export function useAuth() {
|
|
|
152
122
|
// State
|
|
153
123
|
user,
|
|
154
124
|
isAuthenticated,
|
|
155
|
-
isLoading,
|
|
125
|
+
isLoading: isLoading || !isAuthResolved,
|
|
156
126
|
isReady: isTokenReady,
|
|
157
127
|
isAuthResolved,
|
|
158
128
|
error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useOxy","isWebBrowser","useAuth","user","isAuthenticated","isLoading","isTokenReady","isAuthResolved","error","signIn","oxySignIn","
|
|
1
|
+
{"version":3,"names":["useCallback","useOxy","isWebBrowser","useAuth","user","isAuthenticated","isLoading","isTokenReady","isAuthResolved","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","openAvatarPicker","publicKey","authWebUrl","config","idpHostname","URL","hostname","isIdentityProvider","window","location","signInWithRedirect","redirectUri","href","Promise","undefined","hasExisting","existingKey","_","reject","Error","authBase","loginUrl","includes","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { useQuery } from '@tanstack/react-query';
|
|
5
|
+
import { getAccountDisplayName, getAccountFallbackHandle } from '@oxyhq/core';
|
|
6
|
+
import { useOxy } from "../context/OxyContext.js";
|
|
7
|
+
import { useI18n } from "./useI18n.js";
|
|
8
|
+
import { queryKeys } from "./queries/queryKeys.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The per-account user shape carried by a {@link DeviceAccount}. Either:
|
|
12
|
+
* - the minimal projection returned by `POST /auth/refresh-all`
|
|
13
|
+
* ({@link RefreshAllAccountUser}, the shared apex path), or
|
|
14
|
+
* - the SDK's canonical {@link User} document (the active row on the local
|
|
15
|
+
* fallback path, which already has the full user loaded in `useOxy()`).
|
|
16
|
+
*
|
|
17
|
+
* Both satisfy `getAccountDisplayName`'s `DisplayNameUserShape`, so display
|
|
18
|
+
* resolution is uniform across paths.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* One signed-in account on this device, fully hydrated for the account
|
|
23
|
+
* chooser. Unlike the old `AccountMenu` behaviour (which only carried the
|
|
24
|
+
* ACTIVE session's user), EVERY entry here carries real per-account
|
|
25
|
+
* `displayName` / `email` / `avatarUrl` / `color`.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Resolve which entries are the current account, robustly.
|
|
30
|
+
*
|
|
31
|
+
* Primary signal: `entry.sessionId === activeSessionId`. On the web shared-apex
|
|
32
|
+
* path, `refreshAllSessions()` returns SERVER-side session ids that may not
|
|
33
|
+
* equal the locally-stored `activeSessionId` (a different storage namespace /
|
|
34
|
+
* server perspective), so a pure `sessionId` match can flag NO row as current —
|
|
35
|
+
* the bug that surfaced as "Not signed in" even while authenticated.
|
|
36
|
+
*
|
|
37
|
+
* Fallbacks, applied only when the `sessionId` match found nothing AND the user
|
|
38
|
+
* is authenticated:
|
|
39
|
+
* 1. Match the live `user.id` against each entry's per-account user id.
|
|
40
|
+
* 2. If still nothing and there is exactly one account, mark that one current.
|
|
41
|
+
*
|
|
42
|
+
* At most ONE entry is ever marked current.
|
|
43
|
+
*
|
|
44
|
+
* Pure & side-effect free so it is unit-testable without rendering React.
|
|
45
|
+
*/
|
|
46
|
+
export function markCurrentAccount(accounts, activeSessionId, liveUserId, isAuthenticated) {
|
|
47
|
+
const bySession = accounts.map(account => ({
|
|
48
|
+
...account,
|
|
49
|
+
isCurrent: Boolean(activeSessionId) && account.sessionId === activeSessionId
|
|
50
|
+
}));
|
|
51
|
+
if (bySession.some(account => account.isCurrent) || !isAuthenticated) {
|
|
52
|
+
return bySession;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// No row matched by session id: fall back to the live user's id, marking at
|
|
56
|
+
// most the FIRST matching entry current (never more than one).
|
|
57
|
+
if (liveUserId) {
|
|
58
|
+
let matched = false;
|
|
59
|
+
const byUser = bySession.map(account => {
|
|
60
|
+
if (!matched && account.user.id === liveUserId) {
|
|
61
|
+
matched = true;
|
|
62
|
+
return {
|
|
63
|
+
...account,
|
|
64
|
+
isCurrent: true
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return account;
|
|
68
|
+
});
|
|
69
|
+
if (matched) {
|
|
70
|
+
return byUser;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Authenticated, nothing matched, but there is exactly one account → it must
|
|
75
|
+
// be the current one (single-account shared-apex / cross-domain case).
|
|
76
|
+
if (bySession.length === 1) {
|
|
77
|
+
return [{
|
|
78
|
+
...bySession[0],
|
|
79
|
+
isCurrent: true
|
|
80
|
+
}];
|
|
81
|
+
}
|
|
82
|
+
return bySession;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Resolve every account signed in on this device for the unified account
|
|
87
|
+
* switcher, with real per-account name / email / avatar / color.
|
|
88
|
+
*
|
|
89
|
+
* ## Data sources (web vs native)
|
|
90
|
+
*
|
|
91
|
+
* - **Web on a `*.oxy.so` host** → `oxyServices.refreshAllSessions()` returns
|
|
92
|
+
* the full apex device-account list (identical to what `auth.oxy.so` sees,
|
|
93
|
+
* because the `Domain=oxy.so` refresh cookies reach `api.oxy.so`). Used
|
|
94
|
+
* directly — this is the `fromSharedApex: true` path.
|
|
95
|
+
* - **Cross-domain web (non-`oxy.so` apex)** OR **native (no browser cookies)**
|
|
96
|
+
* → `refreshAllSessions()` yields `{ accounts: [] }` (the apex cookies never
|
|
97
|
+
* reach the request: cross-domain by `Domain`, native by having no cookie
|
|
98
|
+
* jar at all; a 401 is also normalised to `{ accounts: [] }` inside the
|
|
99
|
+
* core mixin). In that case we FALL BACK to the SDK's local multi-account
|
|
100
|
+
* list from `useOxy()` (`sessions` + `activeSessionId` + the active `user`).
|
|
101
|
+
* This is the `fromSharedApex: false` path.
|
|
102
|
+
*
|
|
103
|
+
* The fallback decision is purely data-driven: **if `refreshAllSessions()`
|
|
104
|
+
* returns >0 accounts, use the shared path; otherwise fall back to local
|
|
105
|
+
* `useOxy()` sessions.** No host sniffing is needed — the cookie scoping does
|
|
106
|
+
* the discrimination for us, and the same code path works on native (where the
|
|
107
|
+
* fetch returns `{ accounts: [] }`).
|
|
108
|
+
*
|
|
109
|
+
* ## Why React Query (not a `useRef`/`useState` start-once like the auth app)
|
|
110
|
+
*
|
|
111
|
+
* The auth app's `use-device-accounts.ts` hand-rolls a `startedRef` because it
|
|
112
|
+
* has no React Query. The SDK does. `refreshAllSessions()` ROTATES single-use
|
|
113
|
+
* refresh cookies on every call, so it must run AT MOST ONCE per page load:
|
|
114
|
+
* we model that with `staleTime: Infinity` + `gcTime: Infinity` +
|
|
115
|
+
* `refetchOnWindowFocus/Reconnect/Mount: false` + `retry: false`. React Query
|
|
116
|
+
* dedupes concurrent mounts and caches the single result for the page's
|
|
117
|
+
* lifetime — the exact "run once" guarantee the auth app documents, but
|
|
118
|
+
* without the manual ref/state machinery.
|
|
119
|
+
*
|
|
120
|
+
* ## Validation note (intentionally NO zod re-parse)
|
|
121
|
+
*
|
|
122
|
+
* The auth app's hook calls `fetch` directly, so IT must `safeParse` the wire
|
|
123
|
+
* response with `@oxyhq/contracts`. This hook calls
|
|
124
|
+
* `oxyServices.refreshAllSessions()`, whose core mixin ALREADY validates and
|
|
125
|
+
* normalises the wire response (skips entries missing required fields,
|
|
126
|
+
* normalises `authuser` null→0, builds the `RefreshAllAccountUser` shape) — the
|
|
127
|
+
* mixin is the single source of truth. Re-validating the SDK's own already-typed
|
|
128
|
+
* output here would be redundant double-validation, so we do not re-parse.
|
|
129
|
+
*
|
|
130
|
+
* ## Error handling
|
|
131
|
+
*
|
|
132
|
+
* `refreshAllSessions()` already maps 401/404/abort to `{ accounts: [] }`
|
|
133
|
+
* internally. Any OTHER failure (network, 5xx) propagates as a thrown error and
|
|
134
|
+
* is surfaced by React Query (`query.isError`) — never swallowed. Callers that
|
|
135
|
+
* don't care can ignore it; the hook still returns the local fallback list so
|
|
136
|
+
* the chooser stays usable.
|
|
137
|
+
*/
|
|
138
|
+
export function useDeviceAccounts() {
|
|
139
|
+
const {
|
|
140
|
+
oxyServices,
|
|
141
|
+
sessions,
|
|
142
|
+
activeSessionId,
|
|
143
|
+
user,
|
|
144
|
+
isAuthenticated
|
|
145
|
+
} = useOxy();
|
|
146
|
+
const {
|
|
147
|
+
locale
|
|
148
|
+
} = useI18n();
|
|
149
|
+
|
|
150
|
+
// Stable, per-API-origin query key. `refreshAllSessions` resolves against
|
|
151
|
+
// the session base url derived from `getBaseURL()`, so keying on it scopes
|
|
152
|
+
// the cached result to the API the provider is pointed at.
|
|
153
|
+
const baseURL = oxyServices.getBaseURL();
|
|
154
|
+
const query = useQuery({
|
|
155
|
+
queryKey: [...queryKeys.accounts.all, 'deviceAccounts', baseURL],
|
|
156
|
+
queryFn: () => oxyServices.refreshAllSessions(),
|
|
157
|
+
// Only attempt the shared apex path while signed in. When logged out
|
|
158
|
+
// there is nothing to enumerate and the fallback (also empty) is used.
|
|
159
|
+
enabled: isAuthenticated,
|
|
160
|
+
// Single-use cookie rotation → run at most once per page load.
|
|
161
|
+
staleTime: Number.POSITIVE_INFINITY,
|
|
162
|
+
gcTime: Number.POSITIVE_INFINITY,
|
|
163
|
+
refetchOnWindowFocus: false,
|
|
164
|
+
refetchOnReconnect: false,
|
|
165
|
+
refetchOnMount: false,
|
|
166
|
+
retry: false
|
|
167
|
+
});
|
|
168
|
+
const sharedAccounts = query.data?.accounts ?? [];
|
|
169
|
+
const fromSharedApex = sharedAccounts.length > 0;
|
|
170
|
+
const accounts = useMemo(() => {
|
|
171
|
+
const resolveAvatarUrl = avatar => avatar ? oxyServices.getFileDownloadUrl(avatar, 'thumb') : undefined;
|
|
172
|
+
|
|
173
|
+
// Build a single current-account row from the live `useOxy().user`. Used
|
|
174
|
+
// as a last-resort fallback when neither the shared-apex probe nor the
|
|
175
|
+
// local session store yielded a row but the user IS authenticated (e.g.
|
|
176
|
+
// a cross-domain host where the apex probe returned empty before the
|
|
177
|
+
// local session store hydrated). The signed-in user must ALWAYS be
|
|
178
|
+
// represented. Email is the REAL email or the `@handle` line — never a
|
|
179
|
+
// synthesized `username@oxy.so`.
|
|
180
|
+
const liveUserRow = () => {
|
|
181
|
+
if (!isAuthenticated || !user || !activeSessionId) {
|
|
182
|
+
return [];
|
|
183
|
+
}
|
|
184
|
+
const displayName = getAccountDisplayName(user, locale);
|
|
185
|
+
const handle = getAccountFallbackHandle(user);
|
|
186
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
187
|
+
return [{
|
|
188
|
+
sessionId: activeSessionId,
|
|
189
|
+
authuser: undefined,
|
|
190
|
+
isCurrent: true,
|
|
191
|
+
displayName,
|
|
192
|
+
email: user.email ?? secondaryHandle,
|
|
193
|
+
avatarUrl: resolveAvatarUrl(user.avatar),
|
|
194
|
+
color: user.color ?? null,
|
|
195
|
+
user
|
|
196
|
+
}];
|
|
197
|
+
};
|
|
198
|
+
let built;
|
|
199
|
+
if (fromSharedApex) {
|
|
200
|
+
// Shared apex path: every entry carries a real per-account user.
|
|
201
|
+
built = sharedAccounts.map(entry => {
|
|
202
|
+
// `entry.user` is non-null on the refresh-all path; the core
|
|
203
|
+
// mixin skips entries without a valid user. The fallback below
|
|
204
|
+
// keeps rendering defensive if a server response is incomplete.
|
|
205
|
+
const accountUser = entry.user ?? {
|
|
206
|
+
id: '',
|
|
207
|
+
username: ''
|
|
208
|
+
};
|
|
209
|
+
const displayName = getAccountDisplayName(accountUser, locale);
|
|
210
|
+
const handle = getAccountFallbackHandle(accountUser);
|
|
211
|
+
const email = entry.user?.email ?? null;
|
|
212
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
213
|
+
return {
|
|
214
|
+
sessionId: entry.sessionId,
|
|
215
|
+
authuser: entry.authuser,
|
|
216
|
+
// Provisional; finalised by `markCurrentAccount` below so the
|
|
217
|
+
// shared-apex path is robust to server/local session-id skew.
|
|
218
|
+
isCurrent: false,
|
|
219
|
+
displayName,
|
|
220
|
+
// Real email, or null (NEVER synthesized). The UI uses the
|
|
221
|
+
// `@handle` line only when email is genuinely absent.
|
|
222
|
+
email: email ?? secondaryHandle,
|
|
223
|
+
avatarUrl: resolveAvatarUrl(entry.user?.avatar),
|
|
224
|
+
color: entry.user?.color ?? null,
|
|
225
|
+
user: accountUser
|
|
226
|
+
};
|
|
227
|
+
});
|
|
228
|
+
} else {
|
|
229
|
+
// Local fallback path: build from the SDK's multi-session store. The
|
|
230
|
+
// active session row gets the full loaded `user`; inactive fallback
|
|
231
|
+
// rows carry only what the `ClientSession` exposes (no synthesized
|
|
232
|
+
// identity — they show the active user's data only when active).
|
|
233
|
+
built = (sessions ?? []).map(session => {
|
|
234
|
+
const isCurrent = session.sessionId === activeSessionId;
|
|
235
|
+
const accountUser = isCurrent && user ? user : {
|
|
236
|
+
id: session.userId ?? '',
|
|
237
|
+
username: ''
|
|
238
|
+
};
|
|
239
|
+
const displayName = getAccountDisplayName(accountUser, locale);
|
|
240
|
+
const handle = getAccountFallbackHandle(accountUser);
|
|
241
|
+
const email = isCurrent && user?.email ? user.email : null;
|
|
242
|
+
const secondaryHandle = handle ? `@${handle}` : null;
|
|
243
|
+
const avatar = isCurrent && user ? user.avatar : undefined;
|
|
244
|
+
const color = isCurrent && user?.color ? user.color : null;
|
|
245
|
+
return {
|
|
246
|
+
sessionId: session.sessionId,
|
|
247
|
+
authuser: session.authuser,
|
|
248
|
+
isCurrent,
|
|
249
|
+
displayName,
|
|
250
|
+
email: email ?? secondaryHandle,
|
|
251
|
+
avatarUrl: resolveAvatarUrl(avatar),
|
|
252
|
+
color,
|
|
253
|
+
user: accountUser
|
|
254
|
+
};
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// Robust current-account detection: tolerate server/local session-id
|
|
259
|
+
// skew on the shared-apex path by falling back to the live user's id and
|
|
260
|
+
// the single-account heuristic.
|
|
261
|
+
const flagged = markCurrentAccount(built, activeSessionId, user?.id ?? null, isAuthenticated);
|
|
262
|
+
|
|
263
|
+
// The signed-in user must ALWAYS be represented. If detection produced
|
|
264
|
+
// an empty list yet the user is authenticated, synthesize a single
|
|
265
|
+
// current row from the live `useOxy().user`.
|
|
266
|
+
if (flagged.length === 0) {
|
|
267
|
+
return liveUserRow();
|
|
268
|
+
}
|
|
269
|
+
return flagged;
|
|
270
|
+
}, [fromSharedApex, sharedAccounts, sessions, activeSessionId, user, isAuthenticated, locale, oxyServices]);
|
|
271
|
+
return {
|
|
272
|
+
accounts,
|
|
273
|
+
// `isLoading` only reflects the shared probe while it's the relevant
|
|
274
|
+
// source. Once we know we're on the fallback (probe settled with 0
|
|
275
|
+
// accounts) the local list is synchronously available.
|
|
276
|
+
isLoading: isAuthenticated && query.isLoading,
|
|
277
|
+
currentSessionId: activeSessionId ?? null,
|
|
278
|
+
fromSharedApex
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=useDeviceAccounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useQuery","getAccountDisplayName","getAccountFallbackHandle","useOxy","useI18n","queryKeys","markCurrentAccount","accounts","activeSessionId","liveUserId","isAuthenticated","bySession","map","account","isCurrent","Boolean","sessionId","some","matched","byUser","user","id","length","useDeviceAccounts","oxyServices","sessions","locale","baseURL","getBaseURL","query","queryKey","all","queryFn","refreshAllSessions","enabled","staleTime","Number","POSITIVE_INFINITY","gcTime","refetchOnWindowFocus","refetchOnReconnect","refetchOnMount","retry","sharedAccounts","data","fromSharedApex","resolveAvatarUrl","avatar","getFileDownloadUrl","undefined","liveUserRow","displayName","handle","secondaryHandle","authuser","email","avatarUrl","color","built","entry","accountUser","username","session","userId","flagged","isLoading","currentSessionId"],"sourceRoot":"../../../../src","sources":["ui/hooks/useDeviceAccounts.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SACIC,qBAAqB,EACrBC,wBAAwB,QACrB,aAAa;AAMpB,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,SAAS,QAAQ,wBAAqB;;AAE/C;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;AACA,OAAO,SAASC,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;AACA,OAAO,SAASY,iBAAiBA,CAAA,EAA4B;EACzD,MAAM;IACFC,WAAW;IACXC,QAAQ;IACRjB,eAAe;IACfY,IAAI;IACJV;EACJ,CAAC,GAAGP,MAAM,CAAC,CAAC;EACZ,MAAM;IAAEuB;EAAO,CAAC,GAAGtB,OAAO,CAAC,CAAC;;EAE5B;EACA;EACA;EACA,MAAMuB,OAAO,GAAGH,WAAW,CAACI,UAAU,CAAC,CAAC;EAExC,MAAMC,KAAK,GAAG7B,QAAQ,CAAC;IACnB8B,QAAQ,EAAE,CAAC,GAAGzB,SAAS,CAACE,QAAQ,CAACwB,GAAG,EAAE,gBAAgB,EAAEJ,OAAO,CAAU;IACzEK,OAAO,EAAEA,CAAA,KAAMR,WAAW,CAACS,kBAAkB,CAAC,CAAC;IAC/C;IACA;IACAC,OAAO,EAAExB,eAAe;IACxB;IACAyB,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,GAAGd,KAAK,CAACe,IAAI,EAAErC,QAAQ,IAAI,EAAE;EACjD,MAAMsC,cAAc,GAAGF,cAAc,CAACrB,MAAM,GAAG,CAAC;EAEhD,MAAMf,QAAQ,GAAGR,OAAO,CAAkB,MAAM;IAC5C,MAAM+C,gBAAgB,GAAIC,MAAiC,IACvDA,MAAM,GAAGvB,WAAW,CAACwB,kBAAkB,CAACD,MAAM,EAAE,OAAO,CAAC,GAAGE,SAAS;;IAExE;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,WAAW,GAAGA,CAAA,KAAuB;MACvC,IAAI,CAACxC,eAAe,IAAI,CAACU,IAAI,IAAI,CAACZ,eAAe,EAAE;QAC/C,OAAO,EAAE;MACb;MACA,MAAM2C,WAAW,GAAGlD,qBAAqB,CAACmB,IAAI,EAAEM,MAAM,CAAC;MACvD,MAAM0B,MAAM,GAAGlD,wBAAwB,CAACkB,IAAI,CAAC;MAC7C,MAAMiC,eAAe,GAAGD,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;MACpD,OAAO,CAAC;QACJpC,SAAS,EAAER,eAAe;QAC1B8C,QAAQ,EAAEL,SAAS;QACnBnC,SAAS,EAAE,IAAI;QACfqC,WAAW;QACXI,KAAK,EAAEnC,IAAI,CAACmC,KAAK,IAAIF,eAAe;QACpCG,SAAS,EAAEV,gBAAgB,CAAC1B,IAAI,CAAC2B,MAAM,CAAC;QACxCU,KAAK,EAAErC,IAAI,CAACqC,KAAK,IAAI,IAAI;QACzBrC;MACJ,CAAC,CAAC;IACN,CAAC;IAED,IAAIsC,KAAsB;IAE1B,IAAIb,cAAc,EAAE;MAChB;MACAa,KAAK,GAAGf,cAAc,CAAC/B,GAAG,CAAE+C,KAAK,IAAoB;QACjD;QACA;QACA;QACA,MAAMC,WAA8B,GAAGD,KAAK,CAACvC,IAAI,IAAI;UACjDC,EAAE,EAAE,EAAE;UACNwC,QAAQ,EAAE;QACd,CAAC;QACD,MAAMV,WAAW,GAAGlD,qBAAqB,CAAC2D,WAAW,EAAElC,MAAM,CAAC;QAC9D,MAAM0B,MAAM,GAAGlD,wBAAwB,CAAC0D,WAAW,CAAC;QACpD,MAAML,KAAK,GAAGI,KAAK,CAACvC,IAAI,EAAEmC,KAAK,IAAI,IAAI;QACvC,MAAMF,eAAe,GAAGD,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;QACpD,OAAO;UACHpC,SAAS,EAAE2C,KAAK,CAAC3C,SAAS;UAC1BsC,QAAQ,EAAEK,KAAK,CAACL,QAAQ;UACxB;UACA;UACAxC,SAAS,EAAE,KAAK;UAChBqC,WAAW;UACX;UACA;UACAI,KAAK,EAAEA,KAAK,IAAIF,eAAe;UAC/BG,SAAS,EAAEV,gBAAgB,CAACa,KAAK,CAACvC,IAAI,EAAE2B,MAAM,CAAC;UAC/CU,KAAK,EAAEE,KAAK,CAACvC,IAAI,EAAEqC,KAAK,IAAI,IAAI;UAChCrC,IAAI,EAAEwC;QACV,CAAC;MACL,CAAC,CAAC;IACN,CAAC,MAAM;MACH;MACA;MACA;MACA;MACAF,KAAK,GAAG,CAACjC,QAAQ,IAAI,EAAE,EAAEb,GAAG,CAAEkD,OAAsB,IAAoB;QACpE,MAAMhD,SAAS,GAAGgD,OAAO,CAAC9C,SAAS,KAAKR,eAAe;QACvD,MAAMoD,WAA8B,GAAG9C,SAAS,IAAIM,IAAI,GAClDA,IAAI,GACJ;UAAEC,EAAE,EAAEyC,OAAO,CAACC,MAAM,IAAI,EAAE;UAAEF,QAAQ,EAAE;QAAG,CAAC;QAChD,MAAMV,WAAW,GAAGlD,qBAAqB,CAAC2D,WAAW,EAAElC,MAAM,CAAC;QAC9D,MAAM0B,MAAM,GAAGlD,wBAAwB,CAAC0D,WAAW,CAAC;QACpD,MAAML,KAAK,GAAGzC,SAAS,IAAIM,IAAI,EAAEmC,KAAK,GAAGnC,IAAI,CAACmC,KAAK,GAAG,IAAI;QAC1D,MAAMF,eAAe,GAAGD,MAAM,GAAG,IAAIA,MAAM,EAAE,GAAG,IAAI;QACpD,MAAML,MAAM,GAAGjC,SAAS,IAAIM,IAAI,GAAGA,IAAI,CAAC2B,MAAM,GAAGE,SAAS;QAC1D,MAAMQ,KAAK,GAAG3C,SAAS,IAAIM,IAAI,EAAEqC,KAAK,GAAGrC,IAAI,CAACqC,KAAK,GAAG,IAAI;QAC1D,OAAO;UACHzC,SAAS,EAAE8C,OAAO,CAAC9C,SAAS;UAC5BsC,QAAQ,EAAEQ,OAAO,CAACR,QAAQ;UAC1BxC,SAAS;UACTqC,WAAW;UACXI,KAAK,EAAEA,KAAK,IAAIF,eAAe;UAC/BG,SAAS,EAAEV,gBAAgB,CAACC,MAAM,CAAC;UACnCU,KAAK;UACLrC,IAAI,EAAEwC;QACV,CAAC;MACL,CAAC,CAAC;IACN;;IAEA;IACA;IACA;IACA,MAAMI,OAAO,GAAG1D,kBAAkB,CAC9BoD,KAAK,EACLlD,eAAe,EACfY,IAAI,EAAEC,EAAE,IAAI,IAAI,EAChBX,eACJ,CAAC;;IAED;IACA;IACA;IACA,IAAIsD,OAAO,CAAC1C,MAAM,KAAK,CAAC,EAAE;MACtB,OAAO4B,WAAW,CAAC,CAAC;IACxB;IACA,OAAOc,OAAO;EAClB,CAAC,EAAE,CACCnB,cAAc,EACdF,cAAc,EACdlB,QAAQ,EACRjB,eAAe,EACfY,IAAI,EACJV,eAAe,EACfgB,MAAM,EACNF,WAAW,CACd,CAAC;EAEF,OAAO;IACHjB,QAAQ;IACR;IACA;IACA;IACA0D,SAAS,EAAEvD,eAAe,IAAImB,KAAK,CAACoC,SAAS;IAC7CC,gBAAgB,EAAE1D,eAAe,IAAI,IAAI;IACzCqC;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { useCallback, useMemo, useEffect } from 'react';
|
|
4
4
|
import { useFollowStore } from "../stores/followStore.js";
|
|
5
5
|
import { useOxy } from "../context/OxyContext.js";
|
|
6
|
+
import { logger as loggerUtil } from '@oxyhq/core';
|
|
6
7
|
import { useShallow } from 'zustand/react/shallow';
|
|
7
8
|
|
|
8
9
|
/**
|
|
@@ -20,8 +21,12 @@ import { useShallow } from 'zustand/react/shallow';
|
|
|
20
21
|
*/
|
|
21
22
|
export const useFollow = userId => {
|
|
22
23
|
const {
|
|
23
|
-
oxyServices
|
|
24
|
+
oxyServices,
|
|
25
|
+
isAuthenticated,
|
|
26
|
+
isAuthResolved,
|
|
27
|
+
isTokenReady
|
|
24
28
|
} = useOxy();
|
|
29
|
+
const canUsePrivateApi = isAuthResolved && isTokenReady && isAuthenticated;
|
|
25
30
|
const userIds = useMemo(() => Array.isArray(userId) ? userId : userId ? [userId] : [], [userId]);
|
|
26
31
|
const isSingleUser = typeof userId === 'string';
|
|
27
32
|
|
|
@@ -67,17 +72,19 @@ export const useFollow = userId => {
|
|
|
67
72
|
// Store actions are accessed via getState() to avoid subscribing to them.
|
|
68
73
|
const toggleFollow = useCallback(async () => {
|
|
69
74
|
if (!isSingleUser || !userId) throw new Error('toggleFollow is only available for single user mode');
|
|
75
|
+
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
70
76
|
const currentlyFollowing = useFollowStore.getState().followingUsers[userId] ?? false;
|
|
71
77
|
await useFollowStore.getState().toggleFollowUser(userId, oxyServices, currentlyFollowing);
|
|
72
|
-
}, [isSingleUser, userId, oxyServices]);
|
|
78
|
+
}, [isSingleUser, userId, canUsePrivateApi, oxyServices]);
|
|
73
79
|
const setFollowStatus = useCallback(following => {
|
|
74
80
|
if (!isSingleUser || !userId) throw new Error('setFollowStatus is only available for single user mode');
|
|
75
81
|
useFollowStore.getState().setFollowingStatus(userId, following);
|
|
76
82
|
}, [isSingleUser, userId]);
|
|
77
83
|
const fetchStatus = useCallback(async () => {
|
|
78
84
|
if (!isSingleUser || !userId) throw new Error('fetchStatus is only available for single user mode');
|
|
85
|
+
if (!canUsePrivateApi) return;
|
|
79
86
|
await useFollowStore.getState().fetchFollowStatus(userId, oxyServices);
|
|
80
|
-
}, [isSingleUser, userId, oxyServices]);
|
|
87
|
+
}, [isSingleUser, userId, canUsePrivateApi, oxyServices]);
|
|
81
88
|
const clearError = useCallback(() => {
|
|
82
89
|
if (!isSingleUser || !userId) throw new Error('clearError is only available for single user mode');
|
|
83
90
|
useFollowStore.getState().clearFollowError(userId);
|
|
@@ -99,25 +106,32 @@ export const useFollow = userId => {
|
|
|
99
106
|
useEffect(() => {
|
|
100
107
|
if (!isSingleUser || !userId) return;
|
|
101
108
|
if ((followerCount === null || followingCount === null) && !isLoadingCounts) {
|
|
102
|
-
fetchUserCounts().catch(
|
|
109
|
+
fetchUserCounts().catch(error => {
|
|
110
|
+
loggerUtil.warn('useFollow: fetchUserCounts failed', {
|
|
111
|
+
component: 'useFollow'
|
|
112
|
+
}, error);
|
|
113
|
+
});
|
|
103
114
|
}
|
|
104
115
|
}, [isSingleUser, userId, followerCount, followingCount, isLoadingCounts, fetchUserCounts]);
|
|
105
116
|
|
|
106
117
|
// Multi-user callbacks
|
|
107
118
|
const toggleFollowForUser = useCallback(async targetUserId => {
|
|
119
|
+
if (!canUsePrivateApi) throw new Error('Authentication is required to follow users');
|
|
108
120
|
const currentState = useFollowStore.getState().followingUsers[targetUserId] ?? false;
|
|
109
121
|
await useFollowStore.getState().toggleFollowUser(targetUserId, oxyServices, currentState);
|
|
110
|
-
}, [oxyServices]);
|
|
122
|
+
}, [canUsePrivateApi, oxyServices]);
|
|
111
123
|
const setFollowStatusForUser = useCallback((targetUserId, following) => {
|
|
112
124
|
useFollowStore.getState().setFollowingStatus(targetUserId, following);
|
|
113
125
|
}, []);
|
|
114
126
|
const fetchStatusForUser = useCallback(async targetUserId => {
|
|
127
|
+
if (!canUsePrivateApi) return;
|
|
115
128
|
await useFollowStore.getState().fetchFollowStatus(targetUserId, oxyServices);
|
|
116
|
-
}, [oxyServices]);
|
|
129
|
+
}, [canUsePrivateApi, oxyServices]);
|
|
117
130
|
const fetchAllStatuses = useCallback(async () => {
|
|
131
|
+
if (!canUsePrivateApi) return;
|
|
118
132
|
const store = useFollowStore.getState();
|
|
119
133
|
await Promise.all(userIds.map(uid => store.fetchFollowStatus(uid, oxyServices)));
|
|
120
|
-
}, [userIds, oxyServices]);
|
|
134
|
+
}, [canUsePrivateApi, userIds, oxyServices]);
|
|
121
135
|
const clearErrorForUser = useCallback(targetUserId => {
|
|
122
136
|
useFollowStore.getState().clearFollowError(targetUserId);
|
|
123
137
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useEffect","useFollowStore","useOxy","useShallow","useFollow","userId","oxyServices","userIds","Array","isArray","isSingleUser","isFollowing","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followData","data","uid","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","catch","err","console","warn","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useEffect","useFollowStore","useOxy","logger","loggerUtil","useShallow","useFollow","userId","oxyServices","isAuthenticated","isAuthResolved","isTokenReady","canUsePrivateApi","userIds","Array","isArray","isSingleUser","isFollowing","s","followingUsers","isLoading","loadingUsers","error","errors","followerCount","followerCounts","followingCount","followingCounts","isLoadingCounts","loadingCounts","followData","data","uid","multiUserLoadingState","isAnyLoading","hasAnyError","allFollowing","allNotFollowing","some","every","toggleFollow","Error","currentlyFollowing","getState","toggleFollowUser","setFollowStatus","following","setFollowingStatus","fetchStatus","fetchFollowStatus","clearError","clearFollowError","fetchUserCounts","setFollowerCount","count","setFollowingCount","catch","warn","component","toggleFollowForUser","targetUserId","currentState","setFollowStatusForUser","fetchStatusForUser","fetchAllStatuses","store","Promise","all","map","clearErrorForUser","updateCountsFromFollowAction","action","counts","currentUserId","getCurrentUserId","undefined","useFollowForButton","useFollowerCounts"],"sourceRoot":"../../../../src","sources":["ui/hooks/useFollow.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -143,14 +143,13 @@ export const useSessionManagement = ({
|
|
|
143
143
|
onAuthStateChange?.(null);
|
|
144
144
|
}, [clearSessionStorage, logoutStore, onAuthStateChange, oxyServices, queryClient, storage, logger]);
|
|
145
145
|
const activateSession = useCallback(async (sessionId, user) => {
|
|
146
|
-
await oxyServices.getTokenBySession(sessionId);
|
|
147
146
|
setTokenReady?.(true);
|
|
148
147
|
setActiveSessionId(sessionId);
|
|
149
148
|
loginSuccess(user);
|
|
150
149
|
await saveActiveSessionId(sessionId);
|
|
151
150
|
await applyLanguagePreference(user);
|
|
152
151
|
onAuthStateChange?.(user);
|
|
153
|
-
}, [applyLanguagePreference, loginSuccess, onAuthStateChange,
|
|
152
|
+
}, [applyLanguagePreference, loginSuccess, onAuthStateChange, saveActiveSessionId, setTokenReady]);
|
|
154
153
|
const removalTimerIdsRef = useRef(new Set());
|
|
155
154
|
const trackRemovedSession = useCallback(sessionId => {
|
|
156
155
|
removedSessionsRef.current.add(sessionId);
|
|
@@ -192,10 +191,10 @@ export const useSessionManagement = ({
|
|
|
192
191
|
// `refreshAllSessions` it carries its `authuser` slot index. We
|
|
193
192
|
// proactively plant that slot's access token via the httpOnly
|
|
194
193
|
// refresh cookie BEFORE validating, so the bearer-protected
|
|
195
|
-
// validate/getCurrentUser calls
|
|
196
|
-
//
|
|
197
|
-
//
|
|
198
|
-
// `
|
|
194
|
+
// validate/getCurrentUser calls have the correct in-memory token
|
|
195
|
+
// after a cold reload or account switch in another tab. The native
|
|
196
|
+
// path arrives here only after a bearer has been planted by
|
|
197
|
+
// `claimSessionByToken` or secure shared-session restore.
|
|
199
198
|
if (isWebBrowser()) {
|
|
200
199
|
const targetSession = sessionsRef.current.find(s => s.sessionId === sessionId);
|
|
201
200
|
const targetAuthuser = targetSession?.authuser;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","validateSessionBatch","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","isWebBrowser","writeActiveAuthuser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","sessionsRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","activateSession","user","getTokenBySession","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","forEach","clearTimeout","findReplacementSession","length","validationResults","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","targetSession","s","targetAuthuser","authuser","refreshed","refreshTokenViaCookie","Error","httpService","setTokens","accessToken","deviceSessions","fallbackUserId","id","invalidSession","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","validateSessionBatch","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","isWebBrowser","writeActiveAuthuser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","sessionsRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","activateSession","user","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","forEach","clearTimeout","findReplacementSession","length","validationResults","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","targetSession","s","targetAuthuser","authuser","refreshed","refreshTokenViaCookie","Error","httpService","setTokens","accessToken","deviceSessions","fallbackUserId","id","invalidSession","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|