chore(frontend): фикстуры макета не по умолчанию + удаление осиротевших компонентов #2747

Merged
lekss361 merged 1 commit from chore/frontend-dead-code-and-fixtures into main 2026-08-06 18:59:51 +00:00
Owner

Волна 0 инвентаризации техдолга. Два независимых куска, оба только убирают.

МЕРА — фикстуры дизайн-макета перестают быть значением по умолчанию

У восьми компонентов витрины v2 проп data имел дефолт из fixtures.ts — sample-данных дизайн-макета. Пока данные приходят, всё в порядке; но при сбое передачи компонент отрисовал бы выдуманные числа вместо пустого состояния. На экране оценки, за который человек платит, это худший вид отказа: неотличимый от правды.

Проп стал обязательным. Плюс цепная правка в SectionOverlay — его собственные поля были опциональными и пробрасывались в теперь-обязательные пропы дочерних компонентов, без этого не компилировалось.

Проверено перед правкой: единственный потребитель на app-пути — app/v2/page.tsx, и он всегда передаёт data явно. Отдельной preview-страницы у v2/fixtures.ts нет: ui-preview/estimate рендерит другие, v1-компоненты со своей локальной фикстурой.

Не тронуто намеренно: остальные экспорты того же файла (navLabels, version, overlayNums, overlayTitles, dropdownOptions) — это статический UI-конфиг, используется безусловно и риска «выдуманных чисел отчёта» не несёт.

Птица — удаление осиротевших компонентов

Шесть файлов, по каждому подтверждён ноль импортов по всему репозиторию, включая динамические импорты и строковые пути:

ScoreCard.tsx (5 строк, пустой export {} с комментарием «чтобы не сломать импорты», которых не существует), AnalysisBreadcrumb, AnalysisSidebar, MassingEconomics, UserAvatar, PticaPlaceholderPanel. Плюс подчищены два комментария, ссылавшихся на удалённое.

Задача называла семь файлов, перечисляя шесть — расхождение зафиксировано, седьмой не выдумывался.

Не тронуто: _legacy/page-tabs.tsx, оба PriceRangeBar.tsx, весь кокпит ПТИЦА (42 файла — отдельное решение, не эта волна), v1-витрина МЕРЫ (24 из 33 её «мёртвых» файлов рендерятся страницей предпросмотра и нужны дизайн-циклу).

Побочный факт, оставленный как есть: после удаления MassingEconomics хук useRecomputeMassing в concept-api.ts остался без потребителей — вне заявленного объёма.

Проверка

  • МЕРА: tsc --noEmit чисто, eslint чисто, next build успешен (/v2 48.4 kB, /ui-preview/estimate не задет).
  • Птица: tsc --noEmit чисто, lint без предупреждений, vitest — 32 файла / 264 теста зелёные, next build успешен, 23 роута включая кокпит.

После мержа

Стоит глазами проверить /trade-in/v2 (HUD с реальными данными, оверлеи) и раздел анализа Птицы — сборка прошла, но визуальную проверку она не заменяет.

