feat: simplify regional workbench language
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-14 23:15:50 +02:00
parent 0381fdd636
commit b50b250f72
18 changed files with 292 additions and 97 deletions
@@ -1,4 +1,5 @@
import type { AreaRead, DatasetCreateResponse, ExportRead, ProjectRead, QualityCheckRead } from '../types'
import { REGIONAL_WORKSPACE_LABEL, REGIONAL_WORKSPACE_PROJECT_NAME } from '../config/primaryFocus'
interface StatusItem {
key: string
@@ -26,6 +27,17 @@ function countReferenceDatasets(datasets: DatasetCreateResponse[]): number {
return datasets.filter((dataset) => dataset.dataset_role === 'reference').length
}
function statusLabel(state: StatusItem['state']): string {
if (state === 'ready') return 'gereed'
if (state === 'warning') return 'aandacht'
return 'nog open'
}
function projectLabel(project: ProjectRead | null): string {
if (!project) return 'Geen werkruimte'
return project.name === REGIONAL_WORKSPACE_PROJECT_NAME ? REGIONAL_WORKSPACE_LABEL : project.name
}
function nextAction(items: StatusItem[]): string {
if (!items.some((item) => item.key === 'project' && item.state === 'ready')) {
return 'De regionale werkruimte kon niet worden geopend.'
@@ -65,7 +77,7 @@ export function WorkbenchStatusStrip({
{
key: 'project',
label: 'Werkruimte',
value: selectedProject ? selectedProject.name : 'Geen werkruimte',
value: projectLabel(selectedProject),
detail: selectedProject ? selectedProject.region : 'Niet geladen',
state: selectedProject ? 'ready' : 'waiting',
},
@@ -114,12 +126,12 @@ export function WorkbenchStatusStrip({
<div>
<p className="eyebrow">Platformstatus</p>
<h2>
<span className="sr-only">Workbench status: </span>
<span className="sr-only">Status werkruimte: </span>
{coreReady ? 'Kaartwerkruimte is gebruiksklaar' : 'Kaartwerkruimte vraagt aandacht'}
</h2>
<p className="status-next-action">{nextAction(items)}</p>
</div>
<div className="status-readiness" aria-label={`${readyCount} of ${items.length} workbench stages ready`}>
<div className="status-readiness" aria-label={`${readyCount} van ${items.length} onderdelen gereed`}>
<strong>{readyCount}/{items.length}</strong>
<span>onderdelen gereed</span>
</div>
@@ -129,7 +141,7 @@ export function WorkbenchStatusStrip({
<div className={`status-tile status-tile-${item.state}`} key={item.key}>
<div className="status-tile-topline">
<span>{item.label}</span>
<span className="status-pill">{item.state}</span>
<span className="status-pill">{statusLabel(item.state)}</span>
</div>
<strong title={item.value}>{item.value}</strong>
<p>{item.detail}</p>