ant-design/components/menu/interface.ts

38 lines
934 B
TypeScript
Raw Normal View History

import type {
MenuDividerType as RcMenuDividerType,
MenuItemGroupType as RcMenuItemGroupType,
MenuItemType as RcMenuItemType,
SubMenuType as RcSubMenuType,
} from 'rc-menu/lib/interface';
export interface MenuItemType extends RcMenuItemType {
danger?: boolean;
icon?: React.ReactNode;
title?: string;
}
export interface SubMenuType<T extends MenuItemType = MenuItemType>
extends Omit<RcSubMenuType, 'children'> {
icon?: React.ReactNode;
theme?: 'dark' | 'light';
children: ItemType<T>[];
}
export interface MenuItemGroupType<T extends MenuItemType = MenuItemType>
extends Omit<RcMenuItemGroupType, 'children'> {
children?: ItemType<T>[];
key?: React.Key;
}
export interface MenuDividerType extends RcMenuDividerType {
dashed?: boolean;
key?: React.Key;
}
export type ItemType<T extends MenuItemType = MenuItemType> =
| T
| SubMenuType<T>
| MenuItemGroupType<T>
| MenuDividerType
| null;