From 3c645b8421b77c8f8cc9bb953fab97df854f3a31 Mon Sep 17 00:00:00 2001
From: tone <3341154833@qq.com>
Date: Fri, 25 Apr 2025 21:42:02 +0800
Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0header=E3=80=81=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=E8=B7=AF=E7=94=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tone-page-web/app/components/Header.tsx | 60 +++++++-
.../app/{account => console}/page.tsx | 2 +-
tone-page-web/components/ui/drawer.tsx | 132 ++++++++++++++++++
3 files changed, 186 insertions(+), 8 deletions(-)
rename tone-page-web/app/{account => console}/page.tsx (51%)
create mode 100644 tone-page-web/components/ui/drawer.tsx
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,
+}