The code powering m.abunchtell.com https://m.abunchtell.com
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

43 lines
1.0 KiB

  1. import PropTypes from 'prop-types';
  2. import { Motion, spring } from 'react-motion';
  3. import { FormattedMessage } from 'react-intl';
  4. class UploadProgress extends React.PureComponent {
  5. render () {
  6. const { active, progress } = this.props;
  7. if (!active) {
  8. return null;
  9. }
  10. return (
  11. <div className='upload-progress'>
  12. <div className='upload-progress__icon'>
  13. <i className='fa fa-upload' />
  14. </div>
  15. <div className='upload-progress__message'>
  16. <FormattedMessage id='upload_progress.label' defaultMessage='Uploading...' />
  17. <div className='upload-progress__backdrop'>
  18. <Motion defaultStyle={{ width: 0 }} style={{ width: spring(progress) }}>
  19. {({ width }) =>
  20. <div className='upload-progress__tracker' style={{ width: `${width}%` }} />
  21. }
  22. </Motion>
  23. </div>
  24. </div>
  25. </div>
  26. );
  27. }
  28. }
  29. UploadProgress.propTypes = {
  30. active: PropTypes.bool,
  31. progress: PropTypes.number
  32. };
  33. export default UploadProgress;