Files
ota-admin-portal/src/components/Routes/SiteRoutes.jsx
John Wu b80a2cb8bf Release/0.0.3 to main (#254)
* CEC-2628 - Display IP in digital twin in portal (#251)

* CEC-3453 Update security dll instructions (#252)

* CEC-2752-Add-Mobile-Issue-Tracker (#250)

* first commit

* removed comments

* remove more comments

* fix build issues

* fix unused vars

* update snapshot

* fix test

* Fix connect ECONNREFUSED 127.0.0.1:80

* Test Magna side menu

* attempt to pass test

* fix test

* remove comments

* fix some code smells

* fix test

* resolve comments

* fix bug

* resolved comments

* resolve comments

* resolve comments

* update snapshot

* resolved comments

Co-authored-by: jwu-fisker <jwu@fiskerinc.com>

* Cec 2752 small fix (#253)

* first commit

* removed comments

* remove more comments

* fix build issues

* fix unused vars

* update snapshot

* fix test

* Fix connect ECONNREFUSED 127.0.0.1:80

* Test Magna side menu

* attempt to pass test

* fix test

* remove comments

* fix some code smells

* fix test

* resolve comments

* fix bug

* resolved comments

* resolve comments

* resolve comments

* update snapshot

* resolved comments

* small fix

Co-authored-by: jwu-fisker <jwu@fiskerinc.com>

Co-authored-by: Paul Adamsen <117673433+pauladamseniii@users.noreply.github.com>
Co-authored-by: das31 <31259710+das31@users.noreply.github.com>
2023-01-10 18:30:39 -08:00

304 lines
9.8 KiB
JavaScript

import React, { Suspense } from "react";
import { Switch } from "react-router-dom";
import { Permissions } from "../../utils/roles";
import { useUserContext } from "../Contexts/UserContext";
import { MessageBar } from "../MessageBar";
import { AuthRoute, TYPES } from "../Routes/AuthRoute";
const CANFilterCreate = React.lazy(() => import("../CANFilter/Add"));
const CANFilterUpdate = React.lazy(() => import("../CANFilter/Update"));
const IssuesList = React.lazy(() => import("../Issues/List"))
const IssueInfo = React.lazy(() => import("../Issues/Info"))
const CarsList = React.lazy(() => import("../Cars/List"));
const CarStatus = React.lazy(() => import("../Cars/Status"));
const CarUpdateStatus = React.lazy(() => import("../Cars/UpdateStatus"));
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 ManifestUpdate = React.lazy(() => import("../Manifest/Update"));
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 CertificateCreate = React.lazy(() => import("../Certificates/Add"));
const SecurityDLL = React.lazy(() => import("../Magna/SecurityDLL"));
const SMSSend = React.lazy(() => import("../SMS/Send"));
const SuppliersList = React.lazy(() => import("../Suppliers/List"));
const SupplierDetails = React.lazy(() => import("../Suppliers/Details"));
const Datascope = React.lazy(() => import("../Dashboard"));
const SiteRoutes = () => {
const { token, groups, providers } = useUserContext();
return (
<Suspense fallback={"Loading..."}>
<MessageBar />
<Switch>
<AuthRoute
path="/"
exact
render={() => <SSOForm />}
type={TYPES.GUEST}
token={token}
/>
<AuthRoute
path="/filter-add"
render={() => <CANFilterCreate />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/filter-update"
render={() => <CANFilterUpdate />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/fleets"
render={() => <FleetsList />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<AuthRoute
path="/fleet/:name/vehicle-add"
render={() => <FleetAddVehicleForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/fleet/:name/filter-add"
render={() => <FleetAddCANFilterForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/fleet/:name/filter-update"
render={() => <FleetUpdateCANFilterForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/fleet/:name"
render={() => <FleetStatus />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<AuthRoute
path="/fleet-add"
render={() => <FleetAddForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/fleet-update"
render={() => <FleetUpdateForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/home"
render={() => <Home />}
type={TYPES.PROTECTED}
token={token}
/>
<AuthRoute
path="/packages"
render={() => <Manifests />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaRead}
providers={providers}
/>
<AuthRoute
path="/package-deploy/:manifest_id"
render={() => <ManifestDeploy />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaCreate}
providers={providers}
/>
<AuthRoute
path="/package-status/:manifest_id"
render={() => <ManifestStatus />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaRead}
providers={providers}
/>
<AuthRoute
path="/package-update/:manifest_id"
render={() => <ManifestUpdate />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<AuthRoute
path="/issues"
render={() => <IssuesList />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<AuthRoute
path="/issue-info/:id"
render={() => <IssueInfo />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<AuthRoute
path="/vehicles"
render={() => <CarsList />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaRead}
providers={providers}
/>
<AuthRoute
path="/vehicle-add"
render={() => <VehicleAddForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/vehicle-status/:vin/:carupdateid"
render={() => <CarUpdateStatus />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaRead}
providers={providers}
/>
<AuthRoute
path="/vehicle-status/:vin"
render={() => <CarStatus />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaRead}
providers={providers}
/>
<AuthRoute
path="/vehicle-update"
render={() => <VehicleUpdateForm />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/tools/certificates/add"
render={() => <CertificateCreate />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerMagnaCertificate}
providers={providers}
/>
<AuthRoute
path="/tools/security-dll"
render={() => <SecurityDLL />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.Magna}
providers={providers}
/>
<AuthRoute
path="/tools/sms/send"
render={() => <SMSSend />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerCreate}
providers={providers}
/>
<AuthRoute
path="/suppliers"
render={() => <SuppliersList />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerSupplierAdmin}
providers={providers}
/>
<AuthRoute
path="/supplier/:email"
render={() => <SupplierDetails />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerSupplierAdmin}
providers={providers}
/>
<AuthRoute
path="/datascope"
render={() => <Datascope />}
type={TYPES.PROTECTED}
token={token}
groups={groups}
rolesPerGroup={Permissions.FiskerRead}
providers={providers}
/>
<PageNotFound />
</Switch>
</Suspense>
);
};
export default SiteRoutes;