Skip to content

Commit 9be1999

Browse files
authored
fix(SplitterLayout): allow SplitterElements to shrink (#4393)
Fixes #4156
1 parent 3a65810 commit 9be1999

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

packages/main/src/components/SplitterElement/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ const SplitterElement = forwardRef<HTMLDivElement, SplitterElementPropTypes>((pr
5555
const { children, style, className, minSize, size, resizable: _0, ...rest } = props;
5656
const [componentRef, splitterElementRef] = useSyncRef(ref);
5757
const { vertical, reset } = useContext(SplitterLayoutContext);
58-
const safariStyles = Device.isSafari() ? { width: 'min-content', flex: '1 0 auto' } : {};
59-
const defaultFlexStyles = size !== 'auto' ? { flex: `0 0 ${size}` } : { flex: '1 0 min-content', ...safariStyles };
58+
const safariStyles = Device.isSafari() ? { width: 'min-content', flex: '1 1 auto' } : {};
59+
const defaultFlexStyles = size !== 'auto' ? { flex: `0 1 ${size}` } : { flex: '1 0 min-content', ...safariStyles };
6060
const [flexStyles, setFlexStyles] = useState(defaultFlexStyles);
6161
const [flexBasisApplied, setFlexBasisApplied] = useState(false);
6262
const classes = useStyles();
@@ -76,7 +76,7 @@ const SplitterElement = forwardRef<HTMLDivElement, SplitterElementPropTypes>((pr
7676
if (size === 'auto' && splitterElementRef.current) {
7777
elementObserver.observe(splitterElementRef.current);
7878
} else {
79-
setFlexStyles({ flex: `0 0 ${size}` });
79+
setFlexStyles({ flex: `0 1 ${size}` });
8080
}
8181

8282
return () => {

packages/main/src/components/SplitterLayout/SplitterLayout.cy.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,34 +53,34 @@ describe('SplitterLayout', () => {
5353
cy.viewport(2000, 2000);
5454
cy.mount(<TestComp vertical={vertical} dir={dir} />);
5555

56-
cy.findByTestId('se1').should('have.css', 'flex', '0 0 calc(70% - 16px)');
57-
cy.findByTestId('se2').should('have.css', 'flex', '0 0 30%');
56+
cy.findByTestId('se1').should('have.css', 'flex', '0 1 calc(70% - 16px)');
57+
cy.findByTestId('se2').should('have.css', 'flex', '0 1 30%');
5858

5959
moveSpacer(dir, vertical);
6060
cy.findByTestId('se1').should('have.css', 'flex', '0 0 1184px');
6161
cy.findByTestId('se2').should('have.css', 'flex', '0 0 800px');
6262

6363
cy.findByText('Trigger dep').click({ force: true });
6464

65-
cy.findByTestId('se1').should('have.css', 'flex', '0 0 calc(70% - 16px)');
66-
cy.findByTestId('se2').should('have.css', 'flex', '0 0 30%');
65+
cy.findByTestId('se1').should('have.css', 'flex', '0 1 calc(70% - 16px)');
66+
cy.findByTestId('se2').should('have.css', 'flex', '0 1 30%');
6767

6868
moveSpacer(dir, vertical);
6969
cy.findByTestId('se1').should('have.css', 'flex', '0 0 1184px');
7070
cy.findByTestId('se2').should('have.css', 'flex', '0 0 800px');
7171

7272
cy.findByText('Add child').click({ force: true });
73-
cy.findByTestId('se1').should('have.css', 'flex', '0 0 calc(70% - 16px)');
74-
cy.findByTestId('se2').should('have.css', 'flex', '0 0 calc(25% - 16px)');
75-
cy.findByTestId('se3').should('have.css', 'flex', '0 0 5%');
73+
cy.findByTestId('se1').should('have.css', 'flex', '0 1 calc(70% - 16px)');
74+
cy.findByTestId('se2').should('have.css', 'flex', '0 1 calc(25% - 16px)');
75+
cy.findByTestId('se3').should('have.css', 'flex', '0 1 5%');
7676

7777
moveSpacer(dir, vertical);
7878

7979
cy.viewport(1000, 1000);
8080

81-
cy.findByTestId('se1').should('have.css', 'flex', '0 0 calc(70% - 16px)');
82-
cy.findByTestId('se2').should('have.css', 'flex', '0 0 calc(25% - 16px)');
83-
cy.findByTestId('se3').should('have.css', 'flex', '0 0 5%');
81+
cy.findByTestId('se1').should('have.css', 'flex', '0 1 calc(70% - 16px)');
82+
cy.findByTestId('se2').should('have.css', 'flex', '0 1 calc(25% - 16px)');
83+
cy.findByTestId('se3').should('have.css', 'flex', '0 1 5%');
8484
});
8585
});
8686
});
@@ -113,7 +113,7 @@ describe('SplitterLayout', () => {
113113
.should('have.css', 'border-style', 'dotted');
114114
cy.findByTestId('sl').should('have.css', 'width', '800px').should('have.css', 'height', '800px');
115115
cy.findByTestId('se2')
116-
.should('have.css', 'flex', '0 0 400px')
116+
.should('have.css', 'flex', '0 1 400px')
117117
.should('have.css', vertical ? 'min-height' : 'min-width', '300px');
118118
cy.findByTestId('se3')
119119
.should('have.css', 'flex', '0 0 200px')

0 commit comments

Comments
 (0)