1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
import React from 'react'
import ReactDOM from 'react-dom/client'
import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom'
import Products from "./routes/products/products";
import Product from "./routes/products/product";
import Companies from "./routes/companies/companies";
import Account from "./routes/account/account";
import Cart from "./routes/account/cart";
import Orders from "./routes/account/orders";
import { EditAccount } from './routes/account/edit';
import { Edit as EditAddress } from "./routes/account/addresses/edit";
import { create, editAccount, authenticatedEdit, deleteFromCart, placeOrder, productAction } from './clients/actions';
import Layout from "./components/layout";
import { accountLoader, loader, productLoader, addressLoader, cardLoader, cartLoader, ordersLoader } from "./clients/loaders";
import './index.css';
import { Create as CreateAddress } from './routes/account/addresses/create';
import { Edit as EditCard } from './routes/account/cards/edit';
import { Create as CreateCard } from './routes/account/cards/create';
const routes = [
{
path: '/products',
loader: loader,
element: <Products/>
},
{
path: "products/:productId",
loader: productLoader,
action: productAction,
element: <Product/>,
},
{
path: "/companies",
loader: loader,
element: <Companies/>
},
{
path: "/account",
loader: accountLoader,
element: <Account/>
},
{
path: "/account/edit",
element: <EditAccount/>,
loader: accountLoader,
action: editAccount
},
{
path: "/account/addresses/:addressId/edit",
element: <EditAddress/>,
loader: addressLoader,
action: authenticatedEdit,
},
{
path: "/account/addresses/new",
element: <CreateAddress/>,
action: create
},
{
path: "/account/cards/:cardId/edit",
element: <EditCard/>,
loader: cardLoader,
action: authenticatedEdit
},
{
path: "/account/cards/new",
element: <CreateCard/>,
action: create
},
{
path: "/account/cart",
element: <Cart/>,
loader: cartLoader,
action: deleteFromCart
},
{
path: "/account/orders",
element: <Orders/>,
loader: ordersLoader,
action: placeOrder
},
{
path: '/',
element: <Navigate to='/products'/>
}
];
const router = createBrowserRouter(routes);
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
<React.StrictMode>
<Layout>
<RouterProvider router={router}/>
</Layout>
</React.StrictMode>
)
|