nci/app/components/common/progress/index.js
2015-12-12 15:44:41 +03:00

33 lines
724 B
JavaScript

'use strict';
var React = require('react'),
_ = require('underscore'),
template = require('./index.jade');
module.exports = React.createClass({
render: template,
_computePercent: function() {
var build = this.props.build;
return Math.round((Date.now() - build.startDate) /
build.project.avgBuildDuration * 100);
},
componentDidMount: function() {
var self = this;
var updateCallback = function() {
if (self.props.build.status === 'in-progress') {
if (self.isMounted()) {
self.setState({percent: self._computePercent()});
_.delay(updateCallback, 100);
}
}
};
updateCallback();
},
getInitialState: function() {
return {
percent: this._computePercent()
};
}
});