// components/RichTextEditor.tsx
import { useEditor, EditorContent, Editor } from "@tiptap/react";
import StarterKit from "@tiptap/starter-kit";
import Heading from "@tiptap/extension-heading";
import Color from "@tiptap/extension-color";
import TextStyle from "@tiptap/extension-text-style";
import {
Bold,
Italic,
Strikethrough,
Heading1,
Heading2,
Heading3,
} from "lucide-react";
import { Toggle } from "@/components/ui/toggle";
const MenuBar: React.FC<{ editor: Editor | null }> = ({ editor }) => {
if (!editor) {
return null;
}
return (
editor.chain().focus().toggleBold().run()}>
editor.chain().focus().toggleItalic().run()}
className={editor.isActive("italic") ? "is-active" : ""}
>
editor.chain().focus().toggleStrike().run()}
className={editor.isActive("strike") ? "is-active" : ""}
>
{/* Heading Toggles */}
editor.chain().focus().toggleHeading({ level: 1 }).run()}
className={editor.isActive("heading", { level: 1 }) ? "is-active" : ""}
>
editor.chain().focus().toggleHeading({ level: 2 }).run()}
className={editor.isActive("heading", { level: 2 }) ? "is-active" : ""}
>
editor.chain().focus().toggleHeading({ level: 3 }).run()}
className={editor.isActive("heading", { level: 3 }) ? "is-active" : ""}
>
);
};
const RichTextEditor: React.FC = () => {
const editor = useEditor({
extensions: [
StarterKit,
Heading.configure({
levels: [1, 2, 3],
}),
Color,
TextStyle,
],
content: "Write your email here...
",
});
return (
);
};
export default RichTextEditor;