From a532e6382a7410134263dc4254ef271dac42cd5c Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Wed, 18 Oct 2023 00:54:50 +0530 Subject: [PATCH] chore: hide toolbar if note is not editable --- .../Plugins/ToolbarPlugin/ToolbarPlugin.tsx | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/packages/web/src/javascripts/Components/SuperEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx index b28c0c309..bd3509986 100644 --- a/packages/web/src/javascripts/Components/SuperEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx +++ b/packages/web/src/javascripts/Components/SuperEditor/Plugins/ToolbarPlugin/ToolbarPlugin.tsx @@ -110,6 +110,7 @@ const ToolbarPlugin = () => { const [editor] = useLexicalComposerContext() const [activeEditor, setActiveEditor] = useState(editor) + const [isEditable, setIsEditable] = useState(() => editor.isEditable()) const [blockType, setBlockType] = useState('paragraph') const [elementFormat, setElementFormat] = useState('left') @@ -203,14 +204,19 @@ const ToolbarPlugin = () => { }, [activeEditor]) useEffect(() => { - return editor.registerCommand( - SELECTION_CHANGE_COMMAND, - (_payload, newEditor) => { - $updateToolbar() - setActiveEditor(newEditor) - return false - }, - COMMAND_PRIORITY_CRITICAL, + return mergeRegister( + editor.registerEditableListener((editable) => { + setIsEditable(editable) + }), + editor.registerCommand( + SELECTION_CHANGE_COMMAND, + (_payload, newEditor) => { + $updateToolbar() + setActiveEditor(newEditor) + return false + }, + COMMAND_PRIORITY_CRITICAL, + ), ) }, [editor, $updateToolbar]) @@ -241,9 +247,9 @@ const ToolbarPlugin = () => { TOGGLE_LINK_AND_EDIT_COMMAND, (payload) => { if (payload === null) { - return editor.dispatchCommand(TOGGLE_LINK_COMMAND, null) + return activeEditor.dispatchCommand(TOGGLE_LINK_COMMAND, null) } else if (typeof payload === 'string') { - const dispatched = editor.dispatchCommand(TOGGLE_LINK_COMMAND, payload) + const dispatched = activeEditor.dispatchCommand(TOGGLE_LINK_COMMAND, payload) setLinkUrl(payload) setIsLinkEditMode(true) return dispatched @@ -253,7 +259,7 @@ const ToolbarPlugin = () => { COMMAND_PRIORITY_LOW, ), ) - }, [$updateToolbar, activeEditor, editor]) + }, [$updateToolbar, activeEditor]) useEffect(() => { return activeEditor.registerCommand( @@ -398,7 +404,7 @@ const ToolbarPlugin = () => { className={classNames( 'bg-contrast', 'md:absolute md:bottom-0 md:left-1/2 md:max-w-[60%] md:-translate-x-1/2 md:rounded-t-lg md:border md:border-b-0 md:border-border md:px-2 md:py-1 md:translucent-ui:border-[--popover-border-color] md:translucent-ui:bg-[--popover-background-color] md:translucent-ui:[backdrop-filter:var(--popover-backdrop-filter)]', - !canShowToolbar ? 'hidden' : '', + !canShowToolbar || !isEditable ? 'hidden' : '', )} id="super-mobile-toolbar" ref={containerRef}