Skip to content

Commit

Permalink
[Grid] fix: missing classes for breakpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
greguintow committed Jan 9, 2021
1 parent cb49375 commit aa5377d
Showing 1 changed file with 40 additions and 10 deletions.
50 changes: 40 additions & 10 deletions packages/material-ui/src/Grid/Grid.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,15 @@ function generateGutter(theme, breakpoint) {
return styles;
}

function removeKeys(obj, filter) {
const newObj = {};
Object.assign(newObj, obj);
for (let i = 0; i < filter.length; i += 1) {
delete newObj[filter[i]];
}
return newObj;
}

// Default CSS values
// flex: '0 1 auto',
// flexDirection: 'row',
Expand Down Expand Up @@ -214,16 +223,37 @@ export const styles = (theme) => ({
justifyContent: 'space-evenly',
},
...generateGutter(theme, 'xs'),
...theme.breakpoints.keys.reduce((accumulator, key) => {
// Use side effect over immutability for better performance.
generateGrid(accumulator, theme, key);
return accumulator;
}, {}),
...theme.breakpoints.keys.reduce((accumulator, key) => {
// Use side effect over immutability for better performance.
generateGrid(accumulator, theme, key, true);
return accumulator;
}, {}),
...(() => {
const finalStyles = {};

const mediaQueries = theme.breakpoints.keys.map((breakpoint) =>
theme.breakpoints.up(breakpoint),
);

const stylesWithoutFullWidth = theme.breakpoints.keys.reduce((accumulator, key) => {
// Use side effect over immutability for better performance.
generateGrid(accumulator, theme, key);
return accumulator;
}, {});
const stylesFullWidth = theme.breakpoints.keys.reduce((accumulator, key) => {
// Use side effect over immutability for better performance.
generateGrid(accumulator, theme, key, true);
return accumulator;
}, {});
Object.assign(finalStyles, {
...removeKeys(stylesWithoutFullWidth, mediaQueries),
...removeKeys(stylesFullWidth, mediaQueries),
});
mediaQueries.forEach((query) => {
Object.assign(finalStyles, {
[query]: {
...stylesWithoutFullWidth[query],
...stylesFullWidth[query],
},
});
});
return finalStyles;
})(),
});

const Grid = React.forwardRef(function Grid(props, ref) {
Expand Down

0 comments on commit aa5377d

Please sign in to comment.