Add V1 selected area map overlay
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-17 00:21:01 +02:00
parent 97be9d9293
commit 47cd2c6c1e
12 changed files with 315 additions and 21 deletions
@@ -13,8 +13,10 @@ interface AreaPanelProps {
selectedProjectId: string | null
loadingAreas: boolean
areaForm: AreaFormState
selectedMapAreaId: string
onCreateArea: (event: FormEvent<HTMLFormElement>) => void
onUpdateAreaForm: (areaForm: AreaFormState) => void
onSelectMapArea: (areaId: string) => void
}
export function AreaPanel({
@@ -23,8 +25,10 @@ export function AreaPanel({
selectedProjectId,
loadingAreas,
areaForm,
selectedMapAreaId,
onCreateArea,
onUpdateAreaForm,
onSelectMapArea,
}: AreaPanelProps): JSX.Element {
return (
<section>
@@ -57,7 +61,11 @@ export function AreaPanel({
<ul>
{areas.map((area) => (
<li key={area.id}>
{area.name} · {area.area_m2 ? `${area.area_m2.toFixed(2)} m²` : 'n/a'}
<strong>{area.name}</strong> - {area.area_m2 ? `${area.area_m2.toFixed(2)} m2` : 'n/a'}
<div>geometry: {area.geometry?.type ?? area.geometry_type ?? 'n/a'}</div>
<button type="button" onClick={() => onSelectMapArea(area.id)} disabled={!area.geometry}>
{selectedMapAreaId === area.id ? 'Shown on map' : 'Show on map'}
</button>
</li>
))}
</ul>