@unito/integration-debugger
Version:
The Unito Integration Debugger
63 lines (62 loc) • 3.18 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 PayloadPane = (props) => {
const inputRef = (0, react_1.useRef)(null);
const debuggerState = (0, store_1.useDebuggerState)();
const configuration = (0, store_1.useConfigurationState)();
(0, react_1.useEffect)(() => {
if (inputRef.current) {
if (inputRef.current.screen.focused !== inputRef.current) {
inputRef.current.focus();
}
inputRef.current.key(['l'], function () {
if (!inputRef.current?.screen.grabKeys) {
props.close();
}
});
inputRef.current.key(['m'], async () => {
if (!inputRef.current?.screen.grabKeys) {
const value = inputRef.current?.getValue()?.trim() || '';
await debuggerState.goto({
credentialId: configuration.current.credentialId,
integrationUrl: configuration.current.integrationUrl,
credentialPayload: configuration.current.credentialPayload,
secretsPayload: configuration.current.secretsPayload,
startingPath: props.path ? props.path : configuration.current.graphRelativeUrl, // '' => fallback.
startingOperation: props.startingOperation,
stepCheckKeys: configuration.current.stepCheckKeys,
payloadIn: JSON.parse(value),
});
props.close();
}
});
return () => {
if (inputRef.current) {
inputRef.current.free();
}
};
}
}, [inputRef]);
return ((0, jsx_runtime_1.jsx)("box", { label: [
(0, styles_1.paneTitle)('Payload'),
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 = PayloadPane;
;