import React, { createContext, CSSProperties, useEffect, useState, } from "react"; import { Outlet, useLocation } from "react-router-dom"; import "react-resizable/css/styles.css"; import { theme } from "antd"; import ResizableSidebar from "@web/src/components/layout/resizable-sidebar"; import SidebarContent from "@web/src/components/layout/sidebar-content"; import UserHeader from "@web/src/components/layout/user-header"; import { Icon } from "@nice/iconer"; import { env } from "@web/src/env"; import RoundedClip from "@web/src/components/svg/rounded-clip"; import {useTerm} from "@nice/client" export const MainLayoutContext = createContext<{ pageWidth?: number; }>({ pageWidth: undefined, }); const ParallelogramTag = () => { const { token } = theme.useToken(); const parallelogramStyle: CSSProperties = { display: "inline-flex", alignItems: "center", // 垂直居中 transform: "skew(-20deg)", height: "25px", // 调整高度以适应文本 padding: "0 20px", backgroundColor: token.colorPrimaryBg, // margin: '0 0 0 10px', }; const contentStyle: CSSProperties = { transform: "skew(20deg)", fontSize: token.fontSize, fontWeight: "bold", color: token.colorPrimary, }; return (
{env.VERSION}
); }; const MainLayoutPage: React.FC = () => { const { token } = theme.useToken(); const [sidebarWidth, setSidebarWidth] = useState(); const [pageWidth, setPageWidth] = useState(); useTerm(); const updateWidth = () => { const remainingWidth = window.innerWidth - Math.max(sidebarWidth || 0, 200); setPageWidth(remainingWidth); }; useEffect(() => { window.addEventListener("resize", updateWidth); return () => window.removeEventListener("resize", updateWidth); }, []); useEffect(() => { updateWidth(); }, [sidebarWidth]); useEffect(() => { document.title = `${env.APP_NAME}`; }, []); return (
{env.APP_NAME || "loop sys"}
); }; export default MainLayoutPage;