'use client' import { useState, useMemo } from 'react' import { Search, Building2 } from 'lucide-react' import PosyanduCard from './PosyanduCard' interface Posyandu { id: string nama_posyandu: string alamat: string kontak: string | null latitude: number | null longitude: number | null link_google_maps: string | null petugas?: { nama_petugas: string nomor_hp: string | null jabatan: string | null }[] reviews?: { rating: number ulasan: string nama_pengulas: string }[] } interface Props { initialData: Posyandu[] } export default function PosyanduList({ initialData }: Props) { const [searchTerm, setSearchTerm] = useState('') const filteredData = useMemo(() => { return initialData.filter(p => p.nama_posyandu.toLowerCase().includes(searchTerm.toLowerCase()) || p.alamat.toLowerCase().includes(searchTerm.toLowerCase()) ) }, [initialData, searchTerm]) return (
{/* Search Bar */}
setSearchTerm(e.target.value)} className="w-full pl-10 pr-4 py-2.5 bg-gray-50 border-2 border-gray-100 focus:border-black rounded-xl text-sm font-semibold outline-none transition-all" />
{/* Grid of Cards */} {filteredData.length === 0 ? (

Tidak ada posyandu ditemukan

) : (
{filteredData.map((p) => ( ))}
)}
) }