import React, { Key, PropsWithChildren, ReactNode } from "react"; import { DesignTypes } from "../typings"; export declare type ActiveKeyType = Key; export declare type MenuTreeItemType = Omit & { children?: MenuTreeItemType[]; }; export interface SideMenuBaseType { menuTree: MenuTreeItemType[]; defaultActiveKeys?: ActiveKeyType[]; /** * 默认开启 */ defaultOpenKeys?: ActiveKeyType[]; /** * MenuItem改变时触发 */ activeMenuItemChange?: (menuItems: ActiveKeyType[], menuItemProp: SidePropsType) => void; /** * MenuSub改变时触发 */ activeMenuSubChange?: (menuSubs: ActiveKeyType[], menuSubProp: SidePropsType) => void; /** * MenuItem点击时触发 */ onMenuItemClick?: (item: SidePropsType) => void; /** * MenuSub点击时触发 */ onMenuSubClick?: (item: SidePropsType) => void; /** * 是否默认全部展开 */ allOpen?: boolean; width?: number; style?: React.CSSProperties; className?: string; borders?: DesignTypes['Direction'][]; shadow?: boolean; } export declare type SidePropsType = { /** * 图标 */ icon?: string; /** * 标题 */ title: ReactNode; /** * 选中时唯一标识 */ activeKey: ActiveKeyType; /** * list key */ key?: ActiveKeyType; /** * 用于onMenuItemClick onMenuSubClick 事件统一处理参数 */ values?: Record; /** * 当前属于第一个层级 */ index: number; shadow?: boolean; render?: (item: SidePropsType, active: boolean, config: Pick) => ReactNode; }; export declare type SideMenuHandleType = { setActiveMenu: React.Dispatch>; setActiveMenuSub: React.Dispatch>; }; export declare type SideMenuItemPropsType = SidePropsType & Omit; export declare type SideMenuItemSubPropsType = PropsWithChildren; export declare type SideMenuComtextType = { /** * 选中的menuIiem */ activeMenu: ActiveKeyType[]; /** * 选中的menuSub */ activeMenuSub: ActiveKeyType[]; setActiveMenu?: React.Dispatch>; setActiveMenuSub?: React.Dispatch>; } & Omit; export declare type SideMenuPropsType = PropsWithChildren;