import React, { useEffect, useState } from 'react' import Image from '@/core/components/elements/Image/Image' import BottomPopup from '@/core/components/elements/Popup/BottomPopup' import CountDown2 from '@/core/components/elements/CountDown/CountDown2' import currencyFormat from '@/core/utils/currencyFormat' import { getPromotionProgram } from '../api/homepageApi' const PromotionType = ({ isModal = false, variantId, setPromotionActiveId, promotionActiveId, quantity, product = null, setProducts = null }) => { const [selectedPromo, setSelectedPromo] = useState(null) const [promotionType, setPromotionType] = useState(false) const [promos, setPromotionList] = useState(null) const [activeTitle, setActiveTitle] = useState(null) const [quantitySet, setQuantity] = useState(null) useEffect(() => { const id = variantId const listProgram = async () => { const programs = await getPromotionProgram({ id }) if (programs?.length > 0) { setPromotionList(programs) setActiveTitle(programs?.[0].type.value) } } listProgram() setSelectedPromo(promotionActiveId) if (product) { const variant = product.variants.find((variant) => variant.id === variantId) setQuantity(variant.quantity) }else{ setQuantity(quantity) } }, []) const groupingData = promos?.reduce((groups, item) => { const promoType = item.type.value if (!groups[promoType]) { groups[promoType] = [] } groups[promoType].push(item) return groups }, {}) const handlePromoClick = (promoId, minQty) => { if (quantitySet >= minQty) { if (promoId == selectedPromo) { setSelectedPromo(null) setPromotionActiveId(null) if (product) { const updateProdcuts = () => { let variantIndex = product.variants.findIndex((varian) => varian.id == variantId) product.variants[variantIndex].programActive = null setProducts(product) } updateProdcuts() } } else { setSelectedPromo(promoId) setPromotionActiveId(promoId) if (product) { const updateProdcuts = () => { let variantIndex = product.variants.findIndex((varian) => varian.id == variantId) product.variants[variantIndex].programActive = promoId setProducts(product) } updateProdcuts() } } } } const handlePopUp = () => { if (isModal == false) { setPromotionType(true) } } return ( promos && ( <>
{item.name}
{promo.name}