@mantine/tiptap
Version:
Rich text editor based on tiptap
39 lines (38 loc) • 2 kB
JavaScript
"use client";
require("../_virtual/_rolldown/runtime.cjs");
const require_RichTextEditor_context = require("../RichTextEditor.context.cjs");
const require_Icons = require("../icons/Icons.cjs");
const require_RichTextEditorControl = require("./RichTextEditorControl.cjs");
let react = require("react");
let _mantine_core = require("@mantine/core");
let react_jsx_runtime = require("react/jsx-runtime");
//#region packages/@mantine/tiptap/src/RichTextEditorControl/RichTextEditorSourceCodeControl.tsx
const defaultProps = {};
function RichTextEditorSourceCodeControl(props) {
const { ...others } = (0, _mantine_core.useProps)("RichTextEditorSourceCodeControl", defaultProps, props);
const { editor, labels, variant, onSourceCodeTextSwitch } = require_RichTextEditor_context.useRichTextEditorContext();
const [isSourceCodeModeActive, setIsSourceCodeModeActive] = (0, react.useState)(false);
const handleStateChange = () => {
if (isSourceCodeModeActive) editor?.commands.setContent(editor.getText(), { emitUpdate: true });
else editor?.commands.setContent(`<textarea>${editor.getHTML()}</textarea>`);
const isSourceCodeModeActiveNew = !isSourceCodeModeActive;
setIsSourceCodeModeActive(isSourceCodeModeActiveNew);
onSourceCodeTextSwitch?.(isSourceCodeModeActiveNew);
};
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_RichTextEditorControl.RichTextEditorControl, {
...others,
variant,
active: isSourceCodeModeActive,
"aria-label": labels.sourceCodeControlLabel,
title: labels.sourceCodeControlLabel,
onClick: () => handleStateChange(),
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Icons.IconBraces, { style: {
width: (0, _mantine_core.rem)(16),
height: (0, _mantine_core.rem)(16)
} })
});
}
RichTextEditorSourceCodeControl.displayName = "@mantine/tiptap/RichTextEditorSourceCodeControl";
//#endregion
exports.RichTextEditorSourceCodeControl = RichTextEditorSourceCodeControl;
//# sourceMappingURL=RichTextEditorSourceCodeControl.cjs.map