"use client";
import Cookies from "js-cookie";
import { useEffect, useState } from "react";
import { getCookiesDecrypt } from "@/lib/utils";
import { generateTicket } from "@/service/tableau/tableau-service";
import { Button } from "../ui/button";
import { useTranslations } from "next-intl";

export default function DashboardVisualization() {
  const levelName = getCookiesDecrypt("ulnae");
  const state = Cookies.get("state");
  const provState = Cookies.get("state-prov");
  const t = useTranslations("AnalyticsDashboard");
  const levelNumber = getCookiesDecrypt("ulne");
  const [ticket1, setTicket1] = useState();
  const [ticket2, setTicket2] = useState();
  const [ticket3, setTicket3] = useState();
  const [isInternational, setIsInternational] = useState([false, false, false]);
  const baseUrl = "https://db-mediahub.polri.go.id/";
  const url = "https://db-mediahub.polri.go.id/trusted/";

  const safeLevelName = levelName ?? "";

  const view1 =
    safeLevelName === "MABES POLRI"
      ? isInternational[0]
        ? "views/202511_Mediahub-Admin-Mabes-Breakdown-content-monitor_rev100/db-content-monitor?"
        : // "views/2025_10_MediaHUB-Viz-POLDA-content-monitor_Rev100/db-content-monitor?"
          "views/202511_Mediahub-Admin-Mabes-Breakdown-content-monitor_rev100/db-content-monitor?"
      : // "views/2025_10_MediaHUB-Viz-POLDA-content-monitor_Rev100/db-content-monitor?"
      safeLevelName.includes("POLDA")
      ? `views/202511_Mediahub-Admin-Mabes-Breakdown-content-monitor_rev100/db-content-monitor?provinsi-polda=${state}&`
      : // `views/2025_10_MediaHUB-Viz-POLDA-content-monitor_Rev100/db-content-monitor?provinsi-polda=${state}&`
        `views/202511_Mediahub-Admin-Mabes-Breakdown-content-monitor_rev100/db-content-monitor?provinsi-polda=${state}&`;
  // `views/2025_10_MediaHUB-Viz-POLDA-content-monitor_Rev100/db-content-monitor?provinsi-polda=${state}&`;

  const view2 =
    levelName == "MABES POLRI"
      ? isInternational[1]
        ? "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-content-interaction-konten?"
        : // "views/2025_10_MediaHUB-Viz-POLDA_Rev201/db-content-interaction?"
          "views/2023_04_MediaHUB-Viz-POLDA_Rev201/db-content-interaction-konten?"
      : // "views/2025_10_MediaHUB-Viz-POLDA_Rev201/db-content-interaction?"
      safeLevelName.includes("POLDA")
      ? `views/2023_04_MediaHUB-Viz-POLDA_Rev201/db-content-interaction-konten-polda?provinsi-polda=${state}&`
      : // `views/2025_10_MediaHUB-Viz-POLDA_Rev201/db-content-interaction?provinsi-polda=${state}&`
        `views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-content-interaction-konten-polda?polda-selected=${state}&`;
  // `views/2025_10_MediaHUB-Viz-POLDA_Rev201/db-content-interaction?provinsi-polda=${state}&`;

  const view3 =
    levelName == "MABES POLRI"
      ? isInternational[2]
        ? // "views/2023_04_MediaHUB-Viz_INTL_Rev202/db-penugasan?"
          "views/2023_09_db-penugasan_rev100_17617546618770/db-penugasan?"
        : // "views/2023_09_db-penugasan_rev100/db-penugasan?"
          "views/2023_09_db-penugasan_rev100_17617546618770/db-penugasan?"
      : safeLevelName.includes("POLDA")
      ? // `views/2023_09_db-penugasan-polda-param_rev100/db-penugasan?provinsi-polda=${state}&`
        `views/2023_09_db-penugasan_rev100_17617546618770/db-penugasan?provinsi-polda=${state}&`
      : // `views/2023_09_db-penugasan_rev100/db-penugasan?polda-selected=${state}&`;
        `views/2023_09_db-penugasan_rev100_17617546618770/db-penugasan?provinsi-polda=${state}&`;

  const param = ":embed=yes&:toolbar=yes&:iframeSizedToWindow=true";

  useEffect(() => {
    async function initState() {
      const response1 = await generateTicket();
      setTicket1(response1?.data?.data);
      console.log("response", response1);

      const response2 = await generateTicket();
      setTicket2(response2?.data?.data);

      const response3 = await generateTicket();
      setTicket3(response3?.data?.data);
    }

    initState();
  }, [isInternational]);

  const handleInternational = (index: number, val: boolean) => {
    const updatedIsInternational = [...isInternational];

    updatedIsInternational[index] = val;
    setIsInternational(updatedIsInternational);
  };

  // useEffect(() => {
  //   async function fetchUrl() {
  //     console.log("Fetch tableau");
  //     const urlView = `${url + ticket1}/${view1}${param}`;
  //     console.log("Fetch tableau ", urlView);
  //     const urlRender = await fetch(urlView)
  //       .then((response) => {
  //         console.log("Tableau res : ", response);
  //       })
  //       .catch((error) => {
  //         console.log("Tableau error: ", error);
  //       });
  //   }

  //   fetchUrl();
  // }, [ticket1]);

  return (
    <div className="flex flex-col gap-2 bg-white rounded-lg p-3">
      <p className="text-lg">
        <b>
          {isInternational[0]
            ? "COMMULATION OF USERS, CONTENTS AND INTERACTIONS"
            : "KUMULASI PENGGUNA, KONTEN, DAN INTERAKSI"}
        </b>
      </p>
      {levelName === "MABES POLRI" ? (
        <div className="flex flex-col gap-1">
          <p>{t("choose_category", { defaultValue: "Choose Category" })}</p>
          <div className="flex flex-row gap-1 border-2 w-fit">
            <Button
              onClick={() => handleInternational(0, false)}
              className={` hover:text-white rounded-none
                ${
                  isInternational[0]
                    ? "bg-white text-black "
                    : "bg-black text-white "
                }`}
            >
              Indonesia
            </Button>
            <Button
              onClick={() => handleInternational(0, true)}
              className={`hover:text-white rounded-none ${
                isInternational[0]
                  ? "bg-black text-white "
                  : "bg-white text-black "
              }
              `}
            >
              {t("international", { defaultValue: "International" })}
            </Button>
          </div>
        </div>
      ) : (
        ""
      )}
      <div className="my-5">
        {ticket1 == undefined ? (
          <iframe
            src={`${baseUrl + view1 + param}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        ) : (
          <iframe
            src={`${`${url + ticket1}/${view1}${param}`}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        )}
      </div>
      <p className="text-lg">
        <b>
          {isInternational[1]
            ? "ADDITION OF CONTENT AND INTERACTION"
            : "PENAMBAHAN KONTEN DAN INTERAKSI"}
        </b>
      </p>
      {levelName === "MABES POLRI" ? (
        <div className="flex flex-col gap-1">
          <p>{t("choose_category", { defaultValue: "Choose Category" })}</p>
          <div className="flex flex-row gap-1 border-2 w-fit">
            <Button
              onClick={() => handleInternational(1, false)}
              className={` hover:text-white rounded-none
                ${
                  isInternational[1]
                    ? "bg-white text-black "
                    : "bg-black text-white "
                }`}
            >
              Indonesia
            </Button>
            <Button
              onClick={() => handleInternational(1, true)}
              className={`hover:text-white rounded-none ${
                isInternational[1]
                  ? "bg-black text-white "
                  : "bg-white text-black "
              }
              `}
            >
              {t("international", { defaultValue: "International" })}
            </Button>
          </div>
        </div>
      ) : (
        ""
      )}
      <div className="my-5">
        {ticket2 == undefined ? (
          <iframe
            src={`${baseUrl + view2 + param}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        ) : (
          <iframe
            src={`${`${url + ticket2}/${view2}${param}`}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        )}
      </div>
      {levelNumber !== "3" && (
        <>
          <p className="text-lg">
            <b>{isInternational[2] ? "ASSIGNMENT" : "PENUGASAN"}</b>
          </p>

          {levelName === "MABES POLRI" ? (
            <div className="flex flex-col gap-1">
              <p>{t("choose_category", { defaultValue: "Choose Category" })}</p>
              <div className="flex flex-row gap-1 border-2 w-fit">
                <Button
                  onClick={() => handleInternational(2, false)}
                  className={` hover:text-white rounded-none
              ${
                isInternational[2]
                  ? "bg-white text-black "
                  : "bg-black text-white "
              }`}
                >
                  Indonesia
                </Button>
                <Button
                  onClick={() => handleInternational(2, true)}
                  className={`hover:text-white rounded-none ${
                    isInternational[2]
                      ? "bg-black text-white "
                      : "bg-white text-black "
                  }`}
                >
                  {t("international", { defaultValue: "International" })}
                </Button>
              </div>
            </div>
          ) : (
            ""
          )}

          <div className="my-5">
            {ticket3 == undefined ? (
              <iframe
                src={`${baseUrl + view3 + param}`}
                width="100%"
                height="750"
                frameBorder="0"
              />
            ) : (
              <iframe
                src={`${`${url + ticket3}/${view3}${param}`}`}
                width="100%"
                height="750"
                frameBorder="0"
              />
            )}
          </div>
        </>
      )}

      {/* <p className="text-lg">
        <b>{isInternational[2] ? "ASSIGNMENT" : "PENUGASAN"}</b>
      </p>
      {levelName === "MABES POLRI" ? (
        <div className="flex flex-col gap-1">
          <p>{t("choose_category", { defaultValue: "Choose Category" })}</p>
          <div className="flex flex-row gap-1 border-2 w-fit">
            <Button
              onClick={() => handleInternational(2, false)}
              className={` hover:text-white rounded-none
                ${
                  isInternational[2]
                    ? "bg-white text-black "
                    : "bg-black text-white "
                }`}
            >
              Indonesia
            </Button>
            <Button
              onClick={() => handleInternational(2, true)}
              className={`hover:text-white rounded-none ${
                isInternational[1]
                  ? "bg-black text-white "
                  : "bg-white text-black "
              }
              `}
            >
              {t("international", { defaultValue: "International" })}
            </Button>
          </div>
        </div>
      ) : (
        ""
      )}
      <div className="my-5">
        {ticket3 == undefined ? (
          <iframe
            src={`${baseUrl + view3 + param}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        ) : (
          <iframe
            src={`${`${url + ticket3}/${view3}${param}`}`}
            width="100%"
            height="750"
            frameBorder="0"
          />
        )}
      </div> */}
    </div>
  );
}
