"use client";

import { useQuery } from "@tanstack/react-query";

import {
  getCurrentUser,
  type CurrentUser,
} from "@/features/auth/service/auth-service";

export const CURRENT_USER_QUERY_KEY = ["current-user"] as const;

export type { CurrentUser };

export function useCurrentUser() {
  const query = useQuery({
    queryKey: CURRENT_USER_QUERY_KEY,
    queryFn: getCurrentUser,
  });

  return {
    user: query.data ?? null,
    isLoading: query.isLoading,
    error: query.error
      ? query.error instanceof Error
        ? query.error.message
        : "Unable to load the current user."
      : null,
  };
}
