import { useState } from 'react'; import { Outlet } from 'react-router-dom'; // @mui import { styled } from '@mui/material/styles'; import { Box } from '@mui/material'; // hooks import useSettings from '../../hooks/useSettings'; import useResponsive from '../../hooks/useResponsive'; import useCollapseDrawer from '../../hooks/useCollapseDrawer'; // config import { HEADER, NAVBAR } from '../../config'; // import DashboardHeader from './header'; import NavbarVertical from './navbar/NavbarVertical'; import NavbarHorizontal from './navbar/NavbarHorizontal'; import useLocalStorage from '../../hooks/useLocalStorage'; import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate'; import useAuth from '../../hooks/useAuth'; // ---------------------------------------------------------------------- type MainStyleProps = { collapseClick: boolean; }; const MainStyle = styled('main', { shouldForwardProp: (prop) => prop !== 'collapseClick', })(({ collapseClick, theme }) => ({ flexGrow: 1, paddingTop: HEADER.MOBILE_HEIGHT + 24, paddingBottom: HEADER.MOBILE_HEIGHT + 24, [theme.breakpoints.up('lg')]: { paddingLeft: 16, paddingRight: 16, paddingTop: HEADER.DASHBOARD_DESKTOP_HEIGHT + 24, paddingBottom: HEADER.DASHBOARD_DESKTOP_HEIGHT + 24, width: `calc(100% - ${NAVBAR.DASHBOARD_WIDTH}px)`, transition: theme.transitions.create('margin-left', { duration: theme.transitions.duration.shorter, }), ...(collapseClick && { marginLeft: NAVBAR.DASHBOARD_COLLAPSE_WIDTH, }), }, })); // ---------------------------------------------------------------------- export default function DashboardLayout() { const { collapseClick, isCollapse } = useCollapseDrawer(); const { themeLayout } = useSettings(); const { user } = useAuth(); const isDesktop = useResponsive('up', 'lg'); const [open, setOpen] = useState(false); const verticalLayout = themeLayout === 'vertical'; const [corporateValue, setCorporateValue] = useLocalStorage( 'corporateValue', `${user.corporate.id}` ); const value = { corporateValue, setCorporateValue }; if (verticalLayout) { return ( <> setOpen(true)} verticalLayout={verticalLayout} /> {isDesktop ? ( ) : ( setOpen(false)} /> )} ); } return ( setOpen(true)} /> setOpen(false)} /> ); }