Time.jsx 824 B

12345678910111213141516171819202122232425262728
  1. import React, { Component } from "react";
  2. import PropTypes from "prop-types";
  3. import { connect } from "react-redux";
  4. const formatTime = (duration) => {
  5. let d = moment.duration(duration, "seconds");
  6. if (duration < 0) return "0:00";
  7. return ((d.hours() > 0) ? (d.hours() < 10 ? ("0" + d.hours() + ":") : (d.hours() + ":")) : "") + (d.minutes() + ":") + (d.seconds() < 10 ? ("0" + d.seconds()) : d.seconds());
  8. };
  9. @connect(state => ({
  10. duration: state.station.currentSong.getIn(["timings", "duration"]),
  11. timeElapsed: state.station.currentSong.getIn(["timings", "timeElapsed"]),
  12. }))
  13. export default class Time extends Component {
  14. constructor(props) {
  15. super(props);
  16. }
  17. render() {
  18. return (
  19. <span className="time">
  20. { formatTime(this.props.timeElapsed) } / { formatTime(this.props.duration) }
  21. </span>
  22. );
  23. }
  24. }