Add admin dashboard shell with sidebar navigation and page scaffolds.

Replace the default Next.js landing page with a client-side AppShell layout, placeholder pages for each admin section, and UI utility dependencies.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Xin Wang
2026-06-05 07:42:45 +08:00
parent 135955fa75
commit bcb6adcba4
17 changed files with 251 additions and 65 deletions

View File

@@ -0,0 +1,52 @@
"use client";
import { useState } from "react";
import { Sidebar } from "./Sidebar";
import { Topbar } from "./Topbar";
import { HomePage } from "@/components/pages/HomePage";
import { AssistantPage } from "@/components/pages/AssistantPage";
import { ComponentsPage } from "@/components/pages/ComponentsPage";
import { HistoryPage } from "@/components/pages/HistoryPage";
import { TestPage } from "@/components/pages/TestPage";
import { WorkflowPage } from "@/components/pages/WorkflowPage";
import { ProfilePage } from "@/components/pages/ProfilePage";
export type NavKey =
| "home"
| "assistants"
| "components"
| "history"
| "test"
| "workflow"
| "profile";
export function AppShell() {
const [active, setActive] = useState<NavKey>("home");
const [collapsed, setCollapsed] = useState(false);
return (
<div className="flex h-screen overflow-hidden bg-[#080b13] text-[#e9eef7]">
<Sidebar
active={active}
collapsed={collapsed}
onNavigate={setActive}
onToggle={() => setCollapsed((v) => !v)}
/>
<main className="flex min-w-0 flex-1 flex-col overflow-hidden">
<Topbar />
<div className="flex-1 overflow-y-auto px-8 py-7">
{active === "home" && <HomePage />}
{active === "assistants" && <AssistantPage />}
{active === "components" && <ComponentsPage />}
{active === "history" && <HistoryPage />}
{active === "test" && <TestPage />}
{active === "workflow" && <WorkflowPage />}
{active === "profile" && <ProfilePage />}
</div>
</main>
</div>
);
}