diff --git a/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx b/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx index 652bd91e..7a6b0b9f 100644 --- a/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/HeroSummary.tsx @@ -5,6 +5,9 @@ /** * HeroSummary — Секция 1 «Сводка» из mockup tradein.html. * Показывает медиану + достоверность CV + параметры объекта + 2 ценовых бара (объявления / сделки). + * + * hero-duo__hint под диапазоном сделок несёт юр-требование владельца от + * 14.08.2026 (блок 4.1): SHORT_ESTIMATE_DISCLAIMER — см. `lib/legal-copy.ts`. */ import { useState } from "react"; import type { AggregatedEstimate, TradeInEstimateInput, HouseType, RepairState, ConfidenceLevel } from "@/types/trade-in"; @@ -12,6 +15,7 @@ import { asHouseType, asRepairState } from "@/types/trade-in"; import { useActiveBrandSlug, useBrand } from "@/lib/useBrand"; import { sourceDot, sourceLabel } from "@/lib/source-registry"; import { dealsAsOfLabel } from "@/lib/rosreestr"; +import { SHORT_ESTIMATE_DISCLAIMER } from "@/lib/legal-copy"; import { HeroTransparency } from "./HeroTransparency"; interface Props { @@ -478,6 +482,9 @@ export function HeroSummary({ estimate, input, onResubmit, isResubmitting = fals )}
+ {/* Блок 4.1 (владелец, 14.08.2026) — юр-строка идёт первым + предложением абзаца-дисклеймера, не отдельным блоком. */} + {SHORT_ESTIMATE_DISCLAIMER}{" "} Диапазон отражает разброс цен по рынку, а не погрешность оценки. {/* #2209: честное раскрытие точности — замеренное покрытие бэктестом по реальным ДКП Росреестра (2026-07: n=276, coverage 81.5%). diff --git a/tradein-mvp/frontend/src/components/trade-in/v2/ResultPanel.tsx b/tradein-mvp/frontend/src/components/trade-in/v2/ResultPanel.tsx index e2d50e8d..80895489 100644 --- a/tradein-mvp/frontend/src/components/trade-in/v2/ResultPanel.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/v2/ResultPanel.tsx @@ -1,9 +1,14 @@ "use client"; +/** + * §1.2-дисклеймер под ценовыми карточками несёт юр-требование владельца от + * 14.08.2026 (блок 4.1): SHORT_ESTIMATE_DISCLAIMER — см. `lib/legal-copy.ts`. + */ import { Fragment } from "react"; import type { Ref } from "react"; import { tokens } from "./tokens"; import type { ResultPanelData } from "./mappers"; +import { SHORT_ESTIMATE_DISCLAIMER } from "@/lib/legal-copy"; const { accent, @@ -557,20 +562,29 @@ export default function ResultPanel({ })} - {/* §1.2 честный разброс: диапазоны цен = рыночный спред, НЕ погрешность - оценки. Ставим сразу под ценовыми карточками, чтобы широкий диапазон - не читался как «неуверенность расчёта». */} + {/* §1.2 честный разброс + юр-дисклеймер (владелец, 14.08.2026, блок 4.1): + SHORT_ESTIMATE_DISCLAIMER идёт первым предложением, "разброс цен" + — вторым, один абзац (три отдельных оговорки подряд читались бы + как шум). Ставим сразу под ценовыми карточками, чтобы широкий + диапазон не читался как «неуверенность расчёта». + Компенсация высоты: этот блок стал на строку выше, чем до + SHORT_ESTIMATE_DISCLAIMER (776px средняя колонка узкая для двух + предложений в одну строку) — lineHeight/marginTop подрезаны, и + padding у "ranges + radar" box ниже уменьшен по вертикали, чтобы + не сжимать плитки "ИСТОЧНИКИ ДАННЫХ" (flex:1 ниже). Высота + артборда (1536×1024, v2/page.tsx) не менялась. */}