From b4a7e7e1d36141336a89db0c1a2cce4561364aa1 Mon Sep 17 00:00:00 2001 From: Amir Husayn Panahifar Date: Sun, 18 Oct 2026 10:18:51 +0330 Subject: [PATCH] fix: resolve TipTap v3 type errors in RichEditor - Cast editor.storage to any for tiptap-markdown's getMarkdown (untyped extension storage) - Replace setContent(value, false) with setContent(value, { emitUpdate: false }) for TipTap v3 API Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/ui/rich-editor.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/ui/rich-editor.tsx b/frontend/src/components/ui/rich-editor.tsx index fca1550..30ba34a 100644 --- a/frontend/src/components/ui/rich-editor.tsx +++ b/frontend/src/components/ui/rich-editor.tsx @@ -28,7 +28,8 @@ export function RichEditor({ value, onChange, placeholder, className }: Props) { content: value, immediatelyRender: false, onUpdate({ editor: e }) { - const md = e.storage.markdown?.getMarkdown?.() ?? e.getText(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const md = (e.storage as any).markdown?.getMarkdown?.() ?? e.getText(); onChange(md); }, }); @@ -36,9 +37,10 @@ export function RichEditor({ value, onChange, placeholder, className }: Props) { // Sync external value changes (e.g. when a new lesson is loaded). useEffect(() => { if (!editor) return; - const current = editor.storage.markdown?.getMarkdown?.() ?? editor.getText(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const current = (editor.storage as any).markdown?.getMarkdown?.() ?? editor.getText(); if (current !== value) { - editor.commands.setContent(value, false); + editor.commands.setContent(value, { emitUpdate: false }); } }, [value, editor]);