Skip to content

Commit 727cc39

Browse files
authored
[mui-codemod] Fix merging of slotProps and componentProps (#41323)
1 parent 16e8ef7 commit 727cc39

File tree

11 files changed

+156
-23
lines changed

11 files changed

+156
-23
lines changed

packages/mui-codemod/src/deprecations/alert-props/alert-props.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe('@mui/codemod', () => {
3131
const actual = transform(
3232
{ source: read('./test-cases/theme.actual.js') },
3333
{ jscodeshift },
34-
{ printOptions: { trailingComma: true } },
34+
{ printOptions: { trailingComma: false } },
3535
);
3636

3737
const expected = read('./test-cases/theme.expected.js');

packages/mui-codemod/src/deprecations/alert-props/test-cases/actual.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,9 @@ import Alert from '@mui/material/Alert';
1616
slotProps={{ closeIcon: slotsIconProps, closeButton: slotsButtonProps }}
1717
componentsProps={{ closeButton: componentsButtonProps }}
1818
/>;
19+
<Alert
20+
slots={{ closeIcon: SlotsIcon, closeButton: SlotsButton }}
21+
components={{ CloseButton: ComponentsButton }}
22+
slotProps={{ closeIcon: slotsIconProps, closeButton: slotsButtonProps }}
23+
componentsProps={{ closeButton: componentsButtonProps, closeIcon: componentsIconProps }}
24+
/>;

packages/mui-codemod/src/deprecations/alert-props/test-cases/expected.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,16 @@ import Alert from '@mui/material/Alert';
1717
}} />;
1818
<Alert
1919
slots={{ closeIcon: SlotsIcon, closeButton: SlotsButton }}
20-
slotProps={{ closeIcon: slotsIconProps, closeButton: slotsButtonProps }} />;
20+
slotProps={{ closeIcon: slotsIconProps, closeButton: {
21+
...componentsButtonProps,
22+
...slotsButtonProps
23+
} }} />;
24+
<Alert
25+
slots={{ closeIcon: SlotsIcon, closeButton: SlotsButton }}
26+
slotProps={{ closeButton: {
27+
...componentsButtonProps,
28+
...slotsButtonProps
29+
}, closeIcon: {
30+
...componentsIconProps,
31+
...slotsIconProps
32+
} }} />;

packages/mui-codemod/src/deprecations/alert-props/test-cases/theme.actual.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,14 @@ fn({
2828
},
2929
},
3030
});
31+
32+
fn({
33+
MuiAlert: {
34+
defaultProps: {
35+
components: { CloseButton: ComponentsButton },
36+
slots: { closeIcon: SlotsIcon, closeButton: SlotsButton },
37+
componentsProps: { closeButton: componentsButtonProps, closeIcon: componentsIconProps },
38+
slotProps: { closeIcon: slotsIconProps, closeButton: slotsButtonProps },
39+
},
40+
},
41+
});

packages/mui-codemod/src/deprecations/alert-props/test-cases/theme.expected.js

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ fn({
22
MuiAlert: {
33
defaultProps: {
44
slots: {
5-
closeButton: ComponentsButton,
5+
closeButton: ComponentsButton
66
},
77

88
slotProps: {
9-
closeButton: componentsButtonProps,
10-
},
9+
closeButton: componentsButtonProps
10+
}
1111
},
1212
},
1313
});
@@ -17,13 +17,13 @@ fn({
1717
defaultProps: {
1818
slots: {
1919
closeButton: ComponentsButton,
20-
closeIcon: SlotsIcon,
20+
closeIcon: SlotsIcon
2121
},
2222

2323
slotProps: {
2424
closeButton: componentsButtonProps,
25-
closeIcon: slotsIconProps,
26-
},
25+
closeIcon: slotsIconProps
26+
}
2727
},
2828
},
2929
});
@@ -33,13 +33,40 @@ fn({
3333
defaultProps: {
3434
slots: {
3535
closeButton: SlotsButton,
36-
closeIcon: SlotsIcon,
36+
closeIcon: SlotsIcon
3737
},
3838

3939
slotProps: {
40-
closeButton: slotsButtonProps,
41-
closeIcon: slotsIconProps,
40+
closeButton: {
41+
...componentsButtonProps,
42+
...slotsButtonProps
43+
},
44+
45+
closeIcon: slotsIconProps
46+
}
47+
},
48+
},
49+
});
50+
51+
fn({
52+
MuiAlert: {
53+
defaultProps: {
54+
slots: {
55+
closeButton: SlotsButton,
56+
closeIcon: SlotsIcon
4257
},
58+
59+
slotProps: {
60+
closeButton: {
61+
...componentsButtonProps,
62+
...slotsButtonProps
63+
},
64+
65+
closeIcon: {
66+
...componentsIconProps,
67+
...slotsIconProps
68+
}
69+
}
4370
},
4471
},
4572
});

