import React, { Dispatch, SetStateAction } from 'react'; export interface Item { label: string; value: T; disabled?: boolean; data?: any; } export interface BaseTransferProps { className?: string; style?: React.CSSProperties; itemStyle?: React.CSSProperties; itemClassName?: string; renderItem?: (item: Item) => React.ReactNode; disabled?: boolean; /** * 左上角标题 */ title?: React.ReactNode; /** * 已选择的对象 */ selectList: Item[]; setSelectList: Dispatch[]>>; } export interface ClearTransferProps extends BaseTransferProps {} export interface CheckBoxTransferProps extends BaseTransferProps { options: Item[]; hiddenCheckAll?: boolean; } export interface MultiLevelItem extends Item { children?: MultiLevelItem[]; } export interface NavProps { data: MultiLevelItem; isCurrent?: boolean; /** * 当 item 没有的时候既是 root 节点 */ onClick?: (item?: MultiLevelItem) => void; } export interface NavBarProps { nodes: MultiLevelItem[]; /** * 当 item 没有的时候既是 root 节点 */ onClick?: (item?: MultiLevelItem) => void; } export interface MultiLevelTransferProps extends Omit, 'renderItem'> { options: MultiLevelItem[]; selectList: MultiLevelItem[]; setSelectList: Dispatch[]>>; renderItem?: ( multiLevelItem: MultiLevelItem, /** * 设置导航的方法 */ setNodes: Dispatch[]>>, ) => React.ReactNode; hiddenCheckAll?: boolean; }