"use client"; import type { ParcelAnalysis } from "@/types/site-finder"; import { SectionLabel } from "@/components/ui/SectionLabel"; import { EmptyState } from "@/components/ui/EmptyState"; import { GeologyBlock } from "./GeologyBlock"; import { GeometrySuitabilityBlock } from "./GeometrySuitabilityBlock"; import { GeotechRiskBlock } from "./GeotechRiskBlock"; import { NeighborsBlock } from "./NeighborsBlock"; import { NspdZoningBlock } from "./NspdZoningBlock"; import { NspdZouitOverlapsBlock } from "./NspdZouitOverlapsBlock"; import { NspdEngineeringNearbyBlock } from "./NspdEngineeringNearbyBlock"; import { NspdRiskZonesBlock } from "./NspdRiskZonesBlock"; import { NspdOpportunityBlock } from "./NspdOpportunityBlock"; import { NspdRedLinesBlock } from "./NspdRedLinesBlock"; import { NspdFreshnessBadge } from "./NspdFreshnessBadge"; interface Props { data: ParcelAnalysis; } export function LandTab({ data }: Props) { const hasAny = data.geotech_risk !== undefined || data.geology !== undefined || data.geometry_suitability !== undefined || data.neighbors_summary !== undefined || data.nspd_zoning !== undefined || data.nspd_zouit_overlaps !== undefined || data.nspd_engineering_nearby !== undefined || data.nspd_risk_zones !== undefined || (data.nspd_opportunity_parcels !== undefined && (data.nspd_opportunity_parcels?.length ?? 0) > 0) || (data.nspd_red_lines !== undefined && (data.nspd_red_lines?.length ?? 0) > 0); return (
{/* P2 (#46) — Соседи + overlap warning (hard warn если overlap) */} {data.neighbors_summary && ( )} {/* P1 (#45) — Geometry suitability */} {data.geometry_suitability !== undefined && ( )} {/* Issue #202 — Зонирование (ПЗЗ) из НСПД */}
Зонирование (ПЗЗ)
{/* Issue #202 — ЗОУИТ пересечения */} {data.nspd_zouit_overlaps !== undefined && (
Зоны с особыми условиями использования (ЗОУИТ)
)} {/* Issue #94 PR2 TIER 4 — Opportunity parcels */} {(data.nspd_opportunity_parcels?.length ?? 0) > 0 && (
Возможности рядом (НСПД)
)} {/* Issue #94 PR2 TIER 4 — Red lines */} {(data.nspd_red_lines?.length ?? 0) > 0 && (
Красные линии застройки (НСПД)
)} {/* Issue #94 TIER 3 — Риск-зоны НСПД */} {data.nspd_risk_zones !== undefined && (
Природные риски (НСПД)
)} {/* Issue #202 — Инженерные объекты в 200 м */} {data.nspd_engineering_nearby !== undefined && (
Инженерные объекты вблизи участка
)} {/* Geotech risk */} {data.geotech_risk !== undefined && (
Геотехнический риск
)} {/* Geology */} {data.geology !== undefined && (
Геология
)} {!hasAny && }
); }