fix(tradein/v2): источники N1+Restate вон, Домклик в текст; disabled-палитра до AA (#2081)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped

- M9 correction: #2086 ошибочно убрал Домклик из «как считаем» (по stale-ссылке на
  #1968 «drop dead domklik»), но live-проверка под админом показала Домклик живым
  (реально даёт лоты). Возвращён в текст. N1.RU + RESTATE убраны из SOURCE_SLOTS
  (мёртвые — всегда «нет данных», не учитываем) → плитки и счётчик «N / 7» → «N / 5».
  TOTAL_SOURCES = SOURCE_SLOTS.length (единый источник истины: плитки/счётчик/текст
  не расходятся). Итог: Циан, Я.Недвижимость, Авито, Домклик (+ Росреестр сделки).
- C1 residual: disabledValue («—» no-data) #c2cdd9 1.4:1 -> #656b71 4.61:1;
  disabledLabel («нет данных») #aab7c5 1.7:1 -> #636b73 4.62:1. Аудит #2081 флагал
  «нет данных», #2086 дотемнил только muted-шкалу — disabled-палитру пропустил.

tsc + next build green. Найдено live-проверкой /trade-in/v2 под админом (реальная оценка).
This commit is contained in:
bot-backend 2026-06-29 02:03:16 +03:00
parent 69845ddcee
commit c362b8592a
3 changed files with 9 additions and 7 deletions

View file

@ -271,7 +271,7 @@ export function LocationDrawer({ open, onClose }: LocationDrawerProps) {
color: tokens.body2,
}}
>
Агрегируем объявления (Циан, Я.Недвижимость, Авито, N1.ru) и сделки
Агрегируем объявления (Циан, Я.Недвижимость, Авито, Домклик) и сделки
Росреестра по сопоставимым квартирам. Медиана{" "}
<b style={{ color: tokens.ink2 }}>/м²</b> 3 оценки:{" "}
<b style={{ color: tokens.ink2 }}>

View file

@ -68,8 +68,8 @@ import type {
} from "./types";
import { tokens } from "./tokens";
// Total number of source slots in the design (ЦИАН … N1.RU) — meta "N / 7".
const TOTAL_SOURCES = 7;
// Total number of source slots — meta "N / M". Single source of truth is
// SOURCE_SLOTS.length (defined with the array below as TOTAL_SOURCES).
// ── Composite presentation shapes consumed by the wired components ──────────
// One `data` prop per component; each field keeps its exact ./types shape.
@ -479,9 +479,11 @@ const SOURCE_SLOTS: ReadonlyArray<{ name: string; keys: string[] }> = [
{ name: "РОСРЕЕСТР", keys: ["rosreestr"] },
{ name: "АВИТО", keys: ["avito", "avito_imv"] },
{ name: "ДОМКЛИК", keys: ["domklik", "domclick"] },
{ name: "RESTATE", keys: ["restate"] },
{ name: "N1.RU", keys: ["n1", "n1ru"] },
];
// #2081 round2: N1.RU + RESTATE dropped — мёртвые (всегда «нет данных», не
// учитываем); Домклик оставлен (живой источник, реально даёт лоты). TOTAL_SOURCES
// = единый счётчик «N / M», чтобы плитки, счётчик и текст не расходились.
const TOTAL_SOURCES = SOURCE_SLOTS.length;
function buildSources(e: AggregatedEstimate): SourceCard[] {
const counts = new Map<string, number>();

View file

@ -78,8 +78,8 @@ export const tokens = {
// Disabled / no-data source card (02 RESULT · inactive source tile, design lines 366-384)
disabledBorder: "#d8e2ec", // inactive source card edge
disabledValue: "#c2cdd9", // greyed-out "—" count value
disabledLabel: "#aab7c5", // greyed-out "нет данных" caption
disabledValue: "#656b71", // 4.61:1 — "—" no-data value (#2081 C1: was #c2cdd9 1.4:1)
disabledLabel: "#636b73", // 4.62:1 — "нет данных" caption (#2081 C1: was #aab7c5 1.7:1)
// Accent glow (range-marker dot halo, design lines 303/341)
accentGlow: "rgba(46,139,255,.5)",