better-auth/apps/web/modules/saas/auth/lib/api.ts
 Илья Шалонин 8538ab969a first
2025-10-29 13:43:43 +05:00

60 lines
1.3 KiB
TypeScript

import { authClient } from "@repo/auth/client";
import { config } from "@repo/config";
import { useQuery } from "@tanstack/react-query";
export const sessionQueryKey = ["user", "session"] as const;
export const useSessionQuery = () => {
return useQuery({
queryKey: sessionQueryKey,
queryFn: async () => {
const { data, error } = await authClient.getSession({
query: {
disableCookieCache: true,
},
});
if (error) {
throw new Error(error.message || "Failed to fetch session");
}
return data;
},
staleTime: Number.POSITIVE_INFINITY,
refetchOnWindowFocus: false,
retry: false,
enabled: config.ui.saas.enabled,
});
};
export const userAccountQueryKey = ["user", "accounts"] as const;
export const useUserAccountsQuery = () => {
return useQuery({
queryKey: userAccountQueryKey,
queryFn: async () => {
const { data, error } = await authClient.listAccounts();
if (error) {
throw error;
}
return data;
},
});
};
export const userPasskeyQueryKey = ["user", "passkeys"] as const;
export const useUserPasskeysQuery = () => {
return useQuery({
queryKey: userPasskeyQueryKey,
queryFn: async () => {
const { data, error } = await authClient.passkey.listUserPasskeys();
if (error) {
throw error;
}
return data;
},
});
};