import { Link, useNavigate } from "@tanstack/react-router"; import { useQuery } from "@tanstack/react-query"; import { Check, ChevronsUpDown, FolderCog } from "lucide-react"; import { getProjects } from "@/serverFunctions/projects"; import { setLastProjectId } from "@/client/lib/active-project"; import { closeDropdown } from "@/client/lib/dropdown"; import type { ProjectSummary } from "./types"; export function ProjectSwitcher({ activeProjectId, onCloseDrawer, }: { activeProjectId: string | null; // Mobile sidebar passes this so switching / navigating away also closes the // drawer overlay. onCloseDrawer?: () => void; }) { const navigate = useNavigate(); const projectsQuery = useQuery({ queryKey: ["projects"], queryFn: () => getProjects(), }); const projects = projectsQuery.data ?? []; const activeProject = projects.find((project) => project.id === activeProjectId) ?? null; const handleSelect = (project: ProjectSummary) => { closeDropdown(); onCloseDrawer?.(); if (project.id === activeProjectId) return; setLastProjectId(project.id); void navigate({ to: "/p/$projectId", params: { projectId: project.id }, }); }; return (