'use client' import infoSekolahPaud from '@/app/admin/(dashboard)/_state/pendidikan/info-sekolah-paud'; import colors from '@/con/colors'; import { Box, Center, Group, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text, TextInput, Title } from '@mantine/core'; import { useDebouncedValue, useShallowEffect } from '@mantine/hooks'; import { IconChalkboard, IconLayersSubtract, IconSearch } from '@tabler/icons-react'; import { useState } from 'react'; import { useProxy } from 'valtio/utils'; function Page() { const [search, setSearch] = useState("") const [debouncedSearch] = useDebouncedValue(search, 1000); // 500ms delay const stateList = useProxy(infoSekolahPaud.lembagaPendidikan) const { data, page, totalPages, loading, load, } = stateList.findMany useShallowEffect(() => { load(page, 10, debouncedSearch) }, [page, debouncedSearch]) const filteredData = data || [] if (loading || !data) { return ( ) } return ( Daftar Lembaga Pendidikan } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> {filteredData.length === 0 ? ( Belum ada data lembaga pendidikan ) : ( Nama Lembaga Jenjang Pendidikan {filteredData.map((item) => ( {item.nama} {item.jenjangPendidikan?.nama || '-'} ))}
)}
{filteredData.length > 0 && (
load(newPage)} total={totalPages} size="md" radius="xl" withEdges />
)}
); } export default Page;