From fcb9af659af4b6d0ba4b991fa3e85905e5e96ad4 Mon Sep 17 00:00:00 2001 From: brahim <92426196+BrhmDev@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:46:12 +0200 Subject: [PATCH] Fix node having same direction as parent after removing splitNode (invalid state) --- src/ZenViewSplitter.mjs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ZenViewSplitter.mjs b/src/ZenViewSplitter.mjs index e5967a0..bc45279 100644 --- a/src/ZenViewSplitter.mjs +++ b/src/ZenViewSplitter.mjs @@ -160,8 +160,19 @@ class ZenViewSplitter extends ZenDOMOperatedFeature { const leftOverChild = parent.children[0]; leftOverChild.sizeInParent = parent.sizeInParent; if (parent.parent) { - leftOverChild.parent = parent.parent; - parent.parent.children[parent.parent.children.indexOf(parent)] = leftOverChild; + const idx = parent.parent.children.indexOf(parent); + if (parent.parent.direction !== leftOverChild.direction) { + leftOverChild.parent = parent.parent; + parent.parent.children[idx] = leftOverChild; + } else { + // node cannot have same direction as it's parent + leftOverChild.children.forEach(c => { + c.sizeInParent *= leftOverChild.sizeInParent / 100 + c.parent = parent.parent; + }); + parent.parent.children.splice(idx, 1, ...leftOverChild.children); + this._removeNodeSplitters(leftOverChild, false); + } this._removeNodeSplitters(parent, false); return parent.parent; } else {