Skip to content

Commit 22e0560

Browse files
committed
on small screen size defaults to a normal drawer
1 parent aa1bb8f commit 22e0560

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

src/components/Layout/Layout.jsx

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import PropTypes from 'prop-types';
33
import { withStyles } from 'material-ui/styles';
44
import classNames from 'classnames';
55
import Drawer from 'material-ui/Drawer';
6+
import compose from 'recompose/compose';
7+
import withWidth, { isWidthDown } from 'material-ui/utils/withWidth';
68
import controllable from 'react-controllables';
79

810
import styles from './styles';
@@ -65,13 +67,21 @@ class Layout extends React.PureComponent {
6567
footerContent,
6668
stickyFooter,
6769
footerProps,
70+
width,
6871
} = this.props;
6972

7073
// TODO change the way to overrideClasses
7174
// use classes insted of overrideClasses as material-ui
7275
const classes = { ...defaultClasses, ...overrideClasses };
7376

74-
const mainShift = drawerType === 'permanent' || (drawerOpen && drawerType === 'persistent');
77+
const smallScreen = isWidthDown('xs', width);
78+
console.log('smallScreen', smallScreen);
79+
80+
const mainShift =
81+
!smallScreen &&
82+
(drawerType === 'permanent' ||
83+
(drawerOpen && drawerType === 'persistent'));
84+
7585
const mainClassnames = classNames(
7686
classes.main,
7787
{ [`${classes.mainFixedAppBar}`]: appBarPosition === 'fixed' },
@@ -80,14 +90,17 @@ class Layout extends React.PureComponent {
8090
);
8191

8292
const appBarShift =
83-
!drawerUnder && ((drawerOpen && drawerType === 'persistent') || drawerType === 'permanent');
93+
!smallScreen &&
94+
(!drawerUnder &&
95+
((drawerOpen && drawerType === 'persistent') ||
96+
drawerType === 'permanent'));
8497

8598
const appBarClassnames = classNames(classes.appBar, {
8699
[`${classes.appBarShift}`]: appBarShift,
87100
});
88101

89102
const drawerPaperClassnames = classNames(classes.drawerPaper, {
90-
[`${classes.drawerPaperUnder}`]: drawerUnder,
103+
[`${classes.drawerPaperUnder}`]: !smallScreen && drawerUnder,
91104
});
92105

93106
return (
@@ -104,19 +117,24 @@ class Layout extends React.PureComponent {
104117
<Drawer
105118
open={drawerOpen}
106119
onRequestClose={this.handleDrawerClose}
107-
type={drawerType}
120+
type={!smallScreen && drawerType}
108121
classes={{ paper: drawerPaperClassnames }}
109122
{...drawerProps}
110123
>
111-
{drawerUnder ? <div className={classes.drawerHeader} /> : null}
124+
{!smallScreen && drawerUnder ? <div className={classes.drawerHeader} /> : null}
112125
{drawerContent}
113126
</Drawer>
114127
) : null}
115128
<main className={mainClassnames}>{children}</main>
116-
{footerContent ? <Footer {...footerProps}>{footerContent}</Footer> : null}
129+
{footerContent ? (
130+
<Footer {...footerProps}>{footerContent}</Footer>
131+
) : null}
117132
</div>
118133
);
119134
}
120135
}
121136

122-
export default controllable(withStyles(styles)(Layout), ['drawerOpen']);
137+
export default controllable(
138+
compose(withStyles(styles), withWidth())(Layout),
139+
['drawerOpen'],
140+
);

0 commit comments

Comments
 (0)