Skip to content

Commit 8322cb2

Browse files
committed
Add Update cart
1 parent 594e1fe commit 8322cb2

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

src/components/cart/cart-item.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ const CartItem = ( {
88
products,
99
updateCartProcessing,
1010
handleRemoveProductClick,
11+
setCart
1112
} ) => {
1213

1314
const [productCount, setProductCount] = useState( item.quantity );
15+
const [loading, setLoading] = useState( false );
1416
const productImg = item?.data?.images?.[0];
15-
console.log( 'item', item );
1617

1718
/*
1819
* When user changes the qty from product input update the cart in localStorage
@@ -56,7 +57,7 @@ const CartItem = ( {
5657
// }
5758
// },
5859
// } );
59-
updateCart(item?.id, newQty);
60+
updateCart(item?.key, newQty, setCart, setLoading);
6061
}
6162

6263
}
@@ -88,6 +89,7 @@ const CartItem = ( {
8889
{/*<span className="cart-product-price">{ ( 'string' !== typeof item?.data?.price ) ? item?.data?.price.toFixed( 2 ) : item?.data?.price }</span>*/}
8990
<span className="cart-total-price">{item?.currency}{item?.line_subtotal}</span>
9091
</div>
92+
{loading ? <span>Updating...</span> : null}
9193
{/*Qty*/}
9294
<div style={{ display: 'flex', alignItems: 'center' }}>
9395
<button className="decrement-btn text-24px" onClick={( event ) => handleQtyChange( event, item?.cartKey, 'decrement' )} >-</button>

src/components/cart/cart-items-container.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const CartItemsContainer = () => {
6262
item={ item }
6363
updateCartProcessing={ isUpdateCartProcessing }
6464
products={ cartItems }
65+
setCart={setCart}
6566
handleRemoveProductClick={ handleRemoveProductClick }
6667
/>
6768
) ) }
@@ -72,7 +73,7 @@ const CartItemsContainer = () => {
7273
<h2>Cart Total</h2>
7374
<div className="flex grid grid-cols-3 bg-gray-100 mb-4">
7475
<p className="col-span-2 p-2 mb-0">Total</p>
75-
<p className="col-span-1 p-2 mb-0">{ totalPrice }</p>
76+
<p className="col-span-1 p-2 mb-0">{cartItems?.[0]?.currency ?? ''}{ totalPrice }</p>
7677
</div>
7778

7879
<div className="flex justify-between">

src/utils/cart/index.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,19 @@ export const addToCart = ( productId, qty = 1, setCart, setIsAddedToCart, setLoa
4141

4242
/**
4343
* View Cart Request Handler
44+
*
45+
* @param {Function} setCart Set Cart Function.
46+
* @param {Function} setLoading Set Loading Function.
4447
*/
45-
export const viewCart = ( setCart ) => {
48+
export const viewCart = ( setCart, setLoading = () => {} ) => {
4649

4750
const addOrViewCartConfig = getApiCartConfig();
4851

4952
axios.get( CART_ENDPOINT, addOrViewCartConfig )
5053
.then( ( res ) => {
5154
const formattedCartData = getFormattedCartData( res?.data ?? [] )
5255
setCart( formattedCartData );
56+
setLoading(false);
5357
} )
5458
.catch( err => {
5559
console.log( 'err', err );
@@ -59,17 +63,20 @@ export const viewCart = ( setCart ) => {
5963
/**
6064
* Update Cart Request Handler
6165
*/
62-
export const updateCart = ( productId, qty = 1, setCart, ) => {
66+
export const updateCart = ( cartKey, qty = 1, setCart, setLoading ) => {
6367

6468
const addOrViewCartConfig = getApiCartConfig();
6569

66-
axios.put( CART_ENDPOINT, {
70+
setLoading(true);
71+
72+
axios.put( `${CART_ENDPOINT}${cartKey}`, {
6773
// product_id: productId,
6874
quantity: qty,
6975
}, addOrViewCartConfig )
7076
.then( ( res ) => {
71-
const formattedCartData = getFormattedCartData( res?.data ?? [] )
72-
setCart( formattedCartData );
77+
// const formattedCartData = getFormattedCartData( res?.data ?? [] );
78+
// setCart( formattedCartData );
79+
viewCart( setCart, setLoading );
7380
} )
7481
.catch( err => {
7582
console.log( 'err', err );
@@ -78,6 +85,9 @@ export const updateCart = ( productId, qty = 1, setCart, ) => {
7885

7986
/**
8087
* Clear Cart Request Handler
88+
*
89+
* @param {Function} setCart Set Cart
90+
* @param {Function} setClearCartProcessing Set Clear Cart Processing.
8191
*/
8292
export const clearCart = ( setCart, setClearCartProcessing ) => {
8393

0 commit comments

Comments
 (0)