diff --git a/src/App.jsx b/src/App.jsx index d28c0b3..8b5371b 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,6 +1,6 @@ import './styles/reset.css' import './styles/index.css' - +import React, {useState} from 'react' import initialStoreItems from './store-items' /* @@ -14,24 +14,67 @@ import initialStoreItems from './store-items' What should a cart item look like? 🤔 */ -console.log(initialStoreItems) - export default function App() { // Setup state here... + const [storeItems, setStoreItems] = useState(initialStoreItems) + const [cartItems, setCartItems] = useState([]) + + const addToCart = (targetItem) => { + const existingItem = cartItems.find(item => item.id === targetItem.id); + if(existingItem){ + const updatedCart = cartItems.map(item => + item.id === targetItem.id ? {...item, quantity: item.quantity+1} : item + ) + setCartItems(updatedCart) + } else{ + setCartItems([...cartItems, targetItem]) + } + } + + const removeFromCart = (targetItem) => { + const existingItem = cartItems.find(item => item.id === targetItem.id); + if(existingItem.quantity > 1){ + const updatedCart = cartItems.map(item => + item.id === targetItem.id ? {...item, quantity: item.quantity-1} : item + ) + setCartItems(updatedCart) + } else{ + setCartItems(cartItems.filter(item => item != targetItem)) + } + } return ( <>

Greengrocers

Your Cart

diff --git a/src/store-items.js b/src/store-items.js index 8e8013c..071ee9e 100644 --- a/src/store-items.js +++ b/src/store-items.js @@ -52,4 +52,5 @@ const storeItems = [ } ] -export default storeItems \ No newline at end of file +export default storeItems +