import style from '../styles/image.module.css'; import ImageNext from 'next/image'; import React, { useEffect, useMemo, useState } from 'react' import { InfoIcon } from 'lucide-react' import { Tooltip } from '@chakra-ui/react' import { IProductDetail } from '~/types/product' import ImageUI from '~/components/ui/image' import moment from 'moment'; type Props = { product: IProductDetail } const Image = ({ product }: Props) => { const flashSale = product.flash_sale const [count, setCount] = useState(flashSale?.remaining_time || 0); 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 () => { }; }, []); useEffect(() => { let interval: NodeJS.Timeout; if (flashSale?.remaining_time && flashSale.remaining_time > 0) { setCount(flashSale.remaining_time); interval = setInterval(() => { setCount((prevCount) => prevCount - 1); }, 1000); } return () => { clearInterval(interval); }; }, [flashSale?.remaining_time]); const duration = moment.duration(count, 'seconds') const image = useMemo(() => { if (product.image) return product.image + '?ratio=square' return '/images/noimage.jpeg' }, [product.image]) return (