import { useState, useRef, useEffect } from 'react'; interface DropdownOption { id: number; nom: string; } interface DropdownProps { options: DropdownOption[]; onSelect: (id: number | '') => void; label: string; } const Dropdown: React.FC = ({ options, onSelect, label }) => { const [isOpen, setIsOpen] = useState(false); const [selectedOption, setSelectedOption] = useState(null); const dropdownRef = useRef(null); // ferme le dropdown si on clique en dehors useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); const handleOptionSelect = (option: DropdownOption | null) => { setSelectedOption(option); onSelect(option ? option.id : ''); setIsOpen(false); }; return (
{isOpen && (
  • {options.map((option) => (
  • ))}
)}
); }; export default Dropdown;