/* eslint-disable @typescript-eslint/no-explicit-any */ 'use client' import programPenghijauanState from '@/app/admin/(dashboard)/_state/lingkungan/program-penghijauan'; import { Box, Button, Paper, Skeleton, Stack, Text, ThemeIcon } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconArrowLeft, IconChartLine, IconChristmasTreeFilled, IconClipboard, IconHomeEco, IconLeaf, IconRecycle, IconScale, IconShieldFilled, IconTent, IconTrash, IconTrendingUp, IconTrophy, IconTruck } from '@tabler/icons-react'; import { useParams, useRouter } from 'next/navigation'; import React from 'react'; import { useProxy } from 'valtio/utils'; function Page() { const stateProgramPenghijauan = useProxy(programPenghijauanState); const router = useRouter(); const params = useParams(); 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, }; useShallowEffect(() => { stateProgramPenghijauan.findUnique.load(params?.id as string); }, [params?.id]); if (!stateProgramPenghijauan.findUnique.data) { return ( Sedang memuat detail program... ); } const data = stateProgramPenghijauan.findUnique.data; const IconComponent = data?.icon ? iconMap[data.icon] : null; return ( {IconComponent && ( )} {data?.name || 'Nama program tidak tersedia'} {data?.judul || 'Judul belum tersedia'} {data?.deskripsi ? ( ) : ( Tidak ada deskripsi yang tersedia untuk program ini. )} ); } export default Page;