import { Trash, Plus, Minus } from '@components/icon' import usePrice from '@lib/bigcommerce/use-price' import useUpdateItem from '@lib/bigcommerce/cart/use-update-item' import useRemoveItem from '@lib/bigcommerce/cart/use-remove-item' import { ChangeEvent, useEffect, useState } from 'react' import styles from './CartItem.module.css' const CartItem = ({ item, currencyCode, }: { item: any currencyCode: string }) => { const { price } = usePrice({ amount: item.extended_sale_price, baseAmount: item.extended_list_price, currencyCode, }) const updateItem = useUpdateItem(item) const removeItem = useRemoveItem() const [quantity, setQuantity] = useState(item.quantity) const updateQuantity = async (val: number) => { const data = await updateItem({ quantity: val }) } const handleQuantity = (e: ChangeEvent) => { const val = Number(e.target.value) if (Number.isInteger(val) && val >= 0) { setQuantity(e.target.value) } } const handleBlur = () => { const val = Number(quantity) if (val !== item.quantity) { updateQuantity(val) } } const increaseQuantity = (n = 1) => { const val = Number(quantity) + n if (Number.isInteger(val) && val >= 0) { setQuantity(val) updateQuantity(val) } } useEffect(() => { // Reset the quantity state if the item quantity changes if (item.quantity !== Number(quantity)) { setQuantity(item.quantity) } }, [item.quantity]) return (
  • {item.name}
    {price}
  • ) } export default CartItem