import classNames from 'classnames'; import { useSpring, animated } from 'react-spring'; import { formatNumber } from 'lib/format'; import styles from './MetricCard.module.css'; const MetricCard = ({ value = 0, change = 0, label, reverseColors = false, format = formatNumber, hideComparison = false, className, }) => { const props = useSpring({ x: Number(value) || 0, from: { x: 0 } }); const changeProps = useSpring({ x: Number(change) || 0, from: { x: 0 } }); return (
{props.x.to(x => format(x))}
{label} {~~change !== 0 && !hideComparison && ( = 0, [styles.negative]: change * (reverseColors ? -1 : 1) < 0, [styles.plusSign]: change > 0, })} > {changeProps.x.to(x => format(x))} )}
); }; export default MetricCard;