From 045627c1f70da69551a5daf802d796a5b65185e4 Mon Sep 17 00:00:00 2001 From: jadenglenn Date: Sat, 6 Jan 2024 13:07:34 -0500 Subject: [PATCH] Finished --- src/App.jsx | 46 ++++++++++++++++++++++++++++++++++++++++++---- src/Menu.css | 13 +++++++++++++ src/Menu.jsx | 37 +++++++++++++++++++++++++++++++++++++ src/index.jsx | 4 ++-- 4 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 src/Menu.css create mode 100644 src/Menu.jsx diff --git a/src/App.jsx b/src/App.jsx index 0218d5b..ba9c14b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,22 +1,59 @@ +import { useState } from "react"; + import Footer from "./Footer"; import Header from "./Header"; +import Menu from "./Menu"; + + function App() { + +const [currentOrder, setCurrentOrder] = useState([]) +const [total, setTotal] = useState(0) + +const handleOrder = (item) => { + setCurrentOrder([...currentOrder, item]) + setTotal(total + item.price) +} + +const removeOrder = (index, price) => { + const updatedOrder = [...currentOrder]; + updatedOrder.splice(index, 1); + setCurrentOrder(updatedOrder); + setTotal(total - price) + +} + + const closeOrder = () => { + setTotal(0) + setCurrentOrder([]) + } + + return (

Current Order

-
    -

    Total:

    +
      + {currentOrder.map((item, i) => +
    • + {removeOrder(i, item.price)}}>❌ + {item.name} + ${item.price} +
    • + + )} +
    +

    Total:${total}

    - +
    @@ -27,3 +64,4 @@ function App() { } export default App; + diff --git a/src/Menu.css b/src/Menu.css new file mode 100644 index 0000000..4e41e03 --- /dev/null +++ b/src/Menu.css @@ -0,0 +1,13 @@ + + + + + + + + +.header { + text-align: center; + text-decoration: 2px underline black; + padding-top: 0em; +} \ No newline at end of file diff --git a/src/Menu.jsx b/src/Menu.jsx new file mode 100644 index 0000000..f661cc9 --- /dev/null +++ b/src/Menu.jsx @@ -0,0 +1,37 @@ + +import menuItems from "./data"; + +import "./Menu.css" + + + +function Menu({handleOrder}) { + + + + return ( +
    +

    Welcome here is our menu, Enjoy !

    + + + {menuItems.map((item) => + + handleOrder(item)}> + + + + + + )} + +
    {item.image} {item.name}
    + + { "🌶️".repeat(item.spiceLevel)} +
    $ {item.price}
    +
    + ) +} + + + +export default Menu \ No newline at end of file diff --git a/src/index.jsx b/src/index.jsx index 159616e..fe5542b 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,7 +1,7 @@ import React from "react"; -import ReactDOM from "react-dom"; +import ReactDOM from "react-dom/client"; import "./index.css"; import App from "./App"; -ReactDOM.render(, document.getElementById("root")); +ReactDOM.createRoot(document.getElementById("root")).render();