import React, { useState, useRef, useEffect } from "react"; import { useWorkspace } from "../context/WorkspaceContext"; import { useTranslation } from "../hooks/useTranslation"; import { Check, ChevronDown, Plus, Briefcase } from "lucide-react"; import { CreateWorkspaceModal } from "./CreateWorkspaceModal"; // Adjust path if needed export const WorkspaceSelector: React.FC = () => { const [isOpen, setIsOpen] = useState(false); const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); const dropdownRef = useRef(null); const { workspaces, activeWorkspace, setActiveWorkspace, addWorkspace } = useWorkspace(); const { t, lang } = useTranslation(); const isFa = lang === "fa"; 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 handleCreateWorkspace = async (data: { name: string; description: string; members: any[] }) => { await addWorkspace(data); setIsCreateModalOpen(false); }; return (
{/* Selector Button */} {/* Dropdown Menu */} {isOpen && (
{t.workspace?.title || "Workspaces"}
{workspaces.map((ws) => ( ))}
)} {/* Advanced Create Workspace Modal */} setIsCreateModalOpen(false)} onSubmit={handleCreateWorkspace} />
); };