import { Theme } from '@mui/material/styles'; import Box from '@mui/material/Box'; import Drawer from '@mui/material/Drawer'; import SwipeableDrawer from '@mui/material/SwipeableDrawer'; import Toolbar from '@mui/material/Toolbar'; import useMediaQuery from '@mui/material/useMediaQuery'; import React, { FC, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import browser from 'scripts/browser'; import { DRAWER_WIDTH } from './AppDrawer'; import { isTabPath } from '../tabs/tabRoutes'; export interface ResponsiveDrawerProps { open: boolean onClose: () => void onOpen: () => void } const ResponsiveDrawer: FC = ({ children, open = false, onClose, onOpen }) => { const location = useLocation(); const isSmallScreen = useMediaQuery((theme: Theme) => theme.breakpoints.up('sm')); const isLargeScreen = useMediaQuery((theme: Theme) => theme.breakpoints.up('lg')); const isTallToolbar = isTabPath(location.pathname) && !isLargeScreen; const getToolbarStyles = useCallback((theme: Theme) => ({ marginBottom: isTallToolbar ? theme.spacing(6) : 0 }), [ isTallToolbar ]); return ( isSmallScreen ? ( /* DESKTOP DRAWER */ {children} ) : ( /* MOBILE DRAWER */ {children} )); }; export default ResponsiveDrawer;