collaborative-monaco
Version:
Binding for collaborative editing support in Monaco Editor. Connects JSON CRDT str node to Monaco Editor.
26 lines • 1.08 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.CollaborativeMonaco = void 0;
const tslib_1 = require("tslib");
const React = require("react");
const _1 = require(".");
const react_1 = require("@monaco-editor/react");
const CollaborativeMonaco = (_a) => {
var { str } = _a, rest = tslib_1.__rest(_a, ["str"]);
const unbind = React.useRef(null);
React.useEffect(() => {
return () => {
var _a;
(_a = unbind.current) === null || _a === void 0 ? void 0 : _a.call(unbind);
};
}, []);
const handleMount = (editor, monaco) => {
var _a, _b;
(_a = unbind.current) === null || _a === void 0 ? void 0 : _a.call(unbind);
unbind.current = (0, _1.bind)(str, editor, true);
(_b = rest.onMount) === null || _b === void 0 ? void 0 : _b.call(rest, editor, monaco);
};
return React.createElement(react_1.Editor, Object.assign({}, rest, { onMount: handleMount }));
};
exports.CollaborativeMonaco = CollaborativeMonaco;
//# sourceMappingURL=CollaborativeMonaco.js.map
;