diff --git a/donutshop_ecommerce/src/components/menu/Menu.js b/donutshop_ecommerce/src/components/menu/Menu.js index 53047c9..9529677 100644 --- a/donutshop_ecommerce/src/components/menu/Menu.js +++ b/donutshop_ecommerce/src/components/menu/Menu.js @@ -7,6 +7,9 @@ const Menu = (menuItem) => { const {menuImg, itemName, description, basePrice, sizes, extraItems} = menuItem const {addToCart} = useContext(CartContext); const [showPopup, setShowPopup] = useState(false); + const [selectedSize, setSelectedsize] = useState(null); + const [selectedTopping, setSelectedTopping] = useState([]); + function handleAddToCartButtonClick(){ if(sizes.length === 0 && extraItems.length === 0){ @@ -17,6 +20,17 @@ const Menu = (menuItem) => { } } + //topping checked functionality + function handleSelectedTopping(ev, extraTopping){ + const checked = ev.target.checked; + if(checked){ + setSelectedTopping(prev => [...prev, extraTopping]); + } else { + setSelectedTopping(prev => { + return prev.filter(e => e.itemName !== extraTopping.itemName); + }); + } + } @@ -24,32 +38,34 @@ const Menu = (menuItem) => { <> {showPopup && (
-
-
- menu-donut -

{itemName}

-

{description}

- {sizes?.length > 0 && ( -
-

Choose your size

- {sizes.map(size => ( -
- {size.itemName} ${basePrice + size.price} -
- ))} -
- )} - {extraItems?.length > 0 && ( -
-

Extra toppings

- {extraItems.map(extraTopping => ( -
- {extraTopping.itemName} (${extraTopping.price}) -
- ))} -
- )} - +
+
+
+ menu-donut +

{itemName}

+

{description}

+ {sizes?.length > 0 && ( +
+

Choose your size

+ {sizes.map(size => ( +
+ setSelectedsize(size)} checked={selectedSize?.itemName === size.itemName}/>{size.itemName} ${basePrice + size.price} +
+ ))} +
+ )} + {extraItems?.length > 0 && ( +
+

Extra toppings

+ {extraItems.map(extraTopping => ( +
+ handleSelectedTopping(ev, extraTopping)}/>{extraTopping.itemName} (${extraTopping.price}) +
+ ))} +
+ )} + +