import Image from '@/core/components/elements/Image/Image' import Link from '@/core/components/elements/Link/Link' import DesktopView from '@/core/components/views/DesktopView' import currencyFormat from '@/core/utils/currencyFormat' import { HeartIcon } from '@heroicons/react/24/outline' import { useRef, useState } from 'react' import LazyLoad from 'react-lazy-load' import ProductSimilar from '../ProductSimilar' import { toast } from 'react-hot-toast' import { updateItemCart } from '@/core/utils/cart' const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { const [informationTab, setInformationTab] = useState(informationTabOptions[0].value) const variantQuantityRefs = useRef([]) const setVariantQuantityRef = (variantId) => (element) => { variantQuantityRefs.current[variantId] = element } const validQuantity = (quantity) => { let isValid = true if (!quantity || quantity < 1 || isNaN(parseInt(quantity))) { toast.error('Jumlah barang minimal 1') isValid = false } return isValid } const handleAddToCart = (variantId) => { const quantity = variantQuantityRefs.current[variantId].value if (!validQuantity(quantity)) return updateItemCart({ productId: variantId, quantity }) toast.success('Berhasil menambahkan ke keranjang') } const variantSectionRef = useRef(null) const goToVariantSection = () => { if (variantSectionRef.current) { const position = variantSectionRef.current.getBoundingClientRect() window.scrollTo({ top: position.top - 120 + window.pageYOffset, behavior: 'smooth' }) } } const productSimilarQuery = [ product?.name.replace(/[()/"&]/g, ''), `fq=-product_id:${product.id}`, `fq=-manufacture_id:${product.manufacture?.id || 0}` ].join('&') return (
{product.name}

{product?.name}

Nomor SKU
SKU-{product.id}
Part Number
{product.code || '-'}
Manufacture
{product.manufacture?.name ? ( {product.manufacture?.name} ) : (
-
)}
Berat Barang
{product?.weight > 0 && {product?.weight} KG} {product?.weight == 0 && ( Tanya Berat )}
{product.variants.length > 1 && product.lowestPrice.priceDiscount > 0 && (
Harga mulai dari:
)} {product?.lowestPrice.discountPercentage > 0 && (
{product?.lowestPrice.discountPercentage}%
{currencyFormat(product?.lowestPrice.price)}
)}

{product?.lowestPrice.priceDiscount > 0 ? ( currencyFormat(product?.lowestPrice.priceDiscount) ) : ( Hubungi kami untuk dapatkan harga terbaik,  klik disini )}

Varian Produk
{product.variants.map((variant) => ( ))}
Part Number Varian Harga Jumlah Action
{variant.code} {variant.attributes.join(', ')} {variant.price.discountPercentage > 0 && ( <> {currencyFormat(variant.price.price)} {' '} )} {currencyFormat(variant.price.priceDiscount)}
Informasi Produk
{informationTabOptions.map((option) => ( setInformationTab(option.value)} > {option.label} ))}
Belum ada informasi.
Kamu Mungkin Juga Suka
) } const informationTabOptions = [ { value: 'description', label: 'Deskripsi' }, { value: 'information', label: 'Info Penting' } ] const TabButton = ({ children, active, ...props }) => { const activeClassName = active ? 'text-red_r-11 underline underline-offset-4' : 'text-gray_r-12/80' return ( ) } const TabContent = ({ children, active, className = '', ...props }) => (
{children}
) export default ProductDesktop