From 2fa9b3df2a33917d681bfc16181f53841847464f Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Thu, 15 Aug 2024 14:59:53 +0700
Subject: <iman> update select cart, if loading button disabled

---
 src-migrate/pages/shop/cart/index.tsx | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

(limited to 'src-migrate/pages/shop/cart/index.tsx')

diff --git a/src-migrate/pages/shop/cart/index.tsx b/src-migrate/pages/shop/cart/index.tsx
index 5e3e042a..bd023e1b 100644
--- a/src-migrate/pages/shop/cart/index.tsx
+++ b/src-migrate/pages/shop/cart/index.tsx
@@ -34,6 +34,7 @@ const CartPage = () => {
   const [isTop, setIsTop] = useState(true);
   const [hasChanged, setHasChanged] = useState(false);
   const prevCartRef = useRef<CartItem[] | null>(null);
+  const [isLoadQuantity, setIsLoadQuantity] = useState<boolean>(false)
 
   useEffect(() => {
     const handleScroll = () => {
@@ -48,14 +49,18 @@ const CartPage = () => {
 
   useEffect(() => {
     if (typeof auth === 'object' && !cart) {
+      setIsLoadQuantity(true)
       loadCart(auth.id);
+      setIsLoadQuantity(false)
       setIsStepApproval(auth?.feature?.soApproval);
     }
   }, [auth, loadCart, cart, isButtonChek]);
 
   useEffect(() => {
     if (typeof auth === 'object' && !cart) {
+      setIsLoadQuantity(true)
       loadCart(auth.id);
+      setIsLoadQuantity(false)
       setIsStepApproval(auth?.feature?.soApproval);
     }
   }, [auth, loadCart, cart, isButtonChek]);
@@ -115,8 +120,10 @@ const CartPage = () => {
           })
         );
         try {
+          setIsLoadQuantity(true)
           await Promise.all(upsertPromises);
           await loadCart(auth.id);
+          setIsLoadQuantity(false)
         } catch (error) {
           console.error('Failed to update cart items:', error);
         }
@@ -166,8 +173,10 @@ const CartPage = () => {
     setIsLoadDelete(true)
     for (const item of cart.products) {
       if(item.selected === true){
+        setIsLoadQuantity(true)
         await deleteUserCart(auth.id, [item.cart_id])
         await loadCart(auth.id)
+        setIsLoadQuantity(false)
       }
     }
     setIsLoadDelete(false)
@@ -284,7 +293,7 @@ const CartPage = () => {
                 <Button
                   colorScheme='yellow'
                   w='full'
-                  isDisabled={hasSelectedPromo || !hasSelected}
+                  isDisabled={hasSelectedPromo || !hasSelected || isLoadQuantity}
                   onClick={handleQuotation}
                 >
                   Quotation
@@ -300,7 +309,7 @@ const CartPage = () => {
                   <Button
                     colorScheme='red'
                     w='full'
-                    isDisabled={!hasSelected || hasSelectNoPrice}
+                    isDisabled={!hasSelected || hasSelectNoPrice || isLoadQuantity}
                     onClick={handleCheckout}
                   >
                     Checkout
-- 
cgit v1.2.3

