diff --git a/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx b/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx index 7daefc74..eca23deb 100644 --- a/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx @@ -35,11 +35,11 @@ const CONF_BAND: Record = { }; /** - * Контакт для lead-стаба. Настраивается через NEXT_PUBLIC_TRADEIN_CONTACT_EMAIL; - * fallback совпадает с backend `settings.contact_email`. + * Лид-инбокс. Задаётся ТОЛЬКО через env NEXT_PUBLIC_TRADEIN_CONTACT_EMAIL. + * БЕЗ fallback: если не задан → CTA «оставить заявку» скрывается (leadEnabled), + * чтобы заявка с PII не ушла на чужой/тестовый адрес (review PR #689). */ -const CONTACT_EMAIL = - process.env.NEXT_PUBLIC_TRADEIN_CONTACT_EMAIL ?? "erginrajpopxbe@outlook.com"; +const CONTACT_EMAIL = (process.env.NEXT_PUBLIC_TRADEIN_CONTACT_EMAIL ?? "").trim(); /** * Эвристика уровня сопоставимых объектов из confidence_explanation. @@ -88,6 +88,8 @@ export function HeroTransparency({ estimate, brandSlug, brandName }: Props) { const band = CONF_BAND[estimate.confidence] ?? CONF_BAND.low; const tier = compsTier(estimate.confidence_explanation); const fresh = freshnessMoment(estimate); + // CTA показываем только при сконфигурированном лид-инбоксе (см. CONTACT_EMAIL) — review #689. + const leadEnabled = CONTACT_EMAIL.length > 0; // PDF endpoint (api/v1/trade_in.py) уже honor'ит ?brand= для white-label — // тот же паттерн, что в OfferCard, поэтому консистентно. @@ -110,16 +112,19 @@ export function HeroTransparency({ estimate, brandSlug, brandName }: Props) { return (
- {/* CTA — prominent primary (конверсия = преимущество над «мёртвым» PDF) */} - {/* TODO(lead-flow): заменить mailto-стаб на POST /api/v1/trade-in/lead, когда появится backend. */} - - - - - - - Оставить заявку на трейд-ин - + {/* CTA — prominent primary (конверсия = преимущество над «мёртвым» PDF). */} + {/* Рендерим ТОЛЬКО при сконфигурированном лид-инбоксе (review #689) — иначе */} + {/* заявка с PII ушла бы на чужой/тестовый адрес. TODO(lead-flow): POST /lead. */} + {leadEnabled && ( + + + + + + + Оставить заявку на трейд-ин + + )}