import { useQuery } from "@tanstack/react-query"; import { createClient } from "@/utils/supabase/client"; /** * [사용자 정보 조회 쿼리] * * 현재 로그인한 사용자의 정보를 조회합니다. * - 자동 캐싱 및 재검증 * - 로딩/에러 상태 자동 관리 * * @example * ```tsx * import { useUserQuery } from '@/hooks/queries/use-user-query'; * * function Profile() { * const { data: user, isLoading, error } = useUserQuery(); * * if (isLoading) return
Loading...
; * if (error) return
Error: {error.message}
; * if (!user) return
Not logged in
; * * return
Welcome, {user.email}
; * } * ``` */ export function useUserQuery() { return useQuery({ queryKey: ["user"], queryFn: async () => { const supabase = createClient(); const { data: { user }, error, } = await supabase.auth.getUser(); if (error) throw error; return user; }, staleTime: 5 * 60 * 1000, // 5분 - 사용자 정보는 자주 변경되지 않음 retry: 1, }); }