-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathRestaurantMenu.js
58 lines (51 loc) · 1.57 KB
/
RestaurantMenu.js
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
import React, { useEffect, useState } from "react"
import { useParams } from "react-router-dom"
import { SWIGGY_RESTAURANT_DETAILS_API } from "../Config"
import Shimmer from "./Shimmer"
const RestaurantMenu = () => {
const param = useParams()
const { id } = param
// ---useState ---
const [restaurant, setRestaurant] = useState([])
const [menu, setMenu] = useState([])
// ---useEffect---
useEffect(() => {
console.log("I am useEffect() inside <RestaurantMenu />")
getRestaurantMenu()
}, [])
async function getRestaurantMenu() {
const data = await fetch(SWIGGY_RESTAURANT_DETAILS_API + id)
const json = await data?.json()
const restaurantData = json?.data?.cards[0].card.card.info
// console.log(restaurantData)
setRestaurant(restaurantData)
const menuData = json?.data?.cards[2]?.groupedCard?.cardGroupMap?.REGULAR?.cards[1]?.card?.card?.itemCards
// console.log(menuData)
setMenu(menuData)
}
// menu.map(menuItem => {
// console.log(menuItem.card.info.name)
// })
return (
<div className="menu flex-container">
<div className="menu__restaurant">
<hr />
<h2>{restaurant.name + ", " + restaurant.city}</h2>
<hr />
</div>
<div className="menu__card">
<h3>Restaurant Menu</h3>
{menu?.length === 0 ? (
<Shimmer />
) : (
<ul>
{menu?.map((menuItem, index) => {
return <li key={index}>{menuItem?.card?.info?.name}</li>
})}
</ul>
)}
</div>
</div>
)
}
export default RestaurantMenu