[UX-аудит #02] Дедуп чисел на странице результата — одни и те же суммы повторяются 3–4 раза #1990

Closed
opened 2026-06-27 12:48:37 +00:00 by lekss361 · 1 comment
Owner

Источник: UX-аудит Trade-In (gendesign-tradeinaudit/UX-аудит.html, 27.06.2026).

Проблема

После основного блока цен идут: две карточки «Рекомендованная цена / Цены по сделкам» (дубль), затем три полосы диапазона подряд — «в объявлениях», «по фактическим сделкам», «прогноз». В итоге 6,13 млн повторяется ~4 раза, 161 351 ₽/м² — три, Avito IMV 6,35 млн — дважды.

Почему

Повтор раздувает страницу, создаёт ощущение «налили объёма». Именно длина отодвигает итог вниз (см. #01).

Фикс

Каждое число — один раз:

  • Три полосы диапазона → одна с переключателем «объявления / сделки / прогноз».
  • Две карточки-дубля убрать.
  • Цель — срезать высоту экрана вдвое без потери данных.

Acceptance

  • Нет блоков, дублирующих уже показанную медиану/диапазон.
  • Диапазон — один компонент с переключателем источника.
  • Высота result-ленты заметно меньше (визуальный diff было→стало).

Файлы: PriceRangeBar.tsx, DistributionCard.tsx, карточки цен в result-странице.

> Источник: UX-аудит Trade-In (`gendesign-tradein` → `audit/UX-аудит.html`, 27.06.2026). ## Проблема После основного блока цен идут: две карточки «Рекомендованная цена / Цены по сделкам» (дубль), затем три полосы диапазона подряд — «в объявлениях», «по фактическим сделкам», «прогноз». В итоге `6,13 млн` повторяется ~4 раза, `161 351 ₽/м²` — три, `Avito IMV 6,35 млн` — дважды. ## Почему Повтор раздувает страницу, создаёт ощущение «налили объёма». Именно длина отодвигает итог вниз (см. #01). ## Фикс Каждое число — **один раз**: - Три полосы диапазона → одна с переключателем «объявления / сделки / прогноз». - Две карточки-дубля убрать. - Цель — срезать высоту экрана вдвое без потери данных. ## Acceptance - [ ] Нет блоков, дублирующих уже показанную медиану/диапазон. - [ ] Диапазон — один компонент с переключателем источника. - [ ] Высота result-ленты заметно меньше (визуальный diff было→стало). Файлы: `PriceRangeBar.tsx`, `DistributionCard.tsx`, карточки цен в result-странице.
lekss361 added the
enhancement
priority/p1
scope/frontend
tradein
ux
labels 2026-06-27 12:50:01 +00:00
Author
Owner

Живая проверка: PriceRangeBar.tsx/DistributionCard.tsx в контексте issue — компоненты MVP-роута (/trade-in без /v2), который редиректит на v2 (подтверждено curl -sL изнутри docker-сети). Недостижимо прод-пользователем.

В v2 дедуп чисел частично сделан (#2266 H3: медианы унифицированы на median_price_rub across hero/оверлей/сводку), но живой аудит #2081 (M1, M11) находит ОСТАТОЧНЫЕ рассинхроны в v2 (счётчик источников плавает, «безымянные числа» в СВОДКЕ) — это актуальное продолжение той же проблемы, просто в других файлах (mappers.ts, ObjectSummary.tsx).

Закрываю как superseded — недостижимый код. Актуальный трекинг той же проблемы — #2081 M1/M11.

Живая проверка: `PriceRangeBar.tsx`/`DistributionCard.tsx` в контексте issue — компоненты MVP-роута (`/trade-in` без `/v2`), который редиректит на v2 (подтверждено `curl -sL` изнутри docker-сети). Недостижимо прод-пользователем. В v2 дедуп чисел частично сделан (#2266 H3: медианы унифицированы на `median_price_rub` across hero/оверлей/сводку), но живой аудит #2081 (M1, M11) находит ОСТАТОЧНЫЕ рассинхроны в v2 (счётчик источников плавает, «безымянные числа» в СВОДКЕ) — это актуальное продолжение той же проблемы, просто в других файлах (`mappers.ts`, `ObjectSummary.tsx`). **Закрываю как superseded — недостижимый код.** Актуальный трекинг той же проблемы — #2081 M1/M11.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1990
No description provided.