import { lazy, Suspense } from "react"; import LoadingScreen from "../app/LoadingScreen"; import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom"; import { useAuth0 } from "@auth0/auth0-react"; import Header from "app/Header"; import Logout from "pages/Logout"; import { ErrorBoundary } from "react-error-boundary"; import { getWhitelabel } from "services/whiteLabel"; import Ventilation from "pages/VentEditor"; import { useGlobalState } from "providers"; const DeviceHistory = lazy(() => import("pages/DeviceHistory")); const DevicePage = lazy(() => import("pages/Device")); const Devices = lazy(() => import("pages/Devices")); const GroupsPage = lazy(() => import("pages/Groups")); const GroupPage = lazy(() => import("pages/Group")); const Teams = lazy(() => import("pages/Teams")); const Users = lazy(() => import("pages/Users")); const TeamPage = lazy(() => import("pages/Team")); const BinPage = lazy(() => import("pages/Bin")); const Bins = lazy(() => import("pages/Bins")); const Mines = lazy(() => import("pages/Mines")); const DeviceComponent = lazy(() => import("pages/DeviceComponent")); const FieldMap = lazy(() => import("pages/FieldMap")); const GrainBag = lazy(() => import("pages/grainBag")); const Terminals = lazy(() => import("pages/Terminals")); const Gate = lazy(() => import("pages/Gate")); const AviationMap = lazy(() => import("pages/AviationMap")); const ConstructionSiteMap = lazy(() => import("pages/ConstructionSiteMap")); const Sites = lazy(() => import("pages/Sites")); const Site = lazy(() => import("pages/Site")); const Heaters = lazy(() => import("pages/Heaters")); const Heater = lazy(() => import("pages/Heater")); const Tasks = lazy(() => import("pages/Tasks")); const Transactions = lazy(() => import("pages/Transactions")); const BinCableEstimator = lazy(() => import("pages/BinCableEstimator")); const APIDocs = lazy(() => import("pages/APIDocs")); const Fields = lazy(()=> import("pages/Fields")); const Marketplace = lazy(() => import("userFeatures/UserFeatures")) export const appendToUrl = (appendage: number | string) => { const basePath = location.pathname.replace(/\/$/, ""); return(`${basePath}/${appendage}`); }; export default function Router() { const { isAuthenticated, loginWithRedirect, isLoading } = useAuth0(); const whiteLabel = getWhitelabel(); const [{ user }] = useGlobalState(); const RelativeRoutes = () => { return ( } /> } /> } /> } /> } /> } /> } /> } /> ) } const TeamsRoute = () => { return ( } /> } /> } /> ); }; const DevicesRoute = () => { return (
} /> } /> } /> } /> } />
); }; const BinsRoute = () => { return (
} /> } /> {/* } /> } /> */} } />
); }; const MinesRoute = () => { return (
} /> } /> } />
); }; const TerminalGatesRoute = () => { return (
} /> } /> } />
); }; const JobsitesRoute = () => { return (
} /> } /> } />
); }; const ObjectHeatersRoute = () => { return (
} /> } /> } />
); }; const GroupsRoute = () => { return (
} /> } /> } /> } /> } />
); }; if (isLoading) return null; if (!isAuthenticated) { loginWithRedirect() return ( null ) } function ErrorFallback({ error }: { error: Error }) { return
Something went wrong: {error.stack}
; } return ( }>
{/* Redirects */} } /> {/* } /> */} {/* } /> */} } /> {/* Page routes */} {/* Hello!} /> */} } /> } /> } /> {user.hasFeature("installer") && } /> } {user.hasFeature("developer") && } /> } } /> } /> {/* Map pages */} } /> } /> } /> } /> } /> {/* } /> */} } /> ) }