+ )
+}
\ No newline at end of file
diff --git a/src/components/Header.jsx b/src/components/Header.jsx
new file mode 100644
index 0000000..4172cac
--- /dev/null
+++ b/src/components/Header.jsx
@@ -0,0 +1,59 @@
+import { useState } from 'react'
+import initialStoreItems from '../store-items'
+
+export default function Header ({setBasket, basket}) {
+ const [storeItems, setStoreItems] = useState(initialStoreItems)
+
+ const storeItemsCopy = JSON.parse(JSON.stringify(storeItems))
+
+ function addToBasket (e) {
+ const itemIndex = e.target.value
+
+ const item = storeItemsCopy[itemIndex]
+ item.quantity = 1
+ // console.log(item)
+
+ // add a check to see if item name is in the array
+ let inBasket = false
+ let basketIndex = ""
+ basket.forEach((itemInBasket, index) => {
+ // console.log(itemInBasket)
+ if (itemInBasket.name === item.name) {
+ inBasket = true
+ basketIndex = index
+ }
+ })
+
+ if (inBasket === false) {
+ setBasket([...basket, item])
+ // console.log(basketIndex)
+ }
+ else {
+ // need to find the item in basket and update quantity
+ // console.log(basketIndex)
+ basket[basketIndex].quantity += 1
+ setBasket([...basket])
+ }
+
+ inBasket = false
+ }
+
+
+ return (
+
+
Greengrocers
+
+ {storeItems.map((item, index) => {
+ return (
+
+
+
+
+
+
+ )
+ })}
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/components/MainContent.jsx b/src/components/MainContent.jsx
new file mode 100644
index 0000000..6be689b
--- /dev/null
+++ b/src/components/MainContent.jsx
@@ -0,0 +1,63 @@
+export default function MainContent ({setBasket, basket}) {
+ function increaseQuantity (event) {
+ // console.log(event.target.value)
+ basket[event.target.value].quantity += 1
+ setBasket([...basket])
+ // console.log(basket)
+ }
+
+ function decreaseQuantity (event) {
+ if (basket[event.target.value].quantity === 1) {
+ // console.log("delete")
+ // console.log(event.target.value)
+ basket.splice(event.target.value, 1)
+ setBasket([...basket])
+
+ }
+ else {
+ basket[event.target.value].quantity -= 1
+ setBasket([...basket])
+ }
+
+ }
+
+ function calculateTotal () {
+ let total = 0
+ basket.forEach(item => {
+ total += item.quantity * item.price
+ });
+ return (
+ `£${total.toFixed(2)}`
+ )
+ }
+
+ return (
+
+
Your Cart
+
+
+ {basket.map((item, index) => {
+ return (
+
+
+
{item.name}
+
+ {item.quantity}
+
+
+
+ )
+ })}
+
+
+
+
+
Total
+
+
+ {calculateTotal()}
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/state-diagram.png b/state-diagram.png
new file mode 100644
index 0000000..9a80473
Binary files /dev/null and b/state-diagram.png differ