@oxyhq/services 27.1.3 → 29.0.0
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/LICENSE +202 -661
- package/NOTICE +16 -0
- package/README.md +67 -2
- package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionModule.kt +178 -0
- package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionProvider.kt +99 -0
- package/android/src/main/java/so/oxy/devicesession/OxyDeviceSessionStore.kt +115 -0
- package/expo-module.config.json +1 -0
- package/lib/commonjs/index.js +78 -16
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/boot/runProviderColdBoot.js +7 -0
- package/lib/commonjs/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/commonjs/ui/client.js +12 -7
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js +10 -27
- package/lib/commonjs/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAuthChooser.js +132 -44
- package/lib/commonjs/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +4 -2
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/SurfaceScreen.js +31 -3
- package/lib/commonjs/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js +209 -84
- package/lib/commonjs/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js +25 -7
- package/lib/commonjs/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/primitives.js +35 -22
- package/lib/commonjs/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/signInProgress.js +5 -0
- package/lib/commonjs/ui/components/authChooser/signInProgress.js.map +1 -1
- package/lib/commonjs/ui/components/authChooser/types.js +11 -0
- package/lib/commonjs/ui/components/authChooser/types.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +257 -306
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +27 -37
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/oxyContextHelpers.js +0 -29
- package/lib/commonjs/ui/context/oxyContextHelpers.js.map +1 -1
- package/lib/commonjs/ui/context/useOxyAccountGraph.js +6 -17
- package/lib/commonjs/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js +42 -0
- package/lib/commonjs/ui/hooks/accountDialogSnapshot.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +0 -19
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js +57 -0
- package/lib/commonjs/ui/hooks/useDeviceSwitcher.js.map +1 -0
- package/lib/commonjs/ui/hooks/useI18n.js +22 -3
- package/lib/commonjs/ui/hooks/useI18n.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +46 -153
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/index.js +12 -7
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +85 -73
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/navigation/surfaces.js +8 -7
- package/lib/commonjs/ui/navigation/surfaces.js.map +1 -1
- package/lib/commonjs/ui/runtime/createOxyRuntime.js +433 -0
- package/lib/commonjs/ui/runtime/createOxyRuntime.js.map +1 -0
- package/lib/commonjs/ui/runtime/index.js +63 -0
- package/lib/commonjs/ui/runtime/index.js.map +1 -0
- package/lib/commonjs/ui/runtime/runtimeContext.js +83 -0
- package/lib/commonjs/ui/runtime/runtimeContext.js.map +1 -0
- package/lib/commonjs/ui/runtime/types.js +6 -0
- package/lib/commonjs/ui/runtime/types.js.map +1 -0
- package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js +57 -0
- package/lib/commonjs/ui/runtime/useRuntimeSnapshot.js.map +1 -0
- package/lib/commonjs/ui/screens/AccountMembersScreen.js +3 -4
- package/lib/commonjs/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/CreateAccountScreen.js +3 -12
- package/lib/commonjs/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js +6 -5
- package/lib/commonjs/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js +4 -4
- package/lib/commonjs/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRewardsScreen.js +1 -1
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js +4 -2
- package/lib/commonjs/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/server.js +1 -2
- package/lib/commonjs/ui/server.js.map +1 -1
- package/lib/commonjs/ui/session/authStore.js +45 -9
- package/lib/commonjs/ui/session/authStore.js.map +1 -1
- package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js +306 -0
- package/lib/commonjs/ui/session/sharedDeviceCredentialStore.js.map +1 -0
- package/lib/commonjs/ui/stores/authStore.js +154 -55
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/commonjs/ui/stores/followTargetStore.js +27 -0
- package/lib/commonjs/ui/stores/followTargetStore.js.map +1 -1
- package/lib/commonjs/ui/utils/avatarUtils.js +2 -36
- package/lib/commonjs/ui/utils/avatarUtils.js.map +1 -1
- package/lib/module/index.js +20 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/boot/runProviderColdBoot.js +7 -0
- package/lib/module/ui/boot/runProviderColdBoot.js.map +1 -1
- package/lib/module/ui/client.js +1 -2
- package/lib/module/ui/client.js.map +1 -1
- package/lib/module/ui/components/OxyAccountDialogScreen.js +10 -27
- package/lib/module/ui/components/OxyAccountDialogScreen.js.map +1 -1
- package/lib/module/ui/components/OxyAuthChooser.js +134 -44
- package/lib/module/ui/components/OxyAuthChooser.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +5 -3
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/SurfaceScreen.js +33 -5
- package/lib/module/ui/components/SurfaceScreen.js.map +1 -1
- package/lib/module/ui/components/authChooser/AccountsMenuView.js +210 -85
- package/lib/module/ui/components/authChooser/AccountsMenuView.js.map +1 -1
- package/lib/module/ui/components/authChooser/SignInEntryView.js +25 -7
- package/lib/module/ui/components/authChooser/SignInEntryView.js.map +1 -1
- package/lib/module/ui/components/authChooser/primitives.js +35 -22
- package/lib/module/ui/components/authChooser/primitives.js.map +1 -1
- package/lib/module/ui/components/authChooser/signInProgress.js +5 -0
- package/lib/module/ui/components/authChooser/signInProgress.js.map +1 -1
- package/lib/module/ui/components/authChooser/types.js +11 -0
- package/lib/module/ui/components/authChooser/types.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +251 -303
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +27 -37
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/oxyContextHelpers.js +0 -28
- package/lib/module/ui/context/oxyContextHelpers.js.map +1 -1
- package/lib/module/ui/context/useOxyAccountGraph.js +6 -17
- package/lib/module/ui/context/useOxyAccountGraph.js.map +1 -1
- package/lib/module/ui/hooks/accountDialogSnapshot.js +38 -0
- package/lib/module/ui/hooks/accountDialogSnapshot.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +0 -19
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/useDeviceSwitcher.js +53 -0
- package/lib/module/ui/hooks/useDeviceSwitcher.js.map +1 -0
- package/lib/module/ui/hooks/useI18n.js +24 -4
- package/lib/module/ui/hooks/useI18n.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +47 -155
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/index.js +1 -2
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +84 -72
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/navigation/surfaces.js +6 -6
- package/lib/module/ui/navigation/surfaces.js.map +1 -1
- package/lib/module/ui/runtime/createOxyRuntime.js +430 -0
- package/lib/module/ui/runtime/createOxyRuntime.js.map +1 -0
- package/lib/module/ui/runtime/index.js +15 -0
- package/lib/module/ui/runtime/index.js.map +1 -0
- package/lib/module/ui/runtime/runtimeContext.js +75 -0
- package/lib/module/ui/runtime/runtimeContext.js.map +1 -0
- package/lib/module/ui/runtime/types.js +4 -0
- package/lib/module/ui/runtime/types.js.map +1 -0
- package/lib/module/ui/runtime/useRuntimeSnapshot.js +52 -0
- package/lib/module/ui/runtime/useRuntimeSnapshot.js.map +1 -0
- package/lib/module/ui/screens/AccountMembersScreen.js +4 -5
- package/lib/module/ui/screens/AccountMembersScreen.js.map +1 -1
- package/lib/module/ui/screens/CreateAccountScreen.js +4 -13
- package/lib/module/ui/screens/CreateAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustCenterScreen.js +6 -5
- package/lib/module/ui/screens/trust/TrustCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js +5 -5
- package/lib/module/ui/screens/trust/TrustLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/trust/TrustRewardsScreen.js +1 -1
- package/lib/module/ui/screens/trust/TrustRulesScreen.js +4 -2
- package/lib/module/ui/screens/trust/TrustRulesScreen.js.map +1 -1
- package/lib/module/ui/server.js +0 -1
- package/lib/module/ui/server.js.map +1 -1
- package/lib/module/ui/session/authStore.js +46 -11
- package/lib/module/ui/session/authStore.js.map +1 -1
- package/lib/module/ui/session/sharedDeviceCredentialStore.js +302 -0
- package/lib/module/ui/session/sharedDeviceCredentialStore.js.map +1 -0
- package/lib/module/ui/stores/authStore.js +154 -55
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/module/ui/stores/followTargetStore.js +25 -0
- package/lib/module/ui/stores/followTargetStore.js.map +1 -1
- package/lib/module/ui/utils/avatarUtils.js +2 -35
- package/lib/module/ui/utils/avatarUtils.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +6 -4
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +1 -2
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
- package/lib/typescript/commonjs/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts +3 -1
- package/lib/typescript/commonjs/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts +18 -6
- package/lib/typescript/commonjs/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/signInProgress.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts +33 -1
- package/lib/typescript/commonjs/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +35 -4
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +8 -12
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts +0 -2
- package/lib/typescript/commonjs/ui/context/oxyContextHelpers.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts +9 -1
- package/lib/typescript/commonjs/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts +1 -3
- package/lib/typescript/commonjs/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts +15 -0
- package/lib/typescript/commonjs/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts +49 -0
- package/lib/typescript/commonjs/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts +13 -0
- package/lib/typescript/commonjs/ui/hooks/useI18n.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts +23 -18
- package/lib/typescript/commonjs/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +1 -2
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +15 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts +144 -0
- package/lib/typescript/commonjs/ui/runtime/createOxyRuntime.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/runtime/index.d.ts +16 -0
- package/lib/typescript/commonjs/ui/runtime/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts +43 -0
- package/lib/typescript/commonjs/ui/runtime/runtimeContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/runtime/types.d.ts +89 -0
- package/lib/typescript/commonjs/ui/runtime/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
- package/lib/typescript/commonjs/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/server.d.ts +0 -1
- package/lib/typescript/commonjs/ui/server.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/authStore.d.ts +60 -9
- package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
- package/lib/typescript/commonjs/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/stores/authStore.d.ts +49 -5
- package/lib/typescript/commonjs/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts +8 -1
- package/lib/typescript/commonjs/ui/stores/followTargetStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +26 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts +2 -10
- package/lib/typescript/commonjs/ui/utils/avatarUtils.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +6 -4
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/boot/runProviderColdBoot.d.ts.map +1 -1
- package/lib/typescript/module/ui/client.d.ts +1 -2
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAccountDialogScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAuthChooser.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SurfaceScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts +11 -4
- package/lib/typescript/module/ui/components/authChooser/AccountsMenuView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts +3 -1
- package/lib/typescript/module/ui/components/authChooser/SignInEntryView.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts +18 -6
- package/lib/typescript/module/ui/components/authChooser/primitives.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/signInProgress.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/authChooser/types.d.ts +33 -1
- package/lib/typescript/module/ui/components/authChooser/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +35 -4
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +8 -12
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts +0 -2
- package/lib/typescript/module/ui/context/oxyContextHelpers.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts +9 -1
- package/lib/typescript/module/ui/context/oxyContextTypes.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts +1 -3
- package/lib/typescript/module/ui/context/useOxyAccountGraph.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts +15 -0
- package/lib/typescript/module/ui/hooks/accountDialogSnapshot.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts +49 -0
- package/lib/typescript/module/ui/hooks/useDeviceSwitcher.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useI18n.d.ts +13 -0
- package/lib/typescript/module/ui/hooks/useI18n.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts +23 -18
- package/lib/typescript/module/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts +1 -2
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts +15 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/surfaces.d.ts.map +1 -1
- package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts +144 -0
- package/lib/typescript/module/ui/runtime/createOxyRuntime.d.ts.map +1 -0
- package/lib/typescript/module/ui/runtime/index.d.ts +16 -0
- package/lib/typescript/module/ui/runtime/index.d.ts.map +1 -0
- package/lib/typescript/module/ui/runtime/runtimeContext.d.ts +43 -0
- package/lib/typescript/module/ui/runtime/runtimeContext.d.ts.map +1 -0
- package/lib/typescript/module/ui/runtime/types.d.ts +89 -0
- package/lib/typescript/module/ui/runtime/types.d.ts.map +1 -0
- package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts +23 -0
- package/lib/typescript/module/ui/runtime/useRuntimeSnapshot.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/AccountMembersScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/CreateAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/trust/TrustRulesScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/server.d.ts +0 -1
- package/lib/typescript/module/ui/server.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/authStore.d.ts +60 -9
- package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts +32 -0
- package/lib/typescript/module/ui/session/sharedDeviceCredentialStore.d.ts.map +1 -0
- package/lib/typescript/module/ui/stores/authStore.d.ts +49 -5
- package/lib/typescript/module/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts +8 -1
- package/lib/typescript/module/ui/stores/followTargetStore.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +26 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/avatarUtils.d.ts +2 -10
- package/lib/typescript/module/ui/utils/avatarUtils.d.ts.map +1 -1
- package/package.json +8 -8
- package/plugins/withSharedDeviceSessionProvider.js +102 -0
- package/plugins/withSharedDeviceSessionReader.js +57 -0
- package/src/__tests__/esmSourcePurity.test.ts +61 -0
- package/src/index.ts +36 -9
- package/src/ui/boot/runProviderColdBoot.ts +7 -0
- package/src/ui/client.ts +1 -2
- package/src/ui/components/OxyAccountDialogScreen.tsx +10 -29
- package/src/ui/components/OxyAuthChooser.tsx +149 -50
- package/src/ui/components/OxyProvider.tsx +7 -5
- package/src/ui/components/SurfaceScreen.tsx +28 -4
- package/src/ui/components/__tests__/followTargetButton.test.ts +39 -0
- package/src/ui/components/authChooser/AccountsMenuView.tsx +246 -96
- package/src/ui/components/authChooser/SignInEntryView.tsx +31 -8
- package/src/ui/components/authChooser/primitives.tsx +37 -23
- package/src/ui/components/authChooser/signInProgress.ts +4 -0
- package/src/ui/components/authChooser/types.ts +34 -1
- package/src/ui/context/OxyContext.tsx +269 -324
- package/src/ui/context/hooks/useAuthOperations.ts +32 -35
- package/src/ui/context/oxyContextHelpers.ts +0 -30
- package/src/ui/context/oxyContextTypes.ts +9 -1
- package/src/ui/context/useOxyAccountGraph.ts +5 -19
- package/src/ui/hooks/accountDialogSnapshot.ts +37 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +0 -19
- package/src/ui/hooks/queries/__tests__/userCache.test.ts +12 -1
- package/src/ui/hooks/useDeviceSwitcher.ts +110 -0
- package/src/ui/hooks/useI18n.ts +23 -3
- package/src/ui/hooks/useSessionManagement.ts +62 -211
- package/src/ui/index.ts +1 -2
- package/src/ui/navigation/routes.ts +85 -75
- package/src/ui/navigation/surfaces.ts +6 -9
- package/src/ui/runtime/createOxyRuntime.ts +623 -0
- package/src/ui/runtime/index.ts +34 -0
- package/src/ui/runtime/runtimeContext.tsx +111 -0
- package/src/ui/runtime/types.ts +110 -0
- package/src/ui/runtime/useRuntimeSnapshot.ts +52 -0
- package/src/ui/screens/AccountMembersScreen.tsx +6 -5
- package/src/ui/screens/CreateAccountScreen.tsx +3 -16
- package/src/ui/screens/trust/TrustCenterScreen.tsx +7 -7
- package/src/ui/screens/trust/TrustLeaderboardScreen.tsx +4 -5
- package/src/ui/screens/trust/TrustRewardsScreen.tsx +1 -1
- package/src/ui/screens/trust/TrustRulesScreen.tsx +3 -2
- package/src/ui/server.ts +0 -1
- package/src/ui/session/__tests__/authStore.test.ts +90 -0
- package/src/ui/session/__tests__/sharedDeviceCredentialStore.test.ts +289 -0
- package/src/ui/session/authStore.ts +78 -9
- package/src/ui/session/sharedDeviceCredentialStore.ts +318 -0
- package/src/ui/stores/authStore.ts +171 -43
- package/src/ui/stores/followTargetStore.ts +24 -1
- package/src/ui/types/navigation.ts +26 -0
- package/src/ui/utils/avatarUtils.ts +2 -37
- package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +0 -64
- package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +0 -1
- package/lib/commonjs/ui/screens/trust/trustTier.js +0 -23
- package/lib/commonjs/ui/screens/trust/trustTier.js.map +0 -1
- package/lib/commonjs/ui/stores/accountStore.js +0 -221
- package/lib/commonjs/ui/stores/accountStore.js.map +0 -1
- package/lib/module/ui/hooks/useSwitchableAccounts.js +0 -60
- package/lib/module/ui/hooks/useSwitchableAccounts.js.map +0 -1
- package/lib/module/ui/screens/trust/trustTier.js +0 -19
- package/lib/module/ui/screens/trust/trustTier.js.map +0 -1
- package/lib/module/ui/stores/accountStore.js +0 -213
- package/lib/module/ui/stores/accountStore.js.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +0 -23
- package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts +0 -9
- package/lib/typescript/commonjs/ui/screens/trust/trustTier.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/stores/accountStore.d.ts +0 -27
- package/lib/typescript/commonjs/ui/stores/accountStore.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +0 -23
- package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/trust/trustTier.d.ts +0 -9
- package/lib/typescript/module/ui/screens/trust/trustTier.d.ts.map +0 -1
- package/lib/typescript/module/ui/stores/accountStore.d.ts +0 -27
- package/lib/typescript/module/ui/stores/accountStore.d.ts.map +0 -1
- package/src/ui/hooks/useSwitchableAccounts.ts +0 -75
- package/src/ui/screens/trust/trustTier.ts +0 -20
- package/src/ui/stores/accountStore.ts +0 -264
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useSwitchableAccounts = useSwitchableAccounts;
|
|
7
|
-
var _react = require("react");
|
|
8
|
-
var _OxyContext = require("../context/OxyContext.js");
|
|
9
|
-
/**
|
|
10
|
-
* Stable empty snapshot for the no-provider loading state, so `useSyncExternalStore`
|
|
11
|
-
* always has a getSnapshot that returns a constant reference before mount.
|
|
12
|
-
*/
|
|
13
|
-
const EMPTY_SNAPSHOT = {
|
|
14
|
-
view: 'accounts',
|
|
15
|
-
accounts: [],
|
|
16
|
-
activeAccountId: null,
|
|
17
|
-
loading: false,
|
|
18
|
-
error: null,
|
|
19
|
-
switchingAccountId: null,
|
|
20
|
-
signIn: {
|
|
21
|
-
phase: 'idle',
|
|
22
|
-
authorizeCode: null,
|
|
23
|
-
qrPayload: null,
|
|
24
|
-
expiresAt: null,
|
|
25
|
-
error: null,
|
|
26
|
-
route: null,
|
|
27
|
-
routeFailed: false,
|
|
28
|
-
pushSentAt: null,
|
|
29
|
-
openedAt: null,
|
|
30
|
-
progress: 'idle'
|
|
31
|
-
},
|
|
32
|
-
commonsAvailability: 'unknown'
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Every account the signed-in user can switch into — device sign-ins AND linked
|
|
37
|
-
* graph accounts (owned orgs + shared-with-you) — as one flat, deduped list with
|
|
38
|
-
* real per-account name / email / avatar / color.
|
|
39
|
-
*
|
|
40
|
-
* This is a thin binding over the shared `AccountDialogController` in
|
|
41
|
-
* `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
|
|
42
|
-
* so there is ONE projection (`projectSwitchableAccounts`) and one switch path
|
|
43
|
-
* (`controller.switchTo`) across the whole SDK — the local duplicate projection
|
|
44
|
-
* this hook used to own has been removed. Every switch routes through
|
|
45
|
-
* `useOxy().switchToAccount(accountId)` (or the dialog's row press).
|
|
46
|
-
*/
|
|
47
|
-
function useSwitchableAccounts() {
|
|
48
|
-
const {
|
|
49
|
-
accountDialogController: controller
|
|
50
|
-
} = (0, _OxyContext.useOxy)();
|
|
51
|
-
const subscribe = (0, _react.useCallback)(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
|
|
52
|
-
const getSnapshot = (0, _react.useCallback)(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
|
|
53
|
-
const snapshot = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
54
|
-
const currentSessionId = (0, _react.useMemo)(() => {
|
|
55
|
-
const active = snapshot.accounts.find(account => account.accountId === snapshot.activeAccountId);
|
|
56
|
-
return active?.sessionId ?? null;
|
|
57
|
-
}, [snapshot]);
|
|
58
|
-
return {
|
|
59
|
-
accounts: snapshot.accounts,
|
|
60
|
-
isLoading: snapshot.loading,
|
|
61
|
-
currentSessionId
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=useSwitchableAccounts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_OxyContext","EMPTY_SNAPSHOT","view","accounts","activeAccountId","loading","error","switchingAccountId","signIn","phase","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability","useSwitchableAccounts","accountDialogController","controller","useOxy","subscribe","useCallback","listener","undefined","getSnapshot","snapshot","useSyncExternalStore","currentSessionId","useMemo","active","find","account","accountId","sessionId","isLoading"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSwitchableAccounts.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AAWA;AACA;AACA;AACA;AACA,MAAME,cAAqC,GAAG;EAC1CC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,EAAE;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,kBAAkB,EAAE,IAAI;EACxBC,MAAM,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfN,KAAK,EAAE,IAAI;IACXO,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE;EACd,CAAC;EACDC,mBAAmB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAAA,EAAgC;EACjE,MAAM;IAAEC,uBAAuB,EAAEC;EAAW,CAAC,GAAG,IAAAC,kBAAM,EAAC,CAAC;EAExD,MAAMC,SAAS,GAAG,IAAAC,kBAAW,EACxBC,QAAoB,IAAMJ,UAAU,GAAGA,UAAU,CAACE,SAAS,CAACE,QAAQ,CAAC,GAAG,MAAMC,SAAU,EACzF,CAACL,UAAU,CACf,CAAC;EACD,MAAMM,WAAW,GAAG,IAAAH,kBAAW,EAC3B,MAAOH,UAAU,GAAGA,UAAU,CAACM,WAAW,CAAC,CAAC,GAAG1B,cAAe,EAC9D,CAACoB,UAAU,CACf,CAAC;EACD,MAAMO,QAAQ,GAAG,IAAAC,2BAAoB,EAACN,SAAS,EAAEI,WAAW,EAAEA,WAAW,CAAC;EAE1E,MAAMG,gBAAgB,GAAG,IAAAC,cAAO,EAAgB,MAAM;IAClD,MAAMC,MAAM,GAAGJ,QAAQ,CAACzB,QAAQ,CAAC8B,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKP,QAAQ,CAACxB,eAAe,CAAC;IAClG,OAAO4B,MAAM,EAAEI,SAAS,IAAI,IAAI;EACpC,CAAC,EAAE,CAACR,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHzB,QAAQ,EAAEyB,QAAQ,CAACzB,QAAQ;IAC3BkC,SAAS,EAAET,QAAQ,CAACvB,OAAO;IAC3ByB;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getTrustTierLabel = getTrustTierLabel;
|
|
7
|
-
/** Default English labels for each trust tier, used as i18n fallbacks. */
|
|
8
|
-
const TRUST_TIER_FALLBACK = {
|
|
9
|
-
new: 'New',
|
|
10
|
-
trusted: 'Trusted',
|
|
11
|
-
high_trust: 'High Trust',
|
|
12
|
-
verified: 'Verified',
|
|
13
|
-
restricted: 'Restricted'
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Resolve a human-readable label for a trust tier, preferring the localized
|
|
18
|
-
* `trust.tiers.<tier>` key and falling back to the canonical English label.
|
|
19
|
-
*/
|
|
20
|
-
function getTrustTierLabel(tier, t) {
|
|
21
|
-
return t(`trust.tiers.${tier}`) || TRUST_TIER_FALLBACK[tier];
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=trustTier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TRUST_TIER_FALLBACK","new","trusted","high_trust","verified","restricted","getTrustTierLabel","tier","t"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/trustTier.ts"],"mappings":";;;;;;AAIA;AACA,MAAMA,mBAA8C,GAAG;EACnDC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,IAAe,EAAEC,CAAY,EAAU;EACrE,OAAOA,CAAC,CAAC,eAAeD,IAAI,EAAE,CAAC,IAAIP,mBAAmB,CAACO,IAAI,CAAC;AAChE","ignoreList":[]}
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useAccounts = exports.useAccountStore = exports.useAccountLoadingSession = exports.useAccountLoading = exports.useAccountError = void 0;
|
|
7
|
-
var _zustand = require("zustand");
|
|
8
|
-
var _core = require("@oxyhq/core");
|
|
9
|
-
const initialState = {
|
|
10
|
-
accounts: {},
|
|
11
|
-
accountOrder: [],
|
|
12
|
-
accountsArray: [],
|
|
13
|
-
loading: false,
|
|
14
|
-
loadingSessionIds: new Set(),
|
|
15
|
-
error: null
|
|
16
|
-
};
|
|
17
|
-
const useAccountStore = exports.useAccountStore = (0, _zustand.create)((set, get) => ({
|
|
18
|
-
...initialState,
|
|
19
|
-
setAccounts: accounts => set(state => {
|
|
20
|
-
const accountMap = {};
|
|
21
|
-
const order = [];
|
|
22
|
-
const seenSessionIds = new Set();
|
|
23
|
-
for (const account of accounts) {
|
|
24
|
-
if (seenSessionIds.has(account.sessionId)) continue;
|
|
25
|
-
seenSessionIds.add(account.sessionId);
|
|
26
|
-
accountMap[account.sessionId] = account;
|
|
27
|
-
order.push(account.sessionId);
|
|
28
|
-
}
|
|
29
|
-
const accountsArray = (0, _core.buildAccountsArray)(accountMap, order);
|
|
30
|
-
const sameOrder = order.length === state.accountOrder.length && order.every((id, i) => id === state.accountOrder[i]);
|
|
31
|
-
const sameAccounts = sameOrder && order.every(id => {
|
|
32
|
-
const existing = state.accounts[id];
|
|
33
|
-
const newAccount = accountMap[id];
|
|
34
|
-
return existing && existing.sessionId === newAccount.sessionId && existing.userId === newAccount.userId && existing.avatar === newAccount.avatar && existing.avatarUrl === newAccount.avatarUrl;
|
|
35
|
-
});
|
|
36
|
-
if (sameAccounts) return {};
|
|
37
|
-
return {
|
|
38
|
-
accounts: accountMap,
|
|
39
|
-
accountOrder: order,
|
|
40
|
-
accountsArray
|
|
41
|
-
};
|
|
42
|
-
}),
|
|
43
|
-
addAccount: account => set(state => {
|
|
44
|
-
// Check if account with same sessionId exists
|
|
45
|
-
if (state.accounts[account.sessionId]) {
|
|
46
|
-
// Update existing
|
|
47
|
-
const existing = state.accounts[account.sessionId];
|
|
48
|
-
if (existing.avatar === account.avatar && existing.avatarUrl === account.avatarUrl) {
|
|
49
|
-
return {}; // No change
|
|
50
|
-
}
|
|
51
|
-
const newAccounts = {
|
|
52
|
-
...state.accounts,
|
|
53
|
-
[account.sessionId]: account
|
|
54
|
-
};
|
|
55
|
-
return {
|
|
56
|
-
accounts: newAccounts,
|
|
57
|
-
accountsArray: (0, _core.buildAccountsArray)(newAccounts, state.accountOrder)
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
const newAccounts = {
|
|
61
|
-
...state.accounts,
|
|
62
|
-
[account.sessionId]: account
|
|
63
|
-
};
|
|
64
|
-
const newOrder = [account.sessionId, ...state.accountOrder];
|
|
65
|
-
return {
|
|
66
|
-
accounts: newAccounts,
|
|
67
|
-
accountOrder: newOrder,
|
|
68
|
-
accountsArray: (0, _core.buildAccountsArray)(newAccounts, newOrder)
|
|
69
|
-
};
|
|
70
|
-
}),
|
|
71
|
-
updateAccount: (sessionId, updates) => set(state => {
|
|
72
|
-
const existing = state.accounts[sessionId];
|
|
73
|
-
if (!existing) return {};
|
|
74
|
-
const updated = {
|
|
75
|
-
...existing,
|
|
76
|
-
...updates
|
|
77
|
-
};
|
|
78
|
-
if (existing.avatar === updated.avatar && existing.avatarUrl === updated.avatarUrl) {
|
|
79
|
-
return {}; // No change
|
|
80
|
-
}
|
|
81
|
-
const newAccounts = {
|
|
82
|
-
...state.accounts,
|
|
83
|
-
[sessionId]: updated
|
|
84
|
-
};
|
|
85
|
-
return {
|
|
86
|
-
accounts: newAccounts,
|
|
87
|
-
accountsArray: (0, _core.buildAccountsArray)(newAccounts, state.accountOrder)
|
|
88
|
-
};
|
|
89
|
-
}),
|
|
90
|
-
removeAccount: sessionId => set(state => {
|
|
91
|
-
if (!state.accounts[sessionId]) return {};
|
|
92
|
-
const {
|
|
93
|
-
[sessionId]: _removed,
|
|
94
|
-
...rest
|
|
95
|
-
} = state.accounts;
|
|
96
|
-
const newOrder = state.accountOrder.filter(id => id !== sessionId);
|
|
97
|
-
return {
|
|
98
|
-
accounts: rest,
|
|
99
|
-
accountOrder: newOrder,
|
|
100
|
-
accountsArray: (0, _core.buildAccountsArray)(rest, newOrder)
|
|
101
|
-
};
|
|
102
|
-
}),
|
|
103
|
-
moveAccountToTop: sessionId => set(state => {
|
|
104
|
-
if (!state.accounts[sessionId]) return {};
|
|
105
|
-
const filtered = state.accountOrder.filter(id => id !== sessionId);
|
|
106
|
-
const newOrder = [sessionId, ...filtered];
|
|
107
|
-
return {
|
|
108
|
-
accountOrder: newOrder,
|
|
109
|
-
accountsArray: (0, _core.buildAccountsArray)(state.accounts, newOrder)
|
|
110
|
-
};
|
|
111
|
-
}),
|
|
112
|
-
setLoading: loading => set({
|
|
113
|
-
loading
|
|
114
|
-
}),
|
|
115
|
-
setLoadingSession: (sessionId, loading) => set(state => {
|
|
116
|
-
const newSet = new Set(state.loadingSessionIds);
|
|
117
|
-
if (loading) {
|
|
118
|
-
newSet.add(sessionId);
|
|
119
|
-
} else {
|
|
120
|
-
newSet.delete(sessionId);
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
loadingSessionIds: newSet
|
|
124
|
-
};
|
|
125
|
-
}),
|
|
126
|
-
setError: error => set({
|
|
127
|
-
error
|
|
128
|
-
}),
|
|
129
|
-
loadAccounts: async (sessionIds, oxyServices, existingAccounts = [], preserveOrder = true) => {
|
|
130
|
-
const state = get();
|
|
131
|
-
const uniqueSessionIds = Array.from(new Set(sessionIds));
|
|
132
|
-
if (uniqueSessionIds.length === 0) {
|
|
133
|
-
get().setAccounts([]);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Try to get data from TanStack Query cache first
|
|
138
|
-
try {
|
|
139
|
-
// This will be called from a component, so we need to access queryClient differently
|
|
140
|
-
// For now, we'll keep the API call but optimize it
|
|
141
|
-
const existingMap = new Map(existingAccounts.map(a => [a.sessionId, a]));
|
|
142
|
-
for (const account of Object.values(state.accounts)) {
|
|
143
|
-
existingMap.set(account.sessionId, account);
|
|
144
|
-
}
|
|
145
|
-
const missingSessionIds = uniqueSessionIds.filter(id => !existingMap.has(id));
|
|
146
|
-
if (missingSessionIds.length === 0) {
|
|
147
|
-
const ordered = uniqueSessionIds.map(id => existingMap.get(id)).filter(acc => acc !== undefined);
|
|
148
|
-
get().setAccounts(ordered);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
if (state.loading) {
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
set({
|
|
155
|
-
loading: true,
|
|
156
|
-
error: null
|
|
157
|
-
});
|
|
158
|
-
try {
|
|
159
|
-
const batchResults = await oxyServices.getUsersBySessions(missingSessionIds);
|
|
160
|
-
const accountMap = new Map();
|
|
161
|
-
for (const {
|
|
162
|
-
sessionId,
|
|
163
|
-
user: userData
|
|
164
|
-
} of batchResults) {
|
|
165
|
-
if (userData && !accountMap.has(sessionId)) {
|
|
166
|
-
const existing = existingMap.get(sessionId);
|
|
167
|
-
accountMap.set(sessionId, (0, _core.createQuickAccount)(sessionId, userData, existing, (fileId, variant) => oxyServices.getFileDownloadUrl(fileId, variant)));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
for (const [sessionId, account] of accountMap) {
|
|
171
|
-
existingMap.set(sessionId, account);
|
|
172
|
-
}
|
|
173
|
-
const orderToUse = preserveOrder ? uniqueSessionIds : [...uniqueSessionIds, ...state.accountOrder];
|
|
174
|
-
const seen = new Set();
|
|
175
|
-
const ordered = [];
|
|
176
|
-
for (const sessionId of orderToUse) {
|
|
177
|
-
if (seen.has(sessionId)) continue;
|
|
178
|
-
seen.add(sessionId);
|
|
179
|
-
const account = existingMap.get(sessionId);
|
|
180
|
-
if (account) ordered.push(account);
|
|
181
|
-
}
|
|
182
|
-
get().setAccounts(ordered);
|
|
183
|
-
} catch (error) {
|
|
184
|
-
const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
|
|
185
|
-
if (__DEV__) {
|
|
186
|
-
console.error('AccountStore: Failed to load accounts:', error);
|
|
187
|
-
}
|
|
188
|
-
set({
|
|
189
|
-
error: errorMessage
|
|
190
|
-
});
|
|
191
|
-
} finally {
|
|
192
|
-
set({
|
|
193
|
-
loading: false
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
} catch (error) {
|
|
197
|
-
const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
|
|
198
|
-
if (__DEV__) {
|
|
199
|
-
console.error('AccountStore: Failed to load accounts:', error);
|
|
200
|
-
}
|
|
201
|
-
set({
|
|
202
|
-
error: errorMessage,
|
|
203
|
-
loading: false
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
reset: () => set(initialState)
|
|
208
|
-
}));
|
|
209
|
-
|
|
210
|
-
// Selectors for performance - return cached array to prevent infinite loops
|
|
211
|
-
const useAccounts = () => {
|
|
212
|
-
return useAccountStore(state => state.accountsArray);
|
|
213
|
-
};
|
|
214
|
-
exports.useAccounts = useAccounts;
|
|
215
|
-
const useAccountLoading = () => useAccountStore(s => s.loading);
|
|
216
|
-
exports.useAccountLoading = useAccountLoading;
|
|
217
|
-
const useAccountError = () => useAccountStore(s => s.error);
|
|
218
|
-
exports.useAccountError = useAccountError;
|
|
219
|
-
const useAccountLoadingSession = sessionId => useAccountStore(s => s.loadingSessionIds.has(sessionId));
|
|
220
|
-
exports.useAccountLoadingSession = useAccountLoadingSession;
|
|
221
|
-
//# sourceMappingURL=accountStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","_core","initialState","accounts","accountOrder","accountsArray","loading","loadingSessionIds","Set","error","useAccountStore","exports","create","set","get","setAccounts","state","accountMap","order","seenSessionIds","account","has","sessionId","add","push","buildAccountsArray","sameOrder","length","every","id","i","sameAccounts","existing","newAccount","userId","avatar","avatarUrl","addAccount","newAccounts","newOrder","updateAccount","updates","updated","removeAccount","_removed","rest","filter","moveAccountToTop","filtered","setLoading","setLoadingSession","newSet","delete","setError","loadAccounts","sessionIds","oxyServices","existingAccounts","preserveOrder","uniqueSessionIds","Array","from","existingMap","Map","map","a","Object","values","missingSessionIds","ordered","acc","undefined","batchResults","getUsersBySessions","user","userData","createQuickAccount","fileId","variant","getFileDownloadUrl","orderToUse","seen","errorMessage","Error","message","__DEV__","console","reset","useAccounts","useAccountLoading","s","useAccountError","useAccountLoadingSession"],"sourceRoot":"../../../../src","sources":["ui/stores/accountStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { useCallback, useMemo, useSyncExternalStore } from 'react';
|
|
4
|
-
import { useOxy } from "../context/OxyContext.js";
|
|
5
|
-
/**
|
|
6
|
-
* Stable empty snapshot for the no-provider loading state, so `useSyncExternalStore`
|
|
7
|
-
* always has a getSnapshot that returns a constant reference before mount.
|
|
8
|
-
*/
|
|
9
|
-
const EMPTY_SNAPSHOT = {
|
|
10
|
-
view: 'accounts',
|
|
11
|
-
accounts: [],
|
|
12
|
-
activeAccountId: null,
|
|
13
|
-
loading: false,
|
|
14
|
-
error: null,
|
|
15
|
-
switchingAccountId: null,
|
|
16
|
-
signIn: {
|
|
17
|
-
phase: 'idle',
|
|
18
|
-
authorizeCode: null,
|
|
19
|
-
qrPayload: null,
|
|
20
|
-
expiresAt: null,
|
|
21
|
-
error: null,
|
|
22
|
-
route: null,
|
|
23
|
-
routeFailed: false,
|
|
24
|
-
pushSentAt: null,
|
|
25
|
-
openedAt: null,
|
|
26
|
-
progress: 'idle'
|
|
27
|
-
},
|
|
28
|
-
commonsAvailability: 'unknown'
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Every account the signed-in user can switch into — device sign-ins AND linked
|
|
33
|
-
* graph accounts (owned orgs + shared-with-you) — as one flat, deduped list with
|
|
34
|
-
* real per-account name / email / avatar / color.
|
|
35
|
-
*
|
|
36
|
-
* This is a thin binding over the shared `AccountDialogController` in
|
|
37
|
-
* `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialogScreen} renders),
|
|
38
|
-
* so there is ONE projection (`projectSwitchableAccounts`) and one switch path
|
|
39
|
-
* (`controller.switchTo`) across the whole SDK — the local duplicate projection
|
|
40
|
-
* this hook used to own has been removed. Every switch routes through
|
|
41
|
-
* `useOxy().switchToAccount(accountId)` (or the dialog's row press).
|
|
42
|
-
*/
|
|
43
|
-
export function useSwitchableAccounts() {
|
|
44
|
-
const {
|
|
45
|
-
accountDialogController: controller
|
|
46
|
-
} = useOxy();
|
|
47
|
-
const subscribe = useCallback(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
|
|
48
|
-
const getSnapshot = useCallback(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
|
|
49
|
-
const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
50
|
-
const currentSessionId = useMemo(() => {
|
|
51
|
-
const active = snapshot.accounts.find(account => account.accountId === snapshot.activeAccountId);
|
|
52
|
-
return active?.sessionId ?? null;
|
|
53
|
-
}, [snapshot]);
|
|
54
|
-
return {
|
|
55
|
-
accounts: snapshot.accounts,
|
|
56
|
-
isLoading: snapshot.loading,
|
|
57
|
-
currentSessionId
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=useSwitchableAccounts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useSyncExternalStore","useOxy","EMPTY_SNAPSHOT","view","accounts","activeAccountId","loading","error","switchingAccountId","signIn","phase","authorizeCode","qrPayload","expiresAt","route","routeFailed","pushSentAt","openedAt","progress","commonsAvailability","useSwitchableAccounts","accountDialogController","controller","subscribe","listener","undefined","getSnapshot","snapshot","currentSessionId","active","find","account","accountId","sessionId","isLoading"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSwitchableAccounts.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,oBAAoB,QAAQ,OAAO;AAElE,SAASC,MAAM,QAAQ,0BAAuB;AAW9C;AACA;AACA;AACA;AACA,MAAMC,cAAqC,GAAG;EAC1CC,IAAI,EAAE,UAAU;EAChBC,QAAQ,EAAE,EAAE;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,kBAAkB,EAAE,IAAI;EACxBC,MAAM,EAAE;IACJC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,IAAI;IACnBC,SAAS,EAAE,IAAI;IACfC,SAAS,EAAE,IAAI;IACfN,KAAK,EAAE,IAAI;IACXO,KAAK,EAAE,IAAI;IACXC,WAAW,EAAE,KAAK;IAClBC,UAAU,EAAE,IAAI;IAChBC,QAAQ,EAAE,IAAI;IACdC,QAAQ,EAAE;EACd,CAAC;EACDC,mBAAmB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAA,EAAgC;EACjE,MAAM;IAAEC,uBAAuB,EAAEC;EAAW,CAAC,GAAGrB,MAAM,CAAC,CAAC;EAExD,MAAMsB,SAAS,GAAGzB,WAAW,CACxB0B,QAAoB,IAAMF,UAAU,GAAGA,UAAU,CAACC,SAAS,CAACC,QAAQ,CAAC,GAAG,MAAMC,SAAU,EACzF,CAACH,UAAU,CACf,CAAC;EACD,MAAMI,WAAW,GAAG5B,WAAW,CAC3B,MAAOwB,UAAU,GAAGA,UAAU,CAACI,WAAW,CAAC,CAAC,GAAGxB,cAAe,EAC9D,CAACoB,UAAU,CACf,CAAC;EACD,MAAMK,QAAQ,GAAG3B,oBAAoB,CAACuB,SAAS,EAAEG,WAAW,EAAEA,WAAW,CAAC;EAE1E,MAAME,gBAAgB,GAAG7B,OAAO,CAAgB,MAAM;IAClD,MAAM8B,MAAM,GAAGF,QAAQ,CAACvB,QAAQ,CAAC0B,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKL,QAAQ,CAACtB,eAAe,CAAC;IAClG,OAAOwB,MAAM,EAAEI,SAAS,IAAI,IAAI;EACpC,CAAC,EAAE,CAACN,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHvB,QAAQ,EAAEuB,QAAQ,CAACvB,QAAQ;IAC3B8B,SAAS,EAAEP,QAAQ,CAACrB,OAAO;IAC3BsB;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/** Default English labels for each trust tier, used as i18n fallbacks. */
|
|
4
|
-
const TRUST_TIER_FALLBACK = {
|
|
5
|
-
new: 'New',
|
|
6
|
-
trusted: 'Trusted',
|
|
7
|
-
high_trust: 'High Trust',
|
|
8
|
-
verified: 'Verified',
|
|
9
|
-
restricted: 'Restricted'
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Resolve a human-readable label for a trust tier, preferring the localized
|
|
14
|
-
* `trust.tiers.<tier>` key and falling back to the canonical English label.
|
|
15
|
-
*/
|
|
16
|
-
export function getTrustTierLabel(tier, t) {
|
|
17
|
-
return t(`trust.tiers.${tier}`) || TRUST_TIER_FALLBACK[tier];
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=trustTier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["TRUST_TIER_FALLBACK","new","trusted","high_trust","verified","restricted","getTrustTierLabel","tier","t"],"sourceRoot":"../../../../../src","sources":["ui/screens/trust/trustTier.ts"],"mappings":";;AAIA;AACA,MAAMA,mBAA8C,GAAG;EACnDC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,UAAU,EAAE,YAAY;EACxBC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,IAAe,EAAEC,CAAY,EAAU;EACrE,OAAOA,CAAC,CAAC,eAAeD,IAAI,EAAE,CAAC,IAAIP,mBAAmB,CAACO,IAAI,CAAC;AAChE","ignoreList":[]}
|
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { create } from 'zustand';
|
|
4
|
-
import { buildAccountsArray, createQuickAccount } from '@oxyhq/core';
|
|
5
|
-
const initialState = {
|
|
6
|
-
accounts: {},
|
|
7
|
-
accountOrder: [],
|
|
8
|
-
accountsArray: [],
|
|
9
|
-
loading: false,
|
|
10
|
-
loadingSessionIds: new Set(),
|
|
11
|
-
error: null
|
|
12
|
-
};
|
|
13
|
-
export const useAccountStore = create((set, get) => ({
|
|
14
|
-
...initialState,
|
|
15
|
-
setAccounts: accounts => set(state => {
|
|
16
|
-
const accountMap = {};
|
|
17
|
-
const order = [];
|
|
18
|
-
const seenSessionIds = new Set();
|
|
19
|
-
for (const account of accounts) {
|
|
20
|
-
if (seenSessionIds.has(account.sessionId)) continue;
|
|
21
|
-
seenSessionIds.add(account.sessionId);
|
|
22
|
-
accountMap[account.sessionId] = account;
|
|
23
|
-
order.push(account.sessionId);
|
|
24
|
-
}
|
|
25
|
-
const accountsArray = buildAccountsArray(accountMap, order);
|
|
26
|
-
const sameOrder = order.length === state.accountOrder.length && order.every((id, i) => id === state.accountOrder[i]);
|
|
27
|
-
const sameAccounts = sameOrder && order.every(id => {
|
|
28
|
-
const existing = state.accounts[id];
|
|
29
|
-
const newAccount = accountMap[id];
|
|
30
|
-
return existing && existing.sessionId === newAccount.sessionId && existing.userId === newAccount.userId && existing.avatar === newAccount.avatar && existing.avatarUrl === newAccount.avatarUrl;
|
|
31
|
-
});
|
|
32
|
-
if (sameAccounts) return {};
|
|
33
|
-
return {
|
|
34
|
-
accounts: accountMap,
|
|
35
|
-
accountOrder: order,
|
|
36
|
-
accountsArray
|
|
37
|
-
};
|
|
38
|
-
}),
|
|
39
|
-
addAccount: account => set(state => {
|
|
40
|
-
// Check if account with same sessionId exists
|
|
41
|
-
if (state.accounts[account.sessionId]) {
|
|
42
|
-
// Update existing
|
|
43
|
-
const existing = state.accounts[account.sessionId];
|
|
44
|
-
if (existing.avatar === account.avatar && existing.avatarUrl === account.avatarUrl) {
|
|
45
|
-
return {}; // No change
|
|
46
|
-
}
|
|
47
|
-
const newAccounts = {
|
|
48
|
-
...state.accounts,
|
|
49
|
-
[account.sessionId]: account
|
|
50
|
-
};
|
|
51
|
-
return {
|
|
52
|
-
accounts: newAccounts,
|
|
53
|
-
accountsArray: buildAccountsArray(newAccounts, state.accountOrder)
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
const newAccounts = {
|
|
57
|
-
...state.accounts,
|
|
58
|
-
[account.sessionId]: account
|
|
59
|
-
};
|
|
60
|
-
const newOrder = [account.sessionId, ...state.accountOrder];
|
|
61
|
-
return {
|
|
62
|
-
accounts: newAccounts,
|
|
63
|
-
accountOrder: newOrder,
|
|
64
|
-
accountsArray: buildAccountsArray(newAccounts, newOrder)
|
|
65
|
-
};
|
|
66
|
-
}),
|
|
67
|
-
updateAccount: (sessionId, updates) => set(state => {
|
|
68
|
-
const existing = state.accounts[sessionId];
|
|
69
|
-
if (!existing) return {};
|
|
70
|
-
const updated = {
|
|
71
|
-
...existing,
|
|
72
|
-
...updates
|
|
73
|
-
};
|
|
74
|
-
if (existing.avatar === updated.avatar && existing.avatarUrl === updated.avatarUrl) {
|
|
75
|
-
return {}; // No change
|
|
76
|
-
}
|
|
77
|
-
const newAccounts = {
|
|
78
|
-
...state.accounts,
|
|
79
|
-
[sessionId]: updated
|
|
80
|
-
};
|
|
81
|
-
return {
|
|
82
|
-
accounts: newAccounts,
|
|
83
|
-
accountsArray: buildAccountsArray(newAccounts, state.accountOrder)
|
|
84
|
-
};
|
|
85
|
-
}),
|
|
86
|
-
removeAccount: sessionId => set(state => {
|
|
87
|
-
if (!state.accounts[sessionId]) return {};
|
|
88
|
-
const {
|
|
89
|
-
[sessionId]: _removed,
|
|
90
|
-
...rest
|
|
91
|
-
} = state.accounts;
|
|
92
|
-
const newOrder = state.accountOrder.filter(id => id !== sessionId);
|
|
93
|
-
return {
|
|
94
|
-
accounts: rest,
|
|
95
|
-
accountOrder: newOrder,
|
|
96
|
-
accountsArray: buildAccountsArray(rest, newOrder)
|
|
97
|
-
};
|
|
98
|
-
}),
|
|
99
|
-
moveAccountToTop: sessionId => set(state => {
|
|
100
|
-
if (!state.accounts[sessionId]) return {};
|
|
101
|
-
const filtered = state.accountOrder.filter(id => id !== sessionId);
|
|
102
|
-
const newOrder = [sessionId, ...filtered];
|
|
103
|
-
return {
|
|
104
|
-
accountOrder: newOrder,
|
|
105
|
-
accountsArray: buildAccountsArray(state.accounts, newOrder)
|
|
106
|
-
};
|
|
107
|
-
}),
|
|
108
|
-
setLoading: loading => set({
|
|
109
|
-
loading
|
|
110
|
-
}),
|
|
111
|
-
setLoadingSession: (sessionId, loading) => set(state => {
|
|
112
|
-
const newSet = new Set(state.loadingSessionIds);
|
|
113
|
-
if (loading) {
|
|
114
|
-
newSet.add(sessionId);
|
|
115
|
-
} else {
|
|
116
|
-
newSet.delete(sessionId);
|
|
117
|
-
}
|
|
118
|
-
return {
|
|
119
|
-
loadingSessionIds: newSet
|
|
120
|
-
};
|
|
121
|
-
}),
|
|
122
|
-
setError: error => set({
|
|
123
|
-
error
|
|
124
|
-
}),
|
|
125
|
-
loadAccounts: async (sessionIds, oxyServices, existingAccounts = [], preserveOrder = true) => {
|
|
126
|
-
const state = get();
|
|
127
|
-
const uniqueSessionIds = Array.from(new Set(sessionIds));
|
|
128
|
-
if (uniqueSessionIds.length === 0) {
|
|
129
|
-
get().setAccounts([]);
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// Try to get data from TanStack Query cache first
|
|
134
|
-
try {
|
|
135
|
-
// This will be called from a component, so we need to access queryClient differently
|
|
136
|
-
// For now, we'll keep the API call but optimize it
|
|
137
|
-
const existingMap = new Map(existingAccounts.map(a => [a.sessionId, a]));
|
|
138
|
-
for (const account of Object.values(state.accounts)) {
|
|
139
|
-
existingMap.set(account.sessionId, account);
|
|
140
|
-
}
|
|
141
|
-
const missingSessionIds = uniqueSessionIds.filter(id => !existingMap.has(id));
|
|
142
|
-
if (missingSessionIds.length === 0) {
|
|
143
|
-
const ordered = uniqueSessionIds.map(id => existingMap.get(id)).filter(acc => acc !== undefined);
|
|
144
|
-
get().setAccounts(ordered);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
if (state.loading) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
set({
|
|
151
|
-
loading: true,
|
|
152
|
-
error: null
|
|
153
|
-
});
|
|
154
|
-
try {
|
|
155
|
-
const batchResults = await oxyServices.getUsersBySessions(missingSessionIds);
|
|
156
|
-
const accountMap = new Map();
|
|
157
|
-
for (const {
|
|
158
|
-
sessionId,
|
|
159
|
-
user: userData
|
|
160
|
-
} of batchResults) {
|
|
161
|
-
if (userData && !accountMap.has(sessionId)) {
|
|
162
|
-
const existing = existingMap.get(sessionId);
|
|
163
|
-
accountMap.set(sessionId, createQuickAccount(sessionId, userData, existing, (fileId, variant) => oxyServices.getFileDownloadUrl(fileId, variant)));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
for (const [sessionId, account] of accountMap) {
|
|
167
|
-
existingMap.set(sessionId, account);
|
|
168
|
-
}
|
|
169
|
-
const orderToUse = preserveOrder ? uniqueSessionIds : [...uniqueSessionIds, ...state.accountOrder];
|
|
170
|
-
const seen = new Set();
|
|
171
|
-
const ordered = [];
|
|
172
|
-
for (const sessionId of orderToUse) {
|
|
173
|
-
if (seen.has(sessionId)) continue;
|
|
174
|
-
seen.add(sessionId);
|
|
175
|
-
const account = existingMap.get(sessionId);
|
|
176
|
-
if (account) ordered.push(account);
|
|
177
|
-
}
|
|
178
|
-
get().setAccounts(ordered);
|
|
179
|
-
} catch (error) {
|
|
180
|
-
const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
|
|
181
|
-
if (__DEV__) {
|
|
182
|
-
console.error('AccountStore: Failed to load accounts:', error);
|
|
183
|
-
}
|
|
184
|
-
set({
|
|
185
|
-
error: errorMessage
|
|
186
|
-
});
|
|
187
|
-
} finally {
|
|
188
|
-
set({
|
|
189
|
-
loading: false
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
} catch (error) {
|
|
193
|
-
const errorMessage = error instanceof Error ? error.message : 'Failed to load accounts';
|
|
194
|
-
if (__DEV__) {
|
|
195
|
-
console.error('AccountStore: Failed to load accounts:', error);
|
|
196
|
-
}
|
|
197
|
-
set({
|
|
198
|
-
error: errorMessage,
|
|
199
|
-
loading: false
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
reset: () => set(initialState)
|
|
204
|
-
}));
|
|
205
|
-
|
|
206
|
-
// Selectors for performance - return cached array to prevent infinite loops
|
|
207
|
-
export const useAccounts = () => {
|
|
208
|
-
return useAccountStore(state => state.accountsArray);
|
|
209
|
-
};
|
|
210
|
-
export const useAccountLoading = () => useAccountStore(s => s.loading);
|
|
211
|
-
export const useAccountError = () => useAccountStore(s => s.error);
|
|
212
|
-
export const useAccountLoadingSession = sessionId => useAccountStore(s => s.loadingSessionIds.has(sessionId));
|
|
213
|
-
//# sourceMappingURL=accountStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["create","buildAccountsArray","createQuickAccount","initialState","accounts","accountOrder","accountsArray","loading","loadingSessionIds","Set","error","useAccountStore","set","get","setAccounts","state","accountMap","order","seenSessionIds","account","has","sessionId","add","push","sameOrder","length","every","id","i","sameAccounts","existing","newAccount","userId","avatar","avatarUrl","addAccount","newAccounts","newOrder","updateAccount","updates","updated","removeAccount","_removed","rest","filter","moveAccountToTop","filtered","setLoading","setLoadingSession","newSet","delete","setError","loadAccounts","sessionIds","oxyServices","existingAccounts","preserveOrder","uniqueSessionIds","Array","from","existingMap","Map","map","a","Object","values","missingSessionIds","ordered","acc","undefined","batchResults","getUsersBySessions","user","userData","fileId","variant","getFileDownloadUrl","orderToUse","seen","errorMessage","Error","message","__DEV__","console","reset","useAccounts","useAccountLoading","s","useAccountError","useAccountLoadingSession"],"sourceRoot":"../../../../src","sources":["ui/stores/accountStore.ts"],"mappings":"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","ignoreList":[]}
|