"use client"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import Image from "next/image"; import { CheckCircle } from "lucide-react"; import { useEffect, useState } from "react"; import { getGaleryFileData } from "@/service/galery"; export function DialogDetailGaleri({ open, onClose, data }: any) { const [images, setImages] = useState([]); const [openApproverHistory, setOpenApproverHistory] = useState(false); const fetchImages = async () => { try { const res = await getGaleryFileData(data.id); const allImages = res?.data?.data ?? []; const filteredImages = allImages.filter( (img: any) => img.gallery_id === data.id, ); setImages(filteredImages); } catch (e) { console.error("Error fetch files:", e); } }; useEffect(() => { if (open && data?.id) { fetchImages(); } }, [open, data]); const openFile = (url: string) => { window.open(url, "_blank"); }; const handleOpenApproverHistory = () => { setOpenApproverHistory(true); }; return ( <> {/* Header */}
Detail Galeri
{/* Images List */}

{data.title}

Deskripsi

{data.description}

{images.length === 0 && (

Tidak ada gambar.

)} {images.map((img) => (
openFile(img.image_url)} > {img.title}
Lihat File
))}
{/* Title */} {/* Deskripsi */} {/* Tanggal Upload */}

Tanggal Upload

{new Date(data.created_at).toLocaleDateString("id-ID")}

{/* Timeline */}

Status Timeline

Diupload Oleh :

{new Date(data.created_at).toLocaleString("id-ID")}

Disetujui Oleh :

{new Date(data.created_at).toLocaleString("id-ID")}

{data.approved_at && (

Disetujui oleh Approver

{new Date(data.approved_at).toLocaleString("id-ID")}

)}

Comment :

Jaecoo - Approver | 10/11/2026

{/* */}
{openApproverHistory && (
setOpenApproverHistory(false)} >
e.stopPropagation()} > {/* HEADER */}

Approver History

Menunggu Banner 1
{/* BODY */}
{/* LEFT TIMELINE */}
{/* Upload */}
Upload
{/* Diterima */}

Diterima

Direview oleh: approver-jaecoo1
{/* Pending */}

Pending

Direview oleh: approver-jaecoo1
{/* ARROW */}
> >
{/* RIGHT NOTES */}
Catatan:
Catatan:
{/* FOOTER */}
)} ); }