| 1 | import './App.css';
|
|---|
| 2 | import {createBrowserRouter, createRoutesFromElements, Navigate, Route, RouterProvider} from "react-router-dom";
|
|---|
| 3 | import {rootLoader} from "./loaders/root-loader";
|
|---|
| 4 | import StandardLayout from "./routes/standard-layout";
|
|---|
| 5 | import Root from "./routes/root";
|
|---|
| 6 | import RestorantsPage from "./routes/restourant/restorant-list";
|
|---|
| 7 | import {inactiveMenagerLoader, userLoader, userOrderLoader, userPaymentLoader} from "./loaders/user-loader";
|
|---|
| 8 | import RestorantCreate from "./routes/restourant/restorant-create";
|
|---|
| 9 | import {orderLoader} from "./loaders/order-loader";
|
|---|
| 10 | import OrderList from "./routes/orders/order-list";
|
|---|
| 11 | import {restorantLoader} from "./loaders/restourant-loader";
|
|---|
| 12 | import RestorantDetails from "./routes/restourant/restorant-details";
|
|---|
| 13 | import UserDetails from "./routes/user/user-details";
|
|---|
| 14 | import UserOrders from "./routes/user/user-orders";
|
|---|
| 15 | import UserPayments from "./routes/user/user-payments";
|
|---|
| 16 | import {menuItemLoader} from "./loaders/menu-item-loader";
|
|---|
| 17 | import MenuItemsListPage from "./routes/menuItems/menu-items-list-page";
|
|---|
| 18 | import {SkipAuth, useAuthContext} from "./configurations/AuthContext";
|
|---|
| 19 | import Login from "./routes/user/login";
|
|---|
| 20 | import Register from "./routes/user/register";
|
|---|
| 21 | import React from "react";
|
|---|
| 22 |
|
|---|
| 23 | function 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 |
|
|---|
| 90 | export default App;
|
|---|