diff --git a/client/src/shared/ui/RichTextMessageEditor.tsx b/client/src/shared/ui/RichTextMessageEditor.tsx index 00f6a48..28e1526 100644 --- a/client/src/shared/ui/RichTextMessageEditor.tsx +++ b/client/src/shared/ui/RichTextMessageEditor.tsx @@ -30,18 +30,19 @@ export function RichTextMessageEditor({ content: initialContent, editable: !disabled, onUpdate: ({ editor: tiptap }) => { + if (tiptap.isDestroyed) return const plainText = tiptap.getText().trim() onChange(plainText ? tiptap.getHTML() : '') }, }) useEffect(() => { - if (!editor) return + if (!editor || editor.isDestroyed) return editor.setEditable(!disabled) }, [disabled, editor]) useEffect(() => { - if (!editor) return + if (!editor || editor.isDestroyed) return const normalizedValue = value.trim() ? value : '

' if (editor.getHTML() === normalizedValue) return editor.commands.setContent(normalizedValue, { emitUpdate: false }) @@ -52,8 +53,8 @@ export function RichTextMessageEditor({ editor?.chain().focus().toggleBold().run()} - color={editor?.isActive('bold') ? 'primary' : 'default'} + onClick={() => editor?.chain()?.focus().toggleBold().run()} + color={editor && !editor.isDestroyed && editor.isActive('bold') ? 'primary' : 'default'} disabled={disabled} aria-label="Жирный" > @@ -61,8 +62,8 @@ export function RichTextMessageEditor({ editor?.chain().focus().toggleItalic().run()} - color={editor?.isActive('italic') ? 'primary' : 'default'} + onClick={() => editor?.chain()?.focus().toggleItalic().run()} + color={editor && !editor.isDestroyed && editor.isActive('italic') ? 'primary' : 'default'} disabled={disabled} aria-label="Курсив" > @@ -70,8 +71,8 @@ export function RichTextMessageEditor({ editor?.chain().focus().toggleBulletList().run()} - color={editor?.isActive('bulletList') ? 'primary' : 'default'} + onClick={() => editor?.chain()?.focus().toggleBulletList().run()} + color={editor && !editor.isDestroyed && editor.isActive('bulletList') ? 'primary' : 'default'} disabled={disabled} aria-label="Список" > diff --git a/server/prisma/prisma/dev.db b/server/prisma/prisma/dev.db index e15f8f2..1d6c4fb 100644 Binary files a/server/prisma/prisma/dev.db and b/server/prisma/prisma/dev.db differ