kontenhumas-fe/components/visualization/management-user-viz.tsx

81 lines
2.6 KiB
TypeScript
Raw Normal View History

2025-09-23 13:07:34 +00:00
"use client";
import Cookies from "js-cookie";
import { useEffect, useState } from "react";
import { getCookiesDecrypt } from "@/lib/utils";
import { Button } from "../ui/button";
import { useTranslations } from "next-intl";
2025-09-29 14:41:48 +00:00
import { generateTicket } from "@/service/service/tableau/tableau-service";
2025-09-23 13:07:34 +00:00
export default function ManagementUserVisualization() {
const [ticket, setTicket] = useState("");
const baseUrl = "https://analytic.sitani.info/";
const url = "https://analytic.sitani.info/trusted/";
const view = "views/2023_04_MediaHUB-Viz-POLDA_Rev200/db-user-count?";
const param = ":embed=yes&:toolbar=no&:iframeSizedToWindow=true";
const [isInternational, setIsInternational] = useState(false);
const t = useTranslations("AnalyticsDashboard");
const userId = getCookiesDecrypt("uie");
useEffect(() => {
const initState = async () => {
const response = await generateTicket();
console.log("Data :", response?.data?.data);
setTicket(response?.data?.data);
console.log(userId);
};
initState();
}, []);
return (
2025-09-30 05:49:54 +00:00
<div className="flex flex-col gap-2 dark:bg-black rounded-lg p-3 border bg-slate-50">
2025-09-23 13:07:34 +00:00
{isInternational ? (
<p className="font-semibold">STATISTICS TO THE NUMBER OF USERS</p>
) : (
<p className="font-semibold">STATISTIK JUMLAH PENGGUNA</p>
)}
<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={() => setIsInternational(false)}
className={` hover:text-white rounded-none
${
isInternational
? "bg-white text-black "
: "bg-black text-white "
}`}
>
Indonesia
</Button>
<Button
onClick={() => setIsInternational(true)}
className={`hover:text-white rounded-none ${
isInternational ? "bg-black text-white " : "bg-white text-black "
}
`}
>
{t("international", { defaultValue: "International" })}
</Button>
</div>
</div>
{ticket == undefined ? (
<iframe
src={`${baseUrl + view + param}`}
width="100%"
height="750"
frameBorder="0"
/>
) : (
<iframe
src={`${`${url + ticket}/${view}${param}`}`}
width="100%"
height="750"
frameBorder="0"
/>
)}
</div>
);
}