import React, { Component } from 'react'; import classNames from 'classnames'; import Spin from '../spin'; import Icon from '../icon'; import Pagination from '../pagination'; import Button from '../button'; import Item from './Item'; export interface ListProps { bordered?: boolean; className?: string; children?: React.ReactNode; extra?: React.ReactNode; id?: string; itemLayout: string; loading?: boolean; showLoadMore?: boolean; loadingMore?: boolean; onLoadMore?: React.FormEventHandler; pagination?: any; prefixCls?: string; style?: React.CSSProperties; } export default class List extends Component { static Item: typeof Item = Item; render() { const { bordered = true, className, children, loading = false, itemLayout, showLoadMore = false, loadingMore = false, onLoadMore = (() => { }), pagination = false, prefixCls = 'ant-list', } = this.props; const classString = classNames(prefixCls, className, { [`${prefixCls}-vertical`]: itemLayout === 'vertical', [`${prefixCls}-bordered`]: bordered, [`${prefixCls}-loading`]: loading, }); const moreButton = ( ); const moreContent = (
{loadingMore ? moreButton : }
); const paginationContent = (
); const loadingContent = (
); return (
{loading && loadingContent} {!loading && children} {showLoadMore && moreContent} {(!showLoadMore && pagination) && paginationContent}
); } }