From 46c208194cb80be3a4ce2d42ad817551b9b2a18d Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Thu, 27 Jul 2023 10:08:28 +0700 Subject: bugs fix variant page --- .../components/Product/ProductDesktopVariant.jsx | 110 ++++++++++++++++++++- 1 file changed, 105 insertions(+), 5 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 e0573357..940ba46f 100644 --- a/src/lib/product/components/Product/ProductDesktopVariant.jsx +++ b/src/lib/product/components/Product/ProductDesktopVariant.jsx @@ -14,13 +14,19 @@ import BottomPopup from '@/core/components/elements/Popup/BottomPopup' import ProductCard from '../ProductCard' import productSimilarApi from '../../api/productSimilarApi' import whatsappUrl from '@/core/utils/whatsappUrl' +import useAuth from '@/core/hooks/useAuth' +import odooApi from '@/core/api/odooApi' +import { Button, Spinner } from 'flowbite-react' const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant }) => { const router = useRouter() + const auth = useAuth() + const { slug } = router.query const [lowestPrice, setLowestPrice] = useState(null) const [addCartAlert, setAddCartAlert] = useState(false) + const [isLoadingSLA, setIsLoadingSLA] = useState(true) const getLowestPrice = useCallback(() => { const lowest = product.price @@ -53,20 +59,34 @@ const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant }) } const handleAddToCart = (variant) => { - const quantity = variantQuantityRefs.current[variant].value + if (!auth) { + router.push(`/login?next=/shop/product/${slug}`) + return + } + const quantity = variantQuantityRefs.current[product.id].value if (!validQuantity(quantity)) return updateItemCart({ - productId: variant, + productId: product.id, quantity, - selected: true + programLineId: null, + selected: true, + source: null }) setAddCartAlert(true) } const handleBuy = (variant) => { - const quantity = variantQuantityRefs.current[variant].value + const quantity = variantQuantityRefs.current[product.id].value if (!validQuantity(quantity)) return - router.push(`/shop/checkout?productId=${variant}&quantity=${quantity}`) + + updateItemCart({ + productId: variant, + quantity, + programLineId: null, + selected: true, + source: 'buy' + }) + router.push(`/shop/checkout?source=buy`) } const variantSectionRef = useRef(null) @@ -97,6 +117,16 @@ const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant }) if (!productSimilarInBrand) loadProductSimilarInBrand() }, [product, productSimilarInBrand]) + useEffect(() => { + const fetchData = async () => { + const dataSLA = await odooApi('GET', `/api/v1/product_variant/${product.id}/stock`) + product.sla = dataSLA + + setIsLoadingSLA(false) + } + fetchData() + }, [product]) + return (
@@ -139,6 +169,76 @@ const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant }) )}
+
+
Persiapan Barang
+
+ {product.sla ? ( + product.sla?.slaDate != '-' ? ( + + ) : ( + '-' + ) + ) : ( + + )} +
+
+
+
Stock
+
+ {isLoadingSLA && ( +
+ +
+ )} + {product?.sla?.qty > 0 && {product?.sla?.qty}} + {product?.sla?.qty == 0 && ( + + Tanya Admin + + )} +
+
Berat Barang
-- cgit v1.2.3