packages/mui-codemod/src/deprecations/slider-props/slider-props.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe('@mui/codemod', () => {
3131
const actual = transform(
3232
{ source: read('./test-cases/theme.actual.js') },
3333
{ jscodeshift },
34-
{ printOptions: { trailingComma: true } },
34+
{ printOptions: { trailingComma: false } },
3535
);
3636

3737
const expected = read('./test-cases/theme.expected.js');

packages/mui-codemod/src/deprecations/slider-props/test-cases/actual.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,9 @@ import Slider from '@mui/material/Slider';
1616
slotProps={{ rail: slotsRailProps, track: slotsTrackProps }}
1717
componentsProps={{ track: componentsTrackProps }}
1818
/>;
19+
<Slider
20+
slots={{ rail: SlotsRail, track: SlotsTrack }}
21+
components={{ Track: ComponentsTrack }}
22+
slotProps={{ rail: slotsRailProps, track: slotsTrackProps }}
23+
componentsProps={{ track: componentsTrackProps, rail: componentsRailProps}}
24+
/>;

packages/mui-codemod/src/deprecations/slider-props/test-cases/expected.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,16 @@ import Slider from '@mui/material/Slider';
1717
}} />;
1818
<Slider
1919
slots={{ rail: SlotsRail, track: SlotsTrack }}
20-
slotProps={{ rail: slotsRailProps, track: slotsTrackProps }} />;
20+
slotProps={{ rail: slotsRailProps, track: {
21+
...componentsTrackProps,
22+
...slotsTrackProps
23+
} }} />;
24+
<Slider
25+
slots={{ rail: SlotsRail, track: SlotsTrack }}
26+
slotProps={{ track: {
27+
...componentsTrackProps,
28+
...slotsTrackProps
29+
}, rail: {
30+
...componentsRailProps,
31+
...slotsRailProps
32+
} }} />;

packages/mui-codemod/src/deprecations/slider-props/test-cases/theme.actual.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,14 @@ fn({
2828
},
2929
},
3030
});
31+
32+
fn({
33+
MuiSlider: {
34+
defaultProps: {
35+
components: { Track: ComponentsTrack },
36+
slots: { rail: SlotsRail, track: SlotsTrack },
37+
componentsProps: { track: componentsTrackProps, rail: componentsRailProps },
38+
slotProps: { rail: slotsRailProps, track: slotsTrackProps },
39+
},
40+
},
41+
});

packages/mui-codemod/src/deprecations/slider-props/test-cases/theme.expected.js

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ fn({
22
MuiSlider: {
33
defaultProps: {
44
slots: {
5-
track: ComponentsTrack,
5+
track: ComponentsTrack
66
},
77

88
slotProps: {
9-
track: componentsTrackProps,
10-
},
9+
track: componentsTrackProps
10+
}
1111
},
1212
},
1313
});
@@ -17,13 +17,13 @@ fn({
1717
defaultProps: {
1818
slots: {
1919
track: ComponentsTrack,
20-
rail: SlotsRail,
20+
rail: SlotsRail
2121
},
2222

2323
slotProps: {
2424
track: componentsTrackProps,
25-
rail: slotsRailProps,
26-
},
25+
rail: slotsRailProps
26+
}
2727
},
2828
},
2929
});
@@ -33,13 +33,40 @@ fn({
3333
defaultProps: {
3434
slots: {
3535
track: SlotsTrack,
36-
rail: SlotsRail,
36+
rail: SlotsRail
3737
},
3838

3939
slotProps: {
40-
track: slotsTrackProps,
41-
rail: slotsRailProps,
40+
track: {
41+
...componentsTrackProps,
42+
...slotsTrackProps
43+
},
44+
45+
rail: slotsRailProps
46+
}
47+
},
48+
},
49+
});
50+
51+
fn({
52+
MuiSlider: {
53+
defaultProps: {
54+
slots: {
55+
track: SlotsTrack,
56+
rail: SlotsRail
4257
},
58+
59+
slotProps: {
60+
track: {
61+
...componentsTrackProps,
62+
...slotsTrackProps
63+
},
64+
65+
rail: {
66+
...componentsRailProps,
67+
...slotsRailProps
68+
}
69+
}
4370
},
4471
},
4572
});

0 commit comments

Comments
 (0)