@unito/integration-debugger
Version:
The Unito Integration Debugger
58 lines (57 loc) • 2.75 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 headers_1 = __importDefault(require("../../resources/headers"));
const store_1 = require("../../store");
const styles_1 = require("../../styles");
const SetCredential = (props) => {
const configuration = (0, store_1.useConfigurationState)();
const inputRef = (0, react_1.useRef)(null);
(0, react_1.useEffect)(() => {
if (inputRef.current) {
inputRef.current.focus();
inputRef.current.setValue(JSON.stringify(configuration.credentialPayload ?? {}, null, 2));
inputRef.current.key(['l'], function () {
if (!inputRef.current?.screen.grabKeys) {
props.close();
}
});
inputRef.current.key(['m'], () => {
if (!inputRef.current?.screen.grabKeys) {
try {
configuration.credentialPayload = JSON.parse(inputRef.current?.getValue()?.trim() ?? '{}');
configuration.credentialId = undefined;
}
catch {
// TODO
}
props.close();
}
});
return () => {
if (inputRef.current) {
inputRef.current.free();
}
};
}
}, [inputRef]);
return ((0, jsx_runtime_1.jsx)("box", { label: [
(0, styles_1.paneTitle)(headers_1.default.CREDENTIALS),
chalk_1.default.gray('|'),
[chalk_1.default.whiteBright('<enter>'), chalk_1.default.blueBright('edit')].join(' '),
chalk_1.default.gray('|'),
[chalk_1.default.whiteBright('e'), chalk_1.default.blueBright('ditor')].join(''),
chalk_1.default.gray('|'),
[chalk_1.default.whiteBright('<esc>'), chalk_1.default.blueBright('stop edit')].join(' '),
chalk_1.default.gray('|'),
[chalk_1.default.blueBright('confir'), chalk_1.default.whiteBright('m')].join(''),
chalk_1.default.gray('|'),
[chalk_1.default.blueBright('cance'), chalk_1.default.whiteBright('l')].join(''),
].join(' '), top: "center", left: "center", width: 100, height: 10, border: styles_1.paneBorder, style: styles_1.pane, children: (0, jsx_runtime_1.jsx)("textarea", { ref: inputRef, keys: true }) }));
};
exports.default = SetCredential;
;