import React, { useState, useEffect } from 'react'; import { Users, ChevronDown, Pencil } from 'lucide-react'; import AvatarPickerModal from './AvatarPickerModal'; const AdvisorStatusDropdown = ({ advisors, activeAdvisorIds = [], onToggleAdvisor, onSetActiveAdvisors, thinkingAdvisors, getAdvisorColors, isDark, }) => { const [isOpen, setIsOpen] = useState(false); const [hoveredId, setHoveredId] = useState(null); const [pickerAdvisor, setPickerAdvisor] = useState(null); useEffect(() => { const handleClickOutside = (event) => { if (isOpen && !event.target.closest('.advisor-status-dropdown')) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, [isOpen]); if (!advisors || typeof advisors !== 'object') { return null; } const advisorEntries = Object.entries(advisors); const allIds = advisorEntries.map(([id]) => id); const activeSet = new Set(activeAdvisorIds); const activeCount = allIds.filter((id) => activeSet.has(id)).length; const thinkingCount = Array.isArray(thinkingAdvisors) ? thinkingAdvisors.filter((id) => id !== 'system' && activeSet.has(id)).length : 0; const totalAdvisors = advisorEntries.length; const handleToggle = () => { setIsOpen(!isOpen); }; const handleCheckboxChange = (id, event) => { event.stopPropagation(); if (onToggleAdvisor) { onToggleAdvisor(id); } }; const selectAll = (event) => { event.stopPropagation(); if (onSetActiveAdvisors) { onSetActiveAdvisors([...allIds]); } }; const selectNone = (event) => { event.stopPropagation(); if (onSetActiveAdvisors && allIds.length > 0) { onSetActiveAdvisors([allIds[0]]); } }; return (