From dca7af433ca57e976b29620c58de98e94388e2b9 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Tue, 22 Oct 2024 14:24:31 +0700
Subject: <iman> CR variant beli langsung

---
 .../components/Product/ProductDesktopVariant.jsx   | 34 +++++++++++++++++++---
 1 file changed, 30 insertions(+), 4 deletions(-)

(limited to 'src/lib/product/components/Product/ProductDesktopVariant.jsx')

diff --git a/src/lib/product/components/Product/ProductDesktopVariant.jsx b/src/lib/product/components/Product/ProductDesktopVariant.jsx
index 09b30a44..4dd2ce3e 100644
--- a/src/lib/product/components/Product/ProductDesktopVariant.jsx
+++ b/src/lib/product/components/Product/ProductDesktopVariant.jsx
@@ -1,4 +1,3 @@
-
 import { Box, Skeleton, Tooltip } from '@chakra-ui/react';
 import { HeartIcon } from '@heroicons/react/24/outline';
 import { Info } from 'lucide-react';
@@ -18,6 +17,7 @@ import { updateItemCart } from '@/core/utils/cart';
 import currencyFormat from '@/core/utils/currencyFormat';
 import { createSlug } from '@/core/utils/slug';
 import whatsappUrl from '@/core/utils/whatsappUrl';
+import { getAuth } from '~/libs/auth';
 
 import productSimilarApi from '../../api/productSimilarApi';
 import ProductCard from '../ProductCard';
@@ -30,7 +30,7 @@ const ProductDesktopVariant = ({
   isVariant,
 }) => {
   const router = useRouter();
-  const auth = useAuth();
+  let auth = useAuth();
   const { slug } = router.query;
 
   const [lowestPrice, setLowestPrice] = useState(null);
@@ -91,8 +91,34 @@ const ProductDesktopVariant = ({
     setAddCartAlert(true);
   };
 
-  const handleBuy = (variant) => {
-    const quantity = variantQuantityRefs.current[product.id].value;
+  const handleBuy = async (variant) => {
+    const quantity = variantQuantityRefs?.current[product.id]?.value;
+    let isLoggedIn = typeof auth === 'object';
+
+    if (!isLoggedIn) {
+      const currentUrl = encodeURIComponent(router.asPath);
+      await router.push(`/login?next=${currentUrl}`);
+
+      // Tunggu login berhasil, misalnya dengan memantau perubahan status auth.
+      const authCheckInterval = setInterval(() => {
+        const newAuth = getAuth();
+        if (typeof newAuth === 'object') {
+          isLoggedIn = true;
+          auth = newAuth; // Update nilai auth setelah login
+          clearInterval(authCheckInterval);
+        }
+      }, 500); // Periksa status login setiap 500ms
+
+      await new Promise((resolve) => {
+        const checkLogin = setInterval(() => {
+          if (isLoggedIn) {
+            clearInterval(checkLogin);
+            resolve(null);
+          }
+        }, 500);
+      });
+    }
+
     if (!validQuantity(quantity)) return;
 
     updateItemCart({
-- 
cgit v1.2.3


From 744405d8e62135372acb6c73fd7b66254309d0aa Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Wed, 23 Oct 2024 13:25:20 +0700
Subject: <iman> update when tambah keranjang

---
 src/lib/product/components/Product/ProductDesktopVariant.jsx | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

(limited to 'src/lib/product/components/Product/ProductDesktopVariant.jsx')

diff --git a/src/lib/product/components/Product/ProductDesktopVariant.jsx b/src/lib/product/components/Product/ProductDesktopVariant.jsx
index 4dd2ce3e..4ecd15c8 100644
--- a/src/lib/product/components/Product/ProductDesktopVariant.jsx
+++ b/src/lib/product/components/Product/ProductDesktopVariant.jsx
@@ -32,7 +32,7 @@ const ProductDesktopVariant = ({
   const router = useRouter();
   let auth = useAuth();
   const { slug } = router.query;
-
+  const { srsltid } = router.query;
   const [lowestPrice, setLowestPrice] = useState(null);
 
   const [addCartAlert, setAddCartAlert] = useState(false);
@@ -74,7 +74,7 @@ const ProductDesktopVariant = ({
 
   const handleAddToCart = (variant) => {
     if (!auth) {
-      router.push(`/login?next=/shop/product/${slug}`);
+      router.push(`/login?next=/shop/product/${slug}?srsltid=${srsltid}`);
       return;
     }
     const quantity = variantQuantityRefs.current[product.id].value;
@@ -292,13 +292,16 @@ const ProductDesktopVariant = ({
             </div>
 
             <div className='p-4 md:p-6 md:bg-gray-50 rounded-xl'>
-              <h2 className='text-h-md md:text-h-lg font-medium'>Informasi Produk</h2>
+              <h2 className='text-h-md md:text-h-lg font-medium'>
+                Informasi Produk
+              </h2>
               <div className='h-4' />
               <div
                 className='leading-relaxed text-gray-700'
                 dangerouslySetInnerHTML={{
                   __html:
-                    !product.parent.description || product.parent.description == '<p><br></p>'
+                    !product.parent.description ||
+                    product.parent.description == '<p><br></p>'
                       ? 'Belum ada deskripsi'
                       : product.parent.description,
                 }}
-- 
cgit v1.2.3

