"use client";

import { useMemo } from "react";
import { usePathname } from "next/navigation";
import { useQuery } from "@tanstack/react-query";
import { dashboardOwner } from "@/features/cdc-gpsf/dashboard/dashboard-translations";
import { useAppLanguage } from "@/components/providers/app-language-provider";
import {
  fetchMinistryMeetingRequestDictionary,
  meetingTranslationPage,
} from "@/features/ministry/meeting-request/meeting-request-translations";
import { resolveCdcGpsfMeetingRequestLabels } from "./cdc-gpsf-meeting-request-translations";

export function useCdcGpsfMeetingRequestLabels() {
  const pathname = usePathname() ?? "";
  const owner = dashboardOwner(pathname);
  const page = meetingTranslationPage(pathname);
  const { language } = useAppLanguage();
  const lang = language === "en" ? "en" : "km";
  const { data } = useQuery({
    queryKey: ["translations", owner, page, lang],
    queryFn: ({ signal }) => owner
      ? fetchMinistryMeetingRequestDictionary(lang, signal, owner, page)
      : Promise.resolve({}),
    enabled: owner !== null,
    staleTime: 30_000,
    refetchOnMount: "always",
    refetchOnWindowFocus: "always",
    retry: 1,
  });
  return useMemo(
    () => resolveCdcGpsfMeetingRequestLabels(lang, data ?? {}),
    [lang, data],
  );
}
