@b-design/ui-layout
Version:
React component for Alibaba Cloud.
141 lines (140 loc) • 3.41 kB
TypeScript
import React from 'react';
import { IItemDescriptor } from './IItemDescriptor.type';
/**
* @public
*/
export interface ILayoutCommonProps {
/**
* 类名。
*/
className?: string;
/**
* 样式。
*/
style?: React.CSSProperties;
/**
* 内容。
*/
children?: React.ReactNode;
/**
* 页面内的面包屑
*/
breadcrumb?: React.ReactNode;
/**
* 面包屑额外内容
*/
breadcrumbExtra?: React.ReactNode;
/**
* 面包屑额外内容的位置
*/
breadcrumbExtraAlign?: 'left' | 'right';
/**
* 是否展示「返回上级」的图标按钮。
*/
hasBackArrow?: boolean;
/**
* 【默认的「返回上级」按钮】所绑定的`onClick`回调。<br/>
* 注意,如果用户通过renderBackArrow返回了一个全新的按钮,没有渲染默认的按钮,那么用户需要自己绑定`onClick`回调。
*/
onBackArrowClick?: (e: React.SyntheticEvent) => void | never;
/**
* Header区域的左侧内容
*/
headerLeftNode?: React.ReactNode;
/**
* Header区域的右侧内容
*/
headerRightNode?: React.ReactNode;
/**
* 页面内的标题
*/
pageTitle?: string | React.ReactNode;
/**
* 页面内的额外标题
*/
subTitle?: string | React.ReactNode;
/**
* 页面内的标题右侧内容
*/
headerExtra?: any;
/**
* 菜单栏数据源
*/
menus?: IItemDescriptor[];
/**
* 是否显示菜单栏,默认为true
*/
menuVisible?: boolean;
/**
* 是否显示Header,默认为true
*/
headerVisible?: boolean;
/**
* Header的类名
*/
headerClassName?: string;
/**
* Header的样式
*/
headerStyle?: React.CSSProperties;
/**
* RoutableMenu的props
*/
menuProps?: {
/**
* 当前被选中的菜单项,使用该prop让该组件成为受控组件
*/
activeKey?: string;
/**
* 默认被选中的菜单项
*/
defaultActiveKey?: string;
/**
* 当前展开的SubMenu项,使用该prop让该组件成为受控组件
*/
openKeys?: string | string[];
/**
* 默认展开的SubMenu项
*/
defaultOpenKeys?: string | string[];
/**
* 是否默认展开所有SubMenu项,它的优先级高于defaultOpenKeys
*/
defaultOpenAll?: boolean;
/**
* 菜单项点击回调
*/
onItemClick?: (key: string, itemInfo: any, event: MouseEvent) => void;
/**
* 菜单项展开回调
*/
onOpen?: (openKeys: string[], openInfo: {
key: string;
open: boolean;
}) => void;
/**
* 菜单栏类名
*/
className?: string;
/**
* 菜单栏样式
*/
style?: React.CSSProperties;
/**
* 导航类型
*/
type?: 'normal' | 'primary' | 'secondary' | 'line';
/**
* 设置组件选中状态的 active 边方向
*/
activeDirection?: null | 'top' | 'bottom' | 'left' | 'right';
/**
* 是否开启嵌入模式
*/
embeddable?: boolean;
};
/**
* 是否开启菜单收起功能
*/
collapseVisible?: boolean;
}