'use client' import colors from '@/con/colors'; import { Box, Button, Center, Group, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title, Tooltip, } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconDeviceImac, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { Bar, BarChart, Legend, ResponsiveContainer, Tooltip as ReTooltip, XAxis, YAxis } from 'recharts'; import { useProxy } from 'valtio/utils'; import HeaderSearch from '../../_com/header'; import grafikSektorUnggulan from '../../_state/ekonomi/sektor-unggulan-desa'; function SektorUnggulanDesa() { const [search, setSearch] = useState(''); return ( } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> ); } function ListSektorUnggulanDesa({ search }: { search: string }) { const router = useRouter(); const state = useProxy(grafikSektorUnggulan); const [chartData, setChartData] = useState< { id: string; name: string; description: string | null; value: number | null }[] >([]); const { data, page, totalPages, loading, load, } = state.findMany; useEffect(() => { if (state.findMany.data) { setChartData( state.findMany.data.map((item) => ({ id: item.id, name: item.name, description: item.description, value: Number(item.value), })) ); } }, [state.findMany.data]); useShallowEffect(() => { load(page, 10, search) }, [page, search]) const filteredData = data || [] if (loading || !data) { return ( ); } return ( {/* List Table */} List Sektor Unggulan Desa {loading ? ( ) : ( Nama Sektor Deskripsi Detail {filteredData.length > 0 ? ( filteredData.map((item) => ( {item.name} )) ) : (
Tidak ada data sektor unggulan yang cocok
)}
)}
{ load(newPage, 10); window.scrollTo({ top: 0, behavior: 'smooth' }); }} total={totalPages} mt="md" mb="md" color="blue" radius="md" />
{/* Chart */} Grafik Sektor Unggulan Desa {loading ? ( ) : chartData.length > 0 ? ( ) : (
Belum ada data untuk ditampilkan dalam grafik
)}
); } export default SektorUnggulanDesa;