Files
FinMarket/components/e-commerce/cart/CartProduct.jsx
T
CHIEFSOFT\ameye d8c7ec4866 first commit
2025-02-12 23:25:43 -05:00

108 lines
2.9 KiB
React

'use client'
import React from "react";
import Image from "next/image";
import { useContextElement } from "@/context/Context";
import Link from "next/link";
const CartProduct = () => {
const {cartProducts,
setCartProducts} = useContextElement()
const handleIncrease = (index) => {
const item = cartProducts[index];
item.quantity += 1;
const updated = [...cartProducts];
updated[index] = item;
setCartProducts(updated);
};
const handleDecrease = (index) => {
const item = cartProducts[index];
if (item.quantity > 1) {
item.quantity -= 1;
const updated = [...cartProducts];
updated[index] = item;
setCartProducts(updated);
}
};
const handleRemoveCart = (index) => {
const item = cartProducts[index];
setCartProducts((pre) => [...pre.filter((elm) => elm !== item)]);
};
return (
<>
{cartProducts.map((elm,i)=>
<tr key={i} >
<td className="product-thumbnails">
<a href="#" className="product-img">
<Image width={465} height={609} style={{width:'100%',height:'fit-content'}} src={`/images/shop/${elm.img}.png`} alt="image" />
</a>
</td>
<td className="product-info">
<Link href={`/products/${elm.id}`} className="product-name">
{elm.title}
</Link>
<div className="serial">#859632007881</div>
<ul className="style-none">
<li className="size">Size: 23</li>
<li className="color">Color: Red</li>
</ul>
</td>
<td className="price">
<span>${elm.price.toFixed(2)}</span>
</td>
<td className="quantity">
<ul className="order-box style-none">
<li>
<div onClick={()=>handleDecrease(i)} className="btn value-decrease">-</div>
</li>
<li>
<input
type="number"
min="1"
max="22"
value={elm.quantity}
disabled
className="product-value val"
/>
</li>
<li>
<div onClick={()=>handleIncrease(i)} className="btn value-increase">+ </div>
</li>
</ul>
</td>
<td className="price total-price">
<span>${(elm.price * elm.quantity).toFixed(2)}</span>
</td>
<td>
<a href="#" onClick={()=>handleRemoveCart(i)} className="remove-product">
x
</a>
</td>
</tr>)}
{cartProducts.length ? <>
</> : <button className="theme-btn-seven update-cart-button hoverPurple" style={{margin:'20px auto'}} >
<Link style={{color:'inherit',margin:'0px',padding:'0px'}} href={'/e-commerce'}>
Continue Shoping</Link>
</button> }
</>
);
};
export default CartProduct;