import { createFileRoute, Link, Outlet, useLocation } from "@tanstack/react-router"; import { Menu, X } from "lucide-react"; import { useCallback, useMemo, useState } from "react"; import { DocsBreadcrumbs } from "~/components/docs-breadcrumbs"; import { DocsNav } from "~/components/docs-nav"; import { DocsOutline } from "~/components/docs-outline"; import { buildDocsNavTree, getDoc, getDocs } from "~/docs"; import "~/styles.css"; export const Route = createFileRoute("/docs")({ component: DocsLayout, }); function DocsLayout() { const location = useLocation(); const tree = useMemo(() => buildDocsNavTree(getDocs()), []); const slug = location.pathname === "/docs" ? "" : location.pathname.slice("/docs/".length); const doc = getDoc(slug); const [mobileNavOpen, setMobileNavOpen] = useState(false); const toggleMobileNav = useCallback(() => setMobileNavOpen((v) => !v), []); const closeMobileNav = useCallback(() => setMobileNavOpen(false), []); return (
{/* Mobile header */}
Paseo Paseo
{mobileNavOpen && ( )}
{/* Desktop sidebar */} {/* Main content */}
{doc && }
{/* Right outline */}
); }