UNPKG

coolant

Version:

The modular build radiator

36 lines (35 loc) 1.77 kB
"use strict"; 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; };