Skip to content

Commit 4e38398

Browse files
[material-ui][Divider] Enable borderStyle enhancement in divider with children (@anuujj) (#43059)
1 parent bd55ab7 commit 4e38398

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

packages/mui-material/src/Divider/Divider.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ const DividerRoot = styled('div', {
102102
whiteSpace: 'nowrap',
103103
textAlign: 'center',
104104
border: 0,
105+
borderTopStyle: 'solid',
106+
borderLeftStyle: 'solid',
105107
'&::before, &::after': {
106108
content: '""',
107109
alignSelf: 'center',
@@ -114,6 +116,7 @@ const DividerRoot = styled('div', {
114116
'&::before, &::after': {
115117
width: '100%',
116118
borderTop: `thin solid ${(theme.vars || theme).palette.divider}`,
119+
borderTopStyle: 'inherit',
117120
},
118121
}),
119122
}),
@@ -124,6 +127,7 @@ const DividerRoot = styled('div', {
124127
'&::before, &::after': {
125128
height: '100%',
126129
borderLeft: `thin solid ${(theme.vars || theme).palette.divider}`,
130+
borderLeftStyle: 'inherit',
127131
},
128132
}),
129133
}),

packages/mui-material/src/Divider/Divider.test.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import * as React from 'react';
22
import { expect } from 'chai';
33
import { createRenderer } from '@mui-internal/test-utils';
4+
import { styled } from '@mui/material/styles';
45
import Divider, { dividerClasses as classes } from '@mui/material/Divider';
56
import describeConformance from '../../test/describeConformance';
67

@@ -83,6 +84,40 @@ describe('<Divider />', () => {
8384
expect(container.querySelectorAll(`.${classes.textAlignLeft}`).length).to.equal(0);
8485
});
8586
});
87+
88+
describe('custom border style', function test() {
89+
before(function beforeHook() {
90+
if (/jsdom/.test(window.navigator.userAgent)) {
91+
this.skip();
92+
}
93+
});
94+
95+
const StyledDivider = styled(Divider)(() => ({
96+
borderStyle: 'dashed',
97+
}));
98+
99+
it('should set the dashed border-left-style in before and after pseudo-elements when orientation is vertical', () => {
100+
const { container } = render(<StyledDivider orientation="vertical">content</StyledDivider>);
101+
expect(
102+
getComputedStyle(container.firstChild, '::before').getPropertyValue('border-left-style'),
103+
).to.equal('dashed');
104+
expect(
105+
getComputedStyle(container.firstChild, '::after').getPropertyValue('border-left-style'),
106+
).to.equal('dashed');
107+
});
108+
109+
it('should set the dashed border-top-style in before and after pseudo-elements when orientation is horizontal', () => {
110+
const { container } = render(
111+
<StyledDivider orientation="horizontal">content</StyledDivider>,
112+
);
113+
expect(
114+
getComputedStyle(container.firstChild, '::before').getPropertyValue('border-top-style'),
115+
).to.equal('dashed');
116+
expect(
117+
getComputedStyle(container.firstChild, '::after').getPropertyValue('border-top-style'),
118+
).to.equal('dashed');
119+
});
120+
});
86121
});
87122

88123
describe('prop: variant', () => {

0 commit comments

Comments
 (0)