'use client'; import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; import { useSearchParams, useRouter, usePathname } from 'next/navigation'; import { useDebouncedCallback } from 'use-debounce'; export default function Search({ placeholder }: { placeholder: string }) { const searchParams = useSearchParams(); const pathname = usePathname(); const { replace } = useRouter(); const handleSearch = useDebouncedCallback((term) => { console.log(`Searching... ${term}`) const params = new URLSearchParams(searchParams); params.set('page', '1'); if (term){ params.set('query', term); } else{ params.delete('query'); } replace(`${pathname}?${params.toString()}`); }, 300); return (
{ handleSearch(e.target.value); }} defaultValue={searchParams.get('query')?.toString()} />
); }