import React, { Dispatch, HTMLAttributes, SetStateAction } from 'react'; import type { MenuProps as RcMenuProps } from 'rc-menu'; import { Override } from '../../type'; import { ItemType, NavItemProps, SubMenuProps } from './type'; import { SelectEventHandler } from 'rc-menu/lib/interface'; export interface NavProps extends Omit { /** * 菜单类型,垂直或内嵌,默认内嵌 */ mode?: 'vertical' | 'inline'; /** * 菜单项 */ items?: ItemType[]; /** * inline 时菜单是否收起状态 */ inlineCollapsed?: boolean; /** * 每一级缩进量 */ inlineIndent?: number; /** * 初始展开的 SubMenu 菜单项 key 数组 */ defaultOpenKeys?: string[]; /** * 初始选中的菜单项 key 数组 */ defaultSelectedKeys?: string[]; /** * SubMenu 展开/关闭的回调 */ onOpenChange?: (openKeys: string[]) => void; /** * 选中每一菜单项的回调, function({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]}) */ onSelect?: SelectEventHandler; /** * 自定义 SubMenu render,可以获取 items 参数传入的数据 */ subMenuItemRender?: (itemProps: SubMenuProps, dom: JSX.Element) => JSX.Element; /** * 自定义 MenuItem render,可以获取 items 参数传入的数据 */ menuItemRender?: (itemProps: NavItemProps, dom: JSX.Element) => JSX.Element; } export interface VerticalContextProps { openKeys?: string[]; selectedKeys?: string[]; setSelectedKeys?: Dispatch>; } export declare const VerticalContext: React.Context; declare const Nav: ({ className, items, inlineCollapsed, mode, inlineIndent, subMenuItemRender, menuItemRender, ...rest }: NavProps & Override, NavProps>) => JSX.Element; export default Nav;