json-joy
Version:
Collection of libraries for building collaborative editing apps.
38 lines (37 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CaretBottomOverlay = void 0;
const tslib_1 = require("tslib");
// biome-ignore lint: lint/style/useImportType
const React = tslib_1.__importStar(require("react"));
const FormattingsManagePane_1 = require("../../../formatting/FormattingsManagePane");
const BottomPanePortal_1 = require("../../util/BottomPanePortal");
const context_1 = require("../../../context");
const isDirectCaretPlacement = (event) => {
if (event && event.type === 'cursor') {
const detail = event.detail;
const at = detail.at;
if (Array.isArray(at) && at.length === 1 && typeof at[0] === 'number')
return true;
const move = detail.move;
if (Array.isArray(move) &&
move.length === 1 &&
Array.isArray(move[0]) &&
move[0][0] === 'focus' &&
typeof move[0][1] === 'number')
return true;
}
return false;
};
const CaretBottomOverlay = (props) => {
const { fwd, bwd } = props;
const inline = fwd || bwd;
const { toolbar } = (0, context_1.useToolbarPlugin)();
if (!inline)
return;
if (!isDirectCaretPlacement(toolbar.lastEvent))
return;
return (React.createElement(BottomPanePortal_1.BottomPanePortal, null,
React.createElement(FormattingsManagePane_1.FormattingsManagePane, { inline: inline })));
};
exports.CaretBottomOverlay = CaretBottomOverlay;