diff --git a/src/components/FilterBar.tsx b/src/components/FilterBar.tsx index 5441f7b..2e218ea 100644 --- a/src/components/FilterBar.tsx +++ b/src/components/FilterBar.tsx @@ -1,5 +1,6 @@ -import { Search, ArrowUpDown } from 'lucide-react'; -import { Select } from './ui/Select'; +import { useEffect, useState } from 'react'; +import { Search, ArrowUpDown } from 'lucide-react'; +import { Select } from './ui/Select'; interface FilterBarProps { searchQuery: string; @@ -10,37 +11,55 @@ interface FilterBarProps { searchPlaceholder: string; } -export default function FilterBar({ - searchQuery, - setSearchQuery, - ordering, - setOrdering, - orderingOptions, - searchPlaceholder -}: FilterBarProps) { - return ( +export default function FilterBar({ + searchQuery, + setSearchQuery, + ordering, + setOrdering, + orderingOptions, + searchPlaceholder +}: FilterBarProps) { + const [inputValue, setInputValue] = useState(searchQuery); + + useEffect(() => { + if (inputValue === searchQuery) return; + + const timeout = setTimeout(() => { + setSearchQuery(inputValue); + }, 1000); + + return () => clearTimeout(timeout); + }, [inputValue, searchQuery, setSearchQuery]); + + useEffect(() => { + setInputValue(searchQuery); + }, [searchQuery]); + + return (