auth
Mon May 01 2023 13:46:04 GMT+0000 (Coordinated Universal Time)
Saved by @preston #javascript
import React, { useEffect, useState } from "react";
import { Routes, Route, Navigate } from "react-router-dom";
import Topbar from "./scenes/global/Topbar";
import Dashboard from "./scenes/dashboard";
import DashboardSales from "./scenes/dashboardsales/index";
import DashboardMerchant from "./scenes/dashboardmerchandiser/index";
import Contacts from "./scenes/contacts/index";
import MerchantInfo from "./scenes/contacts/app"
import Form from "./scenes/form/index.js";
import Merchant from "./scenes/merchant/app";
import { CssBaseline, ThemeProvider } from "@mui/material";
import { ColorModeContext, useMode } from "./theme";
import Calendar from "./scenes/calendar/calendar";
import GoogleMap from "./scenes/maps/maps";
import RoutePlan from "./scenes/routeplan/RoutePlan";
import Home from './Home'
import SignUpAdmin from "./SignAdmin";
import LoginAdmin from "./LoginAdmin";
import LoginSales from "./LoginSales";
import LoginMerchant from "./LoginMerchant";
function App() {
const [theme, colorMode] = useMode();
const [isSidebar, setIsSidebar] = useState(true);
const [isAuthenticated, setIsAuthenticated] = useState(false);
useEffect(() => {
const token = localStorage.getItem("jwt");
console.log({token});
if (!token) {
setIsAuthenticated(false);
} else {
setIsAuthenticated(true);
}
}, []);
return (
<ColorModeContext.Provider value={colorMode}>
<ThemeProvider theme={theme}>
<CssBaseline />
<div className="app">
<main className="content">
<Topbar setIsSidebar={setIsSidebar} />
<Routes>
{/* protect routesclear */}
<Route path="/admin" element={isAuthenticated?<Navigate replace to="/admin" />: <Navigate replace to="/" />} />
<Route path="/sales" element={isAuthenticated?<Navigate replace to="/sales" />: <Navigate replace to="/" />} />
<Route path="/merchant" element={isAuthenticated?<Navigate replace to="/merchant" />: <Navigate replace to="/" />} />
<Route path="/contacts" element={isAuthenticated?<Navigate replace to="/contacts" />: <Navigate replace to="/" />} />
<Route path="/merchantInfo" element={isAuthenticated?<Navigate replace to="/merchantInfo" />: <Navigate replace to="/" />} />
<Route path="/form" element={isAuthenticated?<Navigate replace to="/form" />: <Navigate replace to="/" />} />
<Route path="/form-merchant" element={isAuthenticated?<Navigate replace to="/form-merchant" />: <Navigate replace to="/" />} />
<Route path="/calendar" element={isAuthenticated?<Navigate replace to="/calendar" />: <Navigate replace to="/" />} />
<Route path="/maps" element={isAuthenticated?<Navigate replace to="/maps" />: <Navigate replace to="/" />} />
<Route path="/routeplans" element={isAuthenticated?<Navigate replace to="/routeplans" />: <Navigate replace to="/" />} />
<Route path ="/" element={<Home/>}/>
<Route path="/signup-admin" element={<SignUpAdmin />} />
<Route path="/admin-log" element={<LoginAdmin />} />
<Route path="/sales-log" element={<LoginSales />} />
<Route path="/merchant-log" element={<LoginMerchant />} />
<Route path="/admin" element={<Dashboard />} />
<Route path="/sales" element={<DashboardSales />} />
<Route path="/merchant" element={<DashboardMerchant />} />
<Route path="/contacts" element={<Contacts />} />
<Route path="/merchantInfo" element={<MerchantInfo />} />
<Route path="/form" element={<Form />} />
<Route path="/form-merchant" element={<Merchant />} />
<Route path="/calendar" element={<Calendar />} />
<Route path="/maps" element={<GoogleMap/>}/>
<Route path="/routeplans" element={<RoutePlan />}/>
</Routes>
</main>
</div>
</ThemeProvider>
</ColorModeContext.Provider>
);
}
export default App;



Comments