"use client"; import React from 'react'; import Link from 'next/link'; import { getImageUrl } from '../lib/utils'; interface PromoBanner { id: string; title: string; subtitle: string; cta: string; href: string; image: string; bgColor: string; } const DEFAULT_BANNERS: PromoBanner[] = []; interface PromoBannersSectionProps { config?: any; } function mapConfigBanners(raw: any[]): PromoBanner[] { return raw.slice(0, 2).map((b: any, idx: number) => { return { id: String(b.id || `banner-${idx + 1}`), title: String(b.title || ''), subtitle: String(b.subtitle || ''), cta: String(b.cta || b.buttonText || b.button_text || 'Shop Now'), href: String( b.buttonUrl || b.button_url || b.link || b.href || '/shop' ), image: getImageUrl(b.image || b.image_url) || '', bgColor: String(b.bgColor || b.bg_color || '#F2F4F3'), }; }); } export const PromoBannersSection: React.FC = ({ config, }) => { const fromConfig = config?.metadata_json?.banners || config?.metadata?.banners; const banners = Array.isArray(fromConfig) && fromConfig.length > 0 ? mapConfigBanners(fromConfig) : DEFAULT_BANNERS; if (banners.length === 0) return null; return (
{config?.title && (

{config.title}

)}
{banners.map((banner) => (

{banner.title}

{banner.subtitle ? (

{banner.subtitle}

) : null} {banner.cta}
{banner.image ? ( // eslint-disable-next-line @next/next/no-img-element {banner.title} ) : null}
))}
); };