collaborative-ui
Version:
React component library for building real-time collaborative editing applications.
23 lines (22 loc) • 1.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonCrdtLogPinnedPatch = void 0;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const useBehaviorSubject_1 = require("nice-ui/lib/hooks/useBehaviorSubject");
const context_1 = require("../context");
const JsonCrdtPatch_1 = require("../../JsonCrdtPatch");
const json_crdt_1 = require("json-joy/lib/json-crdt");
const nano_theme_1 = require("nano-theme");
const colors = nano_theme_1.theme.color.color;
const colorCount = colors.length;
const JsonCrdtLogPinnedPatch = ({ filename }) => {
const state = (0, context_1.useLogState)();
const patch = (0, useBehaviorSubject_1.useBehaviorSubject)(state.pinned$);
if (!(patch instanceof json_crdt_1.Patch))
return null;
const sid = patch.getId()?.sid ?? 0;
const color = colors[sid % colorCount];
return React.createElement(JsonCrdtPatch_1.JsonCrdtPatch, { state: state.patchState, pinned: color, patch: patch, filename: filename });
};
exports.JsonCrdtLogPinnedPatch = JsonCrdtLogPinnedPatch;
;