Add map empty-state dataset actions
GeoIntel CI / docs-smoke (push) Has been cancelled
GeoIntel CI / contract-smoke (push) Has been cancelled

This commit is contained in:
Codex
2026-06-19 02:51:01 +02:00
parent 6c0acad253
commit 4e73a22358
8 changed files with 123 additions and 1 deletions
+20 -1
View File
@@ -1,5 +1,5 @@
import GeoMap from '../GeoMap'
import type { AreaRead } from '../../types'
import type { AreaRead, DatasetCreateResponse } from '../../types'
interface MapWorkspaceProps {
areas: AreaRead[]
@@ -16,7 +16,9 @@ interface MapWorkspaceProps {
mapFeatureCount: number
areaFeatureCount: number
selectedMapFeature: GeoJSON.Feature | null
availableMapDatasets: DatasetCreateResponse[]
onSelectMapArea: (areaId: string) => void
onOpenDatasetInMap: (dataset: DatasetCreateResponse) => void
onSetAreaLayerVisible: (visible: boolean) => void
onSetAreaLayerOpacity: (opacity: number) => void
onSetMapLayerVisible: (visible: boolean) => void
@@ -39,7 +41,9 @@ export function MapWorkspace({
mapFeatureCount,
areaFeatureCount,
selectedMapFeature,
availableMapDatasets,
onSelectMapArea,
onOpenDatasetInMap,
onSetAreaLayerVisible,
onSetAreaLayerOpacity,
onSetMapLayerVisible,
@@ -150,6 +154,21 @@ export function MapWorkspace({
<div className="empty-state map-empty-state">
<strong>No active vector or result layer</strong>
<p>Open a dataset, detection run, segmentation run or change result to draw it here.</p>
{availableMapDatasets.length > 0 ? (
<>
<p className="eyebrow">Open a ready vector dataset</p>
<div className="map-empty-action-grid">
{availableMapDatasets.map((dataset) => (
<button className="secondary-action" key={dataset.id} type="button" onClick={() => onOpenDatasetInMap(dataset)}>
<span>{dataset.name}</span>
<strong>Open in map</strong>
</button>
))}
</div>
</>
) : (
<p className="muted">No ready vector datasets available yet. Upload or seed a vector dataset first.</p>
)}
</div>
) : null}
<GeoMap