AnimatedCount.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // components
  2. import CountUp from 'react-countup';
  3. // utils
  4. import {numFormatter} from '@utils/helpers';
  5. import PropTypes from 'prop-types';
  6. const AnimatedCount = ({className, count, separator, decimals, suffix, isFormatted, formattedDecimals}) => {
  7. return (
  8. <CountUp
  9. start={0}
  10. end={count}
  11. duration={2}
  12. separator={separator}
  13. decimals={decimals}
  14. suffix={suffix ? suffix : ''}
  15. formattingFn={isFormatted ? (val) => numFormatter(val, formattedDecimals) : null}
  16. enableScrollSpy
  17. scrollSpyOnce
  18. >
  19. {({countUpRef}) => (
  20. <span className={className ? className : ''} ref={countUpRef}/>
  21. )}
  22. </CountUp>
  23. )
  24. }
  25. AnimatedCount.propTypes = {
  26. className: PropTypes.string,
  27. count: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
  28. separator: PropTypes.string,
  29. decimals: PropTypes.number,
  30. suffix: PropTypes.string,
  31. isFormatted: PropTypes.bool,
  32. formattedDecimals: PropTypes.number
  33. }
  34. export default AnimatedCount