From a76376b74c02ee6875b68b6cfb59090a159df40a Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Sat, 31 Aug 2024 11:44:49 +0700
Subject: <iman> update new cart pop up

---
 src-migrate/modules/cart/components/ItemSelect.tsx | 28 ++++++++++++----------
 1 file changed, 15 insertions(+), 13 deletions(-)

(limited to 'src-migrate/modules/cart/components/ItemSelect.tsx')

diff --git a/src-migrate/modules/cart/components/ItemSelect.tsx b/src-migrate/modules/cart/components/ItemSelect.tsx
index b904a1de..d4a1b537 100644
--- a/src-migrate/modules/cart/components/ItemSelect.tsx
+++ b/src-migrate/modules/cart/components/ItemSelect.tsx
@@ -13,23 +13,25 @@ type Props = {
 
 const CartItemSelect = ({ item }: Props) => {
   const auth = getAuth()
-  const { loadCart } = useCartStore()
+  const { updateCartItem, cart } = useCartStore()
 
   const [isLoad, setIsLoad] = useState<boolean>(false)
 
   const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {
-    if (typeof auth !== 'object') return
-
-    setIsLoad(true)
-    await upsertUserCart({
-      userId: auth.id,
-      type: item.cart_type,
-      id: item.id,
-      qty: item.quantity,
-      selected: e.target.checked
-    })
-    await loadCart(auth.id)
-    setIsLoad(false)
+    if (typeof auth !== 'object' || !cart) return
+    
+    setIsLoad(true);
+    const updatedCartItems = cart.products.map(cartItem =>
+      cartItem.id === item.id
+        ? { ...cartItem, selected: e.target.checked }
+        : cartItem
+    );
+
+    // Update the entire cart
+    const updatedCart = { ...cart, products: updatedCartItems };
+    updateCartItem(updatedCart);
+
+    setIsLoad(false);
   }
 
   return (
-- 
cgit v1.2.3

