import { Typography, Statistic, Card, Progress } from 'antd'; const { Text } = Typography; interface StatisticItemProps { title?: string; value?: any; prefix?: JSX.Element; color?: string; progress?: boolean; centered?: boolean; formatter?: any; } const defaultProps = { title: '', value: 0, prefix: null, color: '', progress: false, centered: false, formatter: null, }; function ProgressView({ title, value, prefix, color }: StatisticItemProps) { const endColor = value > 90 ? 'red' : color; const content = (
{prefix}
{title}
{value}%
); return ( content} /> ); } ProgressView.defaultProps = defaultProps; function StatisticView({ title, value, prefix, formatter }: StatisticItemProps) { return ; } StatisticView.defaultProps = defaultProps; export default function StatisticItem(props: StatisticItemProps) { const { progress, centered } = props; const View = progress ? ProgressView : StatisticView; const style = centered ? { display: 'flex', alignItems: 'center', justifyContent: 'center' } : {}; return (
); } StatisticItem.defaultProps = defaultProps;