import React from "react"; import { Icone } from "../base/Icone.jsx"; import { Selo } from "../base/Selo.jsx"; import { Botao } from "../base/Botao.jsx"; import { NotaOferta } from "./NotaOferta.jsx"; const reais = (c) => (c / 100).toLocaleString("pt-BR", { style: "currency", currency: "BRL" }); /** Cartão da oferta: imagem, loja, título, preços, selos, motivos e nota. */ export function CartaoOferta({ oferta, aoAbrir, aoEnviar, aoDescartar, selecionado = false, compacto = false, className = "" }) { const o = oferta || {}; const desconto = o.precoAnteriorCentavos ? Math.round((1 - o.precoCentavos / o.precoAnteriorCentavos) * 100) : null; return (
aoAbrir(o) : undefined} style={aoAbrir ? { cursor: "pointer" } : undefined}>
{o.imagem ? : }
{o.loja}{o.oficial && }{o.vendidos != null && · {o.vendidos.toLocaleString("pt-BR")} vendidos}{o.avaliacao != null && · {o.avaliacao.toFixed(1)}}

{o.titulo}

{reais(o.precoCentavos || 0)} {o.precoAnteriorCentavos && {reais(o.precoAnteriorCentavos)}} {desconto != null && desconto > 0 && }>-{desconto}%}
{!compacto && (
{o.menorPreco90d && }>Menor preço em 90 dias} {o.freteGratis && }>Frete grátis} {o.relampago && }>Relâmpago} {o.descontoInflado && }>"De" inflado}
)} {!compacto && o.motivos && o.motivos.length > 0 && ( )}
{!compacto && (aoEnviar || aoDescartar) && (
e.stopPropagation()}> {aoDescartar && aoDescartar(o)}>Descartar} {aoEnviar && } onClick={() => aoEnviar(o)}>Enviar}
)}
); }