diff --git a/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx b/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx index 617524de..46f84051 100644 --- a/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx @@ -53,7 +53,7 @@ const SOURCE_LABELS: Record = { const CONF_LABELS: Record = { high: { txt: "высокая", color: "var(--success)" }, - medium: { txt: "средняя", color: "var(--success)" }, + medium: { txt: "средняя", color: "var(--warn)" }, low: { txt: "низкая", color: "var(--danger)" }, }; diff --git a/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx b/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx index eca23deb..d372196a 100644 --- a/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/HeroTransparency.tsx @@ -47,6 +47,11 @@ const CONTACT_EMAIL = (process.env.NEXT_PUBLIC_TRADEIN_CONTACT_EMAIL ?? "").trim * Null → ничего не показываем (graceful). */ function compsTier(explanation: string | null): string | null { + // FIXME: backend should expose structured comps_tier (#695 follow-up). + // AggregatedEstimate не отдаёт структурного tier-поля для anchor-уровня + // (только AnalogLot.tier для отдельных rosreestr-сделок), поэтому уровень + // приходится извлекать substring-эвристикой из прозы confidence_explanation. + // Хрупко к переформулировке бэкенда — оставлено как fallback до появления поля. if (!explanation) return null; const t = explanation.toLowerCase(); if (t.includes("тот же дом") || t.includes("того же дома") || t.includes("этом же доме"))