// contexts/CartContext.tsx
import { createContext, useContext, useState, useCallback } from 'react';
import { clientSDK } from '@/lib/sdk';
const CartContext = createContext(null);
export function CartProvider({ children }) {
const [cart, setCart] = useState(null);
const [count, setCount] = useState(0);
const addItem = useCallback(async (productId, quantity = 1) => {
const updated = await clientSDK.cart.addItem(productId, quantity);
setCart(updated);
setCount(updated.count);
return updated;
}, []);
const refresh = useCallback(async () => {
const current = await clientSDK.cart.get();
setCart(current);
setCount(current.count);
}, []);
return (
<CartContext.Provider value={{ cart, count, addItem, refresh }}>
{children}
</CartContext.Provider>
);
}
export const useCart = () => useContext(CartContext);