/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client' import colors from '@/con/colors'; import { Box, Button, Group, Paper, Skeleton, Stack, Text, Tooltip } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconArrowBack, IconChartLine, IconChristmasTreeFilled, IconClipboard, IconDroplet, IconEdit, IconHome, IconHomeEco, IconLeaf, IconRecycle, IconScale, IconShieldFilled, 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 dataLingkunganDesaState from '../../../_state/lingkungan/data-lingkungan-desa'; function DetailDataLingkunganDesa() { const [modalHapus, setModalHapus] = useState(false); const stateDataLingkungan = useProxy(dataLingkunganDesaState); 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, }; useShallowEffect(() => { stateDataLingkungan.findUnique.load(params?.id as string); }, [params?.id]); const handleHapus = () => { if (selectedId) { stateDataLingkungan.delete.byId(selectedId); setModalHapus(false); setSelectedId(null); router.push('/admin/lingkungan/data-lingkungan-desa'); } }; if (!stateDataLingkungan.findUnique.data) { return ( ); } const data = stateDataLingkungan.findUnique.data; return ( {/* Back Button */} {/* Main Card */} {/* Title */} Detail Data Lingkungan Desa {/* Content Card */} Nama Data Lingkungan Desa {data?.name || '-'} Jumlah Data Lingkungan Desa {data?.jumlah || '-'} Ikon Data Lingkungan Desa {iconMap[data?.icon] ? ( {React.createElement(iconMap[data.icon], { size: 28, color: colors['blue-button'] })} ) : ( Tidak ada ikon )} Deskripsi {/* Action Buttons */} {/* Modal Hapus */} setModalHapus(false)} onConfirm={handleHapus} text="Apakah anda yakin ingin menghapus data lingkungan desa ini?" /> ); } export default DetailDataLingkunganDesa;