UNPKG

@unito/integration-debugger

Version:

The Unito Integration Debugger

58 lines (57 loc) 2.75 kB
"use strict"; 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;