@oxyhq/services 15.0.0 → 17.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/lib/commonjs/index.js +25 -55
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/client.js +0 -14
- package/lib/commonjs/ui/client.js.map +1 -1
- package/lib/commonjs/ui/components/OxyAccountDialog.js +764 -0
- package/lib/commonjs/ui/components/OxyAccountDialog.js.map +1 -0
- package/lib/commonjs/ui/components/OxyProvider.js +11 -6
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/OxySignInButton.js +10 -21
- package/lib/commonjs/ui/components/OxySignInButton.js.map +1 -1
- package/lib/commonjs/ui/components/ProfileButton.js +25 -112
- package/lib/commonjs/ui/components/ProfileButton.js.map +1 -1
- package/lib/commonjs/ui/components/RequireOxyAuth.js +299 -0
- package/lib/commonjs/ui/components/RequireOxyAuth.js.map +1 -0
- package/lib/commonjs/ui/context/OxyContext.js +106 -2
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +10 -10
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +1 -1
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +7 -8
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useAuth.js +19 -30
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSwitchableAccounts.js +37 -267
- package/lib/commonjs/ui/hooks/useSwitchableAccounts.js.map +1 -1
- package/lib/commonjs/ui/index.js +5 -40
- package/lib/commonjs/ui/index.js.map +1 -1
- package/lib/commonjs/ui/navigation/accountDialogManager.js +91 -0
- package/lib/commonjs/ui/navigation/accountDialogManager.js.map +1 -0
- package/lib/commonjs/ui/navigation/routes.js +0 -2
- package/lib/commonjs/ui/navigation/routes.js.map +1 -1
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js +17 -18
- package/lib/commonjs/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +4 -3
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/session/createSessionClient.js +10 -2
- package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
- package/lib/module/index.js +20 -17
- package/lib/module/index.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/OxyAccountDialog.js +761 -0
- package/lib/module/ui/components/OxyAccountDialog.js.map +1 -0
- package/lib/module/ui/components/OxyProvider.js +11 -6
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/OxySignInButton.js +10 -21
- package/lib/module/ui/components/OxySignInButton.js.map +1 -1
- package/lib/module/ui/components/ProfileButton.js +26 -112
- package/lib/module/ui/components/ProfileButton.js.map +1 -1
- package/lib/module/ui/components/RequireOxyAuth.js +294 -0
- package/lib/module/ui/components/RequireOxyAuth.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +107 -3
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +8 -8
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -1
- package/lib/module/ui/hooks/queries/queryKeys.js +1 -1
- package/lib/module/ui/hooks/queries/useAccountQueries.js +5 -6
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -1
- package/lib/module/ui/hooks/useAuth.js +19 -30
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/useSwitchableAccounts.js +38 -267
- package/lib/module/ui/hooks/useSwitchableAccounts.js.map +1 -1
- package/lib/module/ui/index.js +1 -5
- package/lib/module/ui/index.js.map +1 -1
- package/lib/module/ui/navigation/accountDialogManager.js +81 -0
- package/lib/module/ui/navigation/accountDialogManager.js.map +1 -0
- package/lib/module/ui/navigation/routes.js +0 -2
- package/lib/module/ui/navigation/routes.js.map +1 -1
- package/lib/module/ui/screens/ConnectedAppsScreen.js +19 -20
- package/lib/module/ui/screens/ConnectedAppsScreen.js.map +1 -1
- package/lib/module/ui/screens/ManageAccountScreen.js +4 -3
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/session/createSessionClient.js +10 -2
- package/lib/module/ui/session/createSessionClient.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +6 -13
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/client.d.ts +0 -4
- package/lib/typescript/commonjs/ui/client.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts +35 -0
- package/lib/typescript/commonjs/ui/components/OxyAccountDialog.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts +2 -2
- package/lib/typescript/commonjs/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts +11 -23
- package/lib/typescript/commonjs/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts +55 -0
- package/lib/typescript/commonjs/ui/components/RequireOxyAuth.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +13 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +4 -4
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts +6 -7
- package/lib/typescript/commonjs/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts +13 -152
- package/lib/typescript/commonjs/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/index.d.ts +2 -5
- package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts +49 -0
- package/lib/typescript/commonjs/ui/navigation/accountDialogManager.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/commonjs/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts +1 -1
- package/lib/typescript/commonjs/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +9 -2
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/types/navigation.d.ts +9 -0
- package/lib/typescript/commonjs/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts +7 -7
- package/lib/typescript/module/index.d.ts +6 -13
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/client.d.ts +0 -4
- package/lib/typescript/module/ui/client.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts +35 -0
- package/lib/typescript/module/ui/components/OxyAccountDialog.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/OxyProvider.d.ts +2 -2
- package/lib/typescript/module/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/OxySignInButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ProfileButton.d.ts +11 -23
- package/lib/typescript/module/ui/components/ProfileButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts +55 -0
- package/lib/typescript/module/ui/components/RequireOxyAuth.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/OxyContext.d.ts +13 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +4 -4
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts +6 -7
- package/lib/typescript/module/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useAuth.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts +13 -152
- package/lib/typescript/module/ui/hooks/useSwitchableAccounts.d.ts.map +1 -1
- package/lib/typescript/module/ui/index.d.ts +2 -5
- package/lib/typescript/module/ui/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts +49 -0
- package/lib/typescript/module/ui/navigation/accountDialogManager.d.ts.map +1 -0
- package/lib/typescript/module/ui/navigation/routes.d.ts +1 -1
- package/lib/typescript/module/ui/navigation/routes.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ConnectedAppsScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts +1 -1
- package/lib/typescript/module/ui/screens/ManageAccountScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/createSessionClient.d.ts +9 -2
- package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/types/navigation.d.ts +9 -0
- package/lib/typescript/module/ui/types/navigation.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/storageHelpers.d.ts +7 -7
- package/package.json +4 -4
- package/src/index.ts +23 -28
- package/src/ui/client.ts +0 -4
- package/src/ui/components/OxyAccountDialog.tsx +760 -0
- package/src/ui/components/OxyProvider.tsx +12 -6
- package/src/ui/components/OxySignInButton.tsx +10 -21
- package/src/ui/components/ProfileButton.tsx +23 -126
- package/src/ui/components/RequireOxyAuth.tsx +266 -0
- package/src/ui/context/OxyContext.tsx +146 -7
- package/src/ui/hooks/mutations/mutationKeys.ts +1 -1
- package/src/ui/hooks/mutations/useAccountMutations.ts +8 -8
- package/src/ui/hooks/queries/queryKeys.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +8 -9
- package/src/ui/hooks/useAuth.ts +19 -31
- package/src/ui/hooks/useSwitchableAccounts.ts +42 -376
- package/src/ui/index.ts +2 -5
- package/src/ui/navigation/accountDialogManager.ts +84 -0
- package/src/ui/navigation/routes.ts +1 -5
- package/src/ui/screens/ConnectedAppsScreen.tsx +23 -24
- package/src/ui/screens/ManageAccountScreen.tsx +3 -2
- package/src/ui/session/createSessionClient.ts +9 -1
- package/src/ui/types/navigation.ts +9 -0
- package/src/ui/utils/storageHelpers.ts +7 -7
- package/lib/commonjs/ui/components/AccountMenu.js +0 -598
- package/lib/commonjs/ui/components/AccountMenu.js.map +0 -1
- package/lib/commonjs/ui/components/AccountMenuButton.js +0 -135
- package/lib/commonjs/ui/components/AccountMenuButton.js.map +0 -1
- package/lib/commonjs/ui/components/AccountSwitcher.js +0 -780
- package/lib/commonjs/ui/components/AccountSwitcher.js.map +0 -1
- package/lib/commonjs/ui/components/AnotherDeviceQR.js +0 -116
- package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +0 -1
- package/lib/commonjs/ui/components/ProfileMenu.js +0 -518
- package/lib/commonjs/ui/components/ProfileMenu.js.map +0 -1
- package/lib/commonjs/ui/components/SignInAccountChooser.js +0 -189
- package/lib/commonjs/ui/components/SignInAccountChooser.js.map +0 -1
- package/lib/commonjs/ui/components/SignInModal.js +0 -600
- package/lib/commonjs/ui/components/SignInModal.js.map +0 -1
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js +0 -501
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +0 -1
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js +0 -170
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js.map +0 -1
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +0 -51
- package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +0 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +0 -312
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +0 -1
- package/lib/commonjs/utils/deviceFlowSignIn.js +0 -109
- package/lib/commonjs/utils/deviceFlowSignIn.js.map +0 -1
- package/lib/module/ui/components/AccountMenu.js +0 -593
- package/lib/module/ui/components/AccountMenu.js.map +0 -1
- package/lib/module/ui/components/AccountMenuButton.js +0 -130
- package/lib/module/ui/components/AccountMenuButton.js.map +0 -1
- package/lib/module/ui/components/AccountSwitcher.js +0 -774
- package/lib/module/ui/components/AccountSwitcher.js.map +0 -1
- package/lib/module/ui/components/AnotherDeviceQR.js +0 -110
- package/lib/module/ui/components/AnotherDeviceQR.js.map +0 -1
- package/lib/module/ui/components/ProfileMenu.js +0 -514
- package/lib/module/ui/components/ProfileMenu.js.map +0 -1
- package/lib/module/ui/components/SignInAccountChooser.js +0 -183
- package/lib/module/ui/components/SignInAccountChooser.js.map +0 -1
- package/lib/module/ui/components/SignInModal.js +0 -591
- package/lib/module/ui/components/SignInModal.js.map +0 -1
- package/lib/module/ui/hooks/useOxyAuthSession.js +0 -495
- package/lib/module/ui/hooks/useOxyAuthSession.js.map +0 -1
- package/lib/module/ui/hooks/usePasswordSignIn.js +0 -165
- package/lib/module/ui/hooks/usePasswordSignIn.js.map +0 -1
- package/lib/module/ui/screens/AccountSwitcherScreen.js +0 -48
- package/lib/module/ui/screens/AccountSwitcherScreen.js.map +0 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +0 -306
- package/lib/module/ui/screens/OxyAuthScreen.js.map +0 -1
- package/lib/module/utils/deviceFlowSignIn.js +0 -106
- package/lib/module/utils/deviceFlowSignIn.js.map +0 -1
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts +0 -47
- package/lib/typescript/commonjs/ui/components/AccountMenu.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts +0 -26
- package/lib/typescript/commonjs/ui/components/AccountMenuButton.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts +0 -46
- package/lib/typescript/commonjs/ui/components/AccountSwitcher.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +0 -34
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts +0 -49
- package/lib/typescript/commonjs/ui/components/ProfileMenu.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts +0 -29
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +0 -28
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +0 -105
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts +0 -31
- package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts +0 -11
- package/lib/typescript/commonjs/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +0 -22
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +0 -97
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/AccountMenu.d.ts +0 -47
- package/lib/typescript/module/ui/components/AccountMenu.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/AccountMenuButton.d.ts +0 -26
- package/lib/typescript/module/ui/components/AccountMenuButton.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/AccountSwitcher.d.ts +0 -46
- package/lib/typescript/module/ui/components/AccountSwitcher.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +0 -34
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/ProfileMenu.d.ts +0 -49
- package/lib/typescript/module/ui/components/ProfileMenu.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts +0 -29
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts.map +0 -1
- package/lib/typescript/module/ui/components/SignInModal.d.ts +0 -28
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +0 -105
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts +0 -31
- package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts +0 -11
- package/lib/typescript/module/ui/screens/AccountSwitcherScreen.d.ts.map +0 -1
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +0 -22
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +0 -1
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +0 -97
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +0 -1
- package/src/ui/components/AccountMenu.tsx +0 -645
- package/src/ui/components/AccountMenuButton.tsx +0 -126
- package/src/ui/components/AccountSwitcher.tsx +0 -751
- package/src/ui/components/AnotherDeviceQR.tsx +0 -119
- package/src/ui/components/ProfileMenu.tsx +0 -564
- package/src/ui/components/SignInAccountChooser.tsx +0 -162
- package/src/ui/components/SignInModal.tsx +0 -530
- package/src/ui/hooks/useOxyAuthSession.ts +0 -635
- package/src/ui/hooks/usePasswordSignIn.ts +0 -207
- package/src/ui/screens/AccountSwitcherScreen.tsx +0 -43
- package/src/ui/screens/OxyAuthScreen.tsx +0 -324
- package/src/utils/__tests__/deviceFlowSignIn.test.ts +0 -231
- package/src/utils/deviceFlowSignIn.ts +0 -152
|
@@ -3,286 +3,56 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.buildSwitchableAccounts = buildSwitchableAccounts;
|
|
7
|
-
exports.markCurrentAccount = markCurrentAccount;
|
|
8
6
|
exports.useSwitchableAccounts = useSwitchableAccounts;
|
|
9
7
|
var _react = require("react");
|
|
10
|
-
var _reactQuery = require("@tanstack/react-query");
|
|
11
|
-
var _core = require("@oxyhq/core");
|
|
12
8
|
var _OxyContext = require("../context/OxyContext.js");
|
|
13
|
-
var _useI18n = require("./useI18n.js");
|
|
14
|
-
var _queryKeys = require("./queries/queryKeys.js");
|
|
15
9
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* active row), a profile resolved via `oxyServices.getUsersByIds()` (every other
|
|
19
|
-
* device row), or the `account` document embedded in an account-graph node.
|
|
10
|
+
* Stable empty snapshot for the no-provider loading state, so `useSyncExternalStore`
|
|
11
|
+
* always has a getSnapshot that returns a constant reference before mount.
|
|
20
12
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Resolve which entries are the current account, robustly.
|
|
37
|
-
*
|
|
38
|
-
* Primary signal: `entry.sessionId === activeSessionId` — both are projected
|
|
39
|
-
* from the same `SessionClient` state, so this normally matches exactly.
|
|
40
|
-
* Fallbacks exist only to bridge the brief window between the two sequential
|
|
41
|
-
* `updateSessions` / `setActiveSessionId` calls in `OxyContext.syncFromClient`,
|
|
42
|
-
* applied only when the `sessionId` match found nothing AND the user is
|
|
43
|
-
* authenticated:
|
|
44
|
-
* 1. Match the live `user.id` against each entry's per-account user id.
|
|
45
|
-
* 2. If still nothing and there is exactly one account, mark that one current.
|
|
46
|
-
*
|
|
47
|
-
* At most ONE entry is ever marked current. Runs over DEVICE rows only (graph
|
|
48
|
-
* rows are never active — the active account is always a device session), so the
|
|
49
|
-
* single-account fallback counts device rows.
|
|
50
|
-
*
|
|
51
|
-
* Pure & side-effect free so it is unit-testable without rendering React.
|
|
52
|
-
*/
|
|
53
|
-
function markCurrentAccount(accounts, activeSessionId, liveUserId, isAuthenticated) {
|
|
54
|
-
const bySession = accounts.map(account => ({
|
|
55
|
-
...account,
|
|
56
|
-
isCurrent: Boolean(activeSessionId) && account.sessionId === activeSessionId
|
|
57
|
-
}));
|
|
58
|
-
if (bySession.some(account => account.isCurrent) || !isAuthenticated) {
|
|
59
|
-
return bySession;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// No row matched by session id: fall back to the live user's id, marking at
|
|
63
|
-
// most the FIRST matching entry current (never more than one).
|
|
64
|
-
if (liveUserId) {
|
|
65
|
-
let matched = false;
|
|
66
|
-
const byUser = bySession.map(account => {
|
|
67
|
-
if (!matched && account.user.id === liveUserId) {
|
|
68
|
-
matched = true;
|
|
69
|
-
return {
|
|
70
|
-
...account,
|
|
71
|
-
isCurrent: true
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
return account;
|
|
75
|
-
});
|
|
76
|
-
if (matched) {
|
|
77
|
-
return byUser;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Authenticated, nothing matched, but there is exactly one account → it must
|
|
82
|
-
// be the current one.
|
|
83
|
-
if (bySession.length === 1) {
|
|
84
|
-
return [{
|
|
85
|
-
...bySession[0],
|
|
86
|
-
isCurrent: true
|
|
87
|
-
}];
|
|
88
|
-
}
|
|
89
|
-
return bySession;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Pure union of device sign-ins and account-graph nodes into the flat
|
|
94
|
-
* {@link SwitchableAccount}[] the switchers render. Extracted so the merge /
|
|
95
|
-
* dedup semantics are unit-testable without rendering React.
|
|
96
|
-
*
|
|
97
|
-
* Order: device rows first (in session order, current flagged), then graph-only
|
|
98
|
-
* rows (in graph order). An account present as BOTH a device session and a graph
|
|
99
|
-
* node is deduped into ONE device row enriched with the graph metadata
|
|
100
|
-
* (relationship / kind / parent / membership).
|
|
101
|
-
*/
|
|
102
|
-
function buildSwitchableAccounts(input) {
|
|
103
|
-
const {
|
|
104
|
-
sessions,
|
|
105
|
-
activeSessionId,
|
|
106
|
-
liveUser,
|
|
107
|
-
isAuthenticated,
|
|
108
|
-
graph,
|
|
109
|
-
profilesById,
|
|
110
|
-
locale,
|
|
111
|
-
resolveAvatarUrl
|
|
112
|
-
} = input;
|
|
113
|
-
|
|
114
|
-
// Nothing is switchable when signed out — never surface a lingering device
|
|
115
|
-
// session or graph node once the user is unauthenticated.
|
|
116
|
-
if (!isAuthenticated) {
|
|
117
|
-
return [];
|
|
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
|
|
118
26
|
}
|
|
119
|
-
|
|
120
|
-
const displayName = (0, _core.getAccountDisplayName)(accountUser, locale);
|
|
121
|
-
const handle = (0, _core.getAccountFallbackHandle)(accountUser);
|
|
122
|
-
const secondaryHandle = handle ? `@${handle}` : null;
|
|
123
|
-
return {
|
|
124
|
-
accountId: accountUser.id?.toString() ?? '',
|
|
125
|
-
sessionId: opts.sessionId,
|
|
126
|
-
authuser: opts.authuser,
|
|
127
|
-
isCurrent: Boolean(opts.sessionId) && opts.sessionId === activeSessionId,
|
|
128
|
-
onDevice: Boolean(opts.sessionId),
|
|
129
|
-
relationship: opts.relationship,
|
|
130
|
-
kind: opts.kind,
|
|
131
|
-
parentAccountId: opts.parentAccountId,
|
|
132
|
-
callerMembership: opts.callerMembership,
|
|
133
|
-
displayName,
|
|
134
|
-
// Real email, or the `@handle` fallback (NEVER synthesized).
|
|
135
|
-
email: accountUser.email ?? secondaryHandle,
|
|
136
|
-
avatarUrl: resolveAvatarUrl(accountUser.avatar),
|
|
137
|
-
color: accountUser.color ?? null,
|
|
138
|
-
user: accountUser
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// --- Device rows ---
|
|
143
|
-
const built = sessions.flatMap(session => {
|
|
144
|
-
const isCurrent = session.sessionId === activeSessionId;
|
|
145
|
-
// The active row always uses the live `user` — freshest available —
|
|
146
|
-
// regardless of whether the batch profile fetch has resolved yet.
|
|
147
|
-
const accountUser = isCurrent && liveUser ? liveUser : session.userId ? profilesById.get(session.userId) : undefined;
|
|
148
|
-
if (!accountUser) {
|
|
149
|
-
return [];
|
|
150
|
-
}
|
|
151
|
-
return [toRow(accountUser, {
|
|
152
|
-
sessionId: session.sessionId,
|
|
153
|
-
authuser: session.authuser
|
|
154
|
-
})];
|
|
155
|
-
});
|
|
156
|
-
const flagged = markCurrentAccount(built, activeSessionId, liveUser?.id ?? null, isAuthenticated);
|
|
157
|
-
|
|
158
|
-
// The signed-in user must ALWAYS be represented, even before the device
|
|
159
|
-
// session set has synced (e.g. immediately after cold boot). Synthesize a
|
|
160
|
-
// single current row from the live `useOxy().user` in that case.
|
|
161
|
-
const deviceRows = flagged.length === 0 && isAuthenticated && liveUser && activeSessionId ? [toRow(liveUser, {
|
|
162
|
-
sessionId: activeSessionId
|
|
163
|
-
})] : flagged;
|
|
164
|
-
|
|
165
|
-
// --- Merge graph nodes, deduping by account id ---
|
|
166
|
-
const byAccountId = new Map();
|
|
167
|
-
const order = [];
|
|
168
|
-
const remember = row => {
|
|
169
|
-
if (!row.accountId || byAccountId.has(row.accountId)) {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
byAccountId.set(row.accountId, row);
|
|
173
|
-
order.push(row.accountId);
|
|
174
|
-
};
|
|
175
|
-
for (const row of deviceRows) {
|
|
176
|
-
remember(row);
|
|
177
|
-
}
|
|
178
|
-
for (const node of graph) {
|
|
179
|
-
const existing = byAccountId.get(node.accountId);
|
|
180
|
-
if (existing) {
|
|
181
|
-
// On-device account that is ALSO in the graph: enrich the device row
|
|
182
|
-
// with graph metadata; keep its (freshest) profile + sessionId.
|
|
183
|
-
byAccountId.set(node.accountId, {
|
|
184
|
-
...existing,
|
|
185
|
-
relationship: node.relationship,
|
|
186
|
-
kind: node.kind,
|
|
187
|
-
parentAccountId: node.parentAccountId,
|
|
188
|
-
callerMembership: node.callerMembership
|
|
189
|
-
});
|
|
190
|
-
continue;
|
|
191
|
-
}
|
|
192
|
-
// Graph-only account (owned org / shared, not yet a device session).
|
|
193
|
-
remember(toRow(node.account, {
|
|
194
|
-
relationship: node.relationship,
|
|
195
|
-
kind: node.kind,
|
|
196
|
-
parentAccountId: node.parentAccountId,
|
|
197
|
-
callerMembership: node.callerMembership
|
|
198
|
-
}));
|
|
199
|
-
}
|
|
200
|
-
return order.flatMap(id => {
|
|
201
|
-
const row = byAccountId.get(id);
|
|
202
|
-
return row ? [row] : [];
|
|
203
|
-
});
|
|
204
|
-
}
|
|
27
|
+
};
|
|
205
28
|
|
|
206
29
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
* The ACTIVE row always uses `useOxy().user` directly (the freshest copy).
|
|
218
|
-
* - Linked accounts: `useOxy().accounts` — the `AccountNode[]` graph the context
|
|
219
|
-
* loads from `GET /accounts`. Each node already embeds its `account` `User`
|
|
220
|
-
* document, so graph-only rows need no extra fetch.
|
|
221
|
-
*
|
|
222
|
-
* An account present as BOTH a device session and a graph node is deduped into
|
|
223
|
-
* ONE row (see {@link buildSwitchableAccounts}). EVERY row switches the same
|
|
224
|
-
* way — through `useOxy().switchToAccount(row.accountId)`.
|
|
225
|
-
*
|
|
226
|
-
* ## Error handling
|
|
227
|
-
*
|
|
228
|
-
* `getUsersByIds()` resolves to `[]` on a failed chunk (logged internally)
|
|
229
|
-
* rather than throwing. Device accounts whose profile could not be resolved are
|
|
230
|
-
* omitted until a subsequent fetch succeeds (except the active one, which never
|
|
231
|
-
* depends on this fetch); graph accounts are unaffected.
|
|
30
|
+
* Every account the signed-in user can switch into — device sign-ins AND linked
|
|
31
|
+
* graph accounts (owned orgs + shared-with-you) — as one flat, deduped list with
|
|
32
|
+
* real per-account name / email / avatar / color.
|
|
33
|
+
*
|
|
34
|
+
* This is a thin binding over the shared `AccountDialogController` in
|
|
35
|
+
* `@oxyhq/core` (the SAME headless source the {@link OxyAccountDialog} renders),
|
|
36
|
+
* so there is ONE projection (`projectSwitchableAccounts`) and one switch path
|
|
37
|
+
* (`controller.switchTo`) across the whole SDK — the local duplicate projection
|
|
38
|
+
* this hook used to own has been removed. Every switch routes through
|
|
39
|
+
* `useOxy().switchToAccount(accountId)` (or the dialog's row press).
|
|
232
40
|
*/
|
|
233
41
|
function useSwitchableAccounts() {
|
|
234
42
|
const {
|
|
235
|
-
|
|
236
|
-
sessions,
|
|
237
|
-
activeSessionId,
|
|
238
|
-
user,
|
|
239
|
-
isAuthenticated,
|
|
240
|
-
accounts: graph
|
|
43
|
+
accountDialogController: controller
|
|
241
44
|
} = (0, _OxyContext.useOxy)();
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const ids = new Set();
|
|
250
|
-
for (const session of sessions ?? []) {
|
|
251
|
-
if (session.userId) {
|
|
252
|
-
ids.add(session.userId);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
return Array.from(ids).sort();
|
|
256
|
-
}, [sessions]);
|
|
257
|
-
const profilesQuery = (0, _reactQuery.useQuery)({
|
|
258
|
-
queryKey: _queryKeys.queryKeys.users.list(accountIds),
|
|
259
|
-
queryFn: () => oxyServices.getUsersByIds(accountIds),
|
|
260
|
-
enabled: isAuthenticated && accountIds.length > 0,
|
|
261
|
-
staleTime: 5 * 60 * 1000,
|
|
262
|
-
// 5 minutes — matches useUserProfile's convention
|
|
263
|
-
gcTime: 30 * 60 * 1000 // 30 minutes
|
|
264
|
-
});
|
|
265
|
-
const profilesById = (0, _react.useMemo)(() => {
|
|
266
|
-
const map = new Map();
|
|
267
|
-
for (const profile of profilesQuery.data ?? []) {
|
|
268
|
-
map.set(profile.id, profile);
|
|
269
|
-
}
|
|
270
|
-
return map;
|
|
271
|
-
}, [profilesQuery.data]);
|
|
272
|
-
const accounts = (0, _react.useMemo)(() => buildSwitchableAccounts({
|
|
273
|
-
sessions: sessions ?? [],
|
|
274
|
-
activeSessionId: activeSessionId ?? null,
|
|
275
|
-
liveUser: user ?? null,
|
|
276
|
-
isAuthenticated,
|
|
277
|
-
graph: graph ?? [],
|
|
278
|
-
profilesById,
|
|
279
|
-
locale,
|
|
280
|
-
resolveAvatarUrl: avatar => avatar ? oxyServices.getFileDownloadUrl(avatar, 'thumb') : undefined
|
|
281
|
-
}), [sessions, activeSessionId, user, isAuthenticated, graph, profilesById, locale, oxyServices]);
|
|
45
|
+
const subscribe = (0, _react.useCallback)(listener => controller ? controller.subscribe(listener) : () => undefined, [controller]);
|
|
46
|
+
const getSnapshot = (0, _react.useCallback)(() => controller ? controller.getSnapshot() : EMPTY_SNAPSHOT, [controller]);
|
|
47
|
+
const snapshot = (0, _react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
48
|
+
const currentSessionId = (0, _react.useMemo)(() => {
|
|
49
|
+
const active = snapshot.accounts.find(account => account.accountId === snapshot.activeAccountId);
|
|
50
|
+
return active?.sessionId ?? null;
|
|
51
|
+
}, [snapshot]);
|
|
282
52
|
return {
|
|
283
|
-
accounts,
|
|
284
|
-
isLoading:
|
|
285
|
-
currentSessionId
|
|
53
|
+
accounts: snapshot.accounts,
|
|
54
|
+
isLoading: snapshot.loading,
|
|
55
|
+
currentSessionId
|
|
286
56
|
};
|
|
287
57
|
}
|
|
288
58
|
//# sourceMappingURL=useSwitchableAccounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","_OxyContext","EMPTY_SNAPSHOT","view","accounts","activeAccountId","loading","error","switchingAccountId","signIn","phase","authorizeCode","qrPayload","expiresAt","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;IAAEC,KAAK,EAAE,MAAM;IAAEC,aAAa,EAAE,IAAI;IAAEC,SAAS,EAAE,IAAI;IAAEC,SAAS,EAAE,IAAI;IAAEN,KAAK,EAAE;EAAK;AAChG,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,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,GAAGpB,cAAe,EAC9D,CAACc,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,CAACnB,QAAQ,CAACwB,IAAI,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKP,QAAQ,CAAClB,eAAe,CAAC;IAClG,OAAOsB,MAAM,EAAEI,SAAS,IAAI,IAAI;EACpC,CAAC,EAAE,CAACR,QAAQ,CAAC,CAAC;EAEd,OAAO;IACHnB,QAAQ,EAAEmB,QAAQ,CAACnB,QAAQ;IAC3B4B,SAAS,EAAET,QAAQ,CAACjB,OAAO;IAC3BmB;EACJ,CAAC;AACL","ignoreList":[]}
|
package/lib/commonjs/ui/index.js
CHANGED
|
@@ -9,42 +9,12 @@ Object.defineProperty(exports, "AccountMembersScreen", {
|
|
|
9
9
|
return _AccountMembersScreen.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "AccountMenu", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () {
|
|
15
|
-
return _AccountMenu.default;
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
Object.defineProperty(exports, "AccountMenuButton", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function () {
|
|
21
|
-
return _AccountMenuButton.default;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
12
|
Object.defineProperty(exports, "AccountSettingsScreen", {
|
|
25
13
|
enumerable: true,
|
|
26
14
|
get: function () {
|
|
27
15
|
return _AccountSettingsScreen.default;
|
|
28
16
|
}
|
|
29
17
|
});
|
|
30
|
-
Object.defineProperty(exports, "AccountSwitcher", {
|
|
31
|
-
enumerable: true,
|
|
32
|
-
get: function () {
|
|
33
|
-
return _AccountSwitcher.default;
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
Object.defineProperty(exports, "AccountSwitcherScreen", {
|
|
37
|
-
enumerable: true,
|
|
38
|
-
get: function () {
|
|
39
|
-
return _AccountSwitcherScreen.default;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
Object.defineProperty(exports, "AccountSwitcherView", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function () {
|
|
45
|
-
return _AccountSwitcher.AccountSwitcherView;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
18
|
Object.defineProperty(exports, "Avatar", {
|
|
49
19
|
enumerable: true,
|
|
50
20
|
get: function () {
|
|
@@ -117,16 +87,16 @@ Object.defineProperty(exports, "ProfileButton", {
|
|
|
117
87
|
return _ProfileButton.default;
|
|
118
88
|
}
|
|
119
89
|
});
|
|
120
|
-
Object.defineProperty(exports, "
|
|
90
|
+
Object.defineProperty(exports, "ProfileScreen", {
|
|
121
91
|
enumerable: true,
|
|
122
92
|
get: function () {
|
|
123
|
-
return
|
|
93
|
+
return _ProfileScreen.default;
|
|
124
94
|
}
|
|
125
95
|
});
|
|
126
|
-
Object.defineProperty(exports, "
|
|
96
|
+
Object.defineProperty(exports, "RequireOxyAuth", {
|
|
127
97
|
enumerable: true,
|
|
128
98
|
get: function () {
|
|
129
|
-
return
|
|
99
|
+
return _RequireOxyAuth.RequireOxyAuth;
|
|
130
100
|
}
|
|
131
101
|
});
|
|
132
102
|
Object.defineProperty(exports, "extractErrorMessage", {
|
|
@@ -199,29 +169,24 @@ var _OxyProvider = _interopRequireDefault(require("./components/OxyProvider.js")
|
|
|
199
169
|
var _OxySignInButton = _interopRequireDefault(require("./components/OxySignInButton.js"));
|
|
200
170
|
var _OxyAuthPrompt = _interopRequireDefault(require("./components/OxyAuthPrompt.js"));
|
|
201
171
|
var _OxyLogo = _interopRequireDefault(require("./components/OxyLogo.js"));
|
|
172
|
+
var _RequireOxyAuth = require("./components/RequireOxyAuth.js");
|
|
202
173
|
var _Avatar = _interopRequireDefault(require("./components/Avatar.js"));
|
|
203
174
|
var _FollowButton = _interopRequireDefault(require("./components/FollowButton.js"));
|
|
204
175
|
var _OxyPayButton = _interopRequireDefault(require("./components/OxyPayButton.js"));
|
|
205
176
|
var _FontLoader = require("./components/FontLoader.js");
|
|
206
177
|
var _OxyIcon = _interopRequireDefault(require("./components/icon/OxyIcon.js"));
|
|
207
|
-
var _AccountMenu = _interopRequireDefault(require("./components/AccountMenu.js"));
|
|
208
|
-
var _AccountMenuButton = _interopRequireDefault(require("./components/AccountMenuButton.js"));
|
|
209
178
|
var _ProfileButton = _interopRequireDefault(require("./components/ProfileButton.js"));
|
|
210
|
-
var _ProfileMenu = _interopRequireDefault(require("./components/ProfileMenu.js"));
|
|
211
|
-
var _AccountSwitcher = _interopRequireWildcard(require("./components/AccountSwitcher.js"));
|
|
212
179
|
var _OxyContext = require("./context/OxyContext.js");
|
|
213
180
|
var _useAuth = require("./hooks/useAuth.js");
|
|
214
181
|
var _useFollow = require("./hooks/useFollow.js");
|
|
215
182
|
var _useStorage = require("./hooks/useStorage.js");
|
|
216
183
|
var _ProfileScreen = _interopRequireDefault(require("./screens/ProfileScreen.js"));
|
|
217
184
|
var _ManageAccountScreen = _interopRequireDefault(require("./screens/ManageAccountScreen.js"));
|
|
218
|
-
var _AccountSwitcherScreen = _interopRequireDefault(require("./screens/AccountSwitcherScreen.js"));
|
|
219
185
|
var _CreateAccountScreen = _interopRequireDefault(require("./screens/CreateAccountScreen.js"));
|
|
220
186
|
var _AccountMembersScreen = _interopRequireDefault(require("./screens/AccountMembersScreen.js"));
|
|
221
187
|
var _AccountSettingsScreen = _interopRequireDefault(require("./screens/AccountSettingsScreen.js"));
|
|
222
188
|
var _authStore = require("./stores/authStore.js");
|
|
223
189
|
var _accountStore = require("./stores/accountStore.js");
|
|
224
190
|
var _errorHandlers = require("./utils/errorHandlers.js");
|
|
225
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
226
191
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
227
192
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_Avatar","_FollowButton","_OxyPayButton","_FontLoader","_OxyIcon","
|
|
1
|
+
{"version":3,"names":["_OxyProvider","_interopRequireDefault","require","_OxySignInButton","_OxyAuthPrompt","_OxyLogo","_RequireOxyAuth","_Avatar","_FollowButton","_OxyPayButton","_FontLoader","_OxyIcon","_ProfileButton","_OxyContext","_useAuth","_useFollow","_useStorage","_ProfileScreen","_ManageAccountScreen","_CreateAccountScreen","_AccountMembersScreen","_AccountSettingsScreen","_authStore","_accountStore","_errorHandlers","e","__esModule","default"],"sourceRoot":"../../../src","sources":["ui/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAEA,IAAAK,OAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,aAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,aAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,WAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,cAAA,GAAAX,sBAAA,CAAAC,OAAA;AAGA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,QAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AAIA,IAAAe,cAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,oBAAA,GAAAjB,sBAAA,CAAAC,OAAA;AACA,IAAAiB,oBAAA,GAAAlB,sBAAA,CAAAC,OAAA;AACA,IAAAkB,qBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,sBAAA,GAAApB,sBAAA,CAAAC,OAAA;AAGA,IAAAoB,UAAA,GAAApB,OAAA;AACA,IAAAqB,aAAA,GAAArB,OAAA;AAGA,IAAAsB,cAAA,GAAAtB,OAAA;AAK+B,SAAAD,uBAAAwB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.closeAccountDialog = closeAccountDialog;
|
|
7
|
+
exports.hideSignInModal = hideSignInModal;
|
|
8
|
+
exports.notifyAccountDialogVisibility = notifyAccountDialogVisibility;
|
|
9
|
+
exports.openAccountDialog = openAccountDialog;
|
|
10
|
+
exports.registerAccountDialogControls = registerAccountDialogControls;
|
|
11
|
+
exports.showSignInModal = showSignInModal;
|
|
12
|
+
exports.subscribeToSignInModal = subscribeToSignInModal;
|
|
13
|
+
/**
|
|
14
|
+
* Imperative bridge for the unified {@link OxyAccountDialog}.
|
|
15
|
+
*
|
|
16
|
+
* Mirrors `bottomSheetManager` — a tiny module-level indirection so any caller
|
|
17
|
+
* (even outside React, e.g. an app's imperative "sign in" handler) can open the
|
|
18
|
+
* single account dialog without a ref. `OxyContext` registers the live open/close
|
|
19
|
+
* controls on mount via {@link registerAccountDialogControls} and reports the
|
|
20
|
+
* dialog's visibility here via {@link notifyAccountDialogVisibility}; the exported
|
|
21
|
+
* `openAccountDialog` / `closeAccountDialog` drive those controls.
|
|
22
|
+
*
|
|
23
|
+
* `showSignInModal` / `hideSignInModal` / `subscribeToSignInModal` are the stable
|
|
24
|
+
* public surface the previous `SignInModal` module owned — kept so existing
|
|
25
|
+
* consumers (inbox, accounts) keep working while the sign-in surface is now the
|
|
26
|
+
* unified dialog opened on its `signin` view.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
/** Live open/close handles registered by the mounted provider. */
|
|
30
|
+
|
|
31
|
+
let controls = null;
|
|
32
|
+
const visibilityListeners = new Set();
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Register the provider's live open/close controls. Returns an unregister
|
|
36
|
+
* function that only clears the slot if it still owns it (guards against a late
|
|
37
|
+
* unmount clobbering a newer provider).
|
|
38
|
+
*/
|
|
39
|
+
function registerAccountDialogControls(next) {
|
|
40
|
+
controls = next;
|
|
41
|
+
return () => {
|
|
42
|
+
if (controls === next) {
|
|
43
|
+
controls = null;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Open the account dialog on `view` (default `accounts`). No-op before mount. */
|
|
49
|
+
function openAccountDialog(view) {
|
|
50
|
+
controls?.open(view);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Close the account dialog. No-op before mount. */
|
|
54
|
+
function closeAccountDialog() {
|
|
55
|
+
controls?.close();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Report the dialog's current visibility so subscribers (e.g. `OxySignInButton`)
|
|
60
|
+
* can reflect an in-flight "Signing in…" state. Called by the provider whenever
|
|
61
|
+
* the open flag changes, so listeners stay accurate regardless of what triggered
|
|
62
|
+
* the change (imperative open, backdrop dismiss, completed sign-in).
|
|
63
|
+
*/
|
|
64
|
+
function notifyAccountDialogVisibility(visible) {
|
|
65
|
+
for (const listener of visibilityListeners) {
|
|
66
|
+
listener(visible);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Subscribe to dialog visibility changes. Returns an unsubscribe function.
|
|
72
|
+
* Retains the name the old `SignInModal` exposed so `OxySignInButton` keeps its
|
|
73
|
+
* "Signing in…" affordance.
|
|
74
|
+
*/
|
|
75
|
+
function subscribeToSignInModal(listener) {
|
|
76
|
+
visibilityListeners.add(listener);
|
|
77
|
+
return () => {
|
|
78
|
+
visibilityListeners.delete(listener);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Open the unified dialog on its sign-in view. Public back-compat entry point. */
|
|
83
|
+
function showSignInModal() {
|
|
84
|
+
openAccountDialog('signin');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** Close the unified dialog. Public back-compat entry point. */
|
|
88
|
+
function hideSignInModal() {
|
|
89
|
+
closeAccountDialog();
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=accountDialogManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["controls","visibilityListeners","Set","registerAccountDialogControls","next","openAccountDialog","view","open","closeAccountDialog","close","notifyAccountDialogVisibility","visible","listener","subscribeToSignInModal","add","delete","showSignInModal","hideSignInModal"],"sourceRoot":"../../../../src","sources":["ui/navigation/accountDialogManager.ts"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;;AAMA,IAAIA,QAAsC,GAAG,IAAI;AACjD,MAAMC,mBAAmB,GAAG,IAAIC,GAAG,CAA6B,CAAC;;AAEjE;AACA;AACA;AACA;AACA;AACO,SAASC,6BAA6BA,CAACC,IAA2B,EAAc;EACrFJ,QAAQ,GAAGI,IAAI;EACf,OAAO,MAAM;IACX,IAAIJ,QAAQ,KAAKI,IAAI,EAAE;MACrBJ,QAAQ,GAAG,IAAI;IACjB;EACF,CAAC;AACH;;AAEA;AACO,SAASK,iBAAiBA,CAACC,IAAwB,EAAQ;EAChEN,QAAQ,EAAEO,IAAI,CAACD,IAAI,CAAC;AACtB;;AAEA;AACO,SAASE,kBAAkBA,CAAA,EAAS;EACzCR,QAAQ,EAAES,KAAK,CAAC,CAAC;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,6BAA6BA,CAACC,OAAgB,EAAQ;EACpE,KAAK,MAAMC,QAAQ,IAAIX,mBAAmB,EAAE;IAC1CW,QAAQ,CAACD,OAAO,CAAC;EACnB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACD,QAAoC,EAAc;EACvFX,mBAAmB,CAACa,GAAG,CAACF,QAAQ,CAAC;EACjC,OAAO,MAAM;IACXX,mBAAmB,CAACc,MAAM,CAACH,QAAQ,CAAC;EACtC,CAAC;AACH;;AAEA;AACO,SAASI,eAAeA,CAAA,EAAS;EACtCX,iBAAiB,CAAC,QAAQ,CAAC;AAC7B;;AAEA;AACO,SAASY,eAAeA,CAAA,EAAS;EACtCT,kBAAkB,CAAC,CAAC;AACtB","ignoreList":[]}
|
|
@@ -15,7 +15,6 @@ exports.isValidRoute = exports.getSheetConfig = exports.getScreenComponent = voi
|
|
|
15
15
|
// Lazy screen loaders - functions that return screen components on-demand
|
|
16
16
|
// This breaks the require cycle by deferring imports until screens are actually needed
|
|
17
17
|
const screenLoaders = {
|
|
18
|
-
OxyAuth: () => require('../screens/OxyAuthScreen').default,
|
|
19
18
|
ManageAccount: () => require('../screens/ManageAccountScreen').default,
|
|
20
19
|
AccountVerification: () => require('../screens/AccountVerificationScreen').default,
|
|
21
20
|
PaymentGateway: () => require('../screens/PaymentGatewayScreen').default,
|
|
@@ -48,7 +47,6 @@ const screenLoaders = {
|
|
|
48
47
|
// User list screens (followers/following)
|
|
49
48
|
FollowersList: () => require('../screens/FollowersListScreen').default,
|
|
50
49
|
FollowingList: () => require('../screens/FollowingListScreen').default,
|
|
51
|
-
AccountSwitcher: () => require('../screens/AccountSwitcherScreen').default,
|
|
52
50
|
CreateAccount: () => require('../screens/CreateAccountScreen').default,
|
|
53
51
|
AccountMembers: () => require('../screens/AccountMembersScreen').default,
|
|
54
52
|
AccountSettings: () => require('../screens/AccountSettingsScreen').default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["screenLoaders","
|
|
1
|
+
{"version":3,"names":["screenLoaders","ManageAccount","require","default","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","exports","isValidRoute","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","DEFAULT_SHEET_CONFIG","scrollable","manualActivation","dynamicBackdrop","getSheetConfig","screenProps"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":"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","ignoreList":[]}
|