"use client" import * as React from "react" import Link from "next/link" import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, } from "@/components/ui/navigation-menu" import GravatarAvatar from "@/components/gravatar" import { useDevice } from "@/contexts/device-context" import config from "@/config" import { useState, useEffect } from "react" import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "@/components/ui/sheet" import { Menu } from "lucide-react" import { Switch } from "./ui/switch" const navbarMenuComponents = [ { title: "首页", href: "/" }, { title: "文章", children: [ { title: "归档", href: "/archives" }, { title: "标签", href: "/labels" }, { title: "随机", href: "/random" } ] }, { title: "页面", children: [ { title: "关于我", href: "/about" }, { title: "联系我", href: "/contact" }, { title: "友链", href: "/links" }, { title: "隐私政策", href: "/privacy-policy" }, ] } ] export function Navbar() { const { navbarAdditionalClassName, setMode, mode } = useDevice() return ( ) } function NavMenuCenter() { const { isMobile } = useDevice() if (isMobile) return null return ( {navbarMenuComponents.map((item) => ( {item.href ? ( {item.title} ) : item.children ? ( <> {item.title}
    {item.children.map((child) => ( ))}
) : null}
))}
) } function ListItem({ title, children, href, ...props }: React.ComponentPropsWithoutRef<"li"> & { href: string }) { return (
  • {title}

    {children}

  • ) } function SidebarMenuClientOnly() { const [mounted, setMounted] = useState(false); useEffect(() => setMounted(true), []); if (!mounted) return null; return ; } function SidebarMenu() { const [open, setOpen] = useState(false) const { isMobile } = useDevice() if (!isMobile) return null return ( {/* 可访问性要求的标题,视觉上隐藏 */} 侧边栏菜单 ) }