feat(cloud-oauth): support selectable google oauth clients

This commit is contained in:
Draculabo committed 2026-04-11 16:45:39 +08:00
1 parent 385036d577
commit bcdf2a6c24
8 files changed
+1370 -125

No files matched your search

+22
View File
@@ -5,11 +5,15 @@ import {
deleteCloudAccount,
refreshAccountQuota,
setAccountProxy,
listOAuthClients,
setActiveOAuthClient,
type OAuthClientDescriptor,
} from '@/actions/cloud';
import { CloudAccount } from '@/types/cloudAccount';
export const QUERY_KEYS = {
cloudAccounts: ['cloudAccounts'],
oauthClients: ['oauthClients'],
};
export function useCloudAccounts() {
@@ -31,6 +35,24 @@ export function useAddGoogleAccount() {
});
}
export function useOAuthClients() {
return useQuery<OAuthClientDescriptor[]>({
queryKey: QUERY_KEYS.oauthClients,
queryFn: listOAuthClients,
staleTime: 1000 * 60 * 5,
});
}
export function useSetActiveOAuthClient() {
const queryClient = useQueryClient();
return useMutation({
mutationFn: setActiveOAuthClient,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: QUERY_KEYS.oauthClients });
},
});
}
export function useDeleteCloudAccount() {
const queryClient = useQueryClient();