collaborative-ui
Version:
React component library for building real-time collaborative editing applications.
22 lines (21 loc) • 911 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonCrdtModelSidecar = void 0;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const BinaryBlock_1 = require("../../BinaryBlock");
const Encoder_1 = require("json-joy/lib/json-crdt/codec/sidecar/binary/Encoder");
const useModelTick_1 = require("../../hooks/useModelTick");
const LIMIT = 1024 * 4;
const JsonCrdtModelSidecar = ({ model }) => {
(0, useModelTick_1.useModelTick)(model);
const uint8 = React.useMemo(() => {
const encoder = new Encoder_1.Encoder();
const [, data] = encoder.encode(model);
if (data.byteLength > LIMIT)
return data.slice(0, LIMIT);
return data;
}, [model, model.tick]);
return React.createElement(BinaryBlock_1.BinaryBlock, { uint8: uint8 });
};
exports.JsonCrdtModelSidecar = JsonCrdtModelSidecar;
;