ExportingProgressBar.jsx 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. class ExportingProgressBar extends React.Component {
  5. render() {
  6. const { collectionName, currentCount, totalCount } = this.props;
  7. const percentage = currentCount / totalCount * 100;
  8. const isActive = currentCount !== totalCount;
  9. return (
  10. <>
  11. <h5>
  12. {collectionName}
  13. <div className="pull-right">{currentCount} / {totalCount}</div>
  14. </h5>
  15. <div className="progress progress-sm">
  16. <div
  17. className={`progress-bar ${isActive ? 'progress-bar-info progress-bar-striped active' : 'progress-bar-success'}`}
  18. style={{ width: `${percentage}%` }}
  19. >
  20. <span className="sr-only">{percentage.toFixed(0)}% Complete</span>
  21. </div>
  22. </div>
  23. </>
  24. );
  25. }
  26. }
  27. ExportingProgressBar.propTypes = {
  28. collectionName: PropTypes.string.isRequired,
  29. currentCount: PropTypes.number.isRequired,
  30. totalCount: PropTypes.number.isRequired,
  31. };
  32. export default withTranslation()(ExportingProgressBar);