From 2be9d716597169085dc88fce27354697b2a7649a Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 19 Sep 2025 16:26:06 +0300 Subject: [PATCH] fix(canvas): error when trying to save due to uninitialized API --- apps/client/src/widgets/type_widgets/canvas.ts | 3 +++ apps/client/src/widgets/type_widgets/canvas_el.tsx | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/client/src/widgets/type_widgets/canvas.ts b/apps/client/src/widgets/type_widgets/canvas.ts index 343e2489c..0876d1b55 100644 --- a/apps/client/src/widgets/type_widgets/canvas.ts +++ b/apps/client/src/widgets/type_widgets/canvas.ts @@ -357,6 +357,9 @@ export default class ExcalidrawTypeWidget extends TypeWidget { if (options.is("databaseReadonly")) { return; } + + if (!this.canvasInstance.isInitialized()) 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.canvasInstance.isNewSceneVersion(); diff --git a/apps/client/src/widgets/type_widgets/canvas_el.tsx b/apps/client/src/widgets/type_widgets/canvas_el.tsx index a6f1ee16f..b5018325d 100644 --- a/apps/client/src/widgets/type_widgets/canvas_el.tsx +++ b/apps/client/src/widgets/type_widgets/canvas_el.tsx @@ -76,6 +76,10 @@ export default class Canvas { return this.currentSceneVersion === SCENE_VERSION_INITIAL; } + isInitialized() { + return !!this.excalidrawApi; + } + resetScene(theme: Theme) { this.excalidrawApi.updateScene({ elements: [], @@ -194,4 +198,4 @@ function CanvasElement(opts: ExcalidrawProps) { /> ); -} \ No newline at end of file +}