From c0d6deddb3cada86b36a153a0f47fa769c3f3cbc Mon Sep 17 00:00:00 2001 From: anupamroy8 Date: Tue, 12 Sep 2023 09:33:45 +0530 Subject: [PATCH 1/2] resolve swiggy api resturant list fetching issue --- src/components/Body.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/Body.js b/src/components/Body.js index 98efebf..118c34e 100644 --- a/src/components/Body.js +++ b/src/components/Body.js @@ -26,14 +26,17 @@ const Body = () => { ); const json = await data.json(); + const arrayOfCards = json.data.cards; + const restaurant_list = "restaurant_grid_listing"; - // Optional Chaining - setListOfRestraunt( - json?.data?.cards[2]?.card?.card?.gridElements?.infoWithStyle?.restaurants - ); - setFilteredRestaurant( - json?.data?.cards[2]?.card?.card?.gridElements?.infoWithStyle?.restaurants - ); + for (const cardObj of arrayOfCards) { + if (cardObj.card.card && cardObj.card.card.id === restaurant_list) { + const resData = + cardObj.card?.card?.gridElements?.infoWithStyle?.restaurants; + setListOfRestraunt(resData); + setFilteredRestaurant(resData); + } + } }; const onlineStatus = useOnlineStatus(); From 975f5af1a7611b0a727e063f174343d62423855d Mon Sep 17 00:00:00 2001 From: anupamroy8 Date: Sat, 16 Sep 2023 07:43:03 +0530 Subject: [PATCH 2/2] use camel case for variable names and add optional chaining --- src/components/Body.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/Body.js b/src/components/Body.js index 118c34e..8fc9a1d 100644 --- a/src/components/Body.js +++ b/src/components/Body.js @@ -26,11 +26,11 @@ const Body = () => { ); const json = await data.json(); - const arrayOfCards = json.data.cards; - const restaurant_list = "restaurant_grid_listing"; + const arrayOfCards = json?.data?.cards; + const restaurantListing = "restaurant_grid_listing"; for (const cardObj of arrayOfCards) { - if (cardObj.card.card && cardObj.card.card.id === restaurant_list) { + if (cardObj?.card?.card && cardObj?.card?.card?.id === restaurantListing) { const resData = cardObj.card?.card?.gridElements?.infoWithStyle?.restaurants; setListOfRestraunt(resData);