coolant
Version:
The modular build radiator
36 lines (35 loc) • 1.77 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var moment_1 = tslib_1.__importDefault(require("moment"));
var model_1 = require("../../model");
var react_1 = tslib_1.__importDefault(require("react"));
var Style_1 = require("../../util/Style");
var Card_1 = require("./generic/Card");
exports.PullRequestCardPresenter = function (props) {
return react_1.default.createElement(Card_1.Card, { color: statusColorMap[props.pullRequest.status], scaleFactor: props.scaleFactor },
react_1.default.createElement("div", null, props.pullRequest.name),
react_1.default.createElement("div", null,
timeElapsed(props.pullRequest.timeOpened),
"\u00A0\u00A0\u00A0\u00A0\u00A0 +",
props.pullRequest.approvals));
};
var statusColorMap = (_a = {},
_a[model_1.PullRequestStatus.New] = Style_1.Style.color.state.failed,
_a[model_1.PullRequestStatus.UnderReview] = Style_1.Style.color.state.inProgress,
_a[model_1.PullRequestStatus.ReadyToMerge] = Style_1.Style.color.state.success,
_a);
var timeElapsed = function (startTime) {
var timeDifference = moment_1.default().diff(startTime);
var elapsedMinutes = moment_1.default.duration(timeDifference).asMinutes();
var days = Math.floor(elapsedMinutes / (60 * 24));
var daysRemainder = elapsedMinutes % (60 * 24);
var hours = Math.floor(daysRemainder / 60);
var hoursRemainder = daysRemainder % 60;
var minutes = Math.floor(hoursRemainder);
var formattedDays = days > 0 ? days + "d " : "";
var formattedHours = hours > 0 ? hours + "h " : "";
var formattedMinutes = minutes > 0 ? minutes + "m" : "";
return formattedDays + formattedHours + formattedMinutes;
};