Current Order
-Total:
+-
+ {currentOrder.map((item, index) => (
+
- + {item.name} - ${item.price} x {item.quantity}{' '} + + + ))} +
Total: ${totalCost}
+ {'🌶️'.repeat(spiceLevel)} +
diff --git a/src/App.jsx b/src/App.jsx index 0218d5b..89349dc 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,22 +1,70 @@ -import Footer from "./Footer"; -import Header from "./Header"; + +import React, { useState } from 'react'; +import Footer from './Footer'; +import Header from './Header'; +import MenuList from './menuList'; +import data from './data'; function App() { + const [currentOrder, setCurrentOrder] = useState([]); + const [totalCost, setTotalCost] = useState(0); + + const addToOrder = (item) => { + setCurrentOrder([...currentOrder, item]); + setTotalCost((prevTotal) => prevTotal + item.price); + }; + + const removeFromOrder = (index) => { + const removedItem = currentOrder[index]; + setCurrentOrder(currentOrder.filter((_, i) => i !== index)); + setTotalCost((prevTotal) => prevTotal - removedItem.price); + }; + + const tidyOrder = () => { + const tidiedOrder = currentOrder.reduce((acc, item) => { + const existingItem = acc.find((el) => el.id === item.id); + existingItem + ? (existingItem.quantity += 1) + : acc.push({ ...item, quantity: 1 }); + return acc; + }, []); + setCurrentOrder(tidiedOrder); + setTotalCost(tidiedOrder.reduce((total, item) => total + item.price * item.quantity, 0)); + }; + + const closeOrder = () => { + setCurrentOrder([]); + setTotalCost(0); + }; + return (