@@ -3,6 +3,8 @@ import PropTypes from 'prop-types';
3
3
import { withStyles } from 'material-ui/styles' ;
4
4
import classNames from 'classnames' ;
5
5
import Drawer from 'material-ui/Drawer' ;
6
+ import compose from 'recompose/compose' ;
7
+ import withWidth , { isWidthDown } from 'material-ui/utils/withWidth' ;
6
8
import controllable from 'react-controllables' ;
7
9
8
10
import styles from './styles' ;
@@ -65,13 +67,21 @@ class Layout extends React.PureComponent {
65
67
footerContent,
66
68
stickyFooter,
67
69
footerProps,
70
+ width,
68
71
} = this . props ;
69
72
70
73
// TODO change the way to overrideClasses
71
74
// use classes insted of overrideClasses as material-ui
72
75
const classes = { ...defaultClasses , ...overrideClasses } ;
73
76
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
+
75
85
const mainClassnames = classNames (
76
86
classes . main ,
77
87
{ [ `${ classes . mainFixedAppBar } ` ] : appBarPosition === 'fixed' } ,
@@ -80,14 +90,17 @@ class Layout extends React.PureComponent {
80
90
) ;
81
91
82
92
const appBarShift =
83
- ! drawerUnder && ( ( drawerOpen && drawerType === 'persistent' ) || drawerType === 'permanent' ) ;
93
+ ! smallScreen &&
94
+ ( ! drawerUnder &&
95
+ ( ( drawerOpen && drawerType === 'persistent' ) ||
96
+ drawerType === 'permanent' ) ) ;
84
97
85
98
const appBarClassnames = classNames ( classes . appBar , {
86
99
[ `${ classes . appBarShift } ` ] : appBarShift ,
87
100
} ) ;
88
101
89
102
const drawerPaperClassnames = classNames ( classes . drawerPaper , {
90
- [ `${ classes . drawerPaperUnder } ` ] : drawerUnder ,
103
+ [ `${ classes . drawerPaperUnder } ` ] : ! smallScreen && drawerUnder ,
91
104
} ) ;
92
105
93
106
return (
@@ -104,19 +117,24 @@ class Layout extends React.PureComponent {
104
117
< Drawer
105
118
open = { drawerOpen }
106
119
onRequestClose = { this . handleDrawerClose }
107
- type = { drawerType }
120
+ type = { ! smallScreen && drawerType }
108
121
classes = { { paper : drawerPaperClassnames } }
109
122
{ ...drawerProps }
110
123
>
111
- { drawerUnder ? < div className = { classes . drawerHeader } /> : null }
124
+ { ! smallScreen && drawerUnder ? < div className = { classes . drawerHeader } /> : null }
112
125
{ drawerContent }
113
126
</ Drawer >
114
127
) : null }
115
128
< main className = { mainClassnames } > { children } </ main >
116
- { footerContent ? < Footer { ...footerProps } > { footerContent } </ Footer > : null }
129
+ { footerContent ? (
130
+ < Footer { ...footerProps } > { footerContent } </ Footer >
131
+ ) : null }
117
132
</ div >
118
133
) ;
119
134
}
120
135
}
121
136
122
- export default controllable ( withStyles ( styles ) ( Layout ) , [ 'drawerOpen' ] ) ;
137
+ export default controllable (
138
+ compose ( withStyles ( styles ) , withWidth ( ) ) ( Layout ) ,
139
+ [ 'drawerOpen' ] ,
140
+ ) ;
0 commit comments