diff --git a/src/App.jsx b/src/App.jsx index a3136bc..7e061df 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,65 +1,84 @@ -import { useState } from 'react' -import './App.css' +import { useState } from 'react'; +import { Box, useMediaQuery } from '@mui/material'; +import { useTheme } from '@mui/material/styles'; import AppHeader from './components/AppHeader'; +import MenuDrawerPrivate, { OPEN_WIDTH, MINI_WIDTH } from './components/MenuDrawerPrivate'; import Footer from './components/Footer'; -import Box from '@mui/material/Box'; - -import Clients from './private/clients/Clients'; import Dashboard from './private/dashboard/Dashboard'; import UserManagement from './private/users/UserManagement'; - import LoginPage from './private/LoginPage'; import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; + import { useAuth } from './context/AuthContext'; +const DRAWER_EXPANDED = OPEN_WIDTH; +const DRAWER_COLLAPSED = MINI_WIDTH; +const APPBAR_HEIGHT = 64; + function PrivateRoute({ children }) { const { user } = useAuth(); return user ? children : ; } -function App() { +export default function App() { + const theme = useTheme(); + const isMobile = useMediaQuery('(max-width:900px)'); const [zone, setZone] = useState('public'); // public | restricted | private + + const [drawerExpanded, setDrawerExpanded] = useState(true); const [currentView, setCurrentView] = useState('Dashboard'); + const mainLeft = isMobile ? 0 : (drawerExpanded ? DRAWER_EXPANDED : DRAWER_COLLAPSED); + return ( <> + + + { + setCurrentView(value === '/users/UserManagement' ? 'UserManagement' : value); + }} + onExpandedChange={(expanded) => setDrawerExpanded(expanded)} + /> + + + } /> - setCurrentView(view)} /> - + + {zone === 'private' && } + {zone === 'restricted' && } - - - } /> + {zone === 'public' && currentView === 'Dashboard' && } - - {zone === 'private' && } - {zone === 'restricted' && } - - {zone === 'public' && currentView === 'Dashboard' && } - - {zone === 'public' && currentView === 'UserManagement' && } - - } - /> - - - - -