@ipp/cli
Version:
An image build orchestrator for the modern web
40 lines (39 loc) • 1.63 kB
JavaScript
;
/**
* Image Processing Pipeline - Copyright (c) Marcus Cemes
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Status = void 0;
const figures_1 = __importDefault(require("figures"));
const ink_1 = require("ink");
const ink_spinner_1 = __importDefault(require("ink-spinner"));
const react_1 = __importDefault(require("react"));
const state_1 = require("../../lib/state");
const constants_1 = require("./constants");
const hooks_1 = require("./hooks");
const statusMap = {
[state_1.Status.READY]: ["green", "Ready"],
[state_1.Status.PROCESSING]: ["cyan", "Processing", react_1.default.createElement(ink_spinner_1.default, { key: "spin" })],
[state_1.Status.COMPLETE]: ["green", "Complete"],
[state_1.Status.ERROR]: ["red", "Error"],
[state_1.Status.INTERRUPT]: [constants_1.ORANGE, "Interrupted"],
};
const Status = () => {
const status = (0, hooks_1.useAppStateValue)((state) => state.status);
if (status === null)
return null;
const currentStatus = statusMap[status];
const symbol = currentStatus[2] || figures_1.default.pointer;
return (react_1.default.createElement(ink_1.Box, { marginTop: 1 },
react_1.default.createElement(ink_1.Text, { color: currentStatus[0] },
symbol,
" ",
currentStatus[1])));
};
exports.Status = Status;