import React, { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import Select from "react-select"; import { router } from "@inertiajs/react"; import { Perusahaan, JenisKegiatan } from "@/types/perusahaan"; type ModalIzinLingkunganProps = { open: boolean; onClose: () => void; onSuccess: () => void; selectedPerusahaan: Perusahaan | null; jenisKegiatan: JenisKegiatan[]; // Ganti dari jenisDokIL menjadi jenisKegiatan }; export function ModalIzinLingkungan({ open, onClose, onSuccess, selectedPerusahaan, jenisKegiatan, }: ModalIzinLingkunganProps) { if (!selectedPerusahaan) return null; // State untuk field Nomor & Tanggal Izin Lingkungan (contoh) const [nomorIzin, setNomorIzin] = useState( selectedPerusahaan.ILNomor || "" ); const [tanggalIzin, setTanggalIzin] = useState( selectedPerusahaan.ILTanggal ? new Date(selectedPerusahaan.ILTanggal).toISOString().split("T")[0] : "" ); const [dokumen, setDokumen] = useState(null); // State untuk dropdown Jenis Kegiatan // Jika perusahaan sudah memiliki jenis_kegiatan, kita set default-nya const [selectedJenisKegiatan, setSelectedJenisKegiatan] = useState<{ value: number; label: string; } | null>( selectedPerusahaan.jenis_kegiatan ? { value: selectedPerusahaan.jenis_kegiatan.JenisKegiatanId, label: selectedPerusahaan.jenis_kegiatan.NamaJenisKegiatan, } : null ); // Konversi data jenisKegiatan agar bisa dibaca oleh react-select const jenisKegiatanOptions = jenisKegiatan.map((jk) => ({ value: jk.JenisKegiatanId, label: jk.NamaJenisKegiatan, })); // Handler submit form const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!selectedPerusahaan) return; // Siapkan FormData untuk dikirim via Inertia const formData = new FormData(); formData.append( "PerusahaanId", String(selectedPerusahaan.PerusahaanId) ); formData.append("ILNomor", nomorIzin); formData.append("ILTanggal", tanggalIzin); // Ganti JenisDokILId -> JenisKegiatanId (sesuaikan dengan field di DB) formData.append( "JenisKegiatanId", selectedJenisKegiatan?.value.toString() || "" ); if (dokumen) { formData.append("ILDokumen", dokumen); } router.post( `/admin/perizinan_lingkungan/${selectedPerusahaan.PerusahaanId}`, formData, { onSuccess: () => { onSuccess(); // menutup modal & refresh data }, } ); }; return ( Perizinan Lingkungan {/* Detail perusahaan */}
No Induk:
{selectedPerusahaan.NomorInduk || "-"}
Perusahaan:
{selectedPerusahaan.NamaPerusahaan || "-"}
Jenis Kegiatan:
{selectedPerusahaan.jenis_kegiatan ?.NamaJenisKegiatan || "-"}
Alamat:
{selectedPerusahaan.Alamat || "-"}
Telepon:
{selectedPerusahaan.Telepon || "-"}
Fax:
{selectedPerusahaan.Fax || "-"}
Email:
{selectedPerusahaan.Email || "-"}
{/* Form update dokumen izin */}
setNomorIzin(e.target.value)} />
setTanggalIzin(e.target.value)} />
{ if ( e.target.files && e.target.files.length > 0 ) { setDokumen(e.target.files[0]); } }} />
{selectedPerusahaan.ILDokumen && (
)}
); }