"use client"; import { close, error, loading, successCallback } from "@/config/swal"; import { checkWishlistStatus, deleteWishlist, getInfoProfile, mediaWishlist, saveWishlist } from "@/service/landing/landing"; import React, { useEffect, useState } from "react"; import { Link, useRouter } from "@/i18n/routing"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useSearchParams } from "next/navigation"; import { Card, CardContent } from "@/components/ui/card"; import HeaderManagement from "@/components/landing-page/header-management"; import SidebarManagement from "@/components/landing-page/sidebar-management"; import withReactContent from "sweetalert2-react-content"; import { getCookiesDecrypt } from "@/lib/utils"; import Swal from "sweetalert2"; import { useToast } from "@/components/ui/use-toast"; const Galery = (props: any) => { const [profile, setProfile] = useState(); const [selectedTab, setSelectedTab] = useState("video"); const router = useRouter(); const MySwal = withReactContent(Swal); const searchParams = useSearchParams(); // const { id } = router.query; const page: any = searchParams?.get("page"); const title = searchParams?.get("title"); const category = searchParams?.get("category"); const pages = page ? page - 1 : 0; const { isInstitute, instituteId } = props; const userId = getCookiesDecrypt("uie"); const userRoleId = getCookiesDecrypt("urie"); const [totalContent, setTotalContent] = useState(); const [categoryFilter] = useState([]); const [formatFilter] = useState([]); const [sortBy] = useState(); const [change] = useState(false); const [contentVideo, setContentVideo] = useState([]); const [contentImage, setContentImage] = useState([]); const [contentDocument, setContentDocument] = useState([]); const [contentAudio, setContentAudio] = useState([]); const [, setGetTotalPage] = useState([]); const [refresh, setRefresh] = useState(false); const [, setCopySuccess] = useState(""); const [, setWishlistId] = useState(); useEffect(() => { getDataVideo(); }, [page, category, title]); async function getDataVideo() { const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); const response = await mediaWishlist("2", isInstitute ? instituteId : "", name, filter, "9", pages, sortBy, format); setGetTotalPage(response.data?.data?.totalPages); setContentVideo(response.data?.data?.content); setTotalContent(response.data?.data?.totalElements); } useEffect(() => { async function initState() { loading(); const response = await getInfoProfile(); // console.log(response?.data.data); setProfile(response?.data?.data); close(); } initState(); }, []); useEffect(() => { getDataVideo(); }, [change, refresh]); useEffect(() => { getDataDocument(); }, [page, category, title]); async function getDataDocument() { const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); const response = await mediaWishlist("3", isInstitute ? instituteId : "", name, filter, "12", pages, sortBy, format); setGetTotalPage(response.data?.data?.totalPages); setContentDocument(response.data?.data?.content); setTotalContent(response.data?.data?.totalElements); } useEffect(() => { getDataDocument(); }, [change, refresh]); useEffect(() => { getDataAudio(); }, [page, category, title]); useEffect(() => { getDataAudio(); }, [change, refresh]); async function getDataAudio() { const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); const response = await mediaWishlist("4", isInstitute ? instituteId : "", name, filter, "6", pages, sortBy, format); setGetTotalPage(response.data?.data?.totalPages); setContentAudio(response.data?.data?.content); setTotalContent(response.data?.data?.totalElements); } useEffect(() => { getDataAudio(); }, [change]); useEffect(() => { getDataImage(); }, [page, category, title, refresh]); async function getDataImage() { const filter = categoryFilter?.length > 0 ? categoryFilter?.sort().join(",") : category || ""; const name = title == undefined ? "" : title; const format = formatFilter == undefined ? "" : formatFilter?.join(","); const response = await mediaWishlist("1", isInstitute ? instituteId : "", name, filter, "12", pages, sortBy, format); setGetTotalPage(response.data?.data?.totalPages); setContentImage(response.data?.data?.content); // console.log("response", response); setTotalContent(response.data?.data?.totalElements); } useEffect(() => { async function initState() { getDataImage(); } initState(); }, [page, refresh]); async function checkWishlist(uploadId: any) { if (userId) { const res = await checkWishlistStatus(uploadId); console.log(res?.data?.data); // const isAlreadyOnWishlist = res?.data?.data == "-1" ? false : true; // if (isAlreadyOnWishlist == true) { // warning("Konten sudah Ada", `#`); // } setWishlistId(res?.data?.data); // setIsSaved(isAlreadyOnWishlist); // console.log("isSave", isAlreadyOnWishlist); } } const handleSaveWishlist = async (uploadId: any) => { if (Number(userRoleId) < 1 || userRoleId == undefined) { router.push("/auth/login"); } else { console.log("data", uploadId); const data = { mediaUploadId: uploadId, }; loading(); checkWishlist(uploadId); const res = await saveWishlist(data); if (res?.error) { error(res.message); console.log("simpan data", res); return false; } successCallback("Konten Berhasil Disimpan"); } }; async function deleteProcess(id: any) { loading(); const resDelete = await deleteWishlist(id); if (resDelete?.error) { error(resDelete.message); return false; } setRefresh((prevRefresh) => !prevRefresh); close(); } const handleDelete = (id: any) => { MySwal.fire({ title: "Hapus Data", text: "", icon: "warning", showCancelButton: true, cancelButtonColor: "#3085d6", confirmButtonColor: "#d33", confirmButtonText: "Hapus", }).then((result) => { if (result.isConfirmed) { deleteProcess(id); } }); }; const copyToClip = async (url: any) => { await navigator.clipboard.writeText(`https://mediahub.polri.go.id/video/detail/${url}`); setCopySuccess("Copied"); // toast.success("Link Berhasil Di Copy"); }; const [hasMounted, setHasMounted] = useState(false); // Hooks useEffect(() => { setHasMounted(true); }, []); // Render if (!hasMounted) return null; return ( <>

Galeri {profile?.institute?.name}

Audio Visual
|
Audio
|
Foto
|
Teks
{selectedTab == "video" ? ( contentVideo?.length > 0 ? (
{contentVideo?.map((video: any) => (
{video?.mediaUpload?.title}
))}
) : (

empty

) ) : selectedTab == "audio" ? ( contentAudio?.length > 0 ? (
{contentAudio?.map((audio: any) => (
{audio?.mediaUpload?.title}
#
{audio?.mediaUpload?.duration}
))}
) : (

empty

) ) : selectedTab == "image" ? ( contentImage?.length > 0 ? (
{contentImage?.map((image: any) => (
{image?.mediaUpload?.title}
))}
) : (

empty

) ) : contentDocument.length > 0 ? (
{contentDocument?.map((document: any) => (
{document?.mediaUpload?.title}
Download Dokumen
))}
) : (

empty

)}
); }; export default Galery;