import React, { useState, useRef, useEffect } from 'react'; import { ChevronDownIcon, ArrowDownIcon, ArrowUpIcon, FireIcon } from '@heroicons/react/24/outline'; import { PriorityType } from '../../entities/Task'; import { useTranslation } from 'react-i18next'; interface PriorityDropdownProps { value: PriorityType; onChange: (value: PriorityType) => void; } const PriorityDropdown: React.FC = ({ value, onChange }) => { const { t } = useTranslation(); const priorities = [ { value: 'low', label: t('priority.low', 'Low'), icon: }, { value: 'medium', label: t('priority.medium', 'Medium'), icon: }, { value: 'high', label: t('priority.high', 'High'), icon: } ]; const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); const handleToggle = () => { setIsOpen(!isOpen); }; const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } }; const handleSelect = (priority: PriorityType) => { onChange(priority); setIsOpen(false); }; useEffect(() => { if (isOpen) { document.addEventListener('mousedown', handleClickOutside); } else { document.removeEventListener('mousedown', handleClickOutside); } return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, [isOpen]); const selectedPriority = priorities.find(p => p.value === value); return (
{isOpen && (
{priorities.map((priority) => ( ))}
)}
); }; export default PriorityDropdown;