From 973ecff0be28fda87d00d8f30e11ced9487b632f Mon Sep 17 00:00:00 2001 From: mathuo <6710312+mathuo@users.noreply.github.com> Date: Wed, 17 Jul 2024 22:28:31 +0100 Subject: [PATCH] bug: fix layout force flag --- .../gridview/baseComponentGridview.spec.ts | 27 +++++++++++++++++++ .../src/gridview/baseComponentGridview.ts | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/packages/dockview-core/src/__tests__/gridview/baseComponentGridview.spec.ts b/packages/dockview-core/src/__tests__/gridview/baseComponentGridview.spec.ts index de1c662e4..6371488ee 100644 --- a/packages/dockview-core/src/__tests__/gridview/baseComponentGridview.spec.ts +++ b/packages/dockview-core/src/__tests__/gridview/baseComponentGridview.spec.ts @@ -66,6 +66,8 @@ class TestPanel implements IGridPanelView { } class ClassUnderTest extends BaseGrid { + readonly gridview = this.gridview; + constructor(options: BaseGridOptions) { super(options); } @@ -103,6 +105,31 @@ class ClassUnderTest extends BaseGrid { } describe('baseComponentGridview', () => { + test('that .layout(...) force flag works', () => { + const cut = new ClassUnderTest({ + parentElement: document.createElement('div'), + orientation: Orientation.HORIZONTAL, + proportionalLayout: true, + }); + + const spy = jest.spyOn(cut.gridview, 'layout'); + + cut.layout(100, 100); + expect(spy).toHaveBeenCalledTimes(1); + + cut.layout(100, 100, false); + expect(spy).toHaveBeenCalledTimes(1); + + cut.layout(100, 100, true); + expect(spy).toHaveBeenCalledTimes(2); + + cut.layout(150, 150, false); + expect(spy).toHaveBeenCalledTimes(3); + + cut.layout(150, 150, true); + expect(spy).toHaveBeenCalledTimes(4); + }); + test('can add group', () => { const cut = new ClassUnderTest({ parentElement: document.createElement('div'), diff --git a/packages/dockview-core/src/gridview/baseComponentGridview.ts b/packages/dockview-core/src/gridview/baseComponentGridview.ts index e3f3b327f..cac9e45f6 100644 --- a/packages/dockview-core/src/gridview/baseComponentGridview.ts +++ b/packages/dockview-core/src/gridview/baseComponentGridview.ts @@ -323,7 +323,7 @@ export abstract class BaseGrid public layout(width: number, height: number, forceResize?: boolean): void { const different = - forceResize ?? (width !== this.width || height !== this.height); + forceResize || width !== this.width || height !== this.height; if (!different) { return;