import * as React from 'react'; import { PaginationProps } from '../../wui-pagination/src/iPagination'; import { BaseHtmlProps, BaseProps } from '../../wui-core/src/iCore'; import { Breakpoint } from '../../wui-core/src/LayoutUtils'; export interface ListGridType extends Partial> { gutter?: number; column?: number; } export type ListSize = 'small' | 'default' | 'large'; export type ListItemLayout = 'horizontal' | 'vertical'; export type PaginationPosition = 'top' | 'bottom' | 'both'; export interface PaginationConfig extends PaginationProps { position?: PaginationPosition; } export interface ListContextProps { grid?: ListGridType; itemLayout?: string; } export interface ListProps extends Omit, 'size'> { bordered?: boolean; dataSource?: T[]; extra?: React.ReactNode; grid?: ListGridType; itemLayout?: ListItemLayout; loading?: boolean | { spinning: boolean; }; loadMore?: React.ReactNode; pagination?: PaginationConfig | boolean; prefixCls?: string; rowKey?: ((item: T) => React.Key); renderItem?: (item: T, index: number) => React.ReactNode; size?: ListSize; split?: boolean; header?: React.ReactNode; footer?: React.ReactNode; } export interface ListItemProps extends BaseHtmlProps { prefixCls?: string; extra?: React.ReactElement; actions?: React.ReactNode[]; grid?: ListGridType; colStyle?: React.CSSProperties; } export interface ListItemMetaProps extends BaseProps { avatar?: React.ReactNode; description?: React.ReactNode; prefixCls?: string; title?: React.ReactNode; }