/** * @file Layout * @description 页面布局,支持左边栏、顶部、内容区域布局。 * @author fex * * @param 参数说明: * * children 会渲染在内容区。 * * header 头部区域 * * aside 边栏 * * asideClassName 边栏附加样式class * * footer 页脚 * * folder 是否收起边栏 * * asideFixed 边栏是否为固定模式,如果是会用 position:fixed 来定位. * * className 附件的样式名 * * contentClassName 内容区域附加样式名称 */ import React from 'react'; import {ClassNamesFn, themeable} from '../theme'; interface LayoutProps { header?: boolean | React.ReactNode; headerClassName?: string; aside?: boolean | React.ReactNode; asideClassName: string; boxed?: boolean; folded?: boolean; asideFixed: boolean; headerFixed: boolean; className?: string; contentClassName?: string; footer: boolean | React.ReactNode; offScreen: boolean; classPrefix: string; classnames: ClassNamesFn; size?: 'sm' | 'base' | 'md' | 'lg'; children?: React.ReactNode; bodyClassName?: string; } export function Layout({ header, headerClassName, aside, asideClassName, children, className, contentClassName, folded, asideFixed, headerFixed, footer, offScreen, size, boxed, classnames: cx, bodyClassName }: LayoutProps) { let body = (