import style from '../styles/product-card.module.css' import ImageNext from 'next/image'; import clsx from 'clsx' import Link from 'next/link' import React, { useEffect, useMemo, useState } from 'react' import Image from '~/components/ui/image' import useUtmSource from '~/hooks/useUtmSource' import clsxm from '~/libs/clsxm' import formatCurrency from '~/libs/formatCurrency' import { formatToShortText } from '~/libs/formatNumber' import { createSlug } from '~/libs/slug' import { IProduct } from '~/types/product' type Props = { product: IProduct layout?: 'vertical' | 'horizontal' } const ProductCard = ({ product, layout = 'vertical' }: Props) => { const utmSource = useUtmSource() const [isSni, setIsSni] = useState(false); const [isTkdn, setTkdn] = useState(false); useEffect(() => { // Lakukan pemanggilan API untuk memeriksa isSni const fetchSniData = async () => { try { const response = await fetch('URL_API_SNI'); const data = await response.json(); if (data && data.sni) { setIsSni(true); } else { setIsSni(false); } } catch (error) { console.error('Error fetching SNI data:', error); setIsSni(false); } }; // Lakukan pemanggilan API untuk memeriksa isTkdn const fetchTkdnData = async () => { try { const response = await fetch('URL_API_TKDN'); const data = await response.json(); if (data && data.tkdn) { setTkdn(true); } else { setTkdn(false); } } catch (error) { console.error('Error fetching TKDN data:', error); setTkdn(false); } }; fetchSniData(); fetchTkdnData(); return () => { }; }, []); const URL = { product: createSlug('/shop/product/', product.name, product.id.toString()) + `?utm_source=${utmSource}`, manufacture: createSlug('/shop/brands/', product.manufacture.name, product.manufacture.id.toString()), } const image = useMemo(() => { if (product.image) return product.image + '?ratio=square' return '/images/noimage.jpeg' }, [product.image]) return (