Files
geointel/docs/FRONTEND_STATE_CONTRACTS.md
T
Jens faeb58ef6d
GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
Initial public release
2026-08-31 21:56:53 +02:00

61 lines
1.2 KiB
Markdown

# Frontend State Contracts
## Global API State
Every API-backed component must support:
- idle
- loading
- success
- empty
- error
- refreshing
## Route State Pattern
Each route must render a usable state for:
- no project selected
- data loading
- data loaded
- API error
- permission/configuration warning
## Map State
Map state includes:
- active project
- active area
- active base layer
- visible layers
- selected feature
- drawing mode
- measurement mode
## Analysis State
Analysis state includes:
- selected dataset
- selected area
- selected model
- parameters
- current run
- run history
- output layers
## Layer State
Layer object:
```ts
interface MapLayerState {
id: string;
name: string;
type: 'raster' | 'vector' | 'detections' | 'segmentations' | 'qaqc';
visible: boolean;
opacity: number;
styleId?: string;
sourceId: string;
}
```
## Empty State Copy
Use precise empty states:
- Projects: "Create your first GeoIntel project to start an analysis."
- Areas: "Draw or import an area before running geospatial processing."
- Datasets: "Upload a raster/vector dataset or connect a data source."
- Detections: "Run object detection to create geospatial AI outputs."
- QA/QC: "Select an AI run and reference layer to calculate quality metrics."