diff --git a/tone-page-web/app/components/Header.tsx b/tone-page-web/app/components/Header.tsx index f6c70d9..0875e94 100644 --- a/tone-page-web/app/components/Header.tsx +++ b/tone-page-web/app/components/Header.tsx @@ -3,15 +3,28 @@ import { cn } from "@/lib/utils"; import Link from "next/link"; import { usePathname } from "next/navigation"; +import { useState } from "react"; +import { + Drawer, + DrawerContent, + DrawerDescription, + DrawerHeader, + DrawerTitle, + DrawerTrigger, +} from "@/components/ui/drawer" +import { Button } from "@/components/ui/button"; +import { X } from "lucide-react"; + export default function Header() { const pathname = usePathname(); + const [showMenu, setShowMenu] = useState(false); const menuItems = [ { name: '特恩(TONE)', href: '/' }, { name: '资源', href: '/resource' }, { name: '博客', href: '/blog' }, - { name: '账户', href: '/account' }, + { name: '控制台', href: '/console' }, ] return ( @@ -20,23 +33,56 @@ export default function Header() { {pathname === "/" ?
🍭
- :
特恩(TONE)
} + :
特恩(TONE)
} -
+ + !state && setShowMenu(false)}> + +
setShowMenu(true)}> + 菜单 +
+
+ + + + 菜单 + setShowMenu(false)} /> + + 请选择需要前往的页面 + +
+ {menuItems.slice(1).map((item) => ( + setShowMenu(false)} + > + + + ))} +
+
+
+ +
{menuItems.slice(1).map((item) => ( {item.name} @@ -44,7 +90,7 @@ export default function Header() { ))}
- + ) } diff --git a/tone-page-web/app/account/page.tsx b/tone-page-web/app/console/page.tsx similarity index 51% rename from tone-page-web/app/account/page.tsx rename to tone-page-web/app/console/page.tsx index ad24b5d..4c06567 100644 --- a/tone-page-web/app/account/page.tsx +++ b/tone-page-web/app/console/page.tsx @@ -1,4 +1,4 @@ -export default function Account() { +export default function Console() { return (
) diff --git a/tone-page-web/components/ui/drawer.tsx b/tone-page-web/components/ui/drawer.tsx new file mode 100644 index 0000000..199023b --- /dev/null +++ b/tone-page-web/components/ui/drawer.tsx @@ -0,0 +1,132 @@ +"use client" + +import * as React from "react" +import { Drawer as DrawerPrimitive } from "vaul" + +import { cn } from "@/lib/utils" + +function Drawer({ + ...props +}: React.ComponentProps) { + return +} + +function DrawerTrigger({ + ...props +}: React.ComponentProps) { + return +} + +function DrawerPortal({ + ...props +}: React.ComponentProps) { + return +} + +function DrawerClose({ + ...props +}: React.ComponentProps) { + return +} + +function DrawerOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DrawerContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + +
+ {children} + + + ) +} + +function DrawerHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function DrawerFooter({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function DrawerTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function DrawerDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { + Drawer, + DrawerPortal, + DrawerOverlay, + DrawerTrigger, + DrawerClose, + DrawerContent, + DrawerHeader, + DrawerFooter, + DrawerTitle, + DrawerDescription, +}