import { useState } from 'react'
import { OnChangeArgs, Product } from '../interfaces/Product';


interface ProductCart extends Product {
  count: number;
}


const useShoppingCart = () => {
  const [shoppingCart, setShoppingCart ] = useState<{ [key: string]: ProductCart }>({})  

  console.log(shoppingCart);
  

  const handleChangeCart = ({ product, count }: OnChangeArgs) => {
    setShoppingCart(oldShoppingCart => {
      const productIncard: ProductCart =  oldShoppingCart[product.id] || { ...product, count: 0 }
      if (!!count) {
        return {
          ...oldShoppingCart,
          [product.id]: { ...productIncard, count },
        }
      }
      const { [product.id]: deleted, ...products } = oldShoppingCart
      return products
    })
  }
  return {
    shoppingCart,
    handleChangeCart,
  }
}

export default useShoppingCart