Newer
Older
taehui / qwilight-fe / src / app / [language] / site / query / useGetSites.ts
@Taehui Taehui on 20 Apr 968 bytes 2024-04-20 오후 2:05
import { useSiteStore } from "@/state/Stores";
import { GetSitesAPI } from "@/type/wwwAPI";
import { getSiteName } from "@/utilities/Utility";

import { wwwAPI } from "@/utilities/wwwAPI";
import { useQuery } from "@tanstack/react-query";
import { useTranslations } from "next-intl";
import { useIsPath } from "taehui-lib/fe-utilities";

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

  const t = useTranslations();

  const isPath = useIsPath();

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