"use client"; import { usePathname } from "next/navigation"; import { Link } from "next-view-transitions"; import { NavItem } from "types"; import { docsConfig } from "@/config/docs"; import { cn } from "@/lib/utils"; export interface DocsSidebarNavProps { setOpen?: (boolean) => void; } export function DocsSidebarNav({ setOpen }: DocsSidebarNavProps) { const pathname = usePathname(); const items = docsConfig.sidebarNav; return items.length > 0 ? (
{items.map((item) => (

{item.title}

{item.items ? ( ) : null}
))}
) : null; } interface DocsSidebarNavItemsProps { items: NavItem[]; pathname: string | null; setOpen?: (boolean) => void; } export function DocsSidebarNavItems({ items, setOpen, pathname, }: DocsSidebarNavItemsProps) { return items?.length > 0 ? (
{items.map((item, index) => !item.disabled && item.href ? ( { if (setOpen) setOpen(false); }} className={cn( "flex w-full items-center rounded-md px-2 py-1.5 text-muted-foreground hover:underline", { "font-medium text-blue-600 dark:text-blue-400": pathname === item.href, }, )} target={item.external ? "_blank" : ""} rel={item.external ? "noreferrer" : ""} > {item.title} ) : ( {item.title} ), )}
) : null; }