/** ========================================================= * Material Dashboard 2 PRO React - v2.0.0 ========================================================= * Product Page: https://www.creative-tim.com/product/material-dashboard-pro-react * Copyright 2021 Creative Tim (https://www.creative-tim.com) Coded by www.creative-tim.com ========================================================= * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ import { useState, useEffect } from 'react'; // react-router components import { Routes, Route, Navigate, useLocation } from 'react-router-dom'; import LoginScreen from 'pages/authentication'; // @mui material components import { ThemeProvider } from '@mui/material/styles'; import CssBaseline from '@mui/material/CssBaseline'; // import Icon from '@mui/material/Icon'; // Material Dashboard 2 PRO React components // import MDBox from 'components/MDBox'; // Material Dashboard 2 PRO React example components import Sidenav from 'components/Sidenav'; // import Configurator from 'components/Configurator'; // Material Dashboard 2 PRO React themes import theme from 'assets/theme'; // Material Dashboard 2 PRO React Dark Mode themes import themeDark from 'assets/theme-dark'; // Material Dashboard 2 PRO React contexts import { useMaterialUIController, setMiniSidenav /*, setOpenConfigurator*/ } from 'context'; // Images // import brandWhite from 'assets/images/logo-ct.png'; // import brandDark from 'assets/images/logo-ct-dark.png'; import { Provider } from 'react-redux'; import { PersistGate } from 'redux-persist/integration/react'; import PublicRoutes from 'routes/PublicRoutes'; import reduxStore from './redux/Store'; import { protectedRoutes as routes } from './routes/index'; import PrivateRoute from './routes/PrivateRoute'; export default function App() { const [controller, dispatch] = useMaterialUIController(); const { miniSidenav, direction, layout, // openConfigurator, sidenavColor, // transparentSidenav, // whiteSidenav, darkMode } = controller; const [onMouseEnter, setOnMouseEnter] = useState(false); const { pathname } = useLocation(); // Open sidenav when mouse enter on mini sidenav const handleOnMouseEnter = () => { if (miniSidenav && !onMouseEnter) { setMiniSidenav(dispatch, false); setOnMouseEnter(true); } }; // Close sidenav when mouse leave mini sidenav const handleOnMouseLeave = () => { if (onMouseEnter) { setMiniSidenav(dispatch, true); setOnMouseEnter(false); } }; // Change the openConfigurator state // const handleConfiguratorOpen = () => setOpenConfigurator(dispatch, !openConfigurator); // Setting the dir attribute for the body element useEffect(() => { document.body.setAttribute('dir', direction); }, [direction]); // Setting page scroll to 0 when changing the route useEffect(() => { document.documentElement.scrollTop = 0; document.scrollingElement.scrollTop = 0; }, [pathname]); const getRoutes = (allRoutes) => allRoutes.map((route) => { if (route.collapse) { return getRoutes(route.collapse); } if (route.route) { return ( } key={route.key} /> ); } return null; }); // const configsButton = ( // // // settings // // // ); return ( {layout === 'dashboard' && ( <> {/* */} {/* {configsButton} */} )} {/* {layout === 'vr' && } */} } />} /> {getRoutes(routes)} } /> ); }