'use client' import colors from '@/con/colors'; import { Box, Button, Center, Image, Pagination, Paper, Skeleton, Stack, Table, TableTbody, TableTd, TableTh, TableThead, TableTr, Text } from '@mantine/core'; import { IconDeviceImacCog, IconSearch } from '@tabler/icons-react'; import JudulList from '../../_com/judulList'; import HeaderSearch from '../../_com/header'; import { useRouter } from 'next/navigation'; import programKesehatan from '../../_state/kesehatan/program-kesehatan/programKesehatan'; import { useProxy } from 'valtio/utils'; import { useShallowEffect } from '@mantine/hooks'; import { useState } from 'react'; function ProgramKesehatan() { const [search, setSearch] = useState(""); return ( } value={search} onChange={(e) => setSearch(e.currentTarget.value)} /> ); } function ListProgramKesehatan({ search }: { search: string }) { const programKesehatanState = useProxy(programKesehatan) const router = useRouter() const { data, page, totalPages, loading, load, } = programKesehatanState.findMany; useShallowEffect(() => { load(page, 10, search) }, [page, search]) const filteredData = data || [] if (loading || !data) { return ( ) } return ( Judul Deskripsi Singkat Image Detail {filteredData.map((item) => ( {item.name} ))}
load(newPage)} // ini penting! total={totalPages} mt="md" mb="md" />
) } export default ProgramKesehatan;