zent
Version:
一套前端设计语言和基于React的实现
53 lines (52 loc) • 1.9 kB
TypeScript
/// <reference types="react" />
import noop from '../utils/noop';
import CommonMenu from './CommonMenu';
import MenuItem from './MenuItem';
import SubMenu from './SubMenu';
export interface IMenuBaseProps {
mode?: 'inline' | 'pop';
onClick?: (e: React.MouseEvent<HTMLDivElement | HTMLLIElement>, key: string) => void;
onSubMenuClick?: (id?: string | number) => void;
style?: React.CSSProperties;
className?: string;
}
export interface IMenuInlineProps extends IMenuBaseProps {
mode: 'inline';
defaultExpandKeys?: string[];
defaultExpandedKeys?: string[];
defaultSelectedKey?: string;
expandedKeys?: string[];
onExpandChange?: (expanded?: string[]) => void;
selectedKey?: string;
onSelectChange?: (selected: string) => void;
inlineIndent?: number;
}
export interface IMenuPopProps extends IMenuBaseProps {
mode: 'pop';
}
export declare type IMenuProps = IMenuPopProps | IMenuInlineProps;
interface IMenuState {
selectedKey?: string;
expandedKeys?: string[];
prevSelectedKeyProp?: string;
prevExpandedKeysProp?: string[];
}
export declare class Menu extends CommonMenu<IMenuProps, IMenuState> {
static MenuItem: typeof MenuItem;
static SubMenu: typeof SubMenu;
static defaultProps: {
onClick: typeof noop;
mode: string;
inlineIndent: number;
defaultExpandKeys: any[];
onSubMenuClick: typeof noop;
};
constructor(props: IMenuProps);
static getDerivedStateFromProps(props: IMenuProps, state: IMenuState): Partial<IMenuState>;
toggleExpand: (key: string) => void;
handleSelect: (key: string) => void;
handleClick: (e: React.MouseEvent<HTMLDivElement | HTMLLIElement>, key: string) => void;
renderMenuItem: (component: any, index: number) => import("react").DetailedReactHTMLElement<any, HTMLElement>;
render(): JSX.Element;
}
export default Menu;