24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
/**
|
|
* 工作台共享布局,装配当前画布Context、侧栏及子路由,并加载React Flow默认样式。
|
|
* 布局本身只放侧栏与children;根叶页面为空,画布子路由通过children提供主编辑区。
|
|
*/
|
|
import "@xyflow/react/dist/style.css";
|
|
import { Suspense, type ReactNode } from "react";
|
|
import { ActiveBoardProvider } from "@/components/workspace/active-board";
|
|
import DashboardSidebar from "./dashboard";
|
|
import styles from "@/components/workspace/workspace.module.css";
|
|
|
|
/** 当前board信息由ActiveBoardProvider跨侧栏/画布共享;Suspense只包侧栏,fallback保留其布局宽度。 */
|
|
export default function DashboardLayout({ children }: { children: ReactNode }) {
|
|
return (
|
|
<ActiveBoardProvider>
|
|
<div className={styles.shell}>
|
|
<Suspense fallback={<aside className={styles.sidebar} aria-label="正在加载侧边栏" aria-busy="true" />}>
|
|
<DashboardSidebar />
|
|
</Suspense>
|
|
{children}
|
|
</div>
|
|
</ActiveBoardProvider>
|
|
);
|
|
}
|