Files
medreport_mrb2b/packages/supabase/src/hooks/use-user.ts
2025-09-04 10:59:34 +03:00

36 lines
783 B
TypeScript

import type { User } from '@supabase/supabase-js';
import { useQuery } from '@tanstack/react-query';
import { useSupabase } from './use-supabase';
const queryKey = ['supabase:user'];
export function useUser(initialData?: User | null) {
const client = useSupabase();
const queryFn = async () => {
const response = await client.auth.getUser();
// this is most likely a session error or the user is not logged in
if (response.error) {
return null;
}
if (response.data?.user) {
return response.data.user;
}
return Promise.reject(new Error('Unexpected result format'));
};
return useQuery({
queryFn,
queryKey,
initialData,
refetchInterval: false,
refetchOnMount: false,
refetchOnWindowFocus: false,
});
}