Files
medreport_mrb2b/packages/supabase/src/hooks/use-user.ts
2025-09-10 07:11:18 +03:00

36 lines
781 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: 2_000,
refetchOnMount: true,
refetchOnWindowFocus: true,
});
}