import { useState } from "react"; import TopBar from "@/components/TopBar"; import Sidebar from "@/components/Sidebar"; import TabStrip from "@/components/TabStrip"; import MegaNav from "@/components/MegaNav"; import Home from "@/pages/Home"; import UserList from "@/pages/usr/UserList"; import UserDetail from "@/pages/usr/UserDetail"; import ModuleConfig from "@/pages/mod/ModuleConfig"; import { useAppDispatch, useAppSelector } from "@/store"; import { openTab } from "@/store/tabsSlice"; import type { NavNode } from "@/utils/data"; export default function Workspace() { const tabs = useAppSelector((s) => s.tabs.tabs); const activeTabId = useAppSelector((s) => s.tabs.activeTabId); const auth = useAppSelector((s) => s.auth); const dispatch = useAppDispatch(); const [activeNodeId, setActiveNodeId] = useState("home"); const [megaOpen, setMegaOpen] = useState(false); const handleNodeClick = (node: NavNode) => { setActiveNodeId(node.id); if (node.screen === "userlist") { dispatch(openTab({ id: "userlist", label: "用户列表", screen: "userlist" })); } else if (node.screen === "module") { dispatch(openTab({ id: "module", label: "系统模块配置", screen: "module" })); } else if (node.id === "home") { dispatch(openTab({ id: "home", label: "主页", screen: "home", closable: false })); } else if (!node.children?.length) { dispatch( openTab({ id: node.id, label: node.label, screen: "stub", meta: { stubLabel: node.label } }) ); } }; const handleMegaOpen = (screen: string, label: string) => { dispatch(openTab({ id: screen, label, screen })); }; const activeTab = tabs.find((t) => t.id === activeTabId); const showSidebar = activeTabId === "home"; return (