From 32c08d96d405f6b06c17c41354592e8ceb1bfd17 Mon Sep 17 00:00:00 2001 From: Eamon-meng <17516219072@163.com> Date: Tue, 10 Mar 2026 17:15:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=B8=AE=E5=8A=A9=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=96=87=E6=A1=A3=E5=B8=83?= =?UTF-8?q?=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bun.lock | 3 + package.json | 1 + src/app/(home)/docs/layout.tsx | 12 +-- src/app/(home)/docs/page.tsx | 5 +- src/app/(home)/docs/sidebar-drawer.tsx | 37 +++++++ src/app/(home)/docs/sidebar.tsx | 31 +++--- src/components/ui/drawer.tsx | 135 +++++++++++++++++++++++++ 7 files changed, 200 insertions(+), 24 deletions(-) create mode 100644 src/app/(home)/docs/sidebar-drawer.tsx create mode 100644 src/components/ui/drawer.tsx diff --git a/bun.lock b/bun.lock index 9fcaebc..b99ce5c 100644 --- a/bun.lock +++ b/bun.lock @@ -45,6 +45,7 @@ "sonner": "^2.0.7", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", + "vaul": "^1.1.2", "zod": "^3.25.76", "zustand": "^5.0.9", }, @@ -1399,6 +1400,8 @@ "util-deprecate": ["util-deprecate@1.0.2", "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + "vaul": ["vaul@1.1.2", "https://registry.npmmirror.com/vaul/-/vaul-1.1.2.tgz", { "dependencies": { "@radix-ui/react-dialog": "^1.1.1" }, "peerDependencies": { "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA=="], + "vfile": ["vfile@6.0.3", "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], "vfile-message": ["vfile-message@4.0.3", "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], diff --git a/package.json b/package.json index 1c58261..5028115 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "sonner": "^2.0.7", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", + "vaul": "^1.1.2", "zod": "^3.25.76", "zustand": "^5.0.9" }, diff --git a/src/app/(home)/docs/layout.tsx b/src/app/(home)/docs/layout.tsx index 3559174..1dc644a 100644 --- a/src/app/(home)/docs/layout.tsx +++ b/src/app/(home)/docs/layout.tsx @@ -2,15 +2,15 @@ import Wrap from '@/components/wrap' import {Children} from '@/lib/utils' import Sidebar from './sidebar' import HomePage from '@/components/home/page' +import SidebarDrawer from './sidebar-drawer' export default function DocsLayout(props: Children) { return ( - - - -
+ + + + +
{props.children}
diff --git a/src/app/(home)/docs/page.tsx b/src/app/(home)/docs/page.tsx index f37d272..74b299a 100644 --- a/src/app/(home)/docs/page.tsx +++ b/src/app/(home)/docs/page.tsx @@ -1,5 +1,8 @@ export default function DocsIndexPage() { return ( -
+
+

欢迎来到帮助中心

+

请从左侧目录选择需要查看的文档

+
) } diff --git a/src/app/(home)/docs/sidebar-drawer.tsx b/src/app/(home)/docs/sidebar-drawer.tsx new file mode 100644 index 0000000..44cb6b0 --- /dev/null +++ b/src/app/(home)/docs/sidebar-drawer.tsx @@ -0,0 +1,37 @@ +'use client' +import {useState} from 'react' +import {Menu} from 'lucide-react' +import { + Drawer, + DrawerContent, + DrawerTrigger, +} from '@/components/ui/drawer' +import Sidebar from './sidebar' + +export default function SidebarDrawer() { + const [open, setOpen] = useState(false) + + return ( +
+ 帮助中心 + + + + + +
+
+

帮助中心

+
+
+ setOpen(false)}/> +
+
+
+
+
+ ) +} diff --git a/src/app/(home)/docs/sidebar.tsx b/src/app/(home)/docs/sidebar.tsx index be78890..7106abf 100644 --- a/src/app/(home)/docs/sidebar.tsx +++ b/src/app/(home)/docs/sidebar.tsx @@ -3,10 +3,7 @@ import {useState, useMemo, useCallback} from 'react' import Link from 'next/link' import {usePathname} from 'next/navigation' import {ChevronRight} from 'lucide-react' - -type Props = { - collapsed?: boolean -} +import {merge} from '@/lib/utils' // 菜单配置 const MENU_ITEMS = [ @@ -58,7 +55,12 @@ const MENU_ITEMS = [ }, ] -export default function Sidebar({collapsed = false}: Props) { +type Props = { + className?: string + onClose?: () => void +} + +export default function Sidebar({className, onClose}: Props) { const pathname = usePathname() // 获取当前文档 key @@ -100,9 +102,7 @@ export default function Sidebar({collapsed = false}: Props) { return (