source: frontend/src/App.js@ badbc79

Last change on this file since badbc79 was badbc79, checked in by Luka Cheshlarov <luka.cheshlarov@…>, 20 months ago

Initial commit

  • Property mode set to 100644
File size: 3.8 KB
Line 
1import './App.css';
2import {createBrowserRouter, createRoutesFromElements, Navigate, Route, RouterProvider} from "react-router-dom";
3import {rootLoader} from "./loaders/root-loader";
4import StandardLayout from "./routes/standard-layout";
5import Root from "./routes/root";
6import RestorantsPage from "./routes/restourant/restorant-list";
7import {inactiveMenagerLoader, userLoader, userOrderLoader, userPaymentLoader} from "./loaders/user-loader";
8import RestorantCreate from "./routes/restourant/restorant-create";
9import {orderLoader} from "./loaders/order-loader";
10import OrderList from "./routes/orders/order-list";
11import {restorantLoader} from "./loaders/restourant-loader";
12import RestorantDetails from "./routes/restourant/restorant-details";
13import UserDetails from "./routes/user/user-details";
14import UserOrders from "./routes/user/user-orders";
15import UserPayments from "./routes/user/user-payments";
16import {menuItemLoader} from "./loaders/menu-item-loader";
17import MenuItemsListPage from "./routes/menuItems/menu-items-list-page";
18import {SkipAuth, useAuthContext} from "./configurations/AuthContext";
19import Login from "./routes/user/login";
20import Register from "./routes/user/register";
21import React from "react";
22
23function App() {
24 const {loggedUserRole, ownershipChanges} = useAuthContext();
25
26 const router = createBrowserRouter(
27 createRoutesFromElements([
28 <Route path="/" loader={rootLoader} element={
29 <StandardLayout>
30 <Root/>
31 </StandardLayout>}/>,
32 <Route path="/restorants" loader={rootLoader} element={
33 <StandardLayout>
34 <RestorantsPage/>
35 </StandardLayout>}/>,
36 <Route path="/restorants/create" loader={inactiveMenagerLoader} element={<StandardLayout>
37 <RestorantCreate/>
38 </StandardLayout>}/>,
39 <Route path="/orders" loader={orderLoader} element={<StandardLayout>
40 <OrderList/>
41 </StandardLayout>}/>,
42 <Route path="/restorants/:restorantId"
43 loader={(request) => restorantLoader({request, loggedUserRole, ownershipChanges})}
44 element={
45 <StandardLayout>
46 <RestorantDetails/>
47 </StandardLayout>}/>,
48 <Route path="/users/:userId" loader={userLoader} element={
49 <StandardLayout>
50 <UserDetails/>
51 </StandardLayout>}/>,
52 <Route path="/users/:userId/orders" loader={userOrderLoader} element={
53 <StandardLayout>
54 <UserOrders/>
55 </StandardLayout>}/>,
56 <Route path="/users/:userId/transactions-history" loader={userPaymentLoader} element={
57 <StandardLayout>
58 <UserPayments/>
59 </StandardLayout>}/>,
60 <Route path="/menu-items" loader={menuItemLoader} element={
61 <StandardLayout>
62 <MenuItemsListPage/>
63 </StandardLayout>}/>,
64 <Route
65 path={"/login"}
66 element={
67 <SkipAuth>
68 <StandardLayout>
69 <Login/>
70 </StandardLayout>
71 </SkipAuth>
72 }/>,
73 <Route
74 path={"/register"}
75 element={
76 <SkipAuth>
77 <StandardLayout>
78 <Register/>
79 </StandardLayout>
80 </SkipAuth>
81 }
82 />,
83 <Route path="*" element={<Navigate to="/" replace/>}/>
84 ])
85 );
86
87 return <RouterProvider router={router}/>
88}
89
90export default App;
Note: See TracBrowser for help on using the repository browser.