Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
R
routing_v5_v6
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Pavel Mishakov
routing_v5_v6
Commits
ed3827d9
Commit
ed3827d9
authored
Jun 10, 2025
by
Pavel Mishakov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
63 done
parent
5ec3b60f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
56 additions
and
48 deletions
+56
-48
NavigationMenu.module.css
src/components/NavigationMenu/NavigationMenu.module.css
+1
-2
NavigationMenu.tsx
src/components/NavigationMenu/NavigationMenu.tsx
+13
-2
Orders.tsx
src/components/Orders/Orders.tsx
+22
-34
Layout.tsx
src/components/layouts/Layout/Layout.tsx
+10
-8
main.tsx
src/main.tsx
+10
-2
No files found.
src/components/NavigationMenu/NavigationMenu.module.css
View file @
ed3827d9
...
@@ -29,8 +29,7 @@
...
@@ -29,8 +29,7 @@
}
}
.NavigationMenuItem
a
:hover
,
.NavigationMenuItem
a
:hover
,
.NavigationMenuItem
a
:active
,
.NavigationMenuItem
a
:active
{
.NavigationMenuItem
a
.active
{
background-color
:
#8f5c2c
;
background-color
:
#8f5c2c
;
border-bottom
:
4px
solid
#40a4c8
;
border-bottom
:
4px
solid
#40a4c8
;
color
:
white
;
color
:
white
;
...
...
src/components/NavigationMenu/NavigationMenu.tsx
View file @
ed3827d9
import
{
NavLink
}
from
"react-router-dom"
;
import
{
NavLink
}
from
"react-router-dom"
;
import
styles
from
'./NavigationMenu.module.css'
;
import
styles
from
'./NavigationMenu.module.css'
;
import
{
CSSProperties
}
from
"react"
;
const
NavigationMenu
=
()
=>
{
const
NavigationMenu
=
()
=>
{
const
getActiveStyles
=
({
isActive
}:
{
isActive
:
boolean
}):
CSSProperties
|
undefined
=>
{
if
(
isActive
)
{
return
{
backgroundColor
:
'#8f5c2c'
,
borderBottom
:
'4px solid #40a4c8'
,
color
:
'white'
}
}
}
return
(
return
(
<
ul
className=
{
styles
.
NavigationMenu
}
>
<
ul
className=
{
styles
.
NavigationMenu
}
>
<
li
className=
{
styles
.
NavigationMenuItem
}
>
<
li
className=
{
styles
.
NavigationMenuItem
}
>
<
NavLink
to=
"/"
>
Burger Builder
</
NavLink
>
<
NavLink
style=
{
getActiveStyles
}
to=
"/"
>
Burger Builder
</
NavLink
>
</
li
>
</
li
>
<
li
className=
{
styles
.
NavigationMenuItem
}
>
<
li
className=
{
styles
.
NavigationMenuItem
}
>
<
NavLink
to=
"/orders"
>
Orders
</
NavLink
>
<
NavLink
style=
{
getActiveStyles
}
to=
"/orders"
>
Orders
</
NavLink
>
</
li
>
</
li
>
</
ul
>
</
ul
>
)
)
...
...
src/components/Orders/Orders.tsx
View file @
ed3827d9
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
axiosOrder
}
from
'../../axios/axiosOrder'
;
import
{
axiosOrder
}
from
'../../axios/axiosOrder'
;
import
type
{
TFirebaseData
}
from
"../../types/TFirebaseData"
;
import
type
{
TFirebaseData
}
from
"../../types/TFirebaseData"
;
import
{
TOrder
}
from
'../../types/TOrder'
;
import
{
TOrder
}
from
'../../types/TOrder'
;
import
OrderItem
from
'../OrderItem/OrderItem'
;
import
OrderItem
from
'../OrderItem/OrderItem'
;
import
Spinner
from
'../UI/Spinner/Spinner'
;
import
{
useLoaderData
}
from
'react-router'
;
const
Orders
=
()
=>
{
const
[
orders
,
setOrders
]
=
useState
<
TOrder
[]
>
([]);
const
[
loading
,
setLoading
]
=
useState
(
true
);
useEffect
(()
=>
{
const
fetchData
=
async
()
=>
{
const
response
=
await
axiosOrder
.
get
(
'orders.json'
);
const
data
:
TFirebaseData
<
TOrder
>
=
response
.
data
console
.
log
(
response
.
data
)
if
(
!
data
)
return
const
fetchedOrders
=
Object
.
keys
(
data
).
map
(
id
=>
{
return
{
...
data
[
id
],
id
};
});
setOrders
(
fetchedOrders
);
};
setLoading
(
true
);
fetchData
().
finally
(()
=>
setLoading
(
false
));
},
[]);
let
content
:
React
.
ReactElement
|
React
.
ReactElement
[]
=
orders
.
map
(
order
=>
{
export
const
fetchOrders
=
async
()
=>
{
return
(
const
response
=
await
axiosOrder
.
get
(
'orders.json'
);
<
OrderItem
key=
{
order
.
id
}
const
data
:
TFirebaseData
<
TOrder
>
=
response
.
data
ingredients=
{
order
?.
ingredients
||
{}
}
const
fetchedOrders
:
TOrder
[]
=
Object
.
keys
(
data
).
map
(
id
=>
{
price=
{
order
.
price
||
0
}
return
{
...
data
[
id
],
id
};
/>
)
});
});
return
fetchedOrders
if
(
loading
)
{
}
content
=
<
Spinner
/>;
const
Orders
=
()
=>
{
}
const
orders
:
TOrder
[]
=
useLoaderData
()
return
content
;
return
(
<>
{
orders
.
map
(
order
=>
{
return
(
<
OrderItem
key=
{
order
.
id
}
ingredients=
{
order
?.
ingredients
||
{}
}
price=
{
order
.
price
||
0
}
/>
)
})
}
</>
);
}
}
export
default
Orders
;
export
default
Orders
;
\ No newline at end of file
src/components/layouts/Layout/Layout.tsx
View file @
ed3827d9
...
@@ -2,13 +2,15 @@ import { Outlet } from "react-router-dom";
...
@@ -2,13 +2,15 @@ import { Outlet } from "react-router-dom";
import
Toolbar
from
"../../Toolbar/Toolbar"
;
import
Toolbar
from
"../../Toolbar/Toolbar"
;
import
styles
from
'./Layout.module.css'
;
import
styles
from
'./Layout.module.css'
;
const
Layout
=
()
=>
(
const
Layout
=
()
=>
{
<>
return
(
<
Toolbar
/>
<>
<
main
className=
{
styles
.
LayoutContent
}
>
<
Toolbar
/>
<
Outlet
/>
<
main
className=
{
styles
.
LayoutContent
}
>
</
main
>
<
Outlet
/>
</>
</
main
>
);
</>
)
};
export
default
Layout
;
export
default
Layout
;
\ No newline at end of file
src/main.tsx
View file @
ed3827d9
...
@@ -6,7 +6,10 @@ import BurgerBuilder from './components/BurgerBuilder/BurgerBuilder.tsx'
...
@@ -6,7 +6,10 @@ import BurgerBuilder from './components/BurgerBuilder/BurgerBuilder.tsx'
import
{
Checkout
}
from
'./components/Checkout/Checkout.tsx'
import
{
Checkout
}
from
'./components/Checkout/Checkout.tsx'
import
{
ContactData
}
from
'./components/ContactData/ContactData.tsx'
import
{
ContactData
}
from
'./components/ContactData/ContactData.tsx'
import
Layout
from
'./components/layouts/Layout/Layout.tsx'
import
Layout
from
'./components/layouts/Layout/Layout.tsx'
import
Orders
from
'./components/Orders/Orders.tsx'
import
{
fetchOrders
}
from
'./components/Orders/Orders.tsx'
import
{
lazy
,
Suspense
}
from
'react'
import
Spinner
from
'./components/UI/Spinner/Spinner.tsx'
const
Orders
=
lazy
(()
=>
import
(
'./components/Orders/Orders.tsx'
))
const
router
=
createBrowserRouter
([
const
router
=
createBrowserRouter
([
{
{
...
@@ -29,7 +32,12 @@ const router = createBrowserRouter([
...
@@ -29,7 +32,12 @@ const router = createBrowserRouter([
},
},
{
{
path
:
'/orders'
,
path
:
'/orders'
,
element
:
<
Orders
/>
element
:
(
<
Suspense
fallback=
{
<
Spinner
/>
}
>
<
Orders
/>
</
Suspense
>
),
loader
:
fetchOrders
}
}
]
]
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment