From 7bec0ceaa7de91f1ba1c9ef18fca3c53d9a7155a Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Fri, 12 Jul 2024 16:52:14 +0700
Subject: <iman> update bug button quotation on cart

---
 src-migrate/pages/shop/cart/index.tsx | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 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 d89707d2..7de96425 100644
--- a/src-migrate/pages/shop/cart/index.tsx
+++ b/src-migrate/pages/shop/cart/index.tsx
@@ -2,8 +2,9 @@ import style from './cart.module.css';
 
 import React, { useEffect, useMemo } from 'react';
 import Link from 'next/link';
-import { Button, Tooltip } from '@chakra-ui/react';
-
+import { Button, Toast, Tooltip } from '@chakra-ui/react';
+import { toast } from 'react-hot-toast';
+import { useRouter } from 'next/router';
 import { getAuth } from '~/libs/auth';
 import { useCartStore } from '~/modules/cart/stores/useCartStore';
 
@@ -15,6 +16,7 @@ import CartSummaryMobile from '~/modules/cart/components/CartSummaryMobile';
 import Image from '~/components/ui/image';
 
 const CartPage = () => {
+  const router = useRouter();
   const auth = getAuth();
   const [isStepApproval, setIsStepApproval] = React.useState(false);
 
@@ -52,6 +54,18 @@ const CartPage = () => {
     }
     return false;
   }, [cart]);
+  
+  const handleCheckout = (()=>{
+      router.push('/shop/checkout');
+  })
+
+  const handleQuotation = (()=>{
+    if(hasSelectedPromo || !hasSelected){
+      toast.error('Maaf, Barang promo tidak dapat dibuat quotation');
+    }else{
+      router.push('/shop/quotation');
+    }
+  })
 
   return (
     <>
@@ -121,8 +135,7 @@ const CartPage = () => {
                   colorScheme='yellow'
                   w='full'
                   isDisabled={hasSelectedPromo || !hasSelected}
-                  as={Link}
-                  href='/shop/quotation'
+                  onClick={handleQuotation}
                 >
                   Quotation
                 </Button>
@@ -138,8 +151,7 @@ const CartPage = () => {
                     colorScheme='red'
                     w='full'
                     isDisabled={!hasSelected || hasSelectNoPrice}
-                    as={Link}
-                    href='/shop/checkout'
+                    onClick={handleCheckout}
                   >
                     Checkout
                   </Button>
-- 
cgit v1.2.3


From 4ee24671bc23979d7ac18a5390082c0007928540 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Tue, 16 Jul 2024 15:17:17 +0700
Subject: <iman> add select all cart

---
 src-migrate/pages/shop/cart/index.tsx | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 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 7de96425..1f89c7a3 100644
--- a/src-migrate/pages/shop/cart/index.tsx
+++ b/src-migrate/pages/shop/cart/index.tsx
@@ -1,8 +1,8 @@
 import style from './cart.module.css';
 
-import React, { useEffect, useMemo } from 'react';
+import React, { useEffect, useMemo, useState } from 'react';
 import Link from 'next/link';
-import { Button, Toast, Tooltip } from '@chakra-ui/react';
+import { Button, Checkbox, Toast, Tooltip } from '@chakra-ui/react';
 import { toast } from 'react-hot-toast';
 import { useRouter } from 'next/router';
 import { getAuth } from '~/libs/auth';
@@ -19,6 +19,9 @@ const CartPage = () => {
   const router = useRouter();
   const auth = getAuth();
   const [isStepApproval, setIsStepApproval] = React.useState(false);
+  const [isSelectedAll, setIsSelectedAll] = useState<boolean>(false);
+  const [isButtonChek, setIsButtonChek] = useState<boolean>(false);
+  const [buttonSelectNow, setButtonSelectNow] = useState<boolean>(true);
 
   const { loadCart, cart, summary } = useCartStore();
 
@@ -29,8 +32,9 @@ const CartPage = () => {
       loadCart(auth.id);
       setIsStepApproval(auth?.feature?.soApproval);
     }
-  }, [auth, loadCart, cart]);
-
+  }, [auth, loadCart, cart, isButtonChek, ]);
+  
+  
   const hasSelectedPromo = useMemo(() => {
     if (!cart) return false;
     for (const item of cart.products) {
@@ -67,10 +71,26 @@ const CartPage = () => {
     }
   })
 
+  const handleChange = (()=>{
+    setButtonSelectNow(!buttonSelectNow)
+    setIsSelectedAll(!isSelectedAll)
+    setIsButtonChek(!isButtonChek)
+  })
+
   return (
     <>
       <div className={style['title']}>Keranjang Belanja</div>
-
+        <div className='flex items-center object-center mt-2'>
+          <Checkbox
+            borderColor='gray.600'
+            colorScheme='red'
+            size='lg'
+            isChecked={isButtonChek}
+            onChange={handleChange}
+          /> <p className='p-2 text-caption-2'>
+              {buttonSelectNow? "Select all" : "Unchek all" } 
+            </p> 
+        </div>
       <div className='h-6' />
 
       <div className={style['content']}>
@@ -81,8 +101,9 @@ const CartPage = () => {
 
           <div className={style['items']}>
             {cart?.products.map((item) => (
-              <CartItem key={item.id} item={item} />
+              <CartItem key={item.id} item={item} pilihSemuaCart={isSelectedAll}  />
             ))}
+            
 
             {cart?.products?.length === 0 && (
               <div className='flex flex-col items-center'>
-- 
cgit v1.2.3

