"use client" import * as React from "react" import Link, { LinkProps } from "next/link" import { useRouter } from "next/navigation" import { source } from "@/lib/source" import { cn } from "@/lib/utils" import { Button } from "@/components/ui/button" import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover" export function MobileNav({ tree, items, className, }: { tree: typeof source.pageTree items: { href: string; label: string }[] className?: string }) { const [open, setOpen] = React.useState(false) return (
Menu
Home {items.map((item, index) => ( {item.label} ))}
{tree?.children?.map((group, index) => { if (group.type === "folder") { return (
{group.name}
{group.children.map((item) => { if (item.type === "page") { return ( {item.name} ) } })}
) } })}
) } function MobileLink({ href, onOpenChange, className, children, ...props }: LinkProps & { onOpenChange?: (open: boolean) => void children: React.ReactNode className?: string }) { const router = useRouter() return ( { router.push(href.toString()) onOpenChange?.(false) }} className={cn("text-2xl font-medium", className)} {...props} > {children} ) }