'use client' import colors from '@/con/colors'; import { Box, Button, Paper, Skeleton, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text } from '@mantine/core'; import { IconDeviceImac, IconSearch } from '@tabler/icons-react'; import HeaderSearch from '../../_com/header'; import JudulList from '../../_com/judulList'; import { useRouter } from 'next/navigation'; import { useProxy } from 'valtio/utils'; import posyandustate from '../../_state/kesehatan/posyandu/posyandu'; import { useShallowEffect } from '@mantine/hooks'; import { useState } from 'react'; function Posyandu() { const [search, setSearch] = useState(""); return ( } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> ); } function ListPosyandu({ search }: { search: string }) { const statePosyandu = useProxy(posyandustate) const router = useRouter(); useShallowEffect(() => { statePosyandu.findMany.load() }, []) const filteredData = (statePosyandu.findMany.data || []).filter(item => { const keyword = search.toLowerCase(); return ( item.name.toLowerCase().includes(keyword) || item.nomor.toString().toLowerCase().includes(keyword) ); }); if (!statePosyandu.findMany.data) { return ( ) } return ( Nama Posyandu Nomor Posyandu Deskripsi Detail {filteredData.map((item) => ( {item.name} {item.nomor} ))}
); } export default Posyandu;