"use client";
import { useMemo, useState } from "react";
import {
ChevronDown,
FileText,
FolderKanban,
Home,
LayoutGrid,
Presentation,
Search,
Settings,
Star,
} from "lucide-react";
import { useParams, usePathname } from "next/navigation";
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
import { ScrollArea } from "@/components/ui/scroll-area";
import { Separator } from "@/components/ui/separator";
import { useWorkspaceStore } from "@/lib/stores/workspace-store";
import { SidebarItem } from "./sidebar-item";
const PROJECT_DOTS = [
"hsl(var(--primary))",
"hsl(var(--teal))",
"hsl(38 92% 50%)",
"hsl(199 89% 48%)",
];
function NavSectionLabel({
children,
collapsed,
}: {
children: React.ReactNode;
collapsed?: boolean;
}) {
if (collapsed) return null;
return (
{children}
);
}
export function SidebarNav({
collapsed,
onOpenSearch,
}: {
collapsed: boolean;
onOpenSearch?: () => void;
}) {
const pathname = usePathname();
const params = useParams();
const workspace = useWorkspaceStore((s) => s.currentWorkspace);
const slugParam =
typeof params?.workspaceSlug === "string" ? params.workspaceSlug : "";
const base = workspace?.slug
? `/${workspace.slug}`
: slugParam
? `/${slugParam}`
: "";
const [favoritesOpen, setFavoritesOpen] = useState(true);
const [projectsOpen, setProjectsOpen] = useState(true);
const homeActive = pathname === base || pathname === `${base}/`;
const favoriteItems = useMemo(
() => [
{ label: "Q1 Launch", href: `${base}/favorites/q1` },
{ label: "Design system", href: `${base}/favorites/design` },
],
[base],
);
const projectItems = useMemo(
() => [
{ label: "Product roadmap", slug: "product-roadmap" },
{ label: "Marketing", slug: "marketing" },
{ label: "Engineering", slug: "engineering" },
{ label: "Operations", slug: "operations" },
],
[base],
);
return (
);
}