@oxyhq/services 14.1.0 → 16.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 +4 -21
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/components/SignInAccountChooser.js +189 -0
- package/lib/commonjs/ui/components/SignInAccountChooser.js.map +1 -0
- package/lib/commonjs/ui/components/SignInModal.js +350 -131
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +340 -1547
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +61 -64
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +9 -9
- 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 +14 -33
- package/lib/commonjs/ui/hooks/useAuth.js.map +1 -1
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js +170 -0
- package/lib/commonjs/ui/hooks/usePasswordSignIn.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +2 -5
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +2 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/navigation/routes.js +1 -0
- 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/EditProfileFieldScreen.js +93 -68
- package/lib/commonjs/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/EditProfileScreen.js +187 -0
- package/lib/commonjs/ui/screens/EditProfileScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/ManageAccountScreen.js +3 -7
- package/lib/commonjs/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +231 -95
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +15 -2
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/linkFormat.js +38 -0
- package/lib/commonjs/ui/screens/linkFormat.js.map +1 -0
- package/lib/commonjs/ui/session/authStore.js +146 -0
- package/lib/commonjs/ui/session/authStore.js.map +1 -0
- package/lib/commonjs/ui/session/createSessionClient.js +23 -17
- package/lib/commonjs/ui/session/createSessionClient.js.map +1 -1
- package/lib/commonjs/ui/session/index.js +13 -7
- package/lib/commonjs/ui/session/index.js.map +1 -1
- package/lib/commonjs/ui/session/tokenTransport.js +19 -31
- package/lib/commonjs/ui/session/tokenTransport.js.map +1 -1
- package/lib/commonjs/ui/utils/isWebBrowser.js +13 -0
- package/lib/commonjs/ui/utils/isWebBrowser.js.map +1 -0
- package/lib/commonjs/utils/deviceFlowSignIn.js +13 -16
- package/lib/commonjs/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/module/index.js +2 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/components/SignInAccountChooser.js +183 -0
- package/lib/module/ui/components/SignInAccountChooser.js.map +1 -0
- package/lib/module/ui/components/SignInModal.js +352 -134
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +342 -1551
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +60 -63
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/mutations/mutationKeys.js +1 -1
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +7 -7
- 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 +14 -33
- package/lib/module/ui/hooks/useAuth.js.map +1 -1
- package/lib/module/ui/hooks/usePasswordSignIn.js +165 -0
- package/lib/module/ui/hooks/usePasswordSignIn.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +2 -5
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/navigation/routes.js +1 -0
- 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/EditProfileFieldScreen.js +91 -66
- package/lib/module/ui/screens/EditProfileFieldScreen.js.map +1 -1
- package/lib/module/ui/screens/EditProfileScreen.js +182 -0
- package/lib/module/ui/screens/EditProfileScreen.js.map +1 -0
- package/lib/module/ui/screens/ManageAccountScreen.js +3 -7
- package/lib/module/ui/screens/ManageAccountScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +233 -97
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +15 -2
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/linkFormat.js +31 -0
- package/lib/module/ui/screens/linkFormat.js.map +1 -0
- package/lib/module/ui/session/authStore.js +143 -0
- package/lib/module/ui/session/authStore.js.map +1 -0
- package/lib/module/ui/session/createSessionClient.js +22 -16
- package/lib/module/ui/session/createSessionClient.js.map +1 -1
- package/lib/module/ui/session/index.js +9 -9
- package/lib/module/ui/session/index.js.map +1 -1
- package/lib/module/ui/session/tokenTransport.js +20 -33
- package/lib/module/ui/session/tokenTransport.js.map +1 -1
- package/lib/module/ui/utils/isWebBrowser.js +11 -0
- package/lib/module/ui/utils/isWebBrowser.js.map +1 -0
- package/lib/module/utils/deviceFlowSignIn.js +14 -17
- package/lib/module/utils/deviceFlowSignIn.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -3
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts +29 -0
- package/lib/typescript/commonjs/ui/components/SignInAccountChooser.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +15 -10
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts +36 -42
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts +18 -23
- package/lib/typescript/commonjs/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts +4 -6
- 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/usePasswordSignIn.d.ts +31 -0
- package/lib/typescript/commonjs/ui/hooks/usePasswordSignIn.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts +0 -1
- package/lib/typescript/commonjs/ui/hooks/useProfileEditing.d.ts.map +1 -1
- 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/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts +14 -0
- package/lib/typescript/commonjs/ui/screens/EditProfileScreen.d.ts.map +1 -0
- 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/screens/OxyAuthScreen.d.ts +13 -12
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/screens/linkFormat.d.ts +23 -0
- package/lib/typescript/commonjs/ui/screens/linkFormat.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/session/authStore.d.ts +33 -0
- package/lib/typescript/commonjs/ui/session/authStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts +19 -15
- package/lib/typescript/commonjs/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/index.d.ts +9 -9
- package/lib/typescript/commonjs/ui/session/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts +13 -19
- package/lib/typescript/commonjs/ui/session/tokenTransport.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/utils/isWebBrowser.d.ts +9 -0
- package/lib/typescript/commonjs/ui/utils/isWebBrowser.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/utils/storageHelpers.d.ts +7 -7
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts +15 -13
- package/lib/typescript/commonjs/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -3
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts +29 -0
- package/lib/typescript/module/ui/components/SignInAccountChooser.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SignInModal.d.ts +15 -10
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/OxyContext.d.ts +36 -42
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts +18 -23
- package/lib/typescript/module/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts +4 -6
- 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/usePasswordSignIn.d.ts +31 -0
- package/lib/typescript/module/ui/hooks/usePasswordSignIn.d.ts.map +1 -0
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts +0 -1
- package/lib/typescript/module/ui/hooks/useProfileEditing.d.ts.map +1 -1
- 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/EditProfileFieldScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts +14 -0
- package/lib/typescript/module/ui/screens/EditProfileScreen.d.ts.map +1 -0
- 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/screens/OxyAuthScreen.d.ts +13 -12
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/screens/linkFormat.d.ts +23 -0
- package/lib/typescript/module/ui/screens/linkFormat.d.ts.map +1 -0
- package/lib/typescript/module/ui/session/authStore.d.ts +33 -0
- package/lib/typescript/module/ui/session/authStore.d.ts.map +1 -0
- package/lib/typescript/module/ui/session/createSessionClient.d.ts +19 -15
- package/lib/typescript/module/ui/session/createSessionClient.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/index.d.ts +9 -9
- package/lib/typescript/module/ui/session/index.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/tokenTransport.d.ts +13 -19
- package/lib/typescript/module/ui/session/tokenTransport.d.ts.map +1 -1
- package/lib/typescript/module/ui/utils/isWebBrowser.d.ts +9 -0
- package/lib/typescript/module/ui/utils/isWebBrowser.d.ts.map +1 -0
- package/lib/typescript/module/ui/utils/storageHelpers.d.ts +7 -7
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts +15 -13
- package/lib/typescript/module/utils/deviceFlowSignIn.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +2 -6
- package/src/ui/components/SignInAccountChooser.tsx +162 -0
- package/src/ui/components/SignInModal.tsx +309 -139
- package/src/ui/context/OxyContext.tsx +532 -1785
- package/src/ui/context/hooks/useAuthOperations.ts +65 -76
- package/src/ui/hooks/mutations/mutationKeys.ts +1 -1
- package/src/ui/hooks/mutations/useAccountMutations.ts +7 -7
- package/src/ui/hooks/queries/queryKeys.ts +1 -1
- package/src/ui/hooks/queries/useAccountQueries.ts +8 -9
- package/src/ui/hooks/useAuth.ts +14 -35
- package/src/ui/hooks/usePasswordSignIn.ts +207 -0
- package/src/ui/hooks/useProfileEditing.ts +2 -8
- package/src/ui/hooks/useSessionManagement.ts +1 -1
- package/src/ui/navigation/routes.ts +3 -1
- package/src/ui/screens/ConnectedAppsScreen.tsx +23 -24
- package/src/ui/screens/EditProfileFieldScreen.tsx +102 -66
- package/src/ui/screens/EditProfileScreen.tsx +155 -0
- package/src/ui/screens/ManageAccountScreen.tsx +3 -7
- package/src/ui/screens/OxyAuthScreen.tsx +259 -112
- package/src/ui/screens/ProfileScreen.tsx +15 -2
- package/src/ui/screens/__tests__/linkFormat.test.ts +73 -0
- package/src/ui/screens/linkFormat.ts +37 -0
- package/src/ui/session/__tests__/createSessionClient.test.ts +22 -7
- package/src/ui/session/__tests__/tokenTransport.test.ts +37 -49
- package/src/ui/session/authStore.ts +164 -0
- package/src/ui/session/createSessionClient.ts +30 -17
- package/src/ui/session/index.ts +10 -9
- package/src/ui/session/tokenTransport.ts +26 -36
- package/src/ui/utils/isWebBrowser.ts +8 -0
- package/src/ui/utils/storageHelpers.ts +7 -7
- package/src/utils/__tests__/deviceFlowSignIn.test.ts +50 -131
- package/src/utils/deviceFlowSignIn.ts +19 -26
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js +0 -243
- package/lib/commonjs/ui/context/inSessionTokenRefresh.js.map +0 -1
- package/lib/commonjs/ui/context/silentSessionRestore.js +0 -56
- package/lib/commonjs/ui/context/silentSessionRestore.js.map +0 -1
- package/lib/commonjs/ui/hooks/useWebSSO.js +0 -28
- package/lib/commonjs/ui/hooks/useWebSSO.js.map +0 -1
- package/lib/commonjs/ui/session/projectSessionState.js +0 -86
- package/lib/commonjs/ui/session/projectSessionState.js.map +0 -1
- package/lib/commonjs/ui/session/sessionClientHost.js +0 -30
- package/lib/commonjs/ui/session/sessionClientHost.js.map +0 -1
- package/lib/commonjs/ui/utils/activeAuthuser.js +0 -142
- package/lib/commonjs/ui/utils/activeAuthuser.js.map +0 -1
- package/lib/commonjs/utils/crossApex.js +0 -74
- package/lib/commonjs/utils/crossApex.js.map +0 -1
- package/lib/module/ui/context/inSessionTokenRefresh.js +0 -238
- package/lib/module/ui/context/inSessionTokenRefresh.js.map +0 -1
- package/lib/module/ui/context/silentSessionRestore.js +0 -53
- package/lib/module/ui/context/silentSessionRestore.js.map +0 -1
- package/lib/module/ui/hooks/useWebSSO.js +0 -24
- package/lib/module/ui/hooks/useWebSSO.js.map +0 -1
- package/lib/module/ui/session/projectSessionState.js +0 -79
- package/lib/module/ui/session/projectSessionState.js.map +0 -1
- package/lib/module/ui/session/sessionClientHost.js +0 -26
- package/lib/module/ui/session/sessionClientHost.js.map +0 -1
- package/lib/module/ui/utils/activeAuthuser.js +0 -134
- package/lib/module/ui/utils/activeAuthuser.js.map +0 -1
- package/lib/module/utils/crossApex.js +0 -69
- package/lib/module/utils/crossApex.js.map +0 -1
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts +0 -106
- package/lib/typescript/commonjs/ui/context/inSessionTokenRefresh.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts +0 -36
- package/lib/typescript/commonjs/ui/context/silentSessionRestore.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts +0 -19
- package/lib/typescript/commonjs/ui/hooks/useWebSSO.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts +0 -45
- package/lib/typescript/commonjs/ui/session/projectSessionState.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts +0 -14
- package/lib/typescript/commonjs/ui/session/sessionClientHost.d.ts.map +0 -1
- package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts +0 -67
- package/lib/typescript/commonjs/ui/utils/activeAuthuser.d.ts.map +0 -1
- package/lib/typescript/commonjs/utils/crossApex.d.ts +0 -55
- package/lib/typescript/commonjs/utils/crossApex.d.ts.map +0 -1
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts +0 -106
- package/lib/typescript/module/ui/context/inSessionTokenRefresh.d.ts.map +0 -1
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts +0 -36
- package/lib/typescript/module/ui/context/silentSessionRestore.d.ts.map +0 -1
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts +0 -19
- package/lib/typescript/module/ui/hooks/useWebSSO.d.ts.map +0 -1
- package/lib/typescript/module/ui/session/projectSessionState.d.ts +0 -45
- package/lib/typescript/module/ui/session/projectSessionState.d.ts.map +0 -1
- package/lib/typescript/module/ui/session/sessionClientHost.d.ts +0 -14
- package/lib/typescript/module/ui/session/sessionClientHost.d.ts.map +0 -1
- package/lib/typescript/module/ui/utils/activeAuthuser.d.ts +0 -67
- package/lib/typescript/module/ui/utils/activeAuthuser.d.ts.map +0 -1
- package/lib/typescript/module/utils/crossApex.d.ts +0 -55
- package/lib/typescript/module/utils/crossApex.d.ts.map +0 -1
- package/src/ui/context/inSessionTokenRefresh.ts +0 -264
- package/src/ui/context/silentSessionRestore.ts +0 -53
- package/src/ui/hooks/useWebSSO.ts +0 -23
- package/src/ui/session/__tests__/projectSessionState.test.ts +0 -114
- package/src/ui/session/__tests__/sessionClientHost.test.ts +0 -43
- package/src/ui/session/projectSessionState.ts +0 -85
- package/src/ui/session/sessionClientHost.ts +0 -27
- package/src/ui/utils/activeAuthuser.ts +0 -142
- package/src/utils/crossApex.ts +0 -75
|
@@ -64,7 +64,7 @@ export const queryKeys = {
|
|
|
64
64
|
all: ['storage'],
|
|
65
65
|
usage: accountScope => [...queryKeys.storage.all, 'usage', accountScope]
|
|
66
66
|
},
|
|
67
|
-
// Connected apps (
|
|
67
|
+
// Connected apps (OAuth grants the user has authorized)
|
|
68
68
|
connectedApps: {
|
|
69
69
|
all: ['connectedApps'],
|
|
70
70
|
list: () => [...queryKeys.connectedApps.all, 'list']
|
|
@@ -213,12 +213,11 @@ export const useUsersBySessions = (sessionIds, options) => {
|
|
|
213
213
|
};
|
|
214
214
|
|
|
215
215
|
/**
|
|
216
|
-
* List the
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* RP catalog. Drives the "Connected apps" management screen.
|
|
216
|
+
* List the third-party OAuth applications the current user has connected via
|
|
217
|
+
* the consent flow (`GET /auth/grants`). Drives the "Connected apps" management
|
|
218
|
+
* screen.
|
|
220
219
|
*/
|
|
221
|
-
export const
|
|
220
|
+
export const useConnectedApps = options => {
|
|
222
221
|
const {
|
|
223
222
|
oxyServices,
|
|
224
223
|
activeSessionId,
|
|
@@ -227,7 +226,7 @@ export const useAuthorizedApps = options => {
|
|
|
227
226
|
return useQuery({
|
|
228
227
|
queryKey: queryKeys.connectedApps.list(),
|
|
229
228
|
queryFn: async () => {
|
|
230
|
-
return authenticatedApiCall(oxyServices, activeSessionId, () => oxyServices.
|
|
229
|
+
return authenticatedApiCall(oxyServices, activeSessionId, () => oxyServices.listConnectedApps());
|
|
231
230
|
},
|
|
232
231
|
enabled: options?.enabled !== false && isAuthenticated,
|
|
233
232
|
staleTime: 30 * 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useQuery","useQueries","useQueryClient","authenticatedApiCall","queryKeys","mutationKeys","useOxy","useAuthStore","useUserProfile","sessionId","options","oxyServices","queryKey","users","profile","queryFn","Error","getUserBySession","enabled","staleTime","gcTime","useUserProfiles","sessionIds","queries","map","results","getUsersBySessions","user","useCurrentUser","activeSessionId","isAuthenticated","queryClient","query","accounts","current","data","userWriteMutationsInFlight","isMutating","mutationKey","account","updateProfile","uploadAvatar","updateSettings","updatePrivacySettings","storedUser","getState","incomingUpdatedAt","parseUpdatedAt","updatedAt","storedUpdatedAt","setUser","value","Number","isFinite","Date","t","getTime","parse","useUserById","userId","detail","getUserById","useUserByUsername","username","details","getProfileByUsername","useUsersBySessions","list","length","
|
|
1
|
+
{"version":3,"names":["useEffect","useQuery","useQueries","useQueryClient","authenticatedApiCall","queryKeys","mutationKeys","useOxy","useAuthStore","useUserProfile","sessionId","options","oxyServices","queryKey","users","profile","queryFn","Error","getUserBySession","enabled","staleTime","gcTime","useUserProfiles","sessionIds","queries","map","results","getUsersBySessions","user","useCurrentUser","activeSessionId","isAuthenticated","queryClient","query","accounts","current","data","userWriteMutationsInFlight","isMutating","mutationKey","account","updateProfile","uploadAvatar","updateSettings","updatePrivacySettings","storedUser","getState","incomingUpdatedAt","parseUpdatedAt","updatedAt","storedUpdatedAt","setUser","value","Number","isFinite","Date","t","getTime","parse","useUserById","userId","detail","getUserById","useUserByUsername","username","details","getProfileByUsername","useUsersBySessions","list","length","useConnectedApps","connectedApps","listConnectedApps","usePrivacySettings","targetUserId","id","privacy","settings","getPrivacySettings"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useAccountQueries.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,EAAEC,UAAU,EAAEC,cAAc,QAAQ,uBAAuB;AAC5E,SAASC,oBAAoB,QAAQ,aAAa;AAElD,SAASC,SAAS,QAAQ,gBAAa;AACvC,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,MAAM,QAAQ,6BAA0B;AACjD,SAASC,YAAY,QAAQ,2BAAwB;;AAErD;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAACC,SAAwB,EAAEC,OAA+B,KAAK;EAC3F,MAAM;IAAEC;EAAY,CAAC,GAAGL,MAAM,CAAC,CAAC;EAEhC,OAAON,QAAQ,CAAC;IACdY,QAAQ,EAAER,SAAS,CAACS,KAAK,CAACC,OAAO,CAACL,SAAS,IAAI,EAAE,CAAC;IAClDM,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACN,SAAS,EAAE;QACd,MAAM,IAAIO,KAAK,CAAC,wBAAwB,CAAC;MAC3C;MACA,OAAO,MAAML,WAAW,CAACM,gBAAgB,CAACR,SAAS,CAAC;IACtD,CAAC;IACDS,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAK,CAAC,CAACT,SAAS;IACpDU,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IAC1BC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAE;EAC1B,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAGA,CAACC,UAAoB,EAAEZ,OAA+B,KAAK;EACxF,MAAM;IAAEC;EAAY,CAAC,GAAGL,MAAM,CAAC,CAAC;EAEhC,OAAOL,UAAU,CAAC;IAChBsB,OAAO,EAAED,UAAU,CAACE,GAAG,CAAEf,SAAS,KAAM;MACtCG,QAAQ,EAAER,SAAS,CAACS,KAAK,CAACC,OAAO,CAACL,SAAS,CAAC;MAC5CM,OAAO,EAAE,MAAAA,CAAA,KAAY;QACnB,MAAMU,OAAO,GAAG,MAAMd,WAAW,CAACe,kBAAkB,CAAC,CAACjB,SAAS,CAAC,CAAC;QACjE,OAAOgB,OAAO,CAAC,CAAC,CAAC,EAAEE,IAAI,IAAI,IAAI;MACjC,CAAC;MACDT,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAK,CAAC,CAACT,SAAS;MACpDU,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;MACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;IACpB,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMQ,cAAc,GAAIlB,OAA+B,IAAK;EACjE,MAAM;IAAEC,WAAW;IAAEkB,eAAe;IAAEC;EAAgB,CAAC,GAAGxB,MAAM,CAAC,CAAC;EAClE,MAAMyB,WAAW,GAAG7B,cAAc,CAAC,CAAC;EAEpC,MAAM8B,KAAK,GAAGhC,QAAQ,CAAC;IACrBY,QAAQ,EAAER,SAAS,CAAC6B,QAAQ,CAACC,OAAO,CAACL,eAAe,CAAC;IACrDd,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACc,eAAe,EAAE;QACpB,MAAM,IAAIb,KAAK,CAAC,mBAAmB,CAAC;MACtC;MACA,OAAO,MAAML,WAAW,CAACM,gBAAgB,CAACY,eAAe,CAAC;IAC5D,CAAC;IACDX,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAKY,eAAe,IAAI,CAAC,CAACD,eAAe;IAC7EV,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IAC1BC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMe,IAAI,GAAGH,KAAK,CAACG,IAAI;EACvBpC,SAAS,CAAC,MAAM;IACd,IAAI,CAACoC,IAAI,EAAE;;IAEX;IACA;IACA;IACA,MAAMC,0BAA0B,GAC9BL,WAAW,CAACM,UAAU,CAAC;MAAEC,WAAW,EAAEjC,YAAY,CAACkC,OAAO,CAACC;IAAc,CAAC,CAAC,GAC3ET,WAAW,CAACM,UAAU,CAAC;MAAEC,WAAW,EAAEjC,YAAY,CAACkC,OAAO,CAACE;IAAa,CAAC,CAAC,GAC1EV,WAAW,CAACM,UAAU,CAAC;MAAEC,WAAW,EAAEjC,YAAY,CAACkC,OAAO,CAACG;IAAe,CAAC,CAAC,GAC5EX,WAAW,CAACM,UAAU,CAAC;MAAEC,WAAW,EAAEjC,YAAY,CAACkC,OAAO,CAACI;IAAsB,CAAC,CAAC;IAErF,IAAIP,0BAA0B,GAAG,CAAC,EAAE;MAClC;IACF;;IAEA;IACA;IACA;IACA;IACA,MAAMQ,UAAU,GAAGrC,YAAY,CAACsC,QAAQ,CAAC,CAAC,CAAClB,IAAI;IAC/C,MAAMmB,iBAAiB,GAAGC,cAAc,CAACZ,IAAI,CAACa,SAAS,CAAC;IACxD,MAAMC,eAAe,GAAGF,cAAc,CAACH,UAAU,EAAEI,SAAS,CAAC;IAC7D,IACEF,iBAAiB,KAAK,IAAI,IAC1BG,eAAe,KAAK,IAAI,IACxBH,iBAAiB,GAAGG,eAAe,EACnC;MACA;IACF;IAEA1C,YAAY,CAACsC,QAAQ,CAAC,CAAC,CAACK,OAAO,CAACf,IAAI,CAAC;EACvC,CAAC,EAAE,CAACA,IAAI,EAAEJ,WAAW,CAAC,CAAC;EAEvB,OAAOC,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,SAASe,cAAcA,CAACI,KAAc,EAAiB;EACrD,IAAIA,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI;EAC9B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAOC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAI;EAC3E,IAAIA,KAAK,YAAYG,IAAI,EAAE;IACzB,MAAMC,CAAC,GAAGJ,KAAK,CAACK,OAAO,CAAC,CAAC;IACzB,OAAOJ,MAAM,CAACC,QAAQ,CAACE,CAAC,CAAC,GAAGA,CAAC,GAAG,IAAI;EACtC;EACA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMI,CAAC,GAAGD,IAAI,CAACG,KAAK,CAACN,KAAK,CAAC;IAC3B,OAAOC,MAAM,CAACC,QAAQ,CAACE,CAAC,CAAC,GAAGA,CAAC,GAAG,IAAI;EACtC;EACA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA,OAAO,MAAMG,WAAW,GAAGA,CAACC,MAAqB,EAAEjD,OAA+B,KAAK;EACrF,MAAM;IAAEC;EAAY,CAAC,GAAGL,MAAM,CAAC,CAAC;EAEhC,OAAON,QAAQ,CAAC;IACdY,QAAQ,EAAER,SAAS,CAACS,KAAK,CAAC+C,MAAM,CAACD,MAAM,IAAI,EAAE,CAAC;IAC9C5C,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAAC4C,MAAM,EAAE;QACX,MAAM,IAAI3C,KAAK,CAAC,qBAAqB,CAAC;MACxC;MACA,OAAO,MAAML,WAAW,CAACkD,WAAW,CAACF,MAAM,CAAC;IAC9C,CAAC;IACDzC,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAK,CAAC,CAACyC,MAAM;IACjDxC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM0C,iBAAiB,GAAGA,CAACC,QAAuB,EAAErD,OAA+B,KAAK;EAC7F,MAAM;IAAEC;EAAY,CAAC,GAAGL,MAAM,CAAC,CAAC;EAEhC,OAAON,QAAQ,CAAC;IACdY,QAAQ,EAAE,CAAC,GAAGR,SAAS,CAACS,KAAK,CAACmD,OAAO,CAAC,CAAC,EAAE,UAAU,EAAED,QAAQ,IAAI,EAAE,CAAC;IACpEhD,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAACgD,QAAQ,EAAE;QACb,MAAM,IAAI/C,KAAK,CAAC,sBAAsB,CAAC;MACzC;MACA,OAAO,MAAML,WAAW,CAACsD,oBAAoB,CAACF,QAAQ,CAAC;IACzD,CAAC;IACD7C,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAK,CAAC,CAAC6C,QAAQ;IACnD5C,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAM8C,kBAAkB,GAAGA,CAAC5C,UAAoB,EAAEZ,OAA+B,KAAK;EAC3F,MAAM;IAAEC;EAAY,CAAC,GAAGL,MAAM,CAAC,CAAC;EAEhC,OAAON,QAAQ,CAAC;IACdY,QAAQ,EAAER,SAAS,CAAC6B,QAAQ,CAACkC,IAAI,CAAC7C,UAAU,CAAC;IAC7CP,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAIO,UAAU,CAAC8C,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,EAAE;MACX;MACA,OAAO,MAAMzD,WAAW,CAACe,kBAAkB,CAACJ,UAAU,CAAC;IACzD,CAAC;IACDJ,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAKI,UAAU,CAAC8C,MAAM,GAAG,CAAC;IAC9DjD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IACxBC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG;EACpB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMiD,gBAAgB,GAAI3D,OAA+B,IAAK;EACnE,MAAM;IAAEC,WAAW;IAAEkB,eAAe;IAAEC;EAAgB,CAAC,GAAGxB,MAAM,CAAC,CAAC;EAElE,OAAON,QAAQ,CAAiB;IAC9BY,QAAQ,EAAER,SAAS,CAACkE,aAAa,CAACH,IAAI,CAAC,CAAC;IACxCpD,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,OAAOZ,oBAAoB,CACzBQ,WAAW,EACXkB,eAAe,EACf,MAAMlB,WAAW,CAAC4D,iBAAiB,CAAC,CACtC,CAAC;IACH,CAAC;IACDrD,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAKY,eAAe;IACxDX,SAAS,EAAE,EAAE,GAAG,IAAI;IAAE;IACtBC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG;EACnB,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMoD,kBAAkB,GAAGA,CAACb,MAAe,EAAEjD,OAA+B,KAAK;EACtF,MAAM;IAAEC,WAAW;IAAEkB,eAAe;IAAEF;EAAK,CAAC,GAAGrB,MAAM,CAAC,CAAC;EACvD;EACA;EACA;EACA,MAAMmE,YAAY,GAAGd,MAAM,IAAIhC,IAAI,EAAE+C,EAAE;EAEvC,OAAO1E,QAAQ,CAAC;IACdY,QAAQ,EAAER,SAAS,CAACuE,OAAO,CAACC,QAAQ,CAACH,YAAY,CAAC;IAClD1D,OAAO,EAAE,MAAAA,CAAA,KAAY;MACnB,IAAI,CAAC0D,YAAY,EAAE;QACjB,MAAM,IAAIzD,KAAK,CAAC,qBAAqB,CAAC;MACxC;MAEA,OAAOb,oBAAoB,CACzBQ,WAAW,EACXkB,eAAe,EACf,MAAMlB,WAAW,CAACkE,kBAAkB,CAACJ,YAAY,CACnD,CAAC;IACH,CAAC;IACDvD,OAAO,EAAGR,OAAO,EAAEQ,OAAO,KAAK,KAAK,IAAK,CAAC,CAACuD,YAAY;IACvDtD,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;IAAE;IAC1BC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAE;EAC1B,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
|
|
28
28
|
import { useCallback } from 'react';
|
|
29
29
|
import { useOxy } from "../context/OxyContext.js";
|
|
30
|
-
import { isWebBrowser } from "
|
|
30
|
+
import { isWebBrowser } from "../utils/isWebBrowser.js";
|
|
31
|
+
import { showSignInModal } from "../components/SignInModal.js";
|
|
31
32
|
/**
|
|
32
33
|
* Unified auth hook for all Oxy apps
|
|
33
34
|
*
|
|
@@ -59,34 +60,23 @@ export function useAuth() {
|
|
|
59
60
|
openAvatarPicker
|
|
60
61
|
} = useOxy();
|
|
61
62
|
const signIn = useCallback(async publicKey => {
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
const isIdentityProvider = isWebBrowser() && window.location.hostname === idpHostname;
|
|
72
|
-
|
|
73
|
-
// Web (not on IdP): use the tokenless redirect SSO flow. The silent
|
|
74
|
-
// cross-domain restore (per-apex `/auth/silent` iframe + `/sso` bounce)
|
|
75
|
-
// already ran on page load; an explicit click needs interactive auth.
|
|
76
|
-
if (isWebBrowser() && !publicKey && !isIdentityProvider) {
|
|
77
|
-
oxyServices.signInWithRedirect?.({
|
|
78
|
-
redirectUri: window.location.href
|
|
79
|
-
});
|
|
63
|
+
// Web (no key): open the in-app "Sign in with Oxy" modal. There is NO
|
|
64
|
+
// automatic navigation to any login page — the device-first cold boot
|
|
65
|
+
// already restored a session if one existed; an explicit click presents the
|
|
66
|
+
// SDK sign-in surface (password / QR device flow / add account).
|
|
67
|
+
if (isWebBrowser() && !publicKey) {
|
|
68
|
+
showSignInModal();
|
|
69
|
+
// Resolves when the modal commits a session; the caller typically reacts
|
|
70
|
+
// to `isAuthenticated` rather than this promise.
|
|
80
71
|
return new Promise(() => undefined);
|
|
81
72
|
}
|
|
82
73
|
|
|
83
|
-
// Native:
|
|
84
|
-
// If public key provided, use it directly
|
|
74
|
+
// Native: use the cryptographic identity directly when a public key is given.
|
|
85
75
|
if (publicKey) {
|
|
86
76
|
return oxySignIn(publicKey);
|
|
87
77
|
}
|
|
88
78
|
|
|
89
|
-
//
|
|
79
|
+
// Native with an existing keychain identity: sign in with it.
|
|
90
80
|
const hasExisting = await hasIdentity();
|
|
91
81
|
if (hasExisting) {
|
|
92
82
|
const existingKey = await getPublicKey();
|
|
@@ -95,24 +85,15 @@ export function useAuth() {
|
|
|
95
85
|
}
|
|
96
86
|
}
|
|
97
87
|
|
|
98
|
-
//
|
|
88
|
+
// Native with no identity: open the auth sheet (password / QR device flow).
|
|
99
89
|
if (showBottomSheet) {
|
|
100
90
|
showBottomSheet('OxyAuth');
|
|
101
|
-
// Return a promise that resolves when auth completes
|
|
102
91
|
return new Promise((_, reject) => {
|
|
103
92
|
reject(new Error('Please complete sign-in in the auth sheet'));
|
|
104
93
|
});
|
|
105
94
|
}
|
|
106
|
-
|
|
107
|
-
// Web fallback: navigate to login page on auth domain
|
|
108
|
-
if (isWebBrowser()) {
|
|
109
|
-
const authBase = authWebUrl || 'https://accounts.oxy.so';
|
|
110
|
-
const loginUrl = window.location.hostname.includes('oxy.so') ? '/login' : `${authBase}/login`;
|
|
111
|
-
window.location.href = loginUrl;
|
|
112
|
-
return new Promise(() => {}); // Never resolves, page will redirect
|
|
113
|
-
}
|
|
114
95
|
throw new Error('No authentication method available');
|
|
115
|
-
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet
|
|
96
|
+
}, [oxySignIn, hasIdentity, getPublicKey, showBottomSheet]);
|
|
116
97
|
const signOut = useCallback(async () => {
|
|
117
98
|
await logout();
|
|
118
99
|
}, [logout]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useOxy","isWebBrowser","useAuth","user","isAuthenticated","isLoading","isTokenReady","hasAccessToken","canUsePrivateApi","isPrivateApiPending","isAuthResolved","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","openAvatarPicker","publicKey","
|
|
1
|
+
{"version":3,"names":["useCallback","useOxy","isWebBrowser","showSignInModal","useAuth","user","isAuthenticated","isLoading","isTokenReady","hasAccessToken","canUsePrivateApi","isPrivateApiPending","isAuthResolved","error","signIn","oxySignIn","logout","logoutAll","refreshSessions","oxyServices","hasIdentity","getPublicKey","showBottomSheet","openAvatarPicker","publicKey","Promise","undefined","hasExisting","existingKey","_","reject","Error","signOut","signOutAll","refresh","isReady"],"sourceRoot":"../../../../src","sources":["ui/hooks/useAuth.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,QAAkB,OAAO;AAC7C,SAASC,MAAM,QAAQ,0BAAuB;AAE9C,SAASC,YAAY,QAAQ,0BAAuB;AACpD,SAASC,eAAe,QAAQ,8BAA2B;AAkF3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAAA,EAAkB;EACvC,MAAM;IACJC,IAAI;IACJC,eAAe;IACfC,SAAS;IACTC,YAAY;IACZC,cAAc;IACdC,gBAAgB;IAChBC,mBAAmB;IACnBC,cAAc;IACdC,KAAK;IACLC,MAAM,EAAEC,SAAS;IACjBC,MAAM;IACNC,SAAS;IACTC,eAAe;IACfC,WAAW;IACXC,WAAW;IACXC,YAAY;IACZC,eAAe;IACfC;EACF,CAAC,GAAGtB,MAAM,CAAC,CAAC;EAEZ,MAAMa,MAAM,GAAGd,WAAW,CAAC,MAAOwB,SAAkB,IAAoB;IACtE;IACA;IACA;IACA;IACA,IAAItB,YAAY,CAAC,CAAC,IAAI,CAACsB,SAAS,EAAE;MAChCrB,eAAe,CAAC,CAAC;MACjB;MACA;MACA,OAAO,IAAIsB,OAAO,CAAO,MAAMC,SAAS,CAAC;IAC3C;;IAEA;IACA,IAAIF,SAAS,EAAE;MACb,OAAOT,SAAS,CAACS,SAAS,CAAC;IAC7B;;IAEA;IACA,MAAMG,WAAW,GAAG,MAAMP,WAAW,CAAC,CAAC;IACvC,IAAIO,WAAW,EAAE;MACf,MAAMC,WAAW,GAAG,MAAMP,YAAY,CAAC,CAAC;MACxC,IAAIO,WAAW,EAAE;QACf,OAAOb,SAAS,CAACa,WAAW,CAAC;MAC/B;IACF;;IAEA;IACA,IAAIN,eAAe,EAAE;MACnBA,eAAe,CAAC,SAAS,CAAC;MAC1B,OAAO,IAAIG,OAAO,CAAC,CAACI,CAAC,EAAEC,MAAM,KAAK;QAChCA,MAAM,CAAC,IAAIC,KAAK,CAAC,2CAA2C,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ;IAEA,MAAM,IAAIA,KAAK,CAAC,oCAAoC,CAAC;EACvD,CAAC,EAAE,CAAChB,SAAS,EAAEK,WAAW,EAAEC,YAAY,EAAEC,eAAe,CAAC,CAAC;EAE3D,MAAMU,OAAO,GAAGhC,WAAW,CAAC,YAA2B;IACrD,MAAMgB,MAAM,CAAC,CAAC;EAChB,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEZ,MAAMiB,UAAU,GAAGjC,WAAW,CAAC,YAA2B;IACxD,MAAMiB,SAAS,CAAC,CAAC;EACnB,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAMiB,OAAO,GAAGlC,WAAW,CAAC,YAA2B;IACrD,MAAMkB,eAAe,CAAC,CAAC;EACzB,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EAErB,OAAO;IACL;IACAb,IAAI;IACJC,eAAe;IACfC,SAAS,EAAEA,SAAS,IAAI,CAACK,cAAc;IACvCuB,OAAO,EAAE3B,YAAY;IACrBC,cAAc;IACdC,gBAAgB;IAChBC,mBAAmB;IACnBC,cAAc;IACdC,KAAK;IAEL;IACAC,MAAM;IACNkB,OAAO;IACPC,UAAU;IACVC,OAAO;IAEP;IACAf,WAAW;IACXG,eAAe;IACfC;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* `usePasswordSignIn` — the first-party password sign-in state machine.
|
|
5
|
+
*
|
|
6
|
+
* Drives the in-app "Sign in with Oxy" password flow shared by the web
|
|
7
|
+
* `SignInModal` and the native `OxyAuthScreen`: identifier → password → optional
|
|
8
|
+
* two-factor. It is a thin UI state machine over the context methods
|
|
9
|
+
* `signInWithPassword` + `completeTwoFactorSignIn` (which own the network call,
|
|
10
|
+
* the persisted-refresh commit, and the device-set registration) — so both
|
|
11
|
+
* surfaces present an identical flow without re-implementing any transport.
|
|
12
|
+
*
|
|
13
|
+
* On a committed session `onSignedIn` fires (the modal/screen closes); the
|
|
14
|
+
* device-first cold boot / SessionClient projection then drive the app into the
|
|
15
|
+
* authenticated state.
|
|
16
|
+
*/
|
|
17
|
+
import { useCallback, useMemo, useRef, useState } from 'react';
|
|
18
|
+
import { useOxy } from "../context/OxyContext.js";
|
|
19
|
+
import { handleAuthError } from "../utils/errorHandlers.js";
|
|
20
|
+
export function usePasswordSignIn(options = {}) {
|
|
21
|
+
const {
|
|
22
|
+
signInWithPassword,
|
|
23
|
+
completeTwoFactorSignIn
|
|
24
|
+
} = useOxy();
|
|
25
|
+
const {
|
|
26
|
+
onSignedIn
|
|
27
|
+
} = options;
|
|
28
|
+
const [step, setStep] = useState('identifier');
|
|
29
|
+
const [identifier, setIdentifier] = useState('');
|
|
30
|
+
const [password, setPassword] = useState('');
|
|
31
|
+
const [code, setCode] = useState('');
|
|
32
|
+
const [useBackupCode, setUseBackupCode] = useState(false);
|
|
33
|
+
const [error, setError] = useState(null);
|
|
34
|
+
const [isSubmitting, setIsSubmitting] = useState(false);
|
|
35
|
+
const [loginToken, setLoginToken] = useState(null);
|
|
36
|
+
|
|
37
|
+
// Synchronous in-flight guard. `isSubmitting` state drives the UI, but a rapid
|
|
38
|
+
// double-tap fires both handlers in the SAME tick — before React re-renders —
|
|
39
|
+
// so a state read would still see `false` on the second call and double-fire
|
|
40
|
+
// the network request (rate-limit + race). This ref is set/checked
|
|
41
|
+
// synchronously, so the second call is a true no-op.
|
|
42
|
+
const submittingRef = useRef(false);
|
|
43
|
+
const surfaceError = useCallback((err, defaultMessage) => {
|
|
44
|
+
setError(handleAuthError(err, {
|
|
45
|
+
defaultMessage,
|
|
46
|
+
code: 'PASSWORD_SIGN_IN_ERROR'
|
|
47
|
+
}));
|
|
48
|
+
}, []);
|
|
49
|
+
const submitIdentifier = useCallback(() => {
|
|
50
|
+
if (!identifier.trim()) {
|
|
51
|
+
setError('Enter your username or email');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
setError(null);
|
|
55
|
+
setStep('password');
|
|
56
|
+
}, [identifier]);
|
|
57
|
+
const submitPassword = useCallback(async () => {
|
|
58
|
+
// A second call while one is already in flight is a no-op (double-tap guard).
|
|
59
|
+
if (submittingRef.current) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (!password) {
|
|
63
|
+
setError('Enter your password');
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setError(null);
|
|
67
|
+
submittingRef.current = true;
|
|
68
|
+
setIsSubmitting(true);
|
|
69
|
+
try {
|
|
70
|
+
const result = await signInWithPassword(identifier.trim(), password);
|
|
71
|
+
if (result.status === '2fa_required') {
|
|
72
|
+
setLoginToken(result.loginToken);
|
|
73
|
+
setCode('');
|
|
74
|
+
setUseBackupCode(false);
|
|
75
|
+
setStep('twoFactor');
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
onSignedIn?.();
|
|
79
|
+
} catch (err) {
|
|
80
|
+
surfaceError(err, 'Sign in failed');
|
|
81
|
+
} finally {
|
|
82
|
+
submittingRef.current = false;
|
|
83
|
+
setIsSubmitting(false);
|
|
84
|
+
}
|
|
85
|
+
}, [identifier, password, signInWithPassword, onSignedIn, surfaceError]);
|
|
86
|
+
const submitTwoFactor = useCallback(async () => {
|
|
87
|
+
// A second call while one is already in flight is a no-op (double-tap guard).
|
|
88
|
+
if (submittingRef.current) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (!loginToken) {
|
|
92
|
+
setError('Your sign-in session expired. Start again.');
|
|
93
|
+
setStep('password');
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!code.trim()) {
|
|
97
|
+
setError(useBackupCode ? 'Enter a backup code' : 'Enter your 6-digit code');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
setError(null);
|
|
101
|
+
submittingRef.current = true;
|
|
102
|
+
setIsSubmitting(true);
|
|
103
|
+
try {
|
|
104
|
+
await completeTwoFactorSignIn({
|
|
105
|
+
loginToken,
|
|
106
|
+
...(useBackupCode ? {
|
|
107
|
+
backupCode: code.trim()
|
|
108
|
+
} : {
|
|
109
|
+
token: code.trim()
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
onSignedIn?.();
|
|
113
|
+
} catch (err) {
|
|
114
|
+
surfaceError(err, 'Verification failed');
|
|
115
|
+
} finally {
|
|
116
|
+
submittingRef.current = false;
|
|
117
|
+
setIsSubmitting(false);
|
|
118
|
+
}
|
|
119
|
+
}, [loginToken, code, useBackupCode, completeTwoFactorSignIn, onSignedIn, surfaceError]);
|
|
120
|
+
const back = useCallback(() => {
|
|
121
|
+
setError(null);
|
|
122
|
+
setStep(current => {
|
|
123
|
+
if (current === 'twoFactor') {
|
|
124
|
+
setLoginToken(null);
|
|
125
|
+
setCode('');
|
|
126
|
+
return 'password';
|
|
127
|
+
}
|
|
128
|
+
if (current === 'password') {
|
|
129
|
+
setPassword('');
|
|
130
|
+
return 'identifier';
|
|
131
|
+
}
|
|
132
|
+
return current;
|
|
133
|
+
});
|
|
134
|
+
}, []);
|
|
135
|
+
const reset = useCallback(() => {
|
|
136
|
+
setStep('identifier');
|
|
137
|
+
setIdentifier('');
|
|
138
|
+
setPassword('');
|
|
139
|
+
setCode('');
|
|
140
|
+
setUseBackupCode(false);
|
|
141
|
+
setLoginToken(null);
|
|
142
|
+
setError(null);
|
|
143
|
+
submittingRef.current = false;
|
|
144
|
+
setIsSubmitting(false);
|
|
145
|
+
}, []);
|
|
146
|
+
return useMemo(() => ({
|
|
147
|
+
step,
|
|
148
|
+
identifier,
|
|
149
|
+
setIdentifier,
|
|
150
|
+
password,
|
|
151
|
+
setPassword,
|
|
152
|
+
code,
|
|
153
|
+
setCode,
|
|
154
|
+
useBackupCode,
|
|
155
|
+
setUseBackupCode,
|
|
156
|
+
error,
|
|
157
|
+
isSubmitting,
|
|
158
|
+
submitIdentifier,
|
|
159
|
+
submitPassword,
|
|
160
|
+
submitTwoFactor,
|
|
161
|
+
back,
|
|
162
|
+
reset
|
|
163
|
+
}), [step, identifier, password, code, useBackupCode, error, isSubmitting, submitIdentifier, submitPassword, submitTwoFactor, back, reset]);
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=usePasswordSignIn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useRef","useState","useOxy","handleAuthError","usePasswordSignIn","options","signInWithPassword","completeTwoFactorSignIn","onSignedIn","step","setStep","identifier","setIdentifier","password","setPassword","code","setCode","useBackupCode","setUseBackupCode","error","setError","isSubmitting","setIsSubmitting","loginToken","setLoginToken","submittingRef","surfaceError","err","defaultMessage","submitIdentifier","trim","submitPassword","current","result","status","submitTwoFactor","backupCode","token","back","reset"],"sourceRoot":"../../../../src","sources":["ui/hooks/usePasswordSignIn.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,eAAe,QAAQ,2BAAwB;AAkCxD,OAAO,SAASC,iBAAiBA,CAACC,OAAiC,GAAG,CAAC,CAAC,EAA2B;EACjG,MAAM;IAAEC,kBAAkB;IAAEC;EAAwB,CAAC,GAAGL,MAAM,CAAC,CAAC;EAChE,MAAM;IAAEM;EAAW,CAAC,GAAGH,OAAO;EAE9B,MAAM,CAACI,IAAI,EAAEC,OAAO,CAAC,GAAGT,QAAQ,CAAqB,YAAY,CAAC;EAClE,MAAM,CAACU,UAAU,EAAEC,aAAa,CAAC,GAAGX,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAACY,QAAQ,EAAEC,WAAW,CAAC,GAAGb,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAACc,IAAI,EAAEC,OAAO,CAAC,GAAGf,QAAQ,CAAC,EAAE,CAAC;EACpC,MAAM,CAACgB,aAAa,EAAEC,gBAAgB,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACkB,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACoB,YAAY,EAAEC,eAAe,CAAC,GAAGrB,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACsB,UAAU,EAAEC,aAAa,CAAC,GAAGvB,QAAQ,CAAgB,IAAI,CAAC;;EAEjE;EACA;EACA;EACA;EACA;EACA,MAAMwB,aAAa,GAAGzB,MAAM,CAAC,KAAK,CAAC;EAEnC,MAAM0B,YAAY,GAAG5B,WAAW,CAAC,CAAC6B,GAAY,EAAEC,cAAsB,KAAW;IAC/ER,QAAQ,CAACjB,eAAe,CAACwB,GAAG,EAAE;MAAEC,cAAc;MAAEb,IAAI,EAAE;IAAyB,CAAC,CAAC,CAAC;EACpF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMc,gBAAgB,GAAG/B,WAAW,CAAC,MAAM;IACzC,IAAI,CAACa,UAAU,CAACmB,IAAI,CAAC,CAAC,EAAE;MACtBV,QAAQ,CAAC,8BAA8B,CAAC;MACxC;IACF;IACAA,QAAQ,CAAC,IAAI,CAAC;IACdV,OAAO,CAAC,UAAU,CAAC;EACrB,CAAC,EAAE,CAACC,UAAU,CAAC,CAAC;EAEhB,MAAMoB,cAAc,GAAGjC,WAAW,CAAC,YAAY;IAC7C;IACA,IAAI2B,aAAa,CAACO,OAAO,EAAE;MACzB;IACF;IACA,IAAI,CAACnB,QAAQ,EAAE;MACbO,QAAQ,CAAC,qBAAqB,CAAC;MAC/B;IACF;IACAA,QAAQ,CAAC,IAAI,CAAC;IACdK,aAAa,CAACO,OAAO,GAAG,IAAI;IAC5BV,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAMW,MAAM,GAAG,MAAM3B,kBAAkB,CAACK,UAAU,CAACmB,IAAI,CAAC,CAAC,EAAEjB,QAAQ,CAAC;MACpE,IAAIoB,MAAM,CAACC,MAAM,KAAK,cAAc,EAAE;QACpCV,aAAa,CAACS,MAAM,CAACV,UAAU,CAAC;QAChCP,OAAO,CAAC,EAAE,CAAC;QACXE,gBAAgB,CAAC,KAAK,CAAC;QACvBR,OAAO,CAAC,WAAW,CAAC;QACpB;MACF;MACAF,UAAU,GAAG,CAAC;IAChB,CAAC,CAAC,OAAOmB,GAAG,EAAE;MACZD,YAAY,CAACC,GAAG,EAAE,gBAAgB,CAAC;IACrC,CAAC,SAAS;MACRF,aAAa,CAACO,OAAO,GAAG,KAAK;MAC7BV,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACX,UAAU,EAAEE,QAAQ,EAAEP,kBAAkB,EAAEE,UAAU,EAAEkB,YAAY,CAAC,CAAC;EAExE,MAAMS,eAAe,GAAGrC,WAAW,CAAC,YAAY;IAC9C;IACA,IAAI2B,aAAa,CAACO,OAAO,EAAE;MACzB;IACF;IACA,IAAI,CAACT,UAAU,EAAE;MACfH,QAAQ,CAAC,4CAA4C,CAAC;MACtDV,OAAO,CAAC,UAAU,CAAC;MACnB;IACF;IACA,IAAI,CAACK,IAAI,CAACe,IAAI,CAAC,CAAC,EAAE;MAChBV,QAAQ,CAACH,aAAa,GAAG,qBAAqB,GAAG,yBAAyB,CAAC;MAC3E;IACF;IACAG,QAAQ,CAAC,IAAI,CAAC;IACdK,aAAa,CAACO,OAAO,GAAG,IAAI;IAC5BV,eAAe,CAAC,IAAI,CAAC;IACrB,IAAI;MACF,MAAMf,uBAAuB,CAAC;QAC5BgB,UAAU;QACV,IAAIN,aAAa,GAAG;UAAEmB,UAAU,EAAErB,IAAI,CAACe,IAAI,CAAC;QAAE,CAAC,GAAG;UAAEO,KAAK,EAAEtB,IAAI,CAACe,IAAI,CAAC;QAAE,CAAC;MAC1E,CAAC,CAAC;MACFtB,UAAU,GAAG,CAAC;IAChB,CAAC,CAAC,OAAOmB,GAAG,EAAE;MACZD,YAAY,CAACC,GAAG,EAAE,qBAAqB,CAAC;IAC1C,CAAC,SAAS;MACRF,aAAa,CAACO,OAAO,GAAG,KAAK;MAC7BV,eAAe,CAAC,KAAK,CAAC;IACxB;EACF,CAAC,EAAE,CAACC,UAAU,EAAER,IAAI,EAAEE,aAAa,EAAEV,uBAAuB,EAAEC,UAAU,EAAEkB,YAAY,CAAC,CAAC;EAExF,MAAMY,IAAI,GAAGxC,WAAW,CAAC,MAAM;IAC7BsB,QAAQ,CAAC,IAAI,CAAC;IACdV,OAAO,CAAEsB,OAAO,IAAK;MACnB,IAAIA,OAAO,KAAK,WAAW,EAAE;QAC3BR,aAAa,CAAC,IAAI,CAAC;QACnBR,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,UAAU;MACnB;MACA,IAAIgB,OAAO,KAAK,UAAU,EAAE;QAC1BlB,WAAW,CAAC,EAAE,CAAC;QACf,OAAO,YAAY;MACrB;MACA,OAAOkB,OAAO;IAChB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,KAAK,GAAGzC,WAAW,CAAC,MAAM;IAC9BY,OAAO,CAAC,YAAY,CAAC;IACrBE,aAAa,CAAC,EAAE,CAAC;IACjBE,WAAW,CAAC,EAAE,CAAC;IACfE,OAAO,CAAC,EAAE,CAAC;IACXE,gBAAgB,CAAC,KAAK,CAAC;IACvBM,aAAa,CAAC,IAAI,CAAC;IACnBJ,QAAQ,CAAC,IAAI,CAAC;IACdK,aAAa,CAACO,OAAO,GAAG,KAAK;IAC7BV,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOvB,OAAO,CACZ,OAAO;IACLU,IAAI;IACJE,UAAU;IACVC,aAAa;IACbC,QAAQ;IACRC,WAAW;IACXC,IAAI;IACJC,OAAO;IACPC,aAAa;IACbC,gBAAgB;IAChBC,KAAK;IACLE,YAAY;IACZQ,gBAAgB;IAChBE,cAAc;IACdI,eAAe;IACfG,IAAI;IACJC;EACF,CAAC,CAAC,EACF,CACE9B,IAAI,EACJE,UAAU,EACVE,QAAQ,EACRE,IAAI,EACJE,aAAa,EACbE,KAAK,EACLE,YAAY,EACZQ,gBAAgB,EAChBE,cAAc,EACdI,eAAe,EACfG,IAAI,EACJC,KAAK,CAET,CAAC;AACH","ignoreList":[]}
|
|
@@ -32,11 +32,8 @@ export const useProfileEditing = () => {
|
|
|
32
32
|
if (updates.bio !== undefined) {
|
|
33
33
|
updateData.bio = updates.bio;
|
|
34
34
|
}
|
|
35
|
-
if (updates.
|
|
36
|
-
updateData.
|
|
37
|
-
if (updates.locations) {
|
|
38
|
-
updateData.locations = updates.locations;
|
|
39
|
-
}
|
|
35
|
+
if (updates.locations !== undefined) {
|
|
36
|
+
updateData.locations = updates.locations;
|
|
40
37
|
}
|
|
41
38
|
if (updates.links !== undefined) {
|
|
42
39
|
updateData.links = updates.links;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useUpdateProfile","useAuthStore","isProfileLocationArray","value","Array","isArray","every","item","isProfileLinkMetadataArray","useProfileEditing","updateProfileMutation","saveProfile","updates","updateData","username","undefined","email","bio","
|
|
1
|
+
{"version":3,"names":["useCallback","useUpdateProfile","useAuthStore","isProfileLocationArray","value","Array","isArray","every","item","isProfileLinkMetadataArray","useProfileEditing","updateProfileMutation","saveProfile","updates","updateData","username","undefined","email","bio","locations","links","linksMetadata","avatar","phone","address","birthday","firstName","lastName","currentUser","getState","user","currentName","name","first","last","mutateAsync","error","updateField","field","map","link","url","isSaving","isPending"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import { fetchSessionsWithFallback } from "../utils/sessionHelpers.js";
|
|
|
7
7
|
import { getStorageKeys } from "../utils/storageHelpers.js";
|
|
8
8
|
import { handleAuthError, isInvalidSessionError } from "../utils/errorHandlers.js";
|
|
9
9
|
import { clearQueryCache } from "./queryClient.js";
|
|
10
|
-
import { isWebBrowser } from "
|
|
10
|
+
import { isWebBrowser } from "../utils/isWebBrowser.js";
|
|
11
11
|
const DEFAULT_SAVE_ERROR_MESSAGE = 'Failed to save session data';
|
|
12
12
|
const CLEAR_STORAGE_ERROR = 'Failed to clear storage';
|
|
13
13
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isDev","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","isWebBrowser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","sessionsRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","preserveSessionIds","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","activateSession","user","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","forEach","clearTimeout","switchSession","getAccessToken","Error","validation","validateSession","useHeaderValidation","valid","deviceSessions","fallbackUserId","id","invalidSession","filter","refreshSessions","activeUserId","now","Date","refreshPromise","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SAASC,KAAK,QAAkC,aAAa;AAE7D,SAASC,aAAa,EAAEC,wBAAwB,EAAEC,mBAAmB,QAAQ,aAAa;AAC1F,SAASC,yBAAyB,QAAQ,4BAAyB;AACnE,SAASC,cAAc,QAA+B,4BAAyB;AAC/E,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,2BAAwB;AAG/E,SAASC,eAAe,QAAQ,kBAAe;AAC/C,SAASC,YAAY,QAAQ,
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isDev","mergeSessions","normalizeAndSortSessions","sessionsArraysEqual","fetchSessionsWithFallback","getStorageKeys","handleAuthError","isInvalidSessionError","clearQueryCache","isWebBrowser","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","activeSessionId","setActiveSessionId","sessionsRef","current","activeSessionIdRef","refreshInFlightRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","saveSessionIds","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","map","session","sessionId","preserveSessionIds","saveActiveSessionId","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","clearTokens","clear","activateSession","user","removalTimerIdsRef","trackRemovedSession","add","timerId","setTimeout","delete","forEach","clearTimeout","switchSession","getAccessToken","Error","validation","validateSession","useHeaderValidation","valid","deviceSessions","fallbackUserId","id","invalidSession","filter","refreshSessions","activeUserId","now","Date","refreshPromise","isRefreshInFlight","Boolean"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,6 +30,7 @@ const screenLoaders = {
|
|
|
30
30
|
UserLinks: () => require('../screens/UserLinksScreen').default,
|
|
31
31
|
HistoryView: () => require('../screens/HistoryViewScreen').default,
|
|
32
32
|
SavesCollections: () => require('../screens/SavesCollectionsScreen').default,
|
|
33
|
+
EditProfile: () => require('../screens/EditProfileScreen').default,
|
|
33
34
|
EditProfileField: () => require('../screens/EditProfileFieldScreen').default,
|
|
34
35
|
// Informational screens
|
|
35
36
|
LearnMoreUsernames: () => require('../screens/LearnMoreUsernamesScreen').default,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","AccountSwitcher","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","isValidRoute","isFileManagementImageOnlyPicker","props","selectMode","disabled","disabledMimeTypes","Array","isArray","length","predicate","some","mt","blocksVideos","startsWith","blocksAudio","blocksDocs","DEFAULT_SHEET_CONFIG","scrollable","manualActivation","dynamicBackdrop","getSheetConfig","screenProps"],"sourceRoot":"../../../../src","sources":["ui/navigation/routes.ts"],"mappings":";;AAGA;AACA;AACA;;AAEA;;
|
|
1
|
+
{"version":3,"names":["screenLoaders","OxyAuth","require","default","ManageAccount","AccountVerification","PaymentGateway","Profile","LanguageSelector","PrivacySettings","SearchSettings","FileManagement","HelpSupport","FAQ","Feedback","LegalDocuments","AppInfo","PremiumSubscription","WelcomeNewUser","UserLinks","HistoryView","SavesCollections","EditProfile","EditProfileField","LearnMoreUsernames","TrustCenter","TrustLeaderboard","TrustRewards","TrustRules","AboutTrust","TrustFAQ","FollowersList","FollowingList","AccountSwitcher","CreateAccount","AccountMembers","AccountSettings","AvatarCrop","Notifications","ConnectedApps","Preferences","screenCache","Map","getScreenComponent","routeName","has","get","loader","component","set","error","__DEV__","console","undefined","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":[]}
|
|
@@ -12,8 +12,8 @@ import EmptyState from "../components/EmptyState.js";
|
|
|
12
12
|
import LoadingState from "../components/LoadingState.js";
|
|
13
13
|
import { useI18n } from "../hooks/useI18n.js";
|
|
14
14
|
import { useOxy } from "../context/OxyContext.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { useConnectedApps } from "../hooks/queries/useAccountQueries.js";
|
|
16
|
+
import { useRevokeConnectedApp } from "../hooks/mutations/useAccountMutations.js";
|
|
17
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
18
|
const APP_ICON_SIZE = 40;
|
|
19
19
|
|
|
@@ -39,12 +39,11 @@ const formatRelative = iso => {
|
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
* ConnectedAppsScreen — list and revoke
|
|
42
|
+
* ConnectedAppsScreen — list and revoke connected OAuth applications.
|
|
43
43
|
*
|
|
44
|
-
* Fetches via `
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* refreshes immediately.
|
|
44
|
+
* Fetches via `useConnectedApps` (drives `GET /auth/grants`) and exposes a
|
|
45
|
+
* "Revoke" action that hits `DELETE /auth/grants/:applicationId`. Each revoke
|
|
46
|
+
* invalidates the connected-apps query so the list refreshes immediately.
|
|
48
47
|
*/
|
|
49
48
|
const ConnectedAppsScreen = ({
|
|
50
49
|
onClose,
|
|
@@ -62,13 +61,13 @@ const ConnectedAppsScreen = ({
|
|
|
62
61
|
isLoading,
|
|
63
62
|
refetch,
|
|
64
63
|
isRefetching
|
|
65
|
-
} =
|
|
64
|
+
} = useConnectedApps({
|
|
66
65
|
enabled: isAuthenticated
|
|
67
66
|
});
|
|
68
|
-
const revokeMutation =
|
|
67
|
+
const revokeMutation = useRevokeConnectedApp();
|
|
69
68
|
const revokeDialog = useDialogControl();
|
|
70
69
|
const [pendingRevoke, setPendingRevoke] = useState(null);
|
|
71
|
-
const [
|
|
70
|
+
const [revokingAppId, setRevokingAppId] = useState(null);
|
|
72
71
|
const confirmRevoke = useCallback(app => {
|
|
73
72
|
setPendingRevoke(app);
|
|
74
73
|
revokeDialog.open();
|
|
@@ -78,19 +77,19 @@ const ConnectedAppsScreen = ({
|
|
|
78
77
|
return;
|
|
79
78
|
}
|
|
80
79
|
const target = pendingRevoke;
|
|
81
|
-
|
|
80
|
+
setRevokingAppId(target.applicationId);
|
|
82
81
|
try {
|
|
83
|
-
await revokeMutation.mutateAsync(target.
|
|
82
|
+
await revokeMutation.mutateAsync(target.applicationId);
|
|
84
83
|
toast.success(t('connectedApps.toasts.revoked', {
|
|
85
84
|
name: target.name
|
|
86
85
|
}) || `Revoked access for ${target.name}`);
|
|
87
86
|
} catch (error) {
|
|
88
|
-
loggerUtil.warn('Revoke
|
|
87
|
+
loggerUtil.warn('Revoke connected app failed', {
|
|
89
88
|
component: 'ConnectedAppsScreen'
|
|
90
89
|
}, error);
|
|
91
90
|
toast.error(t('connectedApps.toasts.revokeFailed') || 'Failed to revoke access');
|
|
92
91
|
} finally {
|
|
93
|
-
|
|
92
|
+
setRevokingAppId(null);
|
|
94
93
|
setPendingRevoke(null);
|
|
95
94
|
}
|
|
96
95
|
}, [pendingRevoke, revokeMutation, t]);
|
|
@@ -104,7 +103,7 @@ const ConnectedAppsScreen = ({
|
|
|
104
103
|
const renderItem = useCallback(({
|
|
105
104
|
item
|
|
106
105
|
}) => {
|
|
107
|
-
const isRevoking =
|
|
106
|
+
const isRevoking = revokingAppId === item.applicationId;
|
|
108
107
|
return /*#__PURE__*/_jsx(SettingsListGroup, {
|
|
109
108
|
children: /*#__PURE__*/_jsx(SettingsListItem, {
|
|
110
109
|
icon: /*#__PURE__*/_jsx(Avatar, {
|
|
@@ -112,9 +111,9 @@ const ConnectedAppsScreen = ({
|
|
|
112
111
|
size: APP_ICON_SIZE
|
|
113
112
|
}),
|
|
114
113
|
title: item.name,
|
|
115
|
-
description: t('connectedApps.item.
|
|
116
|
-
relative: formatRelative(item.
|
|
117
|
-
}) || `
|
|
114
|
+
description: t('connectedApps.item.granted', {
|
|
115
|
+
relative: formatRelative(item.firstGrantedAt)
|
|
116
|
+
}) || `Granted ${formatRelative(item.firstGrantedAt)}`,
|
|
118
117
|
onPress: isRevoking ? undefined : () => confirmRevoke(item),
|
|
119
118
|
disabled: isRevoking,
|
|
120
119
|
destructive: true,
|
|
@@ -125,7 +124,7 @@ const ConnectedAppsScreen = ({
|
|
|
125
124
|
}) : undefined
|
|
126
125
|
})
|
|
127
126
|
});
|
|
128
|
-
}, [bloomTheme.colors.error, confirmRevoke,
|
|
127
|
+
}, [bloomTheme.colors.error, confirmRevoke, revokingAppId, t]);
|
|
129
128
|
return /*#__PURE__*/_jsxs(View, {
|
|
130
129
|
className: "flex-1 bg-bg",
|
|
131
130
|
children: [/*#__PURE__*/_jsx(Header, {
|
|
@@ -137,7 +136,7 @@ const ConnectedAppsScreen = ({
|
|
|
137
136
|
color: bloomTheme.colors.primary
|
|
138
137
|
}) : /*#__PURE__*/_jsx(FlatList, {
|
|
139
138
|
data: apps ?? [],
|
|
140
|
-
keyExtractor: item => item.
|
|
139
|
+
keyExtractor: item => item.applicationId,
|
|
141
140
|
renderItem: renderItem,
|
|
142
141
|
contentContainerClassName: "px-screen-margin py-space-16",
|
|
143
142
|
contentContainerStyle: styles.listContent,
|