import React, { useMemo } from 'react'; import type { ReactNode } from 'react'; import { List as AntList } from 'antd'; import type { SizeType } from 'antd/lib/config-provider/SizeContext'; import { RowOpt } from '../index'; import type { DataListOptConfig } from '../index'; export interface DataListListProps { data: T[]; optList?: DataListOptConfig[]; size?: SizeType; emptyText?: string; onOpt?: (optKey: OPTK, rowKey: number, rowData: T) => void; render?: (value: T, index: number) => ReactNode; } export function List(props: DataListListProps) { const emptyText = useMemo( () => (typeof props.emptyText === 'string' ? props.emptyText : '-'), [props.emptyText] ); return ( ( { props.onOpt && props.onOpt(optKey, index, data); }} /> ] : undefined } > {props.render ? props.render(data, index) : data || data === 0 ? data : emptyText} )} /> ); }