From 5547c3fc2b350a3db7ec8ced32fec2f2f79e0da5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 25 Sep 2025 19:28:03 +0300 Subject: [PATCH] feat(canvas): read-only mode --- apps/client/src/widgets/FloatingButtonsDefinitions.tsx | 2 +- apps/client/src/widgets/type_widgets/Canvas.tsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/client/src/widgets/FloatingButtonsDefinitions.tsx b/apps/client/src/widgets/FloatingButtonsDefinitions.tsx index 0c4f3243f..991e982f7 100644 --- a/apps/client/src/widgets/FloatingButtonsDefinitions.tsx +++ b/apps/client/src/widgets/FloatingButtonsDefinitions.tsx @@ -91,7 +91,7 @@ function SwitchSplitOrientationButton({ note, isReadOnly, isDefaultViewMode }: F function ToggleReadOnlyButton({ note, viewType, isDefaultViewMode }: FloatingButtonContext) { const [ isReadOnly, setReadOnly ] = useNoteLabelBoolean(note, "readOnly"); - const isEnabled = ([ "mermaid", "mindMap" ].includes(note.type) || viewType === "geoMap") + const isEnabled = ([ "mermaid", "mindMap", "canvas" ].includes(note.type) || viewType === "geoMap") && note.isContentAvailable() && isDefaultViewMode; return isEnabled && (null); - const isReadOnly = options.is("databaseReadonly"); + const [ isReadOnly ] = useNoteLabelBoolean(note, "readOnly"); const themeStyle = useMemo(() => { const documentStyle = window.getComputedStyle(document.documentElement); return documentStyle.getPropertyValue("--theme-style")?.trim() as AppState["theme"]; @@ -66,7 +66,7 @@ export default function Canvas({ note }: TypeWidgetProps) { apiRef.current = api} theme={themeStyle} - viewModeEnabled={isReadOnly} + viewModeEnabled={isReadOnly || options.is("databaseReadonly")} zenModeEnabled={false} isCollaborating={false} detectScroll={false}