diff --git a/apps/client/src/widgets/type_widgets/canvas.ts b/apps/client/src/widgets/type_widgets/canvas.ts index 962a7ff4a..490350686 100644 --- a/apps/client/src/widgets/type_widgets/canvas.ts +++ b/apps/client/src/widgets/type_widgets/canvas.ts @@ -3,6 +3,7 @@ import utils from "../../services/utils.js"; import linkService from "../../services/link.js"; import server from "../../services/server.js"; import type FNote from "../../entities/fnote.js"; +import options from "../../services/options.js"; import type { ExcalidrawElement, Theme } from "@excalidraw/excalidraw/element/types"; import type { AppState, BinaryFileData, ExcalidrawImperativeAPI, ExcalidrawProps, LibraryItem, SceneData } from "@excalidraw/excalidraw/types"; import type { JSX } from "react"; @@ -447,6 +448,9 @@ export default class ExcalidrawTypeWidget extends TypeWidget { } onChangeHandler() { + if (options.is("databaseReadonly")) { + return; + } // changeHandler is called upon any tiny change in excalidraw. button clicked, hover, etc. // make sure only when a new element is added, we actually save something. const isNewSceneVersion = this.isNewSceneVersion(); @@ -540,7 +544,7 @@ export default class ExcalidrawTypeWidget extends TypeWidget { this.saveData(); }, onChange: () => this.onChangeHandler(), - viewModeEnabled: false, + viewModeEnabled: options.is("databaseReadonly"), zenModeEnabled: false, gridModeEnabled: false, isCollaborating: false, @@ -567,6 +571,10 @@ export default class ExcalidrawTypeWidget extends TypeWidget { * info: sceneVersions are not incrementing. it seems to be a pseudo-random number */ isNewSceneVersion() { + if (options.is("databaseReadonly")) { + return false; + } + const sceneVersion = this.getSceneVersion(); return (