"use client"; import { useEffect, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { SearchIcon } from "lucide-react"; import { Input } from "@/components/ui/input"; type CariMasterProps = { basePath: string; placeholder?: string; }; export function CariMaster({ basePath, placeholder }: CariMasterProps) { const router = useRouter(); const searchParams = useSearchParams(); const [nilai, setNilai] = useState(searchParams.get("search") ?? ""); useEffect(() => { const current = searchParams.get("search") ?? ""; if (nilai === current) return; const timer = setTimeout(() => { const url = nilai ? `${basePath}?search=${encodeURIComponent(nilai)}` : basePath; router.replace(url); }, 300); return () => clearTimeout(timer); }, [nilai, searchParams, router, basePath]); return (
setNilai(e.target.value)} />
); }