frontend/app/common/MediaDurationComponent.jsx (23 lines of code) (raw):
import React from 'react';
import PropTypes from 'prop-types';
class MediaDurationComponent extends React.Component {
static propTypes = {
value: PropTypes.number.isRequired //the duration in seconds
};
breakdownTime() {
const mins = Math.floor(this.props.value/60.0);
const hrs = mins>0 ? Math.floor(this.props.value/3600.0) : 0;
const seconds = Math.ceil(this.props.value - hrs*3600 - mins*60);
if(hrs===0 && mins===0){
return this.props.value.toString() + " seconds"
} else if(hrs===0){
return mins.toString() + " minutes, " + seconds.toString() + " seconds"
} else {
return hrs.toString() + " hours, " + mins.toString() + " minutes, " + seconds.toString() + " seconds"
}
}
render(){
return this.props.value ? <span>{this.breakdownTime()}</span> : <p className="information">no data</p>
}
}
export default MediaDurationComponent;