import * as React from 'react'; import classNames from 'classnames'; import { ConfigConsumerProps } from '../config-provider'; import { withConfigConsumer } from '../config-provider/context'; import StatisticNumber from './Number'; import Countdown from './Countdown'; import { valueType, FormatConfig } from './utils'; interface StatisticComponent { Countdown: typeof Countdown; } export interface StatisticProps extends FormatConfig { prefixCls?: string; className?: string; style?: React.CSSProperties; value?: valueType; valueStyle?: React.CSSProperties; valueRender?: (node: React.ReactNode) => React.ReactNode; title?: React.ReactNode; prefix?: React.ReactNode; suffix?: React.ReactNode; onMouseEnter?: React.MouseEventHandler; onMouseLeave?: React.MouseEventHandler; } const Statistic: React.FC = props => { const { prefixCls, className, style, valueStyle, value = 0, title, valueRender, prefix, suffix, direction, onMouseEnter, onMouseLeave, } = props; const valueNode = ; const cls = classNames(prefixCls, className, { [`${prefixCls}-rtl`]: direction === 'rtl', }); return (
{title &&
{title}
}
{prefix && {prefix}} {valueRender ? valueRender(valueNode) : valueNode} {suffix && {suffix}}
); }; Statistic.defaultProps = { decimalSeparator: '.', groupSeparator: ',', }; const WrapperStatistic = withConfigConsumer({ prefixCls: 'statistic', })(Statistic); export default WrapperStatistic;