* forms for fleet can filters * unit tests for fleet filters * removing warnings * updating regex * added fleet details page * fleet pages * smoothed out bugs * fleets done * working update, delete vehicles * finished mocks, still need snapshots and context tests * contexts done * snapshot tests * updating code smells * smells
219 lines
6.9 KiB
JavaScript
219 lines
6.9 KiB
JavaScript
import React, { Suspense } from "react";
|
|
import { Switch } from "react-router-dom";
|
|
|
|
import { AuthRoute, TYPES } from "../Routes/AuthRoute";
|
|
import { MessageBar } from "../MessageBar";
|
|
import { useUserContext } from "../Contexts/UserContext";
|
|
import { Roles } from "../../utils/roles";
|
|
|
|
const BatteryDatascope = React.lazy(() => import("../Datascope/Battery"));
|
|
const CANFilterCreate = React.lazy(() => import("../CANFilter/Add"))
|
|
const CANFilterUpdate = React.lazy(() => import("../CANFilter/Update"))
|
|
const CarsList = React.lazy(() => import("../Cars/List"));
|
|
const CarStatus = React.lazy(() => import("../Cars/Status"));
|
|
const CarUpdateStatus = React.lazy(() => import("../Cars/UpdateStatus"));
|
|
const Datascope = React.lazy(() => import("../Datascope/Home"));
|
|
const FleetsList = React.lazy(() => import("../Fleets/Table"));
|
|
const FleetStatus = React.lazy(() => import("../Fleets/Status"));
|
|
const FleetAddForm = React.lazy(() => import("../Fleets/Add"));
|
|
const FleetUpdateForm = React.lazy(() => import("../Fleets/Update"));
|
|
const FleetAddVehicleForm = React.lazy(() => import("../Fleets/Status/Vehicles/Add"));
|
|
const FleetAddCANFilterForm = React.lazy(() => import("../Fleets/Status/CANFilters/Add"));
|
|
const FleetUpdateCANFilterForm = React.lazy(() => import("../Fleets/Status/CANFilters/Update"));
|
|
const Home = React.lazy(() => import("../Home"));
|
|
const Manifests = React.lazy(() => import("../Manifest/List"));
|
|
const ManifestDeploy = React.lazy(() => import("../Manifest/Deploy"));
|
|
const ManifestStatus = React.lazy(() => import("../Manifest/Status"));
|
|
const ManifestCreate = React.lazy(() => import("../Manifest/Create"));
|
|
const PageNotFound = React.lazy(() => import("../404"));
|
|
const SSOForm = React.lazy(() => import("../SSOForm"));
|
|
const VehicleAddForm = React.lazy(() => import("../Cars/Add"));
|
|
const VehicleUpdateForm = React.lazy(() => import("../Cars/Update"))
|
|
|
|
const SiteRoutes = () => {
|
|
const { token, groups } = useUserContext();
|
|
return (
|
|
<Suspense fallback={"Loading..."}>
|
|
<MessageBar />
|
|
<Switch>
|
|
<AuthRoute
|
|
path="/"
|
|
exact
|
|
render={() => <SSOForm />}
|
|
type={TYPES.GUEST}
|
|
token={token}
|
|
/>
|
|
<AuthRoute
|
|
path="/datascope/battery"
|
|
render={() => <BatteryDatascope />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/datascope"
|
|
render={() => <Datascope />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/filter-add"
|
|
render={() => <CANFilterCreate />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/filter-update"
|
|
render={() => <CANFilterUpdate />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleets"
|
|
render={() => <FleetsList />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet/:name/vehicle-add"
|
|
render={() => <FleetAddVehicleForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet/:name/filter-add"
|
|
render={() => <FleetAddCANFilterForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet/:name/filter-update"
|
|
render={() => <FleetUpdateCANFilterForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet/:name"
|
|
render={() => <FleetStatus />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet-add"
|
|
render={() => <FleetAddForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/fleet-update"
|
|
render={() => <FleetUpdateForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/home"
|
|
render={() => <Home />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
/>
|
|
<AuthRoute
|
|
path="/packages"
|
|
render={() => <Manifests />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/package-create"
|
|
render={() => <ManifestCreate />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/package-deploy/:manifest_id"
|
|
render={() => <ManifestDeploy />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/package-status/:manifest_id"
|
|
render={() => <ManifestStatus />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/vehicles"
|
|
render={() => <CarsList />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/vehicle-add"
|
|
render={() => <VehicleAddForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/vehicle-status/:vin/:carupdateid"
|
|
render={() => <CarUpdateStatus />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/vehicle-status/:vin"
|
|
render={() => <CarStatus />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.READ, Roles.CREATE]}
|
|
/>
|
|
<AuthRoute
|
|
path="/vehicle-update"
|
|
render={() => <VehicleUpdateForm />}
|
|
type={TYPES.PROTECTED}
|
|
token={token}
|
|
groups={groups}
|
|
roles={[Roles.CREATE]}
|
|
/>
|
|
<PageNotFound />
|
|
</Switch>
|
|
</Suspense>
|
|
);
|
|
};
|
|
|
|
export default SiteRoutes;
|