// TestEditor.tsx import { RichTextEditor, Link } from '@mantine/tiptap'; import { useEditor } from '@tiptap/react'; import Highlight from '@tiptap/extension-highlight'; import StarterKit from '@tiptap/starter-kit'; import Underline from '@tiptap/extension-underline'; import TextAlign from '@tiptap/extension-text-align'; import Superscript from '@tiptap/extension-superscript'; import SubScript from '@tiptap/extension-subscript'; import { useEffect } from 'react'; type CreateEditorProps = { value: string; onChange: (content: string) => void; }; export default function CreateEditor({ value, onChange }: CreateEditorProps) { const editor = useEditor({ extensions: [ StarterKit, Underline, Link, Superscript, SubScript, Highlight, TextAlign.configure({ types: ['heading', 'paragraph'] }), ], content: value, onUpdate: () => { if (editor) { onChange(editor.getHTML()); } }, }); // 👇 Tambahkan efek untuk sinkronisasi value dari luar (resetForm) useEffect(() => { if (editor && value !== editor.getHTML()) { editor.commands.setContent(value || ''); } }, [value, editor]); return ( ); }