diff --git a/src/components/shared/FilterDropdown.tsx b/src/components/shared/FilterDropdown.tsx index 0c6140b..30c5e2e 100644 --- a/src/components/shared/FilterDropdown.tsx +++ b/src/components/shared/FilterDropdown.tsx @@ -17,6 +17,7 @@ interface FilterDropdownProps { placeholder?: string; showIcon?: boolean; icon?: ReactElement; + isSearchable?: boolean; } export const FilterDropdown = ({ @@ -27,8 +28,10 @@ export const FilterDropdown = ({ placeholder = 'All', showIcon = false, icon, + isSearchable = false, }: FilterDropdownProps): ReactElement => { const [isOpen, setIsOpen] = useState(false); + const [localSearch, setLocalSearch] = useState(''); const dropdownRef = useRef(null); const buttonRef = useRef(null); const dropdownMenuRef = useRef(null); @@ -63,6 +66,7 @@ export const FilterDropdown = ({ return; } setIsOpen(false); + setLocalSearch(''); }; if (isOpen) { @@ -117,6 +121,10 @@ export const FilterDropdown = ({ : null; const displayText = selectedOption ? selectedOption.label : placeholder; + const filteredOptions = isSearchable + ? options.filter(opt => opt.label.toLowerCase().includes(localSearch.toLowerCase())) + : options; + return (