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

/** 操作栏下拉菜单项属性 */
export interface OptionColumnMenu<T extends BaseEntity, ExtraDT extends string, S = {}> {
  key: string;
  text: ((item: T) => ReactNode) | ReactNode;
  icon?: ((item: T) => ReactNode) | ReactNode;
  disabled?: boolean | ((item: T) => boolean);
  visible?: boolean | ((item: T) => boolean);
  onClick?: (comp: Component<TableProps<T, ExtraDT, S>, TableState<T, S>>) => void;
}