Files
geointel/docs/FRONTEND_STATE_CONTRACTS.md
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

1.2 KiB

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:

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."