'use client' import colors from '@/con/colors'; import { Box, Button, Center, Group, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, Title } from '@mantine/core'; import { useShallowEffect } from '@mantine/hooks'; import { IconDeviceImacCog, IconPlus, IconSearch } from '@tabler/icons-react'; import { useRouter } from 'next/navigation'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; import HeaderSearch from '../../_com/header'; import sdgsDesa from '../../_state/landing-page/sdgs-desa'; function SdgsDesa() { const [search, setSearch] = useState(''); return ( } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> ); } function ListSdgsDesa({ search }: { search: string }) { const listState = useProxy(sdgsDesa) const router = useRouter(); const { data, page, totalPages, loading, load, } = listState.findMany; useShallowEffect(() => { load(page, 10, search) }, [page, search]) const filteredData = data || [] // Handle loading state if (loading || !data) { return ( ); } if (data.length === 0) { return ( Daftar Sdgs Desa Nama Sdgs Desa Jumlah Aksi Tidak ada data Sdgs Desa
); } return ( Daftar Sdgs Desa Nama Sdgs Desa Jumlah Aksi {filteredData.map((item) => ( {item.name} {item.jumlah || '0'} ))}
{ load(newPage, 10); window.scrollTo(0, 0); }} total={Math.max(1, totalPages)} withEdges radius="md" />
) } export default SdgsDesa;