diff --git a/donutshop_ecommerce/src/components/AppContext.js b/donutshop_ecommerce/src/components/AppContext.js
index fd2691c..8737748 100644
--- a/donutshop_ecommerce/src/components/AppContext.js
+++ b/donutshop_ecommerce/src/components/AppContext.js
@@ -1,11 +1,26 @@
"use client"
import { SessionProvider } from 'next-auth/react'
-import React from 'react'
+import React, { createContext, useState } from 'react'
+
+
+export const CartContext = createContext({});
const AppProvider = ({children}) => {
+ const [cartProducts, setCartProducts] = useState([]);
+
+ function addToCart(product, size=null){
+ setCartProducts(prevProducts => {
+ const cartProduct = {...product, size}
+ const newProducts = [...prevProducts, cartProduct];
+ return newProducts
+ })
+ }
+
return (
+
{children}
+
)
}
diff --git a/donutshop_ecommerce/src/components/layout/Header.js b/donutshop_ecommerce/src/components/layout/Header.js
index c8474da..3addc82 100644
--- a/donutshop_ecommerce/src/components/layout/Header.js
+++ b/donutshop_ecommerce/src/components/layout/Header.js
@@ -1,10 +1,12 @@
"use client"
-import React, { useState } from "react";
+import React, { useContext, useState } from "react";
import {signOut, useSession} from 'next-auth/react'
import Image from 'next/image';
import Link from 'next/link';
import { IoCloseOutline } from "react-icons/io5";
import { HiBars2 } from "react-icons/hi2";
+import { BsBox2Heart } from "react-icons/bs";
+import { CartContext } from "../AppContext";
const Header = () => {
@@ -16,6 +18,10 @@ const Header = () => {
//use session
const session = useSession();
const status = session?.status;
+
+ //add to cart
+ const {cartProducts} = useContext(CartContext);
+
//use userdata
const userData = session.data?.user;
let userName = userData?.name || userData?.email;
@@ -53,6 +59,7 @@ const Header = () => {
{status === 'authenticated' && (
<>
{userName}
+ ({cartProducts.length})
>
)}
@@ -62,7 +69,6 @@ const Header = () => {
Register
>
)}
-
setNav(!nav)} className="cursor-pointer pr-4 z-20 text-[#95743D] md:hidden "> {nav ? : }
{nav && (
diff --git a/donutshop_ecommerce/src/components/menu/Menu.js b/donutshop_ecommerce/src/components/menu/Menu.js
index 183d31d..292374d 100644
--- a/donutshop_ecommerce/src/components/menu/Menu.js
+++ b/donutshop_ecommerce/src/components/menu/Menu.js
@@ -6,8 +6,8 @@ const Menu = ({menuImg, itemName, description, basePrice, sizes}) => {
{itemName}
-
{description}
-
${basePrice}
+
{description}
+
${basePrice}
)
diff --git a/donutshop_ecommerce/src/components/menu/MenuItem.js b/donutshop_ecommerce/src/components/menu/MenuItem.js
index 77bf6ec..20dda23 100644
--- a/donutshop_ecommerce/src/components/menu/MenuItem.js
+++ b/donutshop_ecommerce/src/components/menu/MenuItem.js
@@ -1,8 +1,10 @@
-import React from 'react'
+import React, { useContext } from 'react'
import Image from 'next/image';
+import { CartContext } from '../AppContext';
-const MenuItem = ({menuImg, itemName, description, basePrice, sizes}) => {
-
+const MenuItem = (menuItem) => {
+ const {menuImg, itemName, description, basePrice, sizes} = menuItem
+ const {addToCart} = useContext(CartContext)
return (
@@ -10,7 +12,7 @@ const MenuItem = ({menuImg, itemName, description, basePrice, sizes}) => {
{itemName}
{description}
${basePrice}
-
+
)
}