@oxyhq/services 5.16.0 → 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.assets.js +15 -0
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- 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/index.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.assets.js +15 -0
- package/lib/module/core/mixins/OxyServices.assets.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/index.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.assets.d.ts +7 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.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 +1 -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/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +21 -0
- package/lib/typescript/models/interfaces.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 +6 -5
- package/src/core/mixins/OxyServices.assets.ts +16 -1
- 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/index.ts +4 -1
- package/src/models/interfaces.ts +23 -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,314 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useUploadAvatar = exports.useUpdateProfile = exports.useUpdateAccountSettings = void 0;
|
|
7
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
8
|
+
var _queryKeys = require("../queries/queryKeys");
|
|
9
|
+
var _OxyContext = require("../../context/OxyContext");
|
|
10
|
+
var _sonner = require("../../../lib/sonner");
|
|
11
|
+
/**
|
|
12
|
+
* Update user profile with optimistic updates and offline queue support
|
|
13
|
+
*/
|
|
14
|
+
const useUpdateProfile = () => {
|
|
15
|
+
const {
|
|
16
|
+
oxyServices,
|
|
17
|
+
activeSessionId,
|
|
18
|
+
user,
|
|
19
|
+
syncIdentity
|
|
20
|
+
} = (0, _OxyContext.useOxy)();
|
|
21
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
22
|
+
return (0, _reactQuery.useMutation)({
|
|
23
|
+
mutationFn: async updates => {
|
|
24
|
+
// Ensure we have a valid token before making the request
|
|
25
|
+
if (!oxyServices.hasValidToken() && activeSessionId) {
|
|
26
|
+
try {
|
|
27
|
+
// Try to get token for the session
|
|
28
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
29
|
+
} catch (tokenError) {
|
|
30
|
+
// If getting token fails, might be an offline session - try syncing
|
|
31
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
32
|
+
if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
|
|
33
|
+
try {
|
|
34
|
+
await syncIdentity();
|
|
35
|
+
// Retry getting token after sync
|
|
36
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
37
|
+
} catch (syncError) {
|
|
38
|
+
throw new Error('Session needs to be synced. Please try again.');
|
|
39
|
+
}
|
|
40
|
+
} else {
|
|
41
|
+
throw tokenError;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
return await oxyServices.updateProfile(updates);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
const errorMessage = error?.message || '';
|
|
49
|
+
const status = error?.status || error?.response?.status;
|
|
50
|
+
|
|
51
|
+
// Handle authentication errors
|
|
52
|
+
if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
|
|
53
|
+
// Try to sync session and get token
|
|
54
|
+
if (activeSessionId) {
|
|
55
|
+
try {
|
|
56
|
+
await syncIdentity();
|
|
57
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
58
|
+
// Retry the update after getting token
|
|
59
|
+
return await oxyServices.updateProfile(updates);
|
|
60
|
+
} catch (retryError) {
|
|
61
|
+
throw new Error('Authentication failed. Please sign in again.');
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
throw new Error('No active session. Please sign in.');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// TanStack Query will automatically retry on network errors
|
|
69
|
+
throw error;
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
// Optimistic update
|
|
73
|
+
onMutate: async updates => {
|
|
74
|
+
// Cancel outgoing refetches
|
|
75
|
+
await queryClient.cancelQueries({
|
|
76
|
+
queryKey: _queryKeys.queryKeys.accounts.current()
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Snapshot previous value
|
|
80
|
+
const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
|
|
81
|
+
|
|
82
|
+
// Optimistically update
|
|
83
|
+
if (previousUser) {
|
|
84
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), {
|
|
85
|
+
...previousUser,
|
|
86
|
+
...updates
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
// Also update profile query if sessionId is available
|
|
90
|
+
if (activeSessionId) {
|
|
91
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), {
|
|
92
|
+
...previousUser,
|
|
93
|
+
...updates
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
previousUser
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
// On error, rollback
|
|
102
|
+
onError: (error, updates, context) => {
|
|
103
|
+
if (context?.previousUser) {
|
|
104
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
|
|
105
|
+
if (activeSessionId) {
|
|
106
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), context.previousUser);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to update profile');
|
|
110
|
+
},
|
|
111
|
+
// On success, invalidate and refetch
|
|
112
|
+
onSuccess: data => {
|
|
113
|
+
// Update cache with server response
|
|
114
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
|
|
115
|
+
if (activeSessionId) {
|
|
116
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), data);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Invalidate related queries
|
|
120
|
+
(0, _queryKeys.invalidateUserQueries)(queryClient);
|
|
121
|
+
},
|
|
122
|
+
// Always refetch after error or success
|
|
123
|
+
onSettled: () => {
|
|
124
|
+
queryClient.invalidateQueries({
|
|
125
|
+
queryKey: _queryKeys.queryKeys.accounts.current()
|
|
126
|
+
});
|
|
127
|
+
if (activeSessionId) {
|
|
128
|
+
queryClient.invalidateQueries({
|
|
129
|
+
queryKey: _queryKeys.queryKeys.users.profile(activeSessionId)
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Upload avatar with progress tracking and offline queue support
|
|
138
|
+
*/
|
|
139
|
+
exports.useUpdateProfile = useUpdateProfile;
|
|
140
|
+
const useUploadAvatar = () => {
|
|
141
|
+
const {
|
|
142
|
+
oxyServices,
|
|
143
|
+
activeSessionId,
|
|
144
|
+
syncIdentity
|
|
145
|
+
} = (0, _OxyContext.useOxy)();
|
|
146
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
147
|
+
return (0, _reactQuery.useMutation)({
|
|
148
|
+
mutationFn: async file => {
|
|
149
|
+
// Ensure we have a valid token before making the request
|
|
150
|
+
if (!oxyServices.hasValidToken() && activeSessionId) {
|
|
151
|
+
try {
|
|
152
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
153
|
+
} catch (tokenError) {
|
|
154
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : String(tokenError);
|
|
155
|
+
if (errorMessage.includes('AUTH_REQUIRED_OFFLINE_SESSION') || errorMessage.includes('offline')) {
|
|
156
|
+
try {
|
|
157
|
+
await syncIdentity();
|
|
158
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
159
|
+
} catch (syncError) {
|
|
160
|
+
throw new Error('Session needs to be synced. Please try again.');
|
|
161
|
+
}
|
|
162
|
+
} else {
|
|
163
|
+
throw tokenError;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
// Upload file first
|
|
169
|
+
const uploadResult = await oxyServices.assetUpload(file, 'public');
|
|
170
|
+
const fileId = uploadResult?.file?.id || uploadResult?.id || uploadResult;
|
|
171
|
+
if (!fileId || typeof fileId !== 'string') {
|
|
172
|
+
throw new Error('Failed to get file ID from upload result');
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Update profile with file ID
|
|
176
|
+
return await oxyServices.updateProfile({
|
|
177
|
+
avatar: fileId
|
|
178
|
+
});
|
|
179
|
+
} catch (error) {
|
|
180
|
+
const errorMessage = error?.message || '';
|
|
181
|
+
const status = error?.status || error?.response?.status;
|
|
182
|
+
|
|
183
|
+
// Handle authentication errors
|
|
184
|
+
if (status === 401 || errorMessage.includes('Authentication required') || errorMessage.includes('Invalid or missing authorization header')) {
|
|
185
|
+
if (activeSessionId) {
|
|
186
|
+
try {
|
|
187
|
+
await syncIdentity();
|
|
188
|
+
await oxyServices.getTokenBySession(activeSessionId);
|
|
189
|
+
// Retry upload
|
|
190
|
+
const uploadResult = await oxyServices.assetUpload(file, 'public');
|
|
191
|
+
const fileId = uploadResult?.file?.id || uploadResult?.id || uploadResult;
|
|
192
|
+
if (!fileId || typeof fileId !== 'string') {
|
|
193
|
+
throw new Error('Failed to get file ID from upload result');
|
|
194
|
+
}
|
|
195
|
+
return await oxyServices.updateProfile({
|
|
196
|
+
avatar: fileId
|
|
197
|
+
});
|
|
198
|
+
} catch (retryError) {
|
|
199
|
+
throw new Error('Authentication failed. Please sign in again.');
|
|
200
|
+
}
|
|
201
|
+
} else {
|
|
202
|
+
throw new Error('No active session. Please sign in.');
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// TanStack Query will automatically retry on network errors
|
|
207
|
+
throw error;
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
onMutate: async file => {
|
|
211
|
+
await queryClient.cancelQueries({
|
|
212
|
+
queryKey: _queryKeys.queryKeys.accounts.current()
|
|
213
|
+
});
|
|
214
|
+
const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
|
|
215
|
+
|
|
216
|
+
// Optimistically set a temporary avatar (using file URI as placeholder)
|
|
217
|
+
if (previousUser) {
|
|
218
|
+
const optimisticUser = {
|
|
219
|
+
...previousUser,
|
|
220
|
+
avatar: file.uri // Temporary, will be replaced with fileId
|
|
221
|
+
};
|
|
222
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), optimisticUser);
|
|
223
|
+
if (activeSessionId) {
|
|
224
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), optimisticUser);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
previousUser
|
|
229
|
+
};
|
|
230
|
+
},
|
|
231
|
+
onError: (error, file, context) => {
|
|
232
|
+
if (context?.previousUser) {
|
|
233
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
|
|
234
|
+
if (activeSessionId) {
|
|
235
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), context.previousUser);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to upload avatar');
|
|
239
|
+
},
|
|
240
|
+
onSuccess: data => {
|
|
241
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
|
|
242
|
+
if (activeSessionId) {
|
|
243
|
+
queryClient.setQueryData(_queryKeys.queryKeys.users.profile(activeSessionId), data);
|
|
244
|
+
}
|
|
245
|
+
(0, _queryKeys.invalidateUserQueries)(queryClient);
|
|
246
|
+
_sonner.toast.success('Avatar updated successfully');
|
|
247
|
+
},
|
|
248
|
+
onSettled: () => {
|
|
249
|
+
queryClient.invalidateQueries({
|
|
250
|
+
queryKey: _queryKeys.queryKeys.accounts.current()
|
|
251
|
+
});
|
|
252
|
+
if (activeSessionId) {
|
|
253
|
+
queryClient.invalidateQueries({
|
|
254
|
+
queryKey: _queryKeys.queryKeys.users.profile(activeSessionId)
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Update account settings
|
|
263
|
+
*/
|
|
264
|
+
exports.useUploadAvatar = useUploadAvatar;
|
|
265
|
+
const useUpdateAccountSettings = () => {
|
|
266
|
+
const {
|
|
267
|
+
oxyServices,
|
|
268
|
+
activeSessionId
|
|
269
|
+
} = (0, _OxyContext.useOxy)();
|
|
270
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
271
|
+
return (0, _reactQuery.useMutation)({
|
|
272
|
+
mutationFn: async settings => {
|
|
273
|
+
return await oxyServices.updateProfile({
|
|
274
|
+
privacySettings: settings
|
|
275
|
+
});
|
|
276
|
+
},
|
|
277
|
+
onMutate: async settings => {
|
|
278
|
+
await queryClient.cancelQueries({
|
|
279
|
+
queryKey: _queryKeys.queryKeys.accounts.settings()
|
|
280
|
+
});
|
|
281
|
+
const previousUser = queryClient.getQueryData(_queryKeys.queryKeys.accounts.current());
|
|
282
|
+
if (previousUser) {
|
|
283
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), {
|
|
284
|
+
...previousUser,
|
|
285
|
+
privacySettings: {
|
|
286
|
+
...previousUser.privacySettings,
|
|
287
|
+
...settings
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
previousUser
|
|
293
|
+
};
|
|
294
|
+
},
|
|
295
|
+
onError: (error, settings, context) => {
|
|
296
|
+
if (context?.previousUser) {
|
|
297
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), context.previousUser);
|
|
298
|
+
}
|
|
299
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to update settings');
|
|
300
|
+
},
|
|
301
|
+
onSuccess: data => {
|
|
302
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), data);
|
|
303
|
+
(0, _queryKeys.invalidateAccountQueries)(queryClient);
|
|
304
|
+
_sonner.toast.success('Settings updated successfully');
|
|
305
|
+
},
|
|
306
|
+
onSettled: () => {
|
|
307
|
+
queryClient.invalidateQueries({
|
|
308
|
+
queryKey: _queryKeys.queryKeys.accounts.settings()
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
};
|
|
313
|
+
exports.useUpdateAccountSettings = useUpdateAccountSettings;
|
|
314
|
+
//# sourceMappingURL=useAccountMutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sonner","useUpdateProfile","oxyServices","activeSessionId","user","syncIdentity","useOxy","queryClient","useQueryClient","useMutation","mutationFn","updates","hasValidToken","getTokenBySession","tokenError","errorMessage","Error","message","String","includes","syncError","updateProfile","error","status","response","retryError","onMutate","cancelQueries","queryKey","queryKeys","accounts","current","previousUser","getQueryData","setQueryData","users","profile","onError","context","toast","onSuccess","data","invalidateUserQueries","onSettled","invalidateQueries","exports","useUploadAvatar","file","uploadResult","assetUpload","fileId","id","avatar","optimisticUser","uri","success","useUpdateAccountSettings","settings","privacySettings","invalidateAccountQueries"],"sourceRoot":"../../../../../src","sources":["ui/hooks/mutations/useAccountMutations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useUpdateDeviceName = exports.useSwitchSession = exports.useRemoveDevice = exports.useLogoutSession = exports.useLogoutAll = void 0;
|
|
7
|
+
var _reactQuery = require("@tanstack/react-query");
|
|
8
|
+
var _queryKeys = require("../queries/queryKeys");
|
|
9
|
+
var _OxyContext = require("../../context/OxyContext");
|
|
10
|
+
var _sonner = require("../../../lib/sonner");
|
|
11
|
+
/**
|
|
12
|
+
* Switch active session
|
|
13
|
+
*/
|
|
14
|
+
const useSwitchSession = () => {
|
|
15
|
+
const {
|
|
16
|
+
switchSession,
|
|
17
|
+
activeSessionId
|
|
18
|
+
} = (0, _OxyContext.useOxy)();
|
|
19
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
20
|
+
return (0, _reactQuery.useMutation)({
|
|
21
|
+
mutationFn: async sessionId => {
|
|
22
|
+
return await switchSession(sessionId);
|
|
23
|
+
},
|
|
24
|
+
onSuccess: user => {
|
|
25
|
+
// Invalidate all session queries
|
|
26
|
+
(0, _queryKeys.invalidateSessionQueries)(queryClient);
|
|
27
|
+
|
|
28
|
+
// Update current user query
|
|
29
|
+
queryClient.setQueryData(_queryKeys.queryKeys.accounts.current(), user);
|
|
30
|
+
|
|
31
|
+
// Invalidate account queries
|
|
32
|
+
queryClient.invalidateQueries({
|
|
33
|
+
queryKey: _queryKeys.queryKeys.accounts.all
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
onError: error => {
|
|
37
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to switch session');
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Logout from a session
|
|
44
|
+
*/
|
|
45
|
+
exports.useSwitchSession = useSwitchSession;
|
|
46
|
+
const useLogoutSession = () => {
|
|
47
|
+
const {
|
|
48
|
+
oxyServices,
|
|
49
|
+
activeSessionId,
|
|
50
|
+
sessions
|
|
51
|
+
} = (0, _OxyContext.useOxy)();
|
|
52
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
53
|
+
return (0, _reactQuery.useMutation)({
|
|
54
|
+
mutationFn: async targetSessionId => {
|
|
55
|
+
if (!activeSessionId) {
|
|
56
|
+
throw new Error('No active session');
|
|
57
|
+
}
|
|
58
|
+
const sessionToLogout = targetSessionId || activeSessionId;
|
|
59
|
+
await oxyServices.logoutSession(activeSessionId, sessionToLogout);
|
|
60
|
+
return sessionToLogout;
|
|
61
|
+
},
|
|
62
|
+
onMutate: async targetSessionId => {
|
|
63
|
+
// Cancel outgoing queries
|
|
64
|
+
await queryClient.cancelQueries({
|
|
65
|
+
queryKey: _queryKeys.queryKeys.sessions.all
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Snapshot previous sessions
|
|
69
|
+
const previousSessions = queryClient.getQueryData(_queryKeys.queryKeys.sessions.list());
|
|
70
|
+
|
|
71
|
+
// Optimistically remove session
|
|
72
|
+
if (previousSessions) {
|
|
73
|
+
const sessionToLogout = targetSessionId || activeSessionId;
|
|
74
|
+
const updatedSessions = previousSessions.filter(s => s.sessionId !== sessionToLogout);
|
|
75
|
+
queryClient.setQueryData(_queryKeys.queryKeys.sessions.list(), updatedSessions);
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
previousSessions
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
onError: (error, targetSessionId, context) => {
|
|
82
|
+
// Rollback on error
|
|
83
|
+
if (context?.previousSessions) {
|
|
84
|
+
queryClient.setQueryData(_queryKeys.queryKeys.sessions.list(), context.previousSessions);
|
|
85
|
+
}
|
|
86
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to logout');
|
|
87
|
+
},
|
|
88
|
+
onSuccess: () => {
|
|
89
|
+
// Invalidate all session queries
|
|
90
|
+
(0, _queryKeys.invalidateSessionQueries)(queryClient);
|
|
91
|
+
},
|
|
92
|
+
onSettled: () => {
|
|
93
|
+
queryClient.invalidateQueries({
|
|
94
|
+
queryKey: _queryKeys.queryKeys.sessions.all
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Logout from all sessions
|
|
102
|
+
*/
|
|
103
|
+
exports.useLogoutSession = useLogoutSession;
|
|
104
|
+
const useLogoutAll = () => {
|
|
105
|
+
const {
|
|
106
|
+
oxyServices,
|
|
107
|
+
activeSessionId,
|
|
108
|
+
clearSessionState
|
|
109
|
+
} = (0, _OxyContext.useOxy)();
|
|
110
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
111
|
+
return (0, _reactQuery.useMutation)({
|
|
112
|
+
mutationFn: async () => {
|
|
113
|
+
if (!activeSessionId) {
|
|
114
|
+
throw new Error('No active session');
|
|
115
|
+
}
|
|
116
|
+
await oxyServices.logoutAllSessions(activeSessionId);
|
|
117
|
+
await clearSessionState();
|
|
118
|
+
},
|
|
119
|
+
onSuccess: () => {
|
|
120
|
+
// Clear all queries
|
|
121
|
+
queryClient.clear();
|
|
122
|
+
_sonner.toast.success('Logged out from all sessions');
|
|
123
|
+
},
|
|
124
|
+
onError: error => {
|
|
125
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to logout from all sessions');
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Update device name
|
|
132
|
+
*/
|
|
133
|
+
exports.useLogoutAll = useLogoutAll;
|
|
134
|
+
const useUpdateDeviceName = () => {
|
|
135
|
+
const {
|
|
136
|
+
oxyServices,
|
|
137
|
+
activeSessionId
|
|
138
|
+
} = (0, _OxyContext.useOxy)();
|
|
139
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
140
|
+
return (0, _reactQuery.useMutation)({
|
|
141
|
+
mutationFn: async deviceName => {
|
|
142
|
+
if (!activeSessionId) {
|
|
143
|
+
throw new Error('No active session');
|
|
144
|
+
}
|
|
145
|
+
return await oxyServices.updateDeviceName(activeSessionId, deviceName);
|
|
146
|
+
},
|
|
147
|
+
onSuccess: () => {
|
|
148
|
+
// Invalidate device and session queries
|
|
149
|
+
queryClient.invalidateQueries({
|
|
150
|
+
queryKey: _queryKeys.queryKeys.devices.all
|
|
151
|
+
});
|
|
152
|
+
queryClient.invalidateQueries({
|
|
153
|
+
queryKey: _queryKeys.queryKeys.sessions.all
|
|
154
|
+
});
|
|
155
|
+
_sonner.toast.success('Device name updated');
|
|
156
|
+
},
|
|
157
|
+
onError: error => {
|
|
158
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to update device name');
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Remove a device
|
|
165
|
+
*/
|
|
166
|
+
exports.useUpdateDeviceName = useUpdateDeviceName;
|
|
167
|
+
const useRemoveDevice = () => {
|
|
168
|
+
const {
|
|
169
|
+
oxyServices
|
|
170
|
+
} = (0, _OxyContext.useOxy)();
|
|
171
|
+
const queryClient = (0, _reactQuery.useQueryClient)();
|
|
172
|
+
return (0, _reactQuery.useMutation)({
|
|
173
|
+
mutationFn: async deviceId => {
|
|
174
|
+
await oxyServices.removeDevice(deviceId);
|
|
175
|
+
return deviceId;
|
|
176
|
+
},
|
|
177
|
+
onSuccess: () => {
|
|
178
|
+
// Invalidate device queries
|
|
179
|
+
queryClient.invalidateQueries({
|
|
180
|
+
queryKey: _queryKeys.queryKeys.devices.all
|
|
181
|
+
});
|
|
182
|
+
queryClient.invalidateQueries({
|
|
183
|
+
queryKey: _queryKeys.queryKeys.sessions.all
|
|
184
|
+
});
|
|
185
|
+
_sonner.toast.success('Device removed');
|
|
186
|
+
},
|
|
187
|
+
onError: error => {
|
|
188
|
+
_sonner.toast.error(error instanceof Error ? error.message : 'Failed to remove device');
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
exports.useRemoveDevice = useRemoveDevice;
|
|
193
|
+
//# sourceMappingURL=useServicesMutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sonner","useSwitchSession","switchSession","activeSessionId","useOxy","queryClient","useQueryClient","useMutation","mutationFn","sessionId","onSuccess","user","invalidateSessionQueries","setQueryData","queryKeys","accounts","current","invalidateQueries","queryKey","all","onError","error","toast","Error","message","exports","useLogoutSession","oxyServices","sessions","targetSessionId","sessionToLogout","logoutSession","onMutate","cancelQueries","previousSessions","getQueryData","list","updatedSessions","filter","s","context","onSettled","useLogoutAll","clearSessionState","logoutAllSessions","clear","success","useUpdateDeviceName","deviceName","updateDeviceName","devices","useRemoveDevice","deviceId","removeDevice"],"sourceRoot":"../../../../../src","sources":["ui/hooks/mutations/useServicesMutations.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _useAccountQueries = require("./useAccountQueries");
|
|
7
|
+
Object.keys(_useAccountQueries).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _useAccountQueries[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _useAccountQueries[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _useServicesQueries = require("./useServicesQueries");
|
|
18
|
+
Object.keys(_useServicesQueries).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _useServicesQueries[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _useServicesQueries[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _queryKeys = require("./queryKeys");
|
|
29
|
+
Object.keys(_queryKeys).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _queryKeys[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _queryKeys[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_useAccountQueries","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_useServicesQueries","_queryKeys"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/index.ts"],"mappings":";;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,mBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,mBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,mBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,mBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.queryKeys = exports.invalidateUserQueries = exports.invalidateSessionQueries = exports.invalidateAccountQueries = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Centralized query keys for TanStack Query
|
|
9
|
+
*
|
|
10
|
+
* Following best practices:
|
|
11
|
+
* - Use arrays for hierarchical keys
|
|
12
|
+
* - Include all parameters in the key
|
|
13
|
+
* - Use consistent naming conventions
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
const queryKeys = exports.queryKeys = {
|
|
17
|
+
// Account queries
|
|
18
|
+
accounts: {
|
|
19
|
+
all: ['accounts'],
|
|
20
|
+
lists: () => [...queryKeys.accounts.all, 'list'],
|
|
21
|
+
list: sessionIds => [...queryKeys.accounts.lists(), sessionIds],
|
|
22
|
+
details: () => [...queryKeys.accounts.all, 'detail'],
|
|
23
|
+
detail: sessionId => [...queryKeys.accounts.details(), sessionId],
|
|
24
|
+
current: () => [...queryKeys.accounts.all, 'current'],
|
|
25
|
+
settings: () => [...queryKeys.accounts.all, 'settings']
|
|
26
|
+
},
|
|
27
|
+
// User queries
|
|
28
|
+
users: {
|
|
29
|
+
all: ['users'],
|
|
30
|
+
lists: () => [...queryKeys.users.all, 'list'],
|
|
31
|
+
list: userIds => [...queryKeys.users.lists(), userIds],
|
|
32
|
+
details: () => [...queryKeys.users.all, 'detail'],
|
|
33
|
+
detail: userId => [...queryKeys.users.details(), userId],
|
|
34
|
+
profile: sessionId => [...queryKeys.users.details(), sessionId, 'profile']
|
|
35
|
+
},
|
|
36
|
+
// Session queries
|
|
37
|
+
sessions: {
|
|
38
|
+
all: ['sessions'],
|
|
39
|
+
lists: () => [...queryKeys.sessions.all, 'list'],
|
|
40
|
+
list: userId => [...queryKeys.sessions.lists(), userId],
|
|
41
|
+
details: () => [...queryKeys.sessions.all, 'detail'],
|
|
42
|
+
detail: sessionId => [...queryKeys.sessions.details(), sessionId],
|
|
43
|
+
active: () => [...queryKeys.sessions.all, 'active'],
|
|
44
|
+
device: deviceId => [...queryKeys.sessions.all, 'device', deviceId]
|
|
45
|
+
},
|
|
46
|
+
// Device queries
|
|
47
|
+
devices: {
|
|
48
|
+
all: ['devices'],
|
|
49
|
+
lists: () => [...queryKeys.devices.all, 'list'],
|
|
50
|
+
list: userId => [...queryKeys.devices.lists(), userId],
|
|
51
|
+
details: () => [...queryKeys.devices.all, 'detail'],
|
|
52
|
+
detail: deviceId => [...queryKeys.devices.details(), deviceId]
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Helper to invalidate all account-related queries
|
|
58
|
+
*/
|
|
59
|
+
const invalidateAccountQueries = queryClient => {
|
|
60
|
+
queryClient.invalidateQueries({
|
|
61
|
+
queryKey: queryKeys.accounts.all
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Helper to invalidate all user-related queries
|
|
67
|
+
*/
|
|
68
|
+
exports.invalidateAccountQueries = invalidateAccountQueries;
|
|
69
|
+
const invalidateUserQueries = queryClient => {
|
|
70
|
+
queryClient.invalidateQueries({
|
|
71
|
+
queryKey: queryKeys.users.all
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Helper to invalidate all session-related queries
|
|
77
|
+
*/
|
|
78
|
+
exports.invalidateUserQueries = invalidateUserQueries;
|
|
79
|
+
const invalidateSessionQueries = queryClient => {
|
|
80
|
+
queryClient.invalidateQueries({
|
|
81
|
+
queryKey: queryKeys.sessions.all
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
exports.invalidateSessionQueries = invalidateSessionQueries;
|
|
85
|
+
//# sourceMappingURL=queryKeys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["queryKeys","exports","accounts","all","lists","list","sessionIds","details","detail","sessionId","current","settings","users","userIds","userId","profile","sessions","active","device","deviceId","devices","invalidateAccountQueries","queryClient","invalidateQueries","queryKey","invalidateUserQueries","invalidateSessionQueries"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/queryKeys.ts"],"mappings":"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","ignoreList":[]}
|