import { ArrowUpRight, Loader2 } from "lucide-react"; import Button from "@/components/ui/Button"; import TextAnimation from "@/components/ui/TextAnimation"; import ImageOrVideo from "@/components/ui/ImageOrVideo"; import GridOrCarousel from "@/components/ui/GridOrCarousel"; import ScrollReveal from "@/components/ui/ScrollReveal"; import useProducts from "@/hooks/useProducts"; type ProductMediaCardsProps = { tag: string; title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string }; products?: { name: string; price: string; imageSrc: string; onClick?: () => void; }[]; }; const ProductMediaCards = ({ tag, title, description, primaryButton, secondaryButton, products: productsProp, }: ProductMediaCardsProps) => { const { products: fetchedProducts, isLoading } = useProducts(); const isFromApi = fetchedProducts.length > 0; const products = isFromApi ? fetchedProducts.map((p) => ({ name: p.name, price: p.price, imageSrc: p.imageSrc, onClick: p.onProductClick, })) : productsProp; if (isLoading && !productsProp) { return ( ); } if (!products || products.length === 0) { return null; } return ( {tag} {(primaryButton || secondaryButton) && ( {primaryButton && } {secondaryButton && } )} {products.map((product) => ( {product.name} {product.price} ))} ); }; export default ProductMediaCards;
{tag}
{product.price}