clickable-json
Version:
Interactive JSON and JSON CRDT viewer and editor
32 lines • 1.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonCrdtValNode = void 0;
const React = require("react");
const css = require("../../css");
const NodeRef_1 = require("../NodeRef");
const context_1 = require("../context");
const JsonCrdtRegion_1 = require("../JsonCrdtRegion");
const JsonCrdtProperty_1 = require("../JsonCrdtProperty");
const JsonCrdtObjectLayout_1 = require("../JsonCrdtObjectLayout");
const JsonAtom_1 = require("../../JsonAtom");
const hooks_1 = require("../hooks");
const JsonCrdtValNode = ({ node }) => {
const { render } = (0, context_1.useJsonCrdt)();
(0, hooks_1.useRerenderModel)();
const childNode = node.node.node();
if (!childNode)
return null;
const childNodeRef = (0, NodeRef_1.nodeRef)(childNode, node, '');
if (!childNodeRef)
return null;
const child = React.createElement("span", { className: css.line }, render(childNodeRef));
let collapsedView = '…';
if (childNode.name() === 'con') {
const view = childNode.view();
collapsedView = React.createElement(JsonAtom_1.JsonAtom, { value: view });
}
return (React.createElement(JsonCrdtRegion_1.JsonCrdtRegion, { node: node },
React.createElement(JsonCrdtObjectLayout_1.JsonCrdtObjectLayout, { node: node, property: React.createElement(JsonCrdtProperty_1.JsonCrdtProperty, { node: node }), collapsedView: collapsedView, brackets: ['(', ')'] }, child)));
};
exports.JsonCrdtValNode = JsonCrdtValNode;
//# sourceMappingURL=JsonCrdtValNode.js.map
;