gendesign/frontend/src/components/site-finder
lekss361 12030c4e76 fix(sf-legacy): фильтр стейл competitors (>1 года Сданные → не конкурент)
User: 'плюс проверь какие данн чтобы было то что хочет макс хотя бы похожи
что не старше года иначе жк не конкурент'.

Анализ /analyze для 66:41:0204016:10:
  Total competitors: 20
  Строящиеся: 6
  Сданные: 14 (12 из них ready_dt >1y → стейл)

Maxim spec: ЖК старше года не конкурент. Активные = строящиеся
ИЛИ ready_dt в будущем ИЛИ сданы ≤1 года назад.

MarketTab фильтрует data.competitors в relevantCompetitors:
  - site_status === 'Строящиеся' → активен
  - ready_dt в будущем → активен
  - ready_dt в пределах последнего года → активен
  - иначе скрыт

activeCount + CompetitorTable теперь используют отфильтрованный список.
Section label показывает 'N из M — фильтр' для прозрачности.

После deploy для тестового cad: activeCount упадёт с 20 → 9
(6 строящихся + 1 future ≤1y + 2 past ≤1y).
2026-05-18 07:29:26 +03:00
..
analysis feat(sf-fe-a11): Section 5 «Атмосфера / воздух» (#361) 2026-05-18 04:07:48 +00:00
entry fix(sf-fe): poi-score TypeError + drawer non-overlay + CSS design tokens (#353) 2026-05-18 00:04:30 +00:00
BestLayoutsBlock.tsx refactor(sf-19): BestLayouts inline hex → Tailwind tokens (#296) 2026-05-17 14:17:05 +00:00
CadInput.tsx feat(site-finder): POST /parcels/{cad}/analyze endpoint + UI 2026-05-11 18:11:58 +03:00
CompetitorTable.tsx feat(sf-fe-a8): Section 3.2 Планировки + 3.3 Остатки/Velocity + CompetitorTable drawer pattern (#357) 2026-05-18 01:14:32 +00:00
ConfidenceBadge.tsx feat(site-finder): X2 confidence indicator + caveats (#48) (#88) 2026-05-12 01:04:25 +03:00
ConnectionPointsLayer.tsx feat(#115): Leaflet layer toggle для connection points (Макс KILLER) 2026-05-16 22:51:12 +03:00
CpLayerControlPanel.tsx feat(#115): Leaflet layer toggle для connection points (Макс KILLER) 2026-05-16 22:51:12 +03:00
CustomPoiAddModal.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
CustomPoiEditModal.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
CustomPoiLayer.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
CustomPoiToggleButton.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
EnvironmentTab.tsx refactor(frontend): extract SectionLabel + EmptyState + adminStyles shared (#132) 2026-05-14 23:55:38 +03:00
FetchingState.tsx feat(site-finder): auto-fetch cadastre geometry on-demand (#93) (#95) 2026-05-12 09:02:17 +03:00
GateVerdictBanner.tsx feat(site-finder): G5 gate verdict banner in OverviewTab (#32 sub-PR 2/2 FINAL) (#143) 2026-05-15 01:09:34 +03:00
GeologyBlock.tsx feat(site-finder): v3.4 - weather enrichment (temp/precip/UV) + geology stub 2026-05-11 21:17:57 +03:00
GeometrySuitabilityBlock.tsx feat(site-finder): P1 geometry suitability score (#45) (#89) 2026-05-12 08:00:12 +03:00
GeotechRiskBlock.tsx feat(site-finder): v3.5 - seasonal weather + hydrology + geotech risk 2026-05-11 21:32:07 +03:00
HydrologyBlock.tsx feat(site-finder): v3.5 - seasonal weather + hydrology + geotech risk 2026-05-11 21:32:07 +03:00
IsochronesPanel.tsx feat(site-finder): isochrones UI + networks VKH + OSM substations 2026-05-11 21:48:21 +03:00
KpiCard.tsx feat(site-finder): tabbed UX - hero KPI band + 4 tabs (Overview/Env/Land/Market) + sticky map 2026-05-11 23:21:39 +03:00
LandTab.tsx feat(nspd): TIER 4 opportunity layers + red lines (#94 PR2 of 4) 2026-05-16 19:06:22 +03:00
MarketTab.tsx fix(sf-legacy): фильтр стейл competitors (>1 года Сданные → не конкурент) 2026-05-18 07:29:26 +03:00
MarketTrendBlock.tsx fix(sf-12): MarketTrend — adaptive n<30/n<100 confidence warnings 2026-05-17 16:33:22 +03:00
NeighborsBlock.tsx feat(site-finder): P2 cad_buildings соседи + overlap check (#46) (#91) 2026-05-12 01:30:53 +03:00
NspdEngineeringNearbyBlock.tsx feat(site-finder): NSPD frontend integration в LandTab (#202) (#212) 2026-05-16 11:55:31 +00:00
NspdFreshnessBadge.tsx fix(#234): NSPD harvest ETA badge + SETNX dedupe (Sub-PR C) 2026-05-17 09:13:06 +03:00
NspdOpportunityBlock.tsx feat(nspd): TIER 4 opportunity layers + red lines (#94 PR2 of 4) 2026-05-16 19:06:22 +03:00
NspdRedLinesBlock.tsx fix(nspd): rename migration 89→98, fix red lines ST_Area→ST_Length (#220) 2026-05-16 19:33:14 +03:00
NspdRiskZonesBlock.tsx feat(nspd): enable TIER 3 risk zones harvest + extract in analyze (#94 PR1) 2026-05-16 16:11:59 +03:00
NspdZoningBlock.tsx fix(#234): NSPD harvest ETA badge + SETNX dedupe (Sub-PR C) 2026-05-17 09:13:06 +03:00
NspdZouitOverlapsBlock.tsx feat(site-finder): NSPD frontend integration в LandTab (#202) (#212) 2026-05-16 11:55:31 +00:00
OverviewTab.tsx feat(sf-legacy): expose EGRN + utilities в Обзор tab 2026-05-18 07:21:53 +03:00
Pipeline24moBlock.tsx fix(site-finder): visible by-quarter pipeline bars (#167) 2026-05-15 10:35:51 +03:00
ScoreBreakdownPanel.tsx feat(site-finder): X1 score breakdown + verbal explain (#47) (#92) 2026-05-12 08:17:00 +03:00
ScoreBreakdownStackedBar.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
ScoreCard.tsx feat(site-finder): tabbed UX - hero KPI band + 4 tabs (Overview/Env/Land/Market) + sticky map 2026-05-11 23:21:39 +03:00
SeasonalWeatherBlock.tsx feat(site-finder): v3.5 - seasonal weather + hydrology + geotech risk 2026-05-11 21:32:07 +03:00
SiteMap.tsx feat(#254,#114): custom POI UI + score breakdown stacked-bar viz 2026-05-17 09:35:35 +03:00
SuccessRecommendationBlock.tsx fix(sf-20): adaptive district threshold 30→15 with data_confidence flag 2026-05-17 16:34:52 +03:00
VelocityBlock.tsx fix(sf-17): rosreestr velocity fallback via cad_quarter (~100% EKB coverage) 2026-05-17 16:50:19 +03:00
WeightProfilePanel.tsx feat(site-finder): weight profile panel + analyze options (#114 sub-PR 4/4 FINAL) (#139) 2026-05-15 00:50:02 +03:00