|
import { styled } from '@mui/material/styles'; |
|
import { drawerClasses } from '@mui/material/Drawer'; |
|
import MuiSwipeableDrawer from '@mui/material/SwipeableDrawer'; |
|
const drawerWidth = 300; |
|
const openedMixin = (theme) => ({ |
|
transition: theme.transitions.create('width', { |
|
easing: theme.transitions.easing.sharp, |
|
duration: theme.transitions.duration.enteringScreen, |
|
}), |
|
overflowX: 'hidden', |
|
width: '100vw', |
|
[theme.breakpoints.up('sm')]: { |
|
width: drawerWidth, |
|
}, |
|
}); |
|
const closedMixin = (theme) => ({ |
|
transition: theme.transitions.create('width', { |
|
easing: theme.transitions.easing.sharp, |
|
duration: theme.transitions.duration.leavingScreen, |
|
}), |
|
overflowX: 'hidden', |
|
width: 0, |
|
[theme.breakpoints.up('sm')]: { |
|
width: `calc(${theme.spacing(9)} + 1px)`, |
|
}, |
|
}); |
|
export const Drawer = styled(MuiSwipeableDrawer)(({ theme, open }) => ({ |
|
width: drawerWidth, |
|
flexShrink: 0, |
|
whiteSpace: 'nowrap', |
|
boxSizing: 'border-box', |
|
...(open && { |
|
...openedMixin(theme), |
|
[`& .${drawerClasses.paper}`]: { |
|
...openedMixin(theme), |
|
display: 'flex', |
|
justifyContent: 'space-between', |
|
}, |
|
}), |
|
...(!open && { |
|
...closedMixin(theme), |
|
[`& .${drawerClasses.paper}`]: { |
|
...closedMixin(theme), |
|
display: 'flex', |
|
justifyContent: 'space-between', |
|
}, |
|
}), |
|
})); |
|
|