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

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

export default function useGetAtHighestHOF() {
  const { tabPosition, atTabPosition } = useHOFStore();

  const { t } = useTranslation();

  const { pathname } = useLocation();

  return useQuery<
    {
      avatarID: string;
      avatarName: string;
      text: string;
    }[]
  >({
    enabled:
      tabPosition === 1 &&
      atTabPosition === 1 &&
      pathname.startsWith("/qwilight/hof"),
    queryKey: ["atHighestHOF"],
    queryFn: async () => {
      const { data } = await wwwAXIOS.get<GetHOFAPI[]>("/hof/atHighest");
      return data.map((hof) => ({
        ...hof,
        text: sprintf(t("textCount"), formatText(hof.value)),
      }));
    },
    initialData: [],
  });
}
