UNPKG

collaborative-ui

Version:

React component library for building real-time collaborative editing applications.

34 lines (33 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.JsonCrdtModelClickable = void 0; const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const clickable_json_1 = require("clickable-json"); const nano_theme_1 = require("nano-theme"); const JsonCrdtNodePreview_1 = require("../../JsonCrdtNodePreview"); const useModelTick_1 = require("../../hooks/useModelTick"); const useWindowSize_1 = tslib_1.__importDefault(require("react-use/lib/useWindowSize")); const css = { clickable: (0, nano_theme_1.rule)({ mr: 0, pd: '1px 8px 8px 24px', }), }; const JsonCrdtModelClickable = ({ model, readonly }) => { const { width } = (0, useWindowSize_1.default)(); const [focused, setFocused] = React.useState(null); (0, useModelTick_1.useModelTick)(model); let preview = null; if (focused) { preview = (React.createElement(JsonCrdtNodePreview_1.JsonCrdtNodePreviewById, { model: model, id: focused, readonly: readonly, onClose: () => setFocused(null) })); } return (React.createElement("div", null, React.createElement("div", { className: css.clickable }, React.createElement(clickable_json_1.ClickableJsonCrdt, { key: width < 700 ? '10px' : '12px', model: model, showRoot: true, readonly: readonly, fontSize: width < 700 ? '10px' : '12px', onFocus: (id) => { if (id) setFocused(id); } })), preview)); }; exports.JsonCrdtModelClickable = JsonCrdtModelClickable;