import { MenuItemProps } from 'antd/es/menu/MenuItem';
import { BaseEntity } from 'nsn-entity';
import { Component, ReactNode } from 'react';
import { TableProps } from './Props';
import { TableState } from './State';

/** 工具栏的其他按钮（以下拉菜单显示） */
export interface MoreMenusProps<T extends BaseEntity, ExtraDT extends string, S = {}> {

  comp: Component<TableProps<T, ExtraDT, S>, TableState<T>>;

  /** 菜单下拉文字显示 */
  text?: ReactNode;

  /** 
   * “展开所有” 菜单项属性
   * @type false | 不显示
   * @type object | 透传到MenuItem
  */
  expandAll?: false | Partial<MenuItemProps>;

  /** 
   * “收起所有” 菜单项属性
   * @type false | 不显示
   * @type object | 透传到MenuItem
  */
  collapseAll?: false | Partial<MenuItemProps>;

  /** 其他菜单项 */
  items: Array<Omit<MenuItemProps, 'title' | 'id'> & Pick<Required<MenuItemProps>, 'title' | 'id'>> | undefined;
}