import AuthenticatedLayout from "@/layouts/authenticated-layout"; import { Head } from "@inertiajs/react"; import React from "react"; import { useState } from "react"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { BadgeCheck, ChevronLeft, ChevronRight, ChevronUp, Download, FileText, Key, LockKeyhole, Plus, Search, TouchpadOff, Upload, } from "lucide-react"; import Select from "react-select"; import { AddPerusahaanModal } from "@/components/modals/add-perusahaan-modal"; import { Perusahaan, JenisDokIL, JenisKegiatan, Verifikator, Kabupaten, Kecamatan, Kelurahan, Kawasan, } from "@/types/perusahaan"; export default function PerusahaanIndex({ perusahaan, jenisKegiatan, jenisDokIL, verifikator, kabupaten, kecamatan, kelurahan, }: { perusahaan: Perusahaan[]; jenisKegiatan: JenisKegiatan[]; jenisDokIL: JenisDokIL[]; verifikator: Verifikator[]; kabupaten: Kabupaten[]; kecamatan: Kecamatan[]; kelurahan: Kelurahan[]; }) { console.log("Perusahaan data:", perusahaan); // console.log("Jenis Kegiatan data:", jenisKegiatan); // console.log("Jenis Dok IL data:", jenisDokIL); // console.log("Verifikator data:", verifikator); // console.log("Kabupaten data:", kabupaten); // console.log("Kecamatan data:", kecamatan); // console.log("Kelurahan data:", kelurahan); const [year, setYear] = useState("2025"); const [quarter, setQuarter] = useState("Triwulan 1"); const [selectedJenisKegiatan, setSelectedJenisKegiatan] = useState<{ value: string; label: string; } | null>(null); const [selectedJenisDokIL, setSelectedJenisDokIL] = useState<{ value: string; label: string; } | null>(null); const [selectedVerifikator, setSelectedVerifikator] = useState<{ value: string; label: string; } | null>(null); const [selectedKabupaten, setSelectedKabupaten] = useState<{ value: number; label: string; } | null>(null); const [selectedKecamatan, setSelectedKecamatan] = useState<{ value: number; label: string; } | null>(null); const [selectedKelurahan, setSelectedKelurahan] = useState<{ value: number; label: string; } | null>(null); const jenisKegiatanOptions = jenisKegiatan.map((jk) => ({ value: jk.JenisKegiatanId.toString(), label: jk.NamaJenisKegiatan, })); const jenisDokILOptions = jenisDokIL.map((jdi) => ({ value: jdi.JenisDokILId.toString(), label: jdi.NamaJenisDokIL, })); const verifikatorOptions = verifikator.map((v) => ({ value: v.VerifikatorId.toString(), label: v.NamaUnitKerja, })); const kabupatenOptions = kabupaten.map((k) => ({ value: k.KabupatenId, label: k.NamaKabupaten, })); const kecamatanOptions = kecamatan .filter( (kec) => selectedKabupaten && kec.KabupatenId === selectedKabupaten.value ) .map((kec) => ({ value: kec.KecamatanId, label: kec.NamaKecamatan, })); const kelurahanOptions = kelurahan .filter( (kel) => selectedKecamatan && kel.KecamatanId === selectedKecamatan.value ) .map((kel) => ({ value: kel.KelurahanId, label: kel.NamaKelurahan, })); // const companyOptions = [ // { value: "PT Ajinomoto Indonesia", label: "PT Ajinomoto Indonesia" }, // { value: "PT Unilever Indonesia", label: "PT Unilever Indonesia" }, // { // value: "PT Indofood Sukses Makmur", // label: "PT Indofood Sukses Makmur", // }, // { value: "PT Mayora Indah", label: "PT Mayora Indah" }, // ]; type CompanyOption = { value: string; label: string; }; const companyOptions: CompanyOption[] = perusahaan.map((c) => ({ value: c.PerusahaanId.toString(), label: c.NamaPerusahaan, })); const [company, setCompany] = useState( companyOptions[0] ); const [showAddModal, setShowAddModal] = useState(false); const handleSuccess = () => { // Refresh data window.location.reload(); }; // Color coding helper const getStatusColor = (status: string) => { switch (status) { case "belum": return "bg-red-100 text-red-800"; case "pending": return "bg-gray-100 text-gray-800"; case "siap": return "bg-orange-100 text-orange-800"; case "selesai": return "bg-green-100 text-green-800"; default: return ""; } }; return ( setShowAddModal(false)} onSuccess={handleSuccess} jenisKegiatan={jenisKegiatan} jenisDokIL={jenisDokIL} verifikator={verifikator} kabupaten={kabupaten} kecamatan={kecamatan} kelurahan={kelurahan} perusahaan={perusahaan} // existingPerusahaan={perusahaan.map(p => ({...p, PerusahaanId: p.PerusahaanId.toString()}))} // existingInduk={[]} // kawasan={kawasan} /> {/* Filter Section */}

Filter Pencarian

{/* Left Column */}
{ setSelectedKabupaten(value); setSelectedKecamatan(null); setSelectedKelurahan(null); }} placeholder="Pilih Kabupaten/Kota" isSearchable className="w-full" isClearable />
{/* Right Column */}