Skip to content

Instantly share code, notes, and snippets.

@pierr
Created November 7, 2016 13:30
Show Gist options
  • Save pierr/02e42bc3eee9a6d5c9077359379d0a4d to your computer and use it in GitHub Desktop.
Save pierr/02e42bc3eee9a6d5c9077359379d0a4d to your computer and use it in GitHub Desktop.
import React, {Component, PropTypes} from 'react'
function _getTimeElapsedFromBeginDateTime (beginDateTime) {
return Date.now() - beginDateTime
}
import moment from 'moment'
class StpWatch extends Component {
constructor (props) {
super(props)
this.state = {timeElapsed: _getTimeElapsedFromBeginDateTime(this.props.beginDateTime)}
this.updateTimeElapsed = this.updateTimeElapsed.bind(this)
}
componentDidMount () {
this._timer = setInterval(() => this.updateTimeElapsed(), this.props.updateFrequency)
}
componentWillUnMount () {
clearInterval(this._timer)
}
updateTimeElapsed () {
this.setState({timeElapsed: _getTimeElapsedFromBeginDateTime(this.props.beginDateTime)})
}
render () {
return <div>{this.state.timeElapsed} - {moment(this.props.beginDateTime).fromNow()}</div>
}
}
StpWatch.defaultProps = {
updateFrequency: 10 * 1000
}
StpWatch.propTypes = {
beginDateTime: PropTypes.number.isRequired,
updateFrequency: PropTypes.number
}
export default StpWatch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment