import { useQuery } from "@tanstack/react-query";
import { useLocation } from "react-router-dom";
import { sprintf } from "sprintf-js";

import { wwwAXIOS } from "src/Www";
import { GetHOFAPI } from "src/wwwAPI";
import { useHOFStore } from "src/Stores";
import { formatText } from "src/Utility";

export default function useGetLevelHOF() {
  const { tabPosition } = useHOFStore();

  const { pathname } = useLocation();

  return useQuery<
    {
      avatarID: string;
      avatarName: string;
      text: string;
    }[]
  >({
    enabled: tabPosition === 3 && pathname.startsWith("/qwilight/hof"),
    queryKey: ["levelHOF"],
    queryFn: async () => {
      const { data } = await wwwAXIOS.get<GetHOFAPI[]>("/hof/level");
      return data.map((hof) => ({
        ...hof,
        text: sprintf(sprintf("LV. %d", formatText(hof.value))),
      }));
    },
    initialData: [],
  });
}
