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

89 lines
2.4 KiB
React

'use client'
import { useContextElement } from "@/context/Context";
import React from "react";
const Quantity = ({data}) => {
const { cartProducts, setCartProducts , isAddedToCartProducts } = useContextElement();
const handleIncrease = () => {
const productQuantity = document.getElementById('productQuantity')
productQuantity.value = Number(productQuantity.value) + 1
if (isAddedToCartProducts(data.id) ) {
const cartItem = cartProducts.filter((elm)=>elm.id == data.id)[0]
const itemIndex = cartProducts.indexOf(cartItem)
const item = cartProducts[itemIndex];
item.quantity += 1;
const updated = [...cartProducts];
updated[itemIndex] = item;
setCartProducts(updated);
}
};
const handleQuantity = (e) => {
if (isAddedToCartProducts(data.id)) {
const cartItem = cartProducts.filter((elm)=>elm.id == data.id)[0]
const itemIndex = cartProducts.indexOf(cartItem)
const item = cartProducts[itemIndex];
item.quantity = Number(e.target.value);
const updated = [...cartProducts];
updated[itemIndex] = item;
setCartProducts(updated);
}
}
const handleDecrease = () => {
const productQuantity = document.getElementById('productQuantity')
productQuantity.value = Number(productQuantity.value) - 1
if (isAddedToCartProducts(data.id)) {
const cartItem = cartProducts.filter((elm)=>elm.id == data.id)[0]
const itemIndex = cartProducts.indexOf(cartItem)
const item = cartProducts[itemIndex];
if (item.quantity > 1) {
item.quantity -= 1;
const updated = [...cartProducts];
updated[itemIndex] = item;
setCartProducts(updated);
} }
};
return (
<div className="button-group">
<ul className="style-none d-flex align-items-center">
<li>
<button onClick={()=>handleDecrease()} className="value-decrease">-</button>
</li>
<li>
<input
type="number"
min="1"
defaultValue={cartProducts.filter((elm)=>elm.id == data.id)[0] ? cartProducts.filter((elm)=>elm.id == data.id)[0].quantity : "1"}
id="productQuantity"
onChange={handleQuantity}
className="product-value val"
/>
</li>
<li>
<button onClick={()=>handleIncrease()} className="value-increase">+ </button>
</li>
</ul>
</div>
);
};
export default Quantity;