'use client' import dataPendidikan from '@/app/admin/(dashboard)/_state/pendidikan/data-pendidikan'; import { Box, Paper, Skeleton, Stack, Text, Title } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconSchool } from '@tabler/icons-react'; import { useEffect, useState } from 'react'; import { Bar, BarChart, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts'; import { useProxy } from 'valtio/utils'; import BackButton from '../../desa/layanan/_com/BackButto'; import colors from '@/con/colors'; function Page() { type DPMrafik = { id: string; name: string; jumlah: number; }; const stateDPM = useProxy(dataPendidikan); const [chartData, setChartData] = useState([]); const [mounted, setMounted] = useState(false); useShallowEffect(() => { setMounted(true); stateDPM.findMany.load(); }, []); useEffect(() => { if (stateDPM.findMany.data) { setChartData( stateDPM.findMany.data.map((item) => ({ id: item.id, name: item.name, jumlah: Number(item.jumlah), })) ); } }, [stateDPM.findMany.data]); if (!stateDPM.findMany.data) { return ( ); } return ( Statistik Data Pendidikan Visualisasi jumlah pendidikan berdasarkan kategori yang tersedia {!mounted || chartData.length === 0 ? ( Belum Ada Data Data pendidikan belum tersedia. Silakan tambahkan data untuk melihat grafik. ) : ( Grafik Pendidikan )} ); } export default Page;