@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
61 lines (60 loc) • 2.37 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import '@douyinfe/semi-foundation/lib/cjs/list/list.css';
import ListItem from './item';
import { Grid } from './list-context';
import BaseComponent from '../_base/baseComponent';
export type { ListItemProps } from './item';
export interface ListProps<T> {
style?: React.CSSProperties;
className?: string;
children?: React.ReactNode;
bordered?: boolean;
footer?: React.ReactNode;
header?: React.ReactNode;
layout?: 'vertical' | 'horizontal';
size?: 'small' | 'large' | 'default';
split?: boolean;
emptyContent?: React.ReactNode;
dataSource?: T[];
renderItem?: (item: T, ind: number) => React.ReactNode;
grid?: Grid;
loading?: boolean;
loadMore?: React.ReactNode;
onClick?: React.MouseEventHandler<HTMLLIElement>;
onRightClick?: React.MouseEventHandler<HTMLLIElement>;
}
declare class List<T = any> extends BaseComponent<ListProps<T>> {
static Item: typeof ListItem;
static propTypes: {
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
bordered: PropTypes.Requireable<boolean>;
footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
layout: PropTypes.Requireable<string>;
size: PropTypes.Requireable<string>;
split: PropTypes.Requireable<boolean>;
emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
dataSource: PropTypes.Requireable<any[]>;
renderItem: PropTypes.Requireable<(...args: any[]) => any>;
grid: PropTypes.Requireable<object>;
loading: PropTypes.Requireable<boolean>;
loadMore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
onRightClick: PropTypes.Requireable<(...args: any[]) => any>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
bordered: boolean;
split: boolean;
loading: boolean;
layout: string;
size: string;
onRightClick: (...args: any[]) => void;
onClick: (...args: any[]) => void;
};
renderEmpty: () => React.JSX.Element;
wrapChildren(childrenList: React.ReactNode, children: React.ReactNode): React.JSX.Element;
render(): React.JSX.Element;
}
export default List;