From bf17289ab2bf1d2b4d2abe6bde20faf38dbc8e86 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Fri, 15 Aug 2025 02:06:59 -0700 Subject: [PATCH] fix editable state --- apps/client/src/features/editor/page-editor.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/client/src/features/editor/page-editor.tsx b/apps/client/src/features/editor/page-editor.tsx index b969f6e1..d6be6884 100644 --- a/apps/client/src/features/editor/page-editor.tsx +++ b/apps/client/src/features/editor/page-editor.tsx @@ -8,7 +8,7 @@ import { onAuthenticationFailedParameters, WebSocketStatus, } from "@hocuspocus/provider"; -import { EditorContent, EditorProvider, useEditor } from "@tiptap/react"; +import { EditorContent, EditorProvider, useEditor, useEditorState } from "@tiptap/react"; import { collabExtensions, mainExtensions, @@ -257,6 +257,14 @@ export default function PageEditor({ }, [pageId, editable, remoteProvider], ); + + // Track editor's editable state since shouldRerenderOnTransaction is false + const editorIsEditable = useEditorState({ + editor, + selector: ctx => { + return ctx.editor?.isEditable ?? false; + }, + }); const debouncedUpdateContent = useDebouncedCallback((newContent: any) => { const pageData = queryClient.getQueryData(["pages", slugId]); @@ -390,7 +398,7 @@ export default function PageEditor({ )} - {editor && editor.isEditable && ( + {editor && editorIsEditable && (