// 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;