Skip to content

Commit 94dbcda

Browse files
authored
Splitter: prevent exceeding maximum size on expanding (T1308778) (#31205)
1 parent d79cb1b commit 94dbcda

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

packages/devextreme/js/__internal/ui/splitter/splitter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,9 @@ class Splitter extends CollectionWidgetLiveUpdate<Properties> {
841841
);
842842

843843
this._itemRestrictions.forEach((pane) => {
844-
pane.maxSize = undefined;
844+
if (item.collapsed) {
845+
pane.maxSize = undefined;
846+
}
845847
pane.resizable = undefined;
846848
});
847849

packages/devextreme/testing/tests/DevExpress.ui.widgets/splitter.tests.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,24 @@ QUnit.module('Pane sizing', moduleConfig, () => {
882882
{ targetButton: 'prev', resizeHandleIndex: 0, expectedLayout: ['10.1626', '44.9187', '44.9187'] },
883883
{ targetButton: 'next', resizeHandleIndex: 0, expectedLayout: ['27.5407', '27.5407', '44.9187'] },
884884
]
885+
},
886+
{
887+
items: [ { collapsible: true, collapsedSize: 50, size: 100, minSize: 100, maxSize: 100 }, { collapsible: true, size: 100 }],
888+
scenarios: [
889+
{ targetButton: 'prev', resizeHandleIndex: 0, expectedLayout: ['5', '95'] },
890+
{ targetButton: 'next', resizeHandleIndex: 0, expectedLayout: ['10.0806', '89.9194'] },
891+
{ targetButton: 'next', resizeHandleIndex: 0, expectedLayout: ['100', '0'] },
892+
{ targetButton: 'prev', resizeHandleIndex: 0, expectedLayout: ['10.0806', '89.9194'] },
893+
],
894+
},
895+
{
896+
items: [ { collapsible: true, collapsedSize: 50, size: 100, minSize: 100, maxSize: 100 }, { collapsible: false }, { collapsible: true, size: 100 }],
897+
scenarios: [
898+
{ targetButton: 'prev', resizeHandleIndex: 0, expectedLayout: ['5.0813', '84.7561', '10.1626'] },
899+
{ targetButton: 'next', resizeHandleIndex: 0, expectedLayout: ['10.1626', '79.6748', '10.1626'] },
900+
{ targetButton: 'next', resizeHandleIndex: 1, expectedLayout: ['10.1626', '89.8374', '0'] },
901+
{ targetButton: 'prev', resizeHandleIndex: 1, expectedLayout: ['10.1626', '79.6748', '10.1626'] },
902+
],
885903
}
886904
].forEach(({ items, scenarios }) => {
887905
QUnit.test(`The pane should restore its size after collapsing and expanding by click, items: ${JSON.stringify(items)}`, function(assert) {

0 commit comments

Comments
 (0)