import { useSearchParams, useRouter } from 'next/navigation';
import { useState, useEffect } from 'react';
export default function Filter() {
const searchParams = useSearchParams();
const router = useRouter();
const [filter, setFilter] = useState('');
useEffect(() => {
setFilter(searchParams.get('filter') || '');
}, [searchParams]);
function updateFilter(newFilter) {
const params = new URLSearchParams(searchParams);
if (newFilter) params.set('filter', newFilter);
else params.delete('filter');
router.replace(`?${params.toString()}`);
}
return <input value={filter} onChange={e => {
setFilter(e.target.value);
updateFilter(e.target.value);
}} />;
}This component reads 'filter' from URL, shows it in input, and updates URL when input changes.