/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client' import colors from '@/con/colors'; import { Box, Button, Group, Paper, Skeleton, Stack, Text } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconAlertTriangle, IconAmbulance, IconArrowBack, IconBuilding, IconCash, IconChartLine, IconChristmasTreeFilled, IconClipboard, IconDroplet, IconEdit, IconFiretruck, IconHome, IconHomeEco, IconHospital, IconLeaf, IconRecycle, IconScale, IconSchool, IconShieldFilled, IconShoppingCart, IconTent, IconTrash, IconTree, IconTrendingUp, IconTrophy, IconTruck } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import React, { useState } from 'react'; import { useProxy } from 'valtio/utils'; import { ModalKonfirmasiHapus } from '../../../_com/modalKonfirmasiHapus'; import programPenghijauanState from '../../../_state/lingkungan/program-penghijauan'; function DetailProgramPenghijauan() { const [modalHapus, setModalHapus] = useState(false) const stateProgramPenghijauan = useProxy(programPenghijauanState) const router = useRouter() const params = useParams() const [selectedId, setSelectedId] = useState(null) const iconMap: Record> = { ekowisata: IconLeaf, kompetisi: IconTrophy, wisata: IconTent, ekonomi: IconChartLine, sampah: IconRecycle, truck: IconTruck, scale: IconScale, clipboard: IconClipboard, trash: IconTrash, lingkunganSehat: IconHomeEco, sumberOksigen: IconChristmasTreeFilled, ekonomiBerkelanjutan: IconTrendingUp, mencegahBencana: IconShieldFilled, rumah: IconHome, pohon: IconTree, air: IconDroplet, bantuan: IconCash, pelatihan: IconSchool, subsidi: IconShoppingCart, layananKesehatan: IconHospital, polisi: IconShieldFilled, ambulans: IconAmbulance, pemadam: IconFiretruck, rumahSakit: IconHospital, bangunan: IconBuilding, darurat: IconAlertTriangle }; useShallowEffect(() => { stateProgramPenghijauan.findUnique.load(params?.id as string) }, [params?.id]) const handleHapus = () => { if (selectedId) { stateProgramPenghijauan.delete.byId(selectedId) setModalHapus(false) setSelectedId(null) router.push("/admin/lingkungan/program-penghijauan") } } if (!stateProgramPenghijauan.findUnique.data) { return ( ) } const data = stateProgramPenghijauan.findUnique.data return ( {/* Tombol kembali */} {/* Konten detail */} Detail Program Penghijauan Nama Program {data?.name || '-'} Ikon Program {iconMap[data?.icon] ? ( {React.createElement(iconMap[data.icon], { size: 28, color: colors['blue-button'] })} ) : ( Tidak ada ikon )} Judul Deskripsi {data?.judul || '-'} Deskripsi {/* Tombol aksi */} {/* Modal Hapus */} setModalHapus(false)} onConfirm={handleHapus} text="Apakah Anda yakin ingin menghapus program penghijauan ini?" /> ); } export default DetailProgramPenghijauan;