Волна 0 инвентаризации техдолга. Два независимых куска, оба только убирают. ## МЕРА — фикстуры дизайн-макета перестают быть значением по умолчанию У восьми компонентов витрины v2 проп `data` имел дефолт из `fixtures.ts` — sample-данных дизайн-макета. Пока данные приходят, всё в порядке; но при сбое передачи компонент отрисовал бы **выдуманные числа вместо пустого состояния**. На экране оценки, за который человек платит, это худший вид отказа: неотличимый от правды. Проп стал обязательным. Плюс цепная правка в `SectionOverlay` — его собственные поля были опциональными и пробрасывались в теперь-обязательные пропы дочерних компонентов, без этого не компилировалось. **Проверено перед правкой:** единственный потребитель на app-пути — `app/v2/page.tsx`, и он всегда передаёт `data` явно. Отдельной preview-страницы у `v2/fixtures.ts` нет: `ui-preview/estimate` рендерит другие, v1-компоненты со своей локальной фикстурой. **Не тронуто намеренно:** остальные экспорты того же файла (`navLabels`, `version`, `overlayNums`, `overlayTitles`, `dropdownOptions`) — это статический UI-конфиг, используется безусловно и риска «выдуманных чисел отчёта» не несёт. ## Птица — удаление осиротевших компонентов Шесть файлов, по каждому подтверждён **ноль импортов** по всему репозиторию, включая динамические импорты и строковые пути: `ScoreCard.tsx` (5 строк, пустой `export {}` с комментарием «чтобы не сломать импорты», которых не существует), `AnalysisBreadcrumb`, `AnalysisSidebar`, `MassingEconomics`, `UserAvatar`, `PticaPlaceholderPanel`. Плюс подчищены два комментария, ссылавшихся на удалённое. Задача называла семь файлов, перечисляя шесть — расхождение зафиксировано, седьмой не выдумывался. **Не тронуто:** `_legacy/page-tabs.tsx`, оба `PriceRangeBar.tsx`, весь кокпит ПТИЦА (42 файла — отдельное решение, не эта волна), v1-витрина МЕРЫ (24 из 33 её «мёртвых» файлов рендерятся страницей предпросмотра и нужны дизайн-циклу). Побочный факт, оставленный как есть: после удаления `MassingEconomics` хук `useRecomputeMassing` в `concept-api.ts` остался без потребителей — вне заявленного объёма. ## Проверка - МЕРА: `tsc --noEmit` чисто, eslint чисто, `next build` успешен (`/v2` 48.4 kB, `/ui-preview/estimate` не задет). - Птица: `tsc --noEmit` чисто, lint без предупреждений, `vitest` — 32 файла / 264 теста зелёные, `next build` успешен, 23 роута включая кокпит. ## После мержа Стоит глазами проверить `/trade-in/v2` (HUD с реальными данными, оверлеи) и раздел анализа Птицы — сборка прошла, но визуальную проверку она не заменяет.
lekss361 added 1 commit 2026-08-06 17:20:34 +00:00
chore(frontend): фикстуры макета не по умолчанию + удаление осиротевших компонентов
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 8s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m13s
CI Trade-In / frontend-checks (pull_request) Successful in 1m19s
CI / openapi-codegen-check (pull_request) Successful in 2m20s
91b460b157
Волна 0 инвентаризации техдолга.

МЕРА: у восьми компонентов витрины v2 проп data имел значение по
умолчанию из fixtures.ts — sample-данных дизайн-макета. При сбое
передачи данных компонент отрисовал бы выдуманные числа вместо
пустого состояния; на платном экране оценки это неотличимо от
правды. Проп стал обязательным. Цепная правка в SectionOverlay:
его опциональные поля пробрасывались в теперь-обязательные пропы.

Проверено: единственный потребитель — app/v2/page.tsx, всегда
передаёт data явно. Отдельной preview-страницы у v2/fixtures.ts
нет. Статический UI-конфиг из того же файла (лейблы, версия,
опции) не тронут — он не про данные отчёта.

Птица: удалены шесть осиротевших компонентов (ScoreCard,
AnalysisBreadcrumb, AnalysisSidebar, MassingEconomics, UserAvatar,
PticaPlaceholderPanel) — по каждому подтверждён ноль импортов по
всему репозиторию, включая динамические. Подчищены два
ссылающихся комментария.

Проверка: tsc и eslint чисто на обоих фронтах, next build успешен,
vitest Птицы 264 теста зелёные.
lekss361 merged commit 76c3f5c110 into main 2026-08-06 18:59:51 +00:00
lekss361 deleted branch chore/frontend-dead-code-and-fixtures 2026-08-06 18:59:52 +00:00
Sign in to join this conversation.
No reviewers
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#2747
No description provided.