From 6aa5fa70cf5ccd2825e5657ec1a90e370dea3bcf Mon Sep 17 00:00:00 2001
From: Rafi Zadanly <zadanlyr@gmail.com>
Date: Mon, 16 Oct 2023 11:16:33 +0700
Subject: Fix buy action before and after login

---
 src/lib/product/components/Product/ProductMobile.jsx | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

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

diff --git a/src/lib/product/components/Product/ProductMobile.jsx b/src/lib/product/components/Product/ProductMobile.jsx
index 402490f7..70ac1cbc 100644
--- a/src/lib/product/components/Product/ProductMobile.jsx
+++ b/src/lib/product/components/Product/ProductMobile.jsx
@@ -20,9 +20,12 @@ import odooApi from '@/core/api/odooApi'
 import ImageNext from 'next/image'
 import CountDown2 from '@/core/components/elements/CountDown/CountDown2'
 import Breadcrumb from './Breadcrumb'
+import useAuth from '@/core/hooks/useAuth'
 
 const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
   const router = useRouter()
+  const auth = useAuth()
+  const { slug } = router.query
 
   const [quantity, setQuantity] = useState('1')
   const [selectedVariant, setSelectedVariant] = useState(null)
@@ -128,9 +131,20 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
     return isValid
   }
 
+  const redirectToLogin = (action) => {
+    const nextURL = `/shop/product/${slug}?action=${action}&variantId=${activeVariant.id}&qty=${quantity}`
+    router.push(`/login?next=${encodeURIComponent(nextURL)}`)
+    return true
+  }
+
   const handleClickCart = () => {
     if (!validAction()) return
     gtagAddToCart(activeVariant, quantity)
+
+    if (!auth) {
+      return redirectToLogin('add_to_cart')
+    }
+
     updateItemCart({
       productId: activeVariant.id,
       quantity,
@@ -143,6 +157,10 @@ const ProductMobile = ({ product, wishlist, toggleWishlist }) => {
   const handleClickBuy = () => {
     if (!validAction()) return
 
+    if (!auth) {
+      return redirectToLogin('buy')
+    }
+
     updateItemCart({
       productId: activeVariant.id,
       quantity,
-- 
cgit v1.2.3

