import React, { useEffect, useMemo, useState } from 'react' import style from "./PromoCard.module.css" import { ClockIcon, PlusIcon } from "lucide-react" import { IProductVariantPromo, IPromotion } from '~/common/types/promotion' import formatCurrency from '~/common/libs/formatCurrency' import PromoProduct from './PromoProduct' import { Skeleton, Spinner } from '@chakra-ui/react' import clsxm from '~/common/libs/clsxm' import { useCountdown } from 'usehooks-ts' type Props = { promotion: IPromotion } const PromoCard = ({ promotion }: Props) => { // TODO: useCountdown() const [products, setProducts] = useState([]) useEffect(() => { const getProducts = async () => { const datas = [] for (const product of promotion.products) { const response = await fetch(`/api/product-variant/${product.product_id}`) const res = await response.json() res.data.qty = product.qty datas.push(res.data) } setProducts(datas) } getProducts() }, [promotion.products]) const [freeProducts, setFreeProducts] = useState([]) useEffect(() => { const getFreeProducts = async () => { const datas = [] for (const product of promotion.free_products) { const response = await fetch(`/api/product-variant/${product.product_id}`) const res = await response.json() res.data.qty = product.qty datas.push(res.data) } setFreeProducts(datas) } getFreeProducts() }, [promotion.free_products]) const priceTotal = useMemo(() => { let total = 0; [...products, ...freeProducts].forEach((product) => { total += product.price.price_discount * product.qty console.log({ product }); }) return total }, [products, freeProducts]) const countdownClass = { 'text-white': true, 'bg-[#312782]': promotion.type.value === 'bundling', 'bg-[#329E44]': promotion.type.value === 'discount_loading', 'bg-[#FAD147]': promotion.type.value === 'merchandise', 'text-gray-700': promotion.type.value === 'merchandise', } return (
Berakhir dalam
00 01 35
{promotion.name}
0}> {products.map((product) => )} {freeProducts.map((product) => )}
0}> Rp{formatCurrency(priceTotal)} Hemat Rp {formatCurrency(priceTotal - promotion.price)}
Rp{formatCurrency(promotion.price)} (Total {promotion.total_qty} barang)
) } export default PromoCard