UNPKG

schyma

Version:

JSON Schemas Visualizer React component

39 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const react_1 = tslib_1.__importStar(require("react")); const Panel_1 = tslib_1.__importDefault(require("./Panel")); const react_2 = require("react"); const Nodes_1 = tslib_1.__importDefault(require("./Nodes")); const ajv_1 = tslib_1.__importDefault(require("ajv")); const reusables_1 = require("../utils/reusables"); function Schyma({ title, description, schema }) { const ajv = new ajv_1.default(); const [currentNode, setCurrentNode] = (0, react_2.useState)(); const [nNodes, setnNodes] = (0, react_2.useState)({}); const [render, setRender] = (0, react_2.useState)(false); const position = { x: 0, y: 0 }; const properties = (0, reusables_1.propMerge)(schema, ""); const initialNode = { id: '1', data: { label: title, description, properties: properties, relations: {}, }, position, }; const validate = ajv.validateSchema(schema); (0, react_1.useEffect)(() => { if (validate) { setRender(true); } }, [validate]); return (react_1.default.createElement("div", null, render ? react_1.default.createElement("div", { className: "body-wrapper" }, react_1.default.createElement("div", { className: "node-container" }, react_1.default.createElement(Nodes_1.default, { setnNodes: setnNodes, setCurrentNode: setCurrentNode, nNodes: nNodes, initialNode: initialNode, schema: schema })), react_1.default.createElement(Panel_1.default, { title: title, description: description, node: currentNode, nodes: nNodes })) : react_1.default.createElement("div", null, "loading"))); } exports.default = Schyma; //# sourceMappingURL=App.js.map