/** * EgrnPropertyTable — 2-column key-value table of 10 EGRN properties. * Server component (no "use client") — pure display. * monospace for cad_num and area_m2. */ import type { ParcelEgrn } from "@/lib/site-finder-api"; interface Props { data: ParcelEgrn; } interface Row { label: string; value: string; mono?: boolean; } function formatDate(raw: string | null): string { if (!raw) return "—"; try { return new Date(raw).toLocaleDateString("ru-RU"); } catch { return raw; } } function buildRows(data: ParcelEgrn): Row[] { return [ { label: "Кадастровый номер", value: data.cad_num, mono: true }, { label: "Адрес", value: data.address }, { label: "Площадь", value: Number.isFinite(data.area_m2) && data.area_m2 > 0 ? `${data.area_m2.toLocaleString("ru")} м²` : "—", mono: true, }, { label: "ВРИ", value: data.vri }, { label: "Категория", value: data.category }, { label: "Дата регистрации", value: formatDate(data.registration_date), }, { label: "Форма собственности", value: data.owner_type }, { label: "Обременения", value: data.encumbrance }, { label: "Статус", value: data.status }, { label: "Обновлено", value: formatDate(data.last_updated) }, ]; } export function EgrnPropertyTable({ data }: Props) { const rows = buildRows(data); return (
ЕГРН
{rows.map((row, i) => ( ))}
{row.label} {row.value}
); }