// Kits / Offers screen const KITS = [ { id: 'basic', name: 'Basic', contents: '1 álbum + 10 saquetas', cromos: '~70 cromos', price: 14.99, original: 15.62, color: '#7e8b89', badge: null, sachets: 10, img: 'uploads/kit-basic.png', }, { id: 'inicial', name: 'Inicial', contents: '1 álbum + 1 caixa', cromos: '30 saquetas · 210 cromos', price: 29.99, original: 39.90, color: '#3b8c6e', badge: 'POPULAR', sachets: 30, img: 'uploads/kit-inicial.png', }, { id: 'campeao', name: 'Campeão', contents: '1 álbum + 2 caixas', cromos: '60 saquetas · 420 cromos', price: 39.99, original: 59.90, color: '#d6263a', badge: 'MAIS VENDIDO', sachets: 60, img: 'uploads/kit-campeao.png', }, { id: 'colecionador', name: 'Colecionador', contents: '1 álbum + 3 caixas', cromos: '90 saquetas · 630 cromos', price: 59.99, original: 80.00, color: '#ffc83d', badge: 'MELHOR VALOR', sachets: 90, img: 'uploads/kit-colecionador.png', }, ]; window.KITS = KITS; function Offers({ discount, recommended, onPick }) { const [selected, setSelected] = React.useState(null); const recId = recommended.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, ''); React.useEffect(() => { // Pre-select recommended kit const k = KITS.find((x) => x.id.startsWith(recId)) || KITS[2]; setSelected(k.id); }, [recId]); return (
{/* Top discount banner */}
-{discount}% DESCONTO APLICADO · EXPIRA EM 14:23
{KITS.map((k) => { const isSelected = selected === k.id; const discountedPrice = (k.price * (1 - discount / 100)).toFixed(2); const isRecommended = k.id.startsWith(recId); return ( ); })}
{/* Continue */}
{ const k = KITS.find((x) => x.id === selected); onPick(k); }}> Continuar → Checkout
{/* Reassurance */}
{[ '🔒 Pagamento 100% seguro · MB Way, Multibanco, Cartão', '📦 Envio CTT registado · 24-48h em Portugal', '🔄 Garantia 30 dias · Devolução grátis', '🇵🇹 Stock e suporte em Portugal', ].map((t, i) =>
{t}
)}
); } Object.assign(window, { Offers, KITS });