source: CookCraft-FrontEnd/CookCraft-FrontEnd-master/cookcraft-app/src/components/ShoppingCartComponents/CartContext.jsx

Last change on this file was d7b7f00, checked in by Gorazd Biskoski <gorazdbiskoskii@…>, 4 weeks ago

Add project

  • Property mode set to 100644
File size: 881 bytes
RevLine 
[d7b7f00]1import React, { createContext, useState, useEffect } from 'react';
2
3export const CartContext = createContext();
4
5export const CartProvider = ({ children }) => {
6 const [cart, setCart] = useState(() => {
7 const savedCart = localStorage.getItem('cart');
8 return savedCart ? JSON.parse(savedCart) : [];
9 });
10
11 useEffect(() => {
12 localStorage.setItem('cart', JSON.stringify(cart));
13 }, [cart]);
14
15 const addToCart = (ingredient) => {
16 setCart(prevCart => [...prevCart, ingredient]);
17 };
18
19 const removeFromCart = (ingredient) => {
20 setCart(prevCart => prevCart.filter(item => item !== ingredient));
21 };
22
23 const value = {
24 cart,
25 setCart,
26 addToCart,
27 removeFromCart
28 };
29
30 return (
31 <CartContext.Provider value={value}>
32 {children}
33 </CartContext.Provider>
34 );
35};
Note: See TracBrowser for help on using the repository browser.