@oxyhq/services 5.16.1 → 5.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/core/mixins/OxyServices.user.js +14 -13
- package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/commonjs/crypto/keyManager.js +164 -3
- package/lib/commonjs/crypto/keyManager.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +26 -0
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js +1 -1
- package/lib/commonjs/ui/components/GroupedSection.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +71 -24
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/commonjs/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +177 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/hooks/mutations/index.js +28 -0
- package/lib/commonjs/ui/hooks/mutations/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js +314 -0
- package/lib/commonjs/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js +193 -0
- package/lib/commonjs/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/index.js +39 -0
- package/lib/commonjs/ui/hooks/queries/index.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js +85 -0
- package/lib/commonjs/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js +145 -0
- package/lib/commonjs/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +138 -0
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/commonjs/ui/hooks/queryClient.js +117 -0
- package/lib/commonjs/ui/hooks/queryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js +111 -0
- package/lib/commonjs/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/commonjs/ui/hooks/useProfileEditing.js +42 -58
- package/lib/commonjs/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/commonjs/ui/hooks/useQueryClient.js +20 -0
- package/lib/commonjs/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js +22 -2
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/commonjs/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/commonjs/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/accountStore.js +57 -42
- package/lib/commonjs/ui/stores/accountStore.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +4 -25
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.user.js +14 -13
- package/lib/module/core/mixins/OxyServices.user.js.map +1 -1
- package/lib/module/crypto/keyManager.js +164 -3
- package/lib/module/crypto/keyManager.js.map +1 -1
- package/lib/module/crypto/signatureService.js +26 -0
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/ui/components/GroupedSection.js +1 -1
- package/lib/module/ui/components/GroupedSection.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +72 -25
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/components/profile/EditDisplayNameModal.js +1 -4
- package/lib/module/ui/components/profile/EditDisplayNameModal.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +176 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +148 -49
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/context/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/context/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/hooks/mutations/index.js +6 -0
- package/lib/module/ui/hooks/mutations/index.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js +308 -0
- package/lib/module/ui/hooks/mutations/useAccountMutations.js.map +1 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js +185 -0
- package/lib/module/ui/hooks/mutations/useServicesMutations.js.map +1 -0
- package/lib/module/ui/hooks/queries/index.js +7 -0
- package/lib/module/ui/hooks/queries/index.js.map +1 -0
- package/lib/module/ui/hooks/queries/queryKeys.js +78 -0
- package/lib/module/ui/hooks/queries/queryKeys.js.map +1 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js +136 -0
- package/lib/module/ui/hooks/queries/useAccountQueries.js.map +1 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js +130 -0
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -0
- package/lib/module/ui/hooks/queryClient.js +110 -0
- package/lib/module/ui/hooks/queryClient.js.map +1 -0
- package/lib/module/ui/hooks/useIdentityMutations.js +105 -0
- package/lib/module/ui/hooks/useIdentityMutations.js.map +1 -0
- package/lib/module/ui/hooks/useProfileEditing.js +43 -59
- package/lib/module/ui/hooks/useProfileEditing.js.map +1 -1
- package/lib/module/ui/hooks/useQueryClient.js +15 -0
- package/lib/module/ui/hooks/useQueryClient.js.map +1 -0
- package/lib/module/ui/hooks/useSessionManagement.js +22 -2
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/screens/AccountOverviewScreen.js +43 -42
- package/lib/module/ui/screens/AccountOverviewScreen.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +63 -58
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/WelcomeNewUserScreen.js +6 -6
- package/lib/module/ui/screens/WelcomeNewUserScreen.js.map +1 -1
- package/lib/module/ui/stores/accountStore.js +57 -42
- package/lib/module/ui/stores/accountStore.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +4 -25
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.user.d.ts +4 -5
- package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +0 -1
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/keyManager.d.ts +19 -2
- package/lib/typescript/crypto/keyManager.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +5 -0
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/components/profile/EditDisplayNameModal.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +4 -0
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/context/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/mutations/index.d.ts +3 -0
- package/lib/typescript/ui/hooks/mutations/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +25 -0
- package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +23 -0
- package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts +4 -0
- package/lib/typescript/ui/hooks/queries/index.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts +56 -0
- package/lib/typescript/ui/hooks/queries/queryKeys.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +41 -0
- package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts +34 -0
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts +19 -0
- package/lib/typescript/ui/hooks/queryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts +29 -0
- package/lib/typescript/ui/hooks/useIdentityMutations.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useProfileEditing.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useQueryClient.d.ts +7 -0
- package/lib/typescript/ui/hooks/useQueryClient.d.ts.map +1 -0
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts +3 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountOverviewScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/WelcomeNewUserScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/accountStore.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +0 -4
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/core/mixins/OxyServices.user.ts +17 -10
- package/src/crypto/keyManager.ts +177 -2
- package/src/crypto/signatureService.ts +30 -0
- package/src/ui/components/GroupedSection.tsx +1 -1
- package/src/ui/components/OxyProvider.tsx +91 -37
- package/src/ui/components/profile/EditDisplayNameModal.tsx +1 -3
- package/src/ui/context/OxyContext.tsx +185 -2
- package/src/ui/context/hooks/useAuthOperations.ts +171 -58
- package/src/ui/context/hooks/useSessionManagement.ts +24 -1
- package/src/ui/hooks/mutations/index.ts +4 -0
- package/src/ui/hooks/mutations/useAccountMutations.ts +277 -0
- package/src/ui/hooks/mutations/useServicesMutations.ts +164 -0
- package/src/ui/hooks/queries/index.ts +5 -0
- package/src/ui/hooks/queries/queryKeys.ts +73 -0
- package/src/ui/hooks/queries/useAccountQueries.ts +126 -0
- package/src/ui/hooks/queries/useServicesQueries.ts +121 -0
- package/src/ui/hooks/queryClient.ts +112 -0
- package/src/ui/hooks/useIdentityMutations.ts +115 -0
- package/src/ui/hooks/useProfileEditing.ts +46 -60
- package/src/ui/hooks/useQueryClient.ts +17 -0
- package/src/ui/hooks/useSessionManagement.ts +24 -1
- package/src/ui/screens/AccountOverviewScreen.tsx +38 -46
- package/src/ui/screens/AccountSettingsScreen.tsx +54 -54
- package/src/ui/screens/WelcomeNewUserScreen.tsx +13 -12
- package/src/ui/stores/accountStore.ts +54 -43
- package/src/ui/stores/authStore.ts +3 -17
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createQueryClient = exports.createPersistenceAdapter = exports.clearQueryCache = void 0;
|
|
7
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
8
|
+
const QUERY_CACHE_KEY = 'oxy_query_cache';
|
|
9
|
+
const QUERY_CACHE_VERSION = '1';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Custom persistence adapter for TanStack Query using our StorageInterface
|
|
13
|
+
*/
|
|
14
|
+
const createPersistenceAdapter = storage => {
|
|
15
|
+
return {
|
|
16
|
+
persistClient: async client => {
|
|
17
|
+
try {
|
|
18
|
+
const serialized = JSON.stringify({
|
|
19
|
+
clientState: client,
|
|
20
|
+
timestamp: Date.now(),
|
|
21
|
+
version: QUERY_CACHE_VERSION
|
|
22
|
+
});
|
|
23
|
+
await storage.setItem(QUERY_CACHE_KEY, serialized);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
if (__DEV__) {
|
|
26
|
+
console.warn('[QueryClient] Failed to persist cache:', error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
restoreClient: async () => {
|
|
31
|
+
try {
|
|
32
|
+
const cached = await storage.getItem(QUERY_CACHE_KEY);
|
|
33
|
+
if (!cached) return undefined;
|
|
34
|
+
const parsed = JSON.parse(cached);
|
|
35
|
+
|
|
36
|
+
// Check version compatibility
|
|
37
|
+
if (parsed.version !== QUERY_CACHE_VERSION) {
|
|
38
|
+
// Clear old cache on version mismatch
|
|
39
|
+
await storage.removeItem(QUERY_CACHE_KEY);
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Check if cache is too old (30 days)
|
|
44
|
+
const maxAge = 30 * 24 * 60 * 60 * 1000;
|
|
45
|
+
if (parsed.timestamp && Date.now() - parsed.timestamp > maxAge) {
|
|
46
|
+
await storage.removeItem(QUERY_CACHE_KEY);
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return parsed.clientState;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
if (__DEV__) {
|
|
52
|
+
console.warn('[QueryClient] Failed to restore cache:', error);
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
removeClient: async () => {
|
|
58
|
+
try {
|
|
59
|
+
await storage.removeItem(QUERY_CACHE_KEY);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
if (__DEV__) {
|
|
62
|
+
console.warn('[QueryClient] Failed to remove cache:', error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Create a QueryClient with offline-first configuration
|
|
71
|
+
*/
|
|
72
|
+
exports.createPersistenceAdapter = createPersistenceAdapter;
|
|
73
|
+
const createQueryClient = storage => {
|
|
74
|
+
const client = new _reactQuery.QueryClient({
|
|
75
|
+
defaultOptions: {
|
|
76
|
+
queries: {
|
|
77
|
+
// Data is fresh for 5 minutes
|
|
78
|
+
staleTime: 5 * 60 * 1000,
|
|
79
|
+
// Keep unused data in cache for 30 minutes
|
|
80
|
+
gcTime: 30 * 60 * 1000,
|
|
81
|
+
// Retry 3 times with exponential backoff
|
|
82
|
+
retry: 3,
|
|
83
|
+
retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),
|
|
84
|
+
// Refetch on reconnect
|
|
85
|
+
refetchOnReconnect: true,
|
|
86
|
+
// Don't refetch on window focus (better for mobile)
|
|
87
|
+
refetchOnWindowFocus: false,
|
|
88
|
+
// Offline-first: use cache when offline
|
|
89
|
+
networkMode: 'offlineFirst'
|
|
90
|
+
},
|
|
91
|
+
mutations: {
|
|
92
|
+
// Retry once for mutations
|
|
93
|
+
retry: 1,
|
|
94
|
+
// Offline-first: queue mutations when offline
|
|
95
|
+
networkMode: 'offlineFirst'
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Note: Persistence is handled by TanStack Query's built-in persistence
|
|
101
|
+
// For now, we rely on the query client's default behavior with networkMode: 'offlineFirst'
|
|
102
|
+
// The cache will be available in memory and queries will use cached data when offline
|
|
103
|
+
// Full persistence to AsyncStorage can be added later with @tanstack/react-query-persist-client if needed
|
|
104
|
+
|
|
105
|
+
return client;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Clear persisted query cache
|
|
110
|
+
*/
|
|
111
|
+
exports.createQueryClient = createQueryClient;
|
|
112
|
+
const clearQueryCache = async storage => {
|
|
113
|
+
const adapter = createPersistenceAdapter(storage);
|
|
114
|
+
await adapter.removeClient();
|
|
115
|
+
};
|
|
116
|
+
exports.clearQueryCache = clearQueryCache;
|
|
117
|
+
//# sourceMappingURL=queryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","QUERY_CACHE_KEY","QUERY_CACHE_VERSION","createPersistenceAdapter","storage","persistClient","client","serialized","JSON","stringify","clientState","timestamp","Date","now","version","setItem","error","__DEV__","console","warn","restoreClient","cached","getItem","undefined","parsed","parse","removeItem","maxAge","removeClient","exports","createQueryClient","QueryClient","defaultOptions","queries","staleTime","gcTime","retry","retryDelay","attemptIndex","Math","min","refetchOnReconnect","refetchOnWindowFocus","networkMode","mutations","clearQueryCache","adapter"],"sourceRoot":"../../../../src","sources":["ui/hooks/queryClient.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useCreateIdentity = useCreateIdentity;
|
|
7
|
+
exports.useImportIdentity = useImportIdentity;
|
|
8
|
+
exports.useSyncIdentity = useSyncIdentity;
|
|
9
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
10
|
+
/**
|
|
11
|
+
* TanStack Query mutations for identity operations
|
|
12
|
+
* Provides offline-first mutations for identity creation, import, and sync
|
|
13
|
+
* Never deletes identity on errors - preserves user data
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Hook for creating a new identity with offline support
|
|
18
|
+
* Never deletes identity on error - preserves user data
|
|
19
|
+
*/
|
|
20
|
+
function useCreateIdentity(createIdentityFn) {
|
|
21
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
22
|
+
return (0, _reactQuery.useMutation)({
|
|
23
|
+
mutationFn: createIdentityFn,
|
|
24
|
+
onSuccess: data => {
|
|
25
|
+
// Invalidate user queries to refetch after identity creation
|
|
26
|
+
queryClient.invalidateQueries({
|
|
27
|
+
queryKey: ['user']
|
|
28
|
+
});
|
|
29
|
+
queryClient.invalidateQueries({
|
|
30
|
+
queryKey: ['identity']
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
onError: error => {
|
|
34
|
+
// Never delete identity on error - just log it
|
|
35
|
+
// User can recover using recovery phrase
|
|
36
|
+
if (__DEV__) {
|
|
37
|
+
console.warn('[useCreateIdentity] Identity creation error (identity may still exist):', error);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
retry: false,
|
|
41
|
+
// Don't retry identity creation
|
|
42
|
+
networkMode: 'offlineFirst'
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Hook for importing an identity from recovery phrase
|
|
48
|
+
* Never deletes identity on error - preserves user data
|
|
49
|
+
*/
|
|
50
|
+
function useImportIdentity(importIdentityFn) {
|
|
51
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
52
|
+
return (0, _reactQuery.useMutation)({
|
|
53
|
+
mutationFn: importIdentityFn,
|
|
54
|
+
onSuccess: data => {
|
|
55
|
+
queryClient.invalidateQueries({
|
|
56
|
+
queryKey: ['user']
|
|
57
|
+
});
|
|
58
|
+
queryClient.invalidateQueries({
|
|
59
|
+
queryKey: ['identity']
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
onError: error => {
|
|
63
|
+
// Never delete identity on error - just log it
|
|
64
|
+
if (__DEV__) {
|
|
65
|
+
console.warn('[useImportIdentity] Identity import error (identity may still exist):', error);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
retry: false,
|
|
69
|
+
networkMode: 'offlineFirst'
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Hook for syncing identity with server
|
|
75
|
+
* Never deletes identity on error - only logs and allows retry
|
|
76
|
+
*/
|
|
77
|
+
function useSyncIdentity(syncIdentityFn) {
|
|
78
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
79
|
+
return (0, _reactQuery.useMutation)({
|
|
80
|
+
mutationFn: syncIdentityFn,
|
|
81
|
+
onSuccess: user => {
|
|
82
|
+
// Update user cache
|
|
83
|
+
queryClient.setQueryData(['user', 'current'], user);
|
|
84
|
+
queryClient.invalidateQueries({
|
|
85
|
+
queryKey: ['user']
|
|
86
|
+
});
|
|
87
|
+
queryClient.invalidateQueries({
|
|
88
|
+
queryKey: ['identity']
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
onError: error => {
|
|
92
|
+
// Never delete identity on error - just log it
|
|
93
|
+
// User can retry sync later or use recovery phrase
|
|
94
|
+
if (__DEV__) {
|
|
95
|
+
console.warn('[useSyncIdentity] Sync failed, but identity is preserved:', error);
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
retry: (failureCount, error) => {
|
|
99
|
+
// Retry up to 2 times for sync operations
|
|
100
|
+
// Don't retry if it's a network error - user can retry when online
|
|
101
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
102
|
+
const isNetworkError = errorMessage.includes('Network') || errorMessage.includes('Failed to fetch') || error?.code === 'NETWORK_ERROR';
|
|
103
|
+
if (isNetworkError) {
|
|
104
|
+
return false; // Don't retry network errors - user will retry when online
|
|
105
|
+
}
|
|
106
|
+
return failureCount < 2;
|
|
107
|
+
},
|
|
108
|
+
networkMode: 'offlineFirst'
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=useIdentityMutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","useCreateIdentity","createIdentityFn","queryClient","useQueryClient","useMutation","mutationFn","onSuccess","data","invalidateQueries","queryKey","onError","error","__DEV__","console","warn","retry","networkMode","useImportIdentity","importIdentityFn","useSyncIdentity","syncIdentityFn","user","setQueryData","failureCount","errorMessage","Error","message","String","isNetworkError","includes","code"],"sourceRoot":"../../../../src","sources":["ui/hooks/useIdentityMutations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,83 +5,67 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useProfileEditing = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
-
var _OxyContext = require("../context/OxyContext");
|
|
9
|
-
var _authStore = require("../stores/authStore");
|
|
10
|
-
var _sonner = require("../../lib/sonner");
|
|
11
8
|
var _useI18n = require("./useI18n");
|
|
9
|
+
var _useAccountMutations = require("./mutations/useAccountMutations");
|
|
10
|
+
var _authStore = require("../stores/authStore");
|
|
12
11
|
/**
|
|
13
12
|
* Hook for managing profile editing operations
|
|
14
13
|
* Provides functions to update profile fields and handle saving
|
|
15
14
|
*/
|
|
16
15
|
const useProfileEditing = () => {
|
|
17
|
-
const {
|
|
18
|
-
oxyServices,
|
|
19
|
-
activeSessionId
|
|
20
|
-
} = (0, _OxyContext.useOxy)();
|
|
21
|
-
const updateUser = (0, _authStore.useAuthStore)(state => state.updateUser);
|
|
22
16
|
const {
|
|
23
17
|
t
|
|
24
18
|
} = (0, _useI18n.useI18n)();
|
|
25
|
-
const
|
|
19
|
+
const updateProfileMutation = (0, _useAccountMutations.useUpdateProfile)();
|
|
26
20
|
|
|
27
21
|
/**
|
|
28
|
-
* Save profile updates to the server
|
|
22
|
+
* Save profile updates to the server using TanStack Query
|
|
29
23
|
*/
|
|
30
24
|
const saveProfile = (0, _react.useCallback)(async updates => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// Prepare update object
|
|
26
|
+
const updateData = {};
|
|
27
|
+
if (updates.username !== undefined) {
|
|
28
|
+
updateData.username = updates.username;
|
|
34
29
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (updates.
|
|
44
|
-
updateData.
|
|
45
|
-
}
|
|
46
|
-
if (updates.bio !== undefined) {
|
|
47
|
-
updateData.bio = updates.bio;
|
|
48
|
-
}
|
|
49
|
-
if (updates.location !== undefined || updates.locations !== undefined) {
|
|
50
|
-
updateData.location = updates.locations && updates.locations.length > 0 ? updates.locations[0].name : updates.location || '';
|
|
51
|
-
if (updates.locations) {
|
|
52
|
-
updateData.locations = updates.locations;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (updates.links !== undefined) {
|
|
56
|
-
updateData.links = updates.links;
|
|
57
|
-
}
|
|
58
|
-
if (updates.linksMetadata !== undefined) {
|
|
59
|
-
updateData.linksMetadata = updates.linksMetadata;
|
|
60
|
-
}
|
|
61
|
-
if (updates.avatar !== undefined) {
|
|
62
|
-
updateData.avatar = updates.avatar;
|
|
30
|
+
if (updates.email !== undefined) {
|
|
31
|
+
updateData.email = updates.email;
|
|
32
|
+
}
|
|
33
|
+
if (updates.bio !== undefined) {
|
|
34
|
+
updateData.bio = updates.bio;
|
|
35
|
+
}
|
|
36
|
+
if (updates.location !== undefined || updates.locations !== undefined) {
|
|
37
|
+
updateData.location = updates.locations && updates.locations.length > 0 ? updates.locations[0].name : updates.location || '';
|
|
38
|
+
if (updates.locations) {
|
|
39
|
+
updateData.locations = updates.locations;
|
|
63
40
|
}
|
|
41
|
+
}
|
|
42
|
+
if (updates.links !== undefined) {
|
|
43
|
+
updateData.links = updates.links;
|
|
44
|
+
}
|
|
45
|
+
if (updates.linksMetadata !== undefined) {
|
|
46
|
+
updateData.linksMetadata = updates.linksMetadata;
|
|
47
|
+
}
|
|
48
|
+
if (updates.avatar !== undefined) {
|
|
49
|
+
updateData.avatar = updates.avatar;
|
|
50
|
+
}
|
|
64
51
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
// Handle name field
|
|
53
|
+
if (updates.displayName !== undefined || updates.lastName !== undefined) {
|
|
54
|
+
const currentUser = _authStore.useAuthStore.getState().user;
|
|
55
|
+
const currentName = currentUser?.name;
|
|
56
|
+
updateData.name = {
|
|
57
|
+
first: updates.displayName ?? (typeof currentName === 'object' ? currentName?.first : '') ?? '',
|
|
58
|
+
last: updates.lastName ?? (typeof currentName === 'object' ? currentName?.last : '') ?? ''
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
await updateProfileMutation.mutateAsync(updateData);
|
|
76
63
|
return true;
|
|
77
64
|
} catch (error) {
|
|
78
|
-
|
|
79
|
-
_sonner.toast.error(error?.message || t('editProfile.toasts.updateFailed') || 'Failed to update profile');
|
|
65
|
+
// Error toast is handled by the mutation
|
|
80
66
|
return false;
|
|
81
|
-
} finally {
|
|
82
|
-
setIsSaving(false);
|
|
83
67
|
}
|
|
84
|
-
}, [
|
|
68
|
+
}, [updateProfileMutation, t]);
|
|
85
69
|
|
|
86
70
|
/**
|
|
87
71
|
* Update a single profile field
|
|
@@ -116,7 +100,7 @@ const useProfileEditing = () => {
|
|
|
116
100
|
return {
|
|
117
101
|
saveProfile,
|
|
118
102
|
updateField,
|
|
119
|
-
isSaving
|
|
103
|
+
isSaving: updateProfileMutation.isPending
|
|
120
104
|
};
|
|
121
105
|
};
|
|
122
106
|
exports.useProfileEditing = useProfileEditing;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","_useI18n","_useAccountMutations","_authStore","useProfileEditing","t","useI18n","updateProfileMutation","useUpdateProfile","saveProfile","useCallback","updates","updateData","username","undefined","email","bio","location","locations","length","name","links","linksMetadata","avatar","displayName","lastName","currentUser","useAuthStore","getState","user","currentName","first","last","mutateAsync","error","updateField","field","value","map","link","url","isSaving","isPending","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useProfileEditing.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AA0BA;AACA;AACA;AACA;AACO,MAAMI,iBAAiB,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,gBAAO,EAAC,CAAC;EACvB,MAAMC,qBAAqB,GAAG,IAAAC,qCAAgB,EAAC,CAAC;;EAEhD;AACJ;AACA;EACI,MAAMC,WAAW,GAAG,IAAAC,kBAAW,EAAC,MAAOC,OAA0B,IAAK;IAClE;IACA,MAAMC,UAA+B,GAAG,CAAC,CAAC;IAE1C,IAAID,OAAO,CAACE,QAAQ,KAAKC,SAAS,EAAE;MAChCF,UAAU,CAACC,QAAQ,GAAGF,OAAO,CAACE,QAAQ;IAC1C;IACA,IAAIF,OAAO,CAACI,KAAK,KAAKD,SAAS,EAAE;MAC7BF,UAAU,CAACG,KAAK,GAAGJ,OAAO,CAACI,KAAK;IACpC;IACA,IAAIJ,OAAO,CAACK,GAAG,KAAKF,SAAS,EAAE;MAC3BF,UAAU,CAACI,GAAG,GAAGL,OAAO,CAACK,GAAG;IAChC;IACA,IAAIL,OAAO,CAACM,QAAQ,KAAKH,SAAS,IAAIH,OAAO,CAACO,SAAS,KAAKJ,SAAS,EAAE;MACnEF,UAAU,CAACK,QAAQ,GAAGN,OAAO,CAACO,SAAS,IAAIP,OAAO,CAACO,SAAS,CAACC,MAAM,GAAG,CAAC,GACjER,OAAO,CAACO,SAAS,CAAC,CAAC,CAAC,CAACE,IAAI,GACzBT,OAAO,CAACM,QAAQ,IAAI,EAAE;MAC5B,IAAIN,OAAO,CAACO,SAAS,EAAE;QACnBN,UAAU,CAACM,SAAS,GAAGP,OAAO,CAACO,SAAS;MAC5C;IACJ;IACA,IAAIP,OAAO,CAACU,KAAK,KAAKP,SAAS,EAAE;MAC7BF,UAAU,CAACS,KAAK,GAAGV,OAAO,CAACU,KAAK;IACpC;IACA,IAAIV,OAAO,CAACW,aAAa,KAAKR,SAAS,EAAE;MACrCF,UAAU,CAACU,aAAa,GAAGX,OAAO,CAACW,aAAa;IACpD;IACA,IAAIX,OAAO,CAACY,MAAM,KAAKT,SAAS,EAAE;MAC9BF,UAAU,CAACW,MAAM,GAAGZ,OAAO,CAACY,MAAM;IACtC;;IAEA;IACA,IAAIZ,OAAO,CAACa,WAAW,KAAKV,SAAS,IAAIH,OAAO,CAACc,QAAQ,KAAKX,SAAS,EAAE;MACrE,MAAMY,WAAW,GAAGC,uBAAY,CAACC,QAAQ,CAAC,CAAC,CAACC,IAAI;MAChD,MAAMC,WAAW,GAAGJ,WAAW,EAAEN,IAAI;MACrCR,UAAU,CAACQ,IAAI,GAAG;QACdW,KAAK,EAAEpB,OAAO,CAACa,WAAW,KAAK,OAAOM,WAAW,KAAK,QAAQ,GAAGA,WAAW,EAAEC,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE;QAC/FC,IAAI,EAAErB,OAAO,CAACc,QAAQ,KAAK,OAAOK,WAAW,KAAK,QAAQ,GAAGA,WAAW,EAAEE,IAAI,GAAG,EAAE,CAAC,IAAI;MAC5F,CAAC;IACL;IAEA,IAAI;MACA,MAAMzB,qBAAqB,CAAC0B,WAAW,CAACrB,UAAU,CAAC;MACnD,OAAO,IAAI;IACf,CAAC,CAAC,OAAOsB,KAAU,EAAE;MACjB;MACA,OAAO,KAAK;IAChB;EACJ,CAAC,EAAE,CAAC3B,qBAAqB,EAAEF,CAAC,CAAC,CAAC;;EAE9B;AACJ;AACA;EACI,MAAM8B,WAAW,GAAG,IAAAzB,kBAAW,EAAC,OAAO0B,KAAa,EAAEC,KAAU,KAAK;IACjE,MAAM1B,OAA0B,GAAG,CAAC,CAAC;IAErC,QAAQyB,KAAK;MACT,KAAK,aAAa;QACdzB,OAAO,CAACa,WAAW,GAAGa,KAAK;QAC3B;MACJ,KAAK,UAAU;QACX1B,OAAO,CAACE,QAAQ,GAAGwB,KAAK;QACxB;MACJ,KAAK,OAAO;QACR1B,OAAO,CAACI,KAAK,GAAGsB,KAAK;QACrB;MACJ,KAAK,KAAK;QACN1B,OAAO,CAACK,GAAG,GAAGqB,KAAK;QACnB;MACJ,KAAK,UAAU;QACX1B,OAAO,CAACO,SAAS,GAAGmB,KAAK;QACzB;MACJ,KAAK,OAAO;QACR1B,OAAO,CAACW,aAAa,GAAGe,KAAK;QAC7B1B,OAAO,CAACU,KAAK,GAAGgB,KAAK,CAACC,GAAG,CAAEC,IAAS,IAAKA,IAAI,CAACC,GAAG,IAAID,IAAI,CAAC;QAC1D;MACJ;QACI,OAAO,KAAK;IACpB;IAEA,OAAO,MAAM9B,WAAW,CAACE,OAAO,CAAC;EACrC,CAAC,EAAE,CAACF,WAAW,CAAC,CAAC;EAEjB,OAAO;IACHA,WAAW;IACX0B,WAAW;IACXM,QAAQ,EAAElC,qBAAqB,CAACmC;EACpC,CAAC;AACL,CAAC;AAACC,OAAA,CAAAvC,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useQueryClient = void 0;
|
|
7
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
8
|
+
/**
|
|
9
|
+
* Custom hook to access the QueryClient
|
|
10
|
+
* Provides type safety and ensures client is available
|
|
11
|
+
*/
|
|
12
|
+
const useQueryClient = () => {
|
|
13
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
14
|
+
if (!queryClient) {
|
|
15
|
+
throw new Error('QueryClient is not available. Make sure OxyProvider is wrapping your app.');
|
|
16
|
+
}
|
|
17
|
+
return queryClient;
|
|
18
|
+
};
|
|
19
|
+
exports.useQueryClient = useQueryClient;
|
|
20
|
+
//# sourceMappingURL=useQueryClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","useQueryClient","queryClient","useTanStackQueryClient","Error","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useQueryClient.ts"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAGA;AACA;AACA;AACA;AACO,MAAMC,cAAc,GAAGA,CAAA,KAAmB;EAC/C,MAAMC,WAAW,GAAG,IAAAC,0BAAsB,EAAC,CAAC;EAE5C,IAAI,CAACD,WAAW,EAAE;IAChB,MAAM,IAAIE,KAAK,CAAC,2EAA2E,CAAC;EAC9F;EAEA,OAAOF,WAAW;AACpB,CAAC;AAACG,OAAA,CAAAJ,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ var _sessionUtils = require("../../utils/sessionUtils");
|
|
|
9
9
|
var _sessionHelpers = require("../utils/sessionHelpers");
|
|
10
10
|
var _storageHelpers = require("../utils/storageHelpers");
|
|
11
11
|
var _errorHandlers = require("../utils/errorHandlers");
|
|
12
|
+
var _queryClient = require("./queryClient.js");
|
|
12
13
|
const DEFAULT_SAVE_ERROR_MESSAGE = 'Failed to save session data';
|
|
13
14
|
const CLEAR_STORAGE_ERROR = 'Failed to clear storage';
|
|
14
15
|
|
|
@@ -28,7 +29,8 @@ const useSessionManagement = ({
|
|
|
28
29
|
onError,
|
|
29
30
|
setAuthError,
|
|
30
31
|
logger,
|
|
31
|
-
setTokenReady
|
|
32
|
+
setTokenReady,
|
|
33
|
+
queryClient
|
|
32
34
|
}) => {
|
|
33
35
|
const [sessions, setSessions] = (0, _react.useState)([]);
|
|
34
36
|
const [activeSessionId, setActiveSessionId] = (0, _react.useState)(null);
|
|
@@ -94,6 +96,8 @@ const useSessionManagement = ({
|
|
|
94
96
|
try {
|
|
95
97
|
await storage.removeItem(storageKeys.activeSessionId);
|
|
96
98
|
await storage.removeItem(storageKeys.sessionIds);
|
|
99
|
+
// Clear identity sync state
|
|
100
|
+
await storage.removeItem('oxy_identity_synced').catch(() => {});
|
|
97
101
|
} catch (error) {
|
|
98
102
|
(0, _errorHandlers.handleAuthError)(error, {
|
|
99
103
|
defaultMessage: CLEAR_STORAGE_ERROR,
|
|
@@ -108,9 +112,25 @@ const useSessionManagement = ({
|
|
|
108
112
|
setSessions([]);
|
|
109
113
|
setActiveSessionId(null);
|
|
110
114
|
logoutStore();
|
|
115
|
+
|
|
116
|
+
// Clear TanStack Query cache (in-memory)
|
|
117
|
+
if (queryClient) {
|
|
118
|
+
queryClient.clear();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Clear persisted query cache
|
|
122
|
+
if (storage) {
|
|
123
|
+
try {
|
|
124
|
+
await (0, _queryClient.clearQueryCache)(storage);
|
|
125
|
+
} catch (error) {
|
|
126
|
+
if (logger) {
|
|
127
|
+
logger('Failed to clear persisted query cache', error);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
111
131
|
await clearSessionStorage();
|
|
112
132
|
onAuthStateChange?.(null);
|
|
113
|
-
}, [clearSessionStorage, logoutStore, onAuthStateChange]);
|
|
133
|
+
}, [clearSessionStorage, logoutStore, onAuthStateChange, queryClient, storage, logger]);
|
|
114
134
|
const activateSession = (0, _react.useCallback)(async (sessionId, user) => {
|
|
115
135
|
await oxyServices.getTokenBySession(sessionId);
|
|
116
136
|
setTokenReady?.(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","clearSessionState","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","clearQueryCache","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ var _userUtils = require("../utils/user-utils");
|
|
|
19
19
|
var _useColorScheme = require("../hooks/use-color-scheme");
|
|
20
20
|
var _themeUtils = require("../utils/themeUtils");
|
|
21
21
|
var _OxyContext = require("../context/OxyContext");
|
|
22
|
+
var _useAccountQueries = require("../hooks/queries/useAccountQueries");
|
|
22
23
|
var _spacing = require("../constants/spacing");
|
|
23
24
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
25
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -121,49 +122,49 @@ const AccountOverviewScreen = ({
|
|
|
121
122
|
// Memoize additional accounts filtering to prevent recalculation on every render
|
|
122
123
|
const additionalAccounts = (0, _react.useMemo)(() => (sessions || []).filter(session => session.sessionId !== activeSessionId && session.userId !== user?.id), [sessions, activeSessionId, user?.id]);
|
|
123
124
|
|
|
124
|
-
// Load user profiles for additional accounts
|
|
125
|
+
// Load user profiles for additional accounts using TanStack Query
|
|
126
|
+
const sessionIds = additionalAccounts.map(s => s.sessionId);
|
|
127
|
+
const {
|
|
128
|
+
data: usersData,
|
|
129
|
+
isLoading: isLoadingUsers
|
|
130
|
+
} = (0, _useAccountQueries.useUsersBySessions)(sessionIds, {
|
|
131
|
+
enabled: additionalAccounts.length > 0
|
|
132
|
+
});
|
|
125
133
|
_react.default.useEffect(() => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
setAdditionalAccountsData([]);
|
|
161
|
-
} finally {
|
|
162
|
-
setLoadingAdditionalAccounts(false);
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
loadAdditionalAccountsData();
|
|
166
|
-
}, [sessions, activeSessionId, user?.id, oxyServices]);
|
|
134
|
+
if (usersData && usersData.length > 0) {
|
|
135
|
+
const accountsData = usersData.map(({
|
|
136
|
+
sessionId,
|
|
137
|
+
user: userProfile
|
|
138
|
+
}) => {
|
|
139
|
+
if (!userProfile) {
|
|
140
|
+
return {
|
|
141
|
+
id: sessionId,
|
|
142
|
+
sessionId,
|
|
143
|
+
username: 'Unknown User',
|
|
144
|
+
email: 'No email available',
|
|
145
|
+
avatar: null,
|
|
146
|
+
userProfile: null
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
id: sessionId,
|
|
151
|
+
sessionId,
|
|
152
|
+
username: userProfile.username,
|
|
153
|
+
email: userProfile.email,
|
|
154
|
+
name: userProfile.name,
|
|
155
|
+
avatar: userProfile.avatar,
|
|
156
|
+
userProfile
|
|
157
|
+
};
|
|
158
|
+
});
|
|
159
|
+
setAdditionalAccountsData(accountsData);
|
|
160
|
+
setLoadingAdditionalAccounts(false);
|
|
161
|
+
} else if (additionalAccounts.length === 0) {
|
|
162
|
+
setAdditionalAccountsData([]);
|
|
163
|
+
setLoadingAdditionalAccounts(false);
|
|
164
|
+
} else if (!isLoadingUsers) {
|
|
165
|
+
setLoadingAdditionalAccounts(false);
|
|
166
|
+
}
|
|
167
|
+
}, [usersData, additionalAccounts.length, isLoadingUsers]);
|
|
167
168
|
|
|
168
169
|
// Feature settings (with mock values)
|
|
169
170
|
const features = {
|