@unito/integration-debugger
Version:
The Unito Integration Debugger
28 lines (27 loc) • 1.99 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const chalk_1 = __importDefault(require("chalk"));
const styles_1 = require("../../styles");
const store_1 = require("../../store");
const StatusPane = () => {
const debuggerState = (0, store_1.useDebuggerState)();
const crawledCount = debuggerState.steps.length;
const remainingCount = debuggerState.crawlerDriver?.remaining()?.length ?? 0;
const total = crawledCount + remainingCount;
const percentage = (crawledCount / total) * 100;
const errorsCount = debuggerState.steps.filter(step => !!step.errors.length).length;
const warningsCount = debuggerState.steps.filter(step => !!step.warnings.length).length;
const errors = (0, react_1.useCallback)(() => {
return errorsCount > 0 ? chalk_1.default.redBright(`${errorsCount} error(s)`) : '0 error';
}, [errorsCount]);
const warnings = (0, react_1.useCallback)(() => {
return warningsCount > 0 ? chalk_1.default.yellowBright(`${warningsCount} warning(s)`) : '0 warning';
}, [warningsCount]);
return ((0, jsx_runtime_1.jsxs)("box", { label: (0, styles_1.paneTitle)('status'), left: 0, width: "40%", bottom: 3, height: 6, border: styles_1.paneBorder, style: styles_1.unfocusablePane, focusable: false, children: [(0, jsx_runtime_1.jsx)("box", { left: 0, top: 0, height: 3, content: `${percentage.toFixed(1)}% (${crawledCount}/${total}) crawled.`, focusable: false }), (0, jsx_runtime_1.jsx)("box", { left: 0, top: 1, height: 3, content: `${warnings()}. ${errors()}.`, focusable: false }), (0, jsx_runtime_1.jsx)("progressbar", { top: 2, width: "100%-3", height: 2, filled: percentage | 0, style: { bar: { bg: 'blue' } }, focusable: false })] }));
};
exports.default = StatusPane;
;