From ccb98d69fa181929302601e459a0e9b8d76c31a0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 22 Mar 2025 16:47:01 +0200 Subject: [PATCH] fix(mindmap): pane resizer not always working --- .../abstract_split_type_widget.ts | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts index c05ed2d7c..8dbb3e8e4 100644 --- a/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts +++ b/src/public/app/widgets/type_widgets/abstract_split_type_widget.ts @@ -165,8 +165,7 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { } cleanup(): void { - this.splitInstance?.destroy(); - this.splitInstance = undefined; + this.#destroyResizer(); } async doRefresh(note: FNote | null | undefined) { @@ -189,17 +188,19 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { // Vertical vs horizontal layout const layoutOrientation = (!utils.isMobile() ? options.get("splitEditorOrientation") ?? "horizontal" : "vertical"); - if (this.layoutOrientation === layoutOrientation && this.isReadOnly === isReadOnly) { - return; + if (this.layoutOrientation !== layoutOrientation || this.isReadOnly !== isReadOnly) { + this.$widget + .toggleClass("split-horizontal", !isReadOnly && layoutOrientation === "horizontal") + .toggleClass("split-vertical", !isReadOnly && layoutOrientation === "vertical") + .toggleClass("split-read-only", isReadOnly); + this.layoutOrientation = layoutOrientation as ("horizontal" | "vertical"); + this.isReadOnly = isReadOnly; + this.#destroyResizer(); } - this.$widget - .toggleClass("split-horizontal", !isReadOnly && layoutOrientation === "horizontal") - .toggleClass("split-vertical", !isReadOnly && layoutOrientation === "vertical") - .toggleClass("split-read-only", isReadOnly); - this.layoutOrientation = layoutOrientation as ("horizontal" | "vertical"); - this.isReadOnly = isReadOnly; - this.#setupResizer(); + if (!this.splitInstance) { + this.#setupResizer(); + } } #setupResizer() { @@ -226,6 +227,11 @@ export default abstract class AbstractSplitTypeWidget extends TypeWidget { } } + #destroyResizer() { + this.splitInstance?.destroy(); + this.splitInstance = undefined; + } + /** * Called upon when the split between the preview and content pane is initialized. Can be used to add additional listeners if needed. */