feat(tradein/v2) [FE-1]: wire main dashboard to real API (mappers + page shell) #2048
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#2048
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/tradein-v2-fe1-data-shell"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #2038 · foundation for #2036.
Что
/trade-in/v2главный дашборд (NAV / HERO / 01 Параметры / 02 Результат / 03 Сводка / FOOTER) теперь рендерит реальную оценку вместоfixtures.ts.Архитектура (стандарт для FE-2..5)
components/trade-in/v2/mappers.ts— ЧИСТЫЕ функцииAggregatedEstimate(+street-deals/analytics) → fixture-shape(формат/1e6ru,toLocaleString('ru'), enum→RU, гистограмма-бины, scatter px, range CSS-%, donut из ratio). Вся геометрия/форматирование тут.page.tsxвладеет данными: форма →useEstimateMutation; restore по?id=черезwindow.location.search(как v1 — НЕuseSearchParams, иначе Suspense ломаетnext build); sub-хукиuseStreetDeals/useEstimateHouseAnalytics; loading (grey fade-skeleton, без shimmer) / empty / insufficient / error — честные плейсхолдеры, без fixtures-as-real; partial sub-hook fail не блокирует страницу.ResultPanel/ObjectSummary/HeroBar/Footerпринимают compositedataprop с fixture-default → пиксель-перфект разметка не тронута.ParamsPanel→ controlled-форма (onSubmit/isPending/error/initialValues).Маппинг
median_price_rub) / ожидаемая сделка (expected_sold_*+ донат изasking_to_sold_ratio) / ДКП (resolveDealTier: street-deals →dkp_corridor×area →actual_deals).sources_used, count FE-groupBy), сводка (+house-analytics.kpi).FE-approx (помечено TODO, снимется в BE-1 #2043)
cv— FE std/mean поanalogs[].price_per_m2(нет поля в ответе).count— FE groupBy (массивы усечены до top-N → занижает).date—expires_at − 24h(нетcreated_atв ответе).locationCoef/compass, РАДИУС, CRM-actions — degrade/hidden (BE-2 #2044 / BE-3 #2045).Verify
NEXT_PUBLIC_BASE_PATH=/trade-in npx next build— зелёный, route/v234 kB / 146 kB First Load JS, types/lint OK.code-reviewer: ✅ APPROVE (field-names verified vstypes/trade-in.ts, nullable-safe, Rules-of-Hooks OK, TS-strict, без визуальной регрессии)./trade-in/v2(submit реального ЕКБ-адреса + restore по?id=).Не трогает: v1 (
app/page.tsx), главныйfrontend/, overlays (FE-2..5 на fixtures пока).