@rtdui/editor
Version:
React rich text editor based on tiptap
39 lines (35 loc) • 1.03 kB
JavaScript
'use client';
;
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var ControlBase = require('./ControlBase.cjs');
var ControlContext = require('./ControlContext.cjs');
function createTiptapControl({
label,
isActive,
operation,
icon
}) {
const Control = React.forwardRef(
(props, ref) => {
const { editor, labels } = ControlContext.useEditorContext();
const _label = labels[label];
return /* @__PURE__ */ jsxRuntime.jsx(
ControlBase.ControlBase,
{
"aria-label": _label,
title: _label,
active: isActive?.name ? editor?.isActive(isActive.name, isActive.attributes) : false,
ref,
onClick: () => (editor?.chain().focus())[operation.name](operation.attributes).run(),
icon,
...props
}
);
}
);
Control.displayName = `@rtdui/editor/Control_${label}`;
return Control;
}
module.exports = createTiptapControl;
//# sourceMappingURL=createTiptapControl.cjs.map