/* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable react-hooks/exhaustive-deps */ 'use client' import apbdes from '@/app/admin/(dashboard)/_state/landing-page/apbdes' import colors from '@/con/colors' import { Box, Button, Divider, Group, Select, SimpleGrid, Stack, Text, Title } from '@mantine/core' import Link from 'next/link' import { useEffect, useState } from 'react' import { useProxy } from 'valtio/utils' import GrafikRealisasi from './lib/grafikRealisasi' import PaguTable from './lib/paguTable' import RealisasiTable from './lib/realisasiTable' function Apbdes() { const state = useProxy(apbdes) const [selectedYear, setSelectedYear] = useState(null) const textHeading = { title: 'APBDes', des: 'Transparansi APBDes Darmasaba adalah langkah nyata menuju tata kelola desa yang bersih, terbuka, dan bertanggung jawab.' } useEffect(() => { const loadData = async () => { try { await state.findMany.load() } catch (error) { console.error('Error loading data:', error) } } loadData() }, []) const dataAPBDes = state.findMany.data || [] const years = Array.from( new Set( dataAPBDes .map((item: any) => item?.tahun) .filter((tahun): tahun is number => typeof tahun === 'number') ) ) .sort((a, b) => b - a) .map(year => ({ value: year.toString(), label: `Tahun ${year}`, })) useEffect(() => { if (years.length > 0 && !selectedYear) { setSelectedYear(years[0].value) } }, [years, selectedYear]) const currentApbdes = dataAPBDes.length > 0 ? dataAPBDes.find((item: any) => item?.tahun?.toString() === selectedYear) || dataAPBDes[0] : null // eslint-disable-next-line @typescript-eslint/no-unused-vars const previewData = (state.findMany.data || []).slice(0, 3) return ( {/* 📌 HEADING */} {textHeading.title} {textHeading.des} {/* Button Lihat Semua */} {/* COMBOBOX */}