Refactor workbench into task-based UI shell
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 20:39:06 +02:00
parent ea9fc3267a
commit ee2929ae83
9 changed files with 816 additions and 257 deletions
+12 -1
View File
@@ -2,7 +2,7 @@
React + TypeScript + MapLibre foundation for project/area/dataset workflow.
The workbench is intentionally map-first: `MapWorkspace` is promoted above the dense workflow grid so GIS context stays visible before lower-detail provider, AI, QA and export panels. Long workflow panels are scroll-contained by CSS rather than stretching every grid row.
The workbench now uses a task-based shell instead of a single long panel stack. `App.tsx` still owns shared orchestration state, but the UI is organized into Overview, Data, Map, QA/QC, AI Labs, Exports and System workspaces with a persistent top context bar and right-side dataset inspector.
## Scope implemented
- API client layer (`src/services/api`)
@@ -220,6 +220,17 @@ The workbench is intentionally map-first: `MapWorkspace` is promoted above the d
- Offline demo workflow orchestration lives in `src/hooks/useDemoWorkflow.ts`, because it coordinates project, dataset, map, QA/QC, detection, segmentation and export state after the backend fixture seed.
- Workbench bootstrap and reload effects live in `src/hooks/useWorkbenchBootstrap.ts`, keeping `App.tsx` focused on composing hooks into panels.
## Workbench shell refactor
- The primary UI is organized around `workspaceNavItems` in `src/App.tsx`.
- The shell regions are:
- `workbench-topbar`: active project, AOI, dataset and layer context.
- `workbench-sidebar`: primary navigation between workflow workspaces.
- `workbench-main`: one active workflow at a time.
- `workbench-inspector`: persistent selected dataset details and raster/vector operation controls.
- Existing API calls, hooks, MapLibre rendering and QA/AI/export flows are unchanged.
- Stable navigation test anchors use `data-testid="workspace-nav-{workspace}"`.
## Raster dependency visibility
Raster metadata and raster ops may remain unavailable when backend raster stack is missing. In that case: