import { MenuFoldOutlined, MenuUnfoldOutlined } from "@ant-design/icons"; import { XProvider } from "@ant-design/x"; import zhCN_X from "@ant-design/x/locale/zh_CN"; import { App as AntApp, Layout } from "antd"; import zhCN from "antd/locale/zh_CN"; import { useMemo } from "react"; import type { ConsoleShellProps } from "./types"; import { APP } from "../../../../shared/app"; import { useMeta } from "../../hooks/use-meta"; import { useSidebarCollapsed } from "../../hooks/use-sidebar-collapsed"; import { useThemePreference } from "../../hooks/use-theme-preference"; import { buildThemeConfig } from "../../theme/theme-config"; import { Sidebar } from "../Sidebar"; import { ConsoleOutlet } from "./ConsoleOutlet"; const { Content, Header, Sider } = Layout; export function ConsoleShell({ headerExtra, menuItems, title }: ConsoleShellProps) { const { effectiveTheme } = useThemePreference(); const { collapsed, setCollapsed } = useSidebarCollapsed(); const { data: meta } = useMeta(); const versionDisplay = meta?.version ? `v${meta.version}` : null; const locale = useMemo(() => ({ ...zhCN, ...zhCN_X }), []); return (
{APP.title} {versionDisplay && {versionDisplay}} {title}
{headerExtra}
setCollapsed(c)} theme={effectiveTheme === "dark" ? "dark" : "light"} trigger={collapsed ? : } width={232} >
); }