Newer
Older
taehui / qwilight-fe / src / site / useGetSites.ts
@Taehui Taehui on 12 Mar 977 bytes 2024-03-12 오후 7:02
import { useQuery } from "@tanstack/react-query";
import { useLocation } from "react-router-dom";
import { useTranslation } from "react-i18next";

import { wwwAXIOS } from "src/Www";
import { GetSitesAPI } from "src/wwwAPI";
import { useSiteStore } from "src/Stores";
import { getSiteName } from "src/Utility";

export default function useGetSites() {
  const { isSiteWindowOpened } = useSiteStore();

  const { t } = useTranslation();

  const { pathname } = useLocation();

  return useQuery({
    enabled: isSiteWindowOpened && pathname.startsWith("/qwilight/site"),
    queryKey: ["sites"],
    queryFn: async () => {
      const { data } = await wwwAXIOS.get<GetSitesAPI>("/sites");
      return data.map(
        ({ siteID, siteName, siteConfigure, hasCipher, avatarCount }) => ({
          siteID,
          siteName: getSiteName(siteName, t),
          siteConfigure,
          hasCipher,
          avatarCount,
        }),
      );
    },
    initialData: [],
  });
}