Controls.js 1.2 KB

1234567891011121314151617181920212223242526272829
  1. import React from 'react';
  2. import Sound from 'react-sound';
  3. import {formatDuration} from './utils.js';
  4. export default function Controls(props) {
  5. const playPause = (props.playStatus === Sound.status.PLAYING ? 'pause' : 'play');
  6. const percent = (props.duration ? (100 * props.position / props.duration) : 0);
  7. const elapsed = (props.position ? formatDuration(props.position/1000) : '');
  8. const duration = (props.duration ? formatDuration(props.duration/1000) : '');
  9. if (props.visible === false) {
  10. return null;
  11. }
  12. return (
  13. <div className="Controls">
  14. <div className="Controls-progress">
  15. <div className="Controls-bar" style={{width:percent+'%'}} />
  16. <span className="Controls-elapsed">{elapsed}</span>
  17. <span className="Controls-duration">{duration}</span>
  18. </div>
  19. <div className="Controls-title">{props.title}</div>
  20. <div className="Controls-buttons">
  21. <button onClick={props.onPrev}>prev</button>
  22. <button onClick={props.onPlayPause}>{playPause}</button>
  23. <button onClick={props.onStop}>stop</button>
  24. <button onClick={props.onNext}>next</button>
  25. </div>
  26. </div>
  27. );
  28. }