import { useRouter } from 'next/router' import { toast } from 'react-hot-toast' import useAuth from '@/core/hooks/useAuth'; import Image from '@/core/components/elements/Image/Image' import Link from '@/core/components/elements/Link/Link' import { createSlug } from '@/core/utils/slug' import currencyFormat from '@/core/utils/currencyFormat' import { updateItemCart } from '@/core/utils/cart' import whatsappUrl from '@/core/utils/whatsappUrl' import {useState } from 'react'; import rejectProductApi from '../../../lib/transaction/api/rejectProductApi' // import {useTransaction} from 'C:\Users\Indoteknik\next-indoteknik\src\lib\transaction\hooks\useTransaction.js' import useTransaction from '../../../lib/transaction/hooks/useTransaction'; import ImageNext from 'next/image'; const VariantCard = ({ product, openOnClick = true, buyMore = false }) => { const router = useRouter() const id = router.query.id const auth = useAuth(); const { transaction } = useTransaction({id}); const [isModalOpen, setIsModalOpen] = useState(false); const [selectedProduct, setSelectedProduct] = useState(null); const [reason, setReason] = useState(''); const addItemToCart = () => { toast.success('Berhasil menambahkan ke keranjang', { duration: 1500 }) updateItemCart({ productId: product.id, quantity: 1 }) return } const checkoutItem = () => { router.push(`/shop/checkout?product_id=${product.id}&qty=${product.quantity}`) } const openModal = (product) => { setSelectedProduct(product); setIsModalOpen(true); }; const closeModal = () => { setIsModalOpen(false); setSelectedProduct(null); setReason(''); }; const handleRejectProduct = async () => { try { if (!reason.trim()) { toast.error('Masukkan alasan terlebih dahulu'); return; }else{ let idSo = transaction?.data.id let idProduct = selectedProduct.id await rejectProductApi({ idSo, idProduct, reason}); closeModal(); toast.success("Produk berhasil di reject") setTimeout(() => { window.location.reload(); }, 1500); } } catch (error) { toast.error('Gagal reject produk. Silakan coba lagi.'); } }; const Card = () => (
{product.parent.name}
{product.isSni && ( )}
{product.isTkdn && ( )}

{product.parent.name}

{product.code || '-'} {product.attributes.length > 0 ? ` ・ ${product.attributes.join(', ')}` : ''}

Berat Item : {product?.weight} Kg x {product?.quantity} Barang

{product.hasFlashsale && ( <>

{currencyFormat(product.price.price)}

{product.price.discountPercentage}% )}

{product.price.priceDiscount > 0 ? currencyFormat(product.price.priceDiscount) + ' × ' + product.quantity + ' Barang' : ''}

{product.price.priceDiscount > 0 ? ( currencyFormat(product.quantity * product.price.priceDiscount) ) : ( Call for Inquiry{' '} )}

) if (openOnClick) { return ( <> {buyMore && (!transaction?.data?.productsRejectLine.some(pr => pr.id === product.id)) && (
{/* {auth?.feature.soApproval && (auth.webRole == 2 || auth.webRole == 3) && (transaction.data.isReaject == false) && ( */} {auth?.feature.soApproval && (auth.webRole == 2 || auth.webRole == 3) && (router.asPath.includes("/my/quotations/")) && ( !transaction?.data?.productsRejectLine.some(pr => pr.id === product.id) && ( ) )} {isModalOpen && (

Berikan Alasan

)}
)} ) } return } export default VariantCard