import { EachRoute } from "@/lib/routes-config"; import Anchor from "./anchor"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { cn } from "@/lib/utils"; import { SheetClose } from "@/components/ui/sheet"; import { ChevronDown, ChevronRight } from "lucide-react"; import { useEffect, useState } from "react"; import { usePathname } from "next/navigation"; export default function SubLink({ title, href, items, noLink, level, isSheet, }: EachRoute & { level: number; isSheet: boolean }) { const path = usePathname(); const [isOpen, setIsOpen] = useState(level == 0); useEffect(() => { if (path == href || path.includes(href)) setIsOpen(true); }, [href, path]); const Comp = ( {title} ); const titleOrLink = !noLink ? ( isSheet ? ( {Comp} ) : ( Comp ) ) : (

{title}

); if (!items) { return
{titleOrLink}
; } return (
{titleOrLink} {!isOpen ? ( ) : ( )}
0 && "pl-4 border-l ml-1.5" )} > {items?.map((innerLink) => { const modifiedItems = { ...innerLink, href: `${href + innerLink.href}`, level: level + 1, isSheet, }; return ; })}
); }