import { ChevronsUpDown, Plus, Settings } from "lucide-react"; import { Link } from "@/lib/router"; import { useCompany } from "../context/CompanyContext"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Button } from "@/components/ui/button"; import { useState } from "react"; function statusDotColor(status?: string): string { switch (status) { case "active": return "bg-green-400"; case "paused": return "bg-yellow-400"; case "archived": return "bg-neutral-400"; default: return "bg-green-400"; } } interface CompanySwitcherProps { open?: boolean; onOpenChange?: (open: boolean) => void; } export function CompanySwitcher({ open: controlledOpen, onOpenChange }: CompanySwitcherProps = {}) { const [internalOpen, setInternalOpen] = useState(false); const { companies, selectedCompany, setSelectedCompanyId } = useCompany(); const sidebarCompanies = companies.filter((company) => company.status !== "archived"); const open = controlledOpen ?? internalOpen; const setOpen = onOpenChange ?? setInternalOpen; return ( Companies {sidebarCompanies.map((company) => ( setSelectedCompanyId(company.id)} className={company.id === selectedCompany?.id ? "bg-accent" : ""} > {company.name} ))} {sidebarCompanies.length === 0 && ( No companies )} Company Settings Manage Companies ); }