Skip to content

Commit 099c901

Browse files
authored
Merge pull request #474 from rvsia/responsivemenu
Make menu on small screen temporary
2 parents 69c29a0 + 0b5c59a commit 099c901

File tree

1 file changed

+57
-28
lines changed
  • packages/react-renderer-demo/src/app/src/components

1 file changed

+57
-28
lines changed

packages/react-renderer-demo/src/app/src/components/layout.js

Lines changed: 57 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import Drawer from '@material-ui/core/Drawer';
66
import Toolbar from '@material-ui/core/Toolbar';
77
import Divider from '@material-ui/core/Divider';
88
import Badge from '@material-ui/core/Badge';
9+
import Hidden from '@material-ui/core/Hidden';
910
import NotificationsIcon from '@material-ui/icons/Notifications';
1011
import IconButton from '@material-ui/core/IconButton';
1112
import MenuIcon from '@material-ui/icons/Menu';
@@ -88,14 +89,18 @@ const useStyles = makeStyles((theme) => ({
8889
easing: theme.transitions.easing.sharp,
8990
duration: theme.transitions.duration.leavingScreen
9091
}),
91-
marginLeft: -drawerWidth
92+
[theme.breakpoints.up('md')]: {
93+
marginLeft: -drawerWidth
94+
}
9295
},
9396
contentShift: {
94-
transition: theme.transitions.create('margin', {
95-
easing: theme.transitions.easing.easeOut,
96-
duration: theme.transitions.duration.enteringScreen
97-
}),
98-
marginLeft: 0
97+
[theme.breakpoints.up('md')]: {
98+
transition: theme.transitions.create('margin', {
99+
easing: theme.transitions.easing.easeOut,
100+
duration: theme.transitions.duration.enteringScreen
101+
}),
102+
marginLeft: 0
103+
}
99104
},
100105
menuIcons: {
101106
fill: theme.palette.common.white
@@ -106,25 +111,28 @@ const useStyles = makeStyles((theme) => ({
106111
backgroundImage: 'linear-gradient(135deg, #41108E 0%, rgba(165, 37, 193, 1) 44.76%, #FC9957 100%)',
107112
backgroundSize: '100% 100vh',
108113
backgroundRepeat: 'no-repeat',
109-
zIndex: 900
114+
zIndex: 900,
115+
paddingLeft: 48
110116
},
111117
toolbarOverride: {
112118
zIndex: 1000
113119
},
114120
appBarShift: {
115-
width: `calc(100% - ${drawerWidth}px)`,
116-
marginLeft: drawerWidth,
117-
transition: theme.transitions.create(['margin', 'width'], {
118-
easing: theme.transitions.easing.easeOut,
119-
duration: theme.transitions.duration.enteringScreen
120-
})
121+
[theme.breakpoints.up('md')]: {
122+
width: `calc(100% - ${drawerWidth}px)`,
123+
marginLeft: drawerWidth,
124+
transition: theme.transitions.create(['margin', 'width'], {
125+
easing: theme.transitions.easing.easeOut,
126+
duration: theme.transitions.duration.enteringScreen
127+
})
128+
}
121129
}
122130
}));
123131

124132
const Layout = ({ children }) => {
125133
const router = useRouter();
126134
const classes = useStyles();
127-
const [open, setOpen] = useState(router.pathname !== '/');
135+
const [open, setOpen] = useState(false);
128136
const [links, setLinks] = useState({});
129137
const searchRef = useRef(null);
130138
const anchorRef = useRef(null);
@@ -133,18 +141,23 @@ const Layout = ({ children }) => {
133141

134142
useEffect(() => {
135143
setLinks(findConnectedLinks(router.asPath, flatSchema) || {});
144+
if (window && window.innerWidth > 960 && router.pathname !== '/') {
145+
setOpen(true);
146+
}
136147
}, [router.asPath]);
137148

138149
const handleDrawerOpen = () => {
139150
setOpen(true);
140-
setTimeout(() => searchRef.current.focus(), 500);
151+
if (searchRef && searchRef.current) {
152+
setTimeout(() => searchRef.current.focus(), 500);
153+
}
141154
};
142155

143156
function handleDrawerClose() {
144157
setOpen(false);
145158
}
146159

147-
const handleToggle = (notificationDates) => {
160+
const handleToggle = () => {
148161
setNewMessages(0);
149162
setOpenNotifiation(!openNotification);
150163
};
@@ -168,18 +181,34 @@ const Layout = ({ children }) => {
168181
<MenuIcon className={classes.menuIcons} />
169182
</IconButton>
170183
</Toolbar>
171-
<Drawer
172-
className={classes.drawer}
173-
variant="persistent"
174-
anchor="left"
175-
open={open}
176-
classes={{
177-
paper: classes.drawerPaper
178-
}}
179-
>
180-
<Navigation searchRef={searchRef} closeNav={handleDrawerClose} />
181-
<Divider />
182-
</Drawer>
184+
<Hidden smDown>
185+
<Drawer
186+
className={classes.drawer}
187+
variant="persistent"
188+
anchor="left"
189+
open={open}
190+
classes={{
191+
paper: classes.drawerPaper
192+
}}
193+
>
194+
<Navigation searchRef={searchRef} closeNav={handleDrawerClose} />
195+
<Divider />
196+
</Drawer>
197+
</Hidden>
198+
<Hidden mdUp>
199+
<Drawer
200+
className={classes.drawer}
201+
variant="temporary"
202+
anchor="left"
203+
open={open}
204+
classes={{
205+
paper: classes.drawerPaper
206+
}}
207+
>
208+
<Navigation closeNav={handleDrawerClose} />
209+
<Divider />
210+
</Drawer>
211+
</Hidden>
183212
<div
184213
className={clsx(classes.drawerHeader, classes.appBar, classes.rightAppBar, {
185214
[classes.appBarShift]: open

0 commit comments

Comments
 (0)