import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { DetailTicket } from "./info-lainnya-types"; import { useState } from "react"; interface InfoLainnyaModalProps { open: boolean; onClose: () => void; data: DetailTicket["emergencyIssue"]; } export default function InfoLainnyaModal({ open, onClose, data, }: InfoLainnyaModalProps) { const files = data?.uploadFiles || []; const [currentIndex, setCurrentIndex] = useState(0); const handlePrev = () => { setCurrentIndex((prev) => (prev > 0 ? prev - 1 : prev)); }; const handleNext = () => { setCurrentIndex((prev) => (prev < files.length - 1 ? prev + 1 : prev)); }; const currentFile = files[currentIndex]; const isImage = (fileUrl: string) => /\.(jpeg|jpg|png|gif|bmp|webp)$/i.test(fileUrl.toLowerCase()); const getIframeUrl = (fileUrl: string): string => { const lower = fileUrl.toLowerCase(); // Dokumen ditampilkan melalui Google Docs Viewer if (/\.(pdf|doc|docx|xls|xlsx|ppt|pptx)$/i.test(lower)) { return `https://docs.google.com/viewer?url=${encodeURIComponent( fileUrl )}&embedded=true`; } return fileUrl; }; return ( Info Lainnya
Tanggal
:{data?.date}
Lokasi Kejadian
:{data?.location}
Isu Menonjol
:{data?.title}
Urgensi
:{data?.urgencyName}
Rekomendasi Tindak Lanjut
:{data?.recommendationName}
Link Pendukung
: {data?.link}
{files.length > 0 && ( <>
Lampiran
{isImage(currentFile?.fileUrl || "") ? ( {`Lampiran ) : ( //