feat: simplify regional end user workbench
This commit is contained in:
@@ -4,6 +4,7 @@ import type { AreaRead, DatasetCreateResponse, MapViewportState, ProjectRead, Qa
|
||||
import { featureCollectionBounds } from '../../lib/geojsonBounds'
|
||||
import { useMapThemeSelectionInsights } from '../../hooks/useMapThemeSelectionInsights'
|
||||
import { useTemporalComparison } from '../../hooks/useTemporalComparison'
|
||||
import { getDatasetDisplayName } from '../../lib/datasetDisplay'
|
||||
|
||||
const DEFAULT_SELECTED_FEATURE_FILENAME = 'selected-feature.geojson'
|
||||
const DEFAULT_AREA_SELECTION_FILENAME = 'area-selection.geojson'
|
||||
@@ -443,7 +444,6 @@ interface MapWorkspaceProps {
|
||||
availableMapDatasets: DatasetCreateResponse[]
|
||||
selectedMapDatasetId: string
|
||||
onSelectMapArea: (areaId: string) => void
|
||||
onSelectProject: (projectId: string) => void
|
||||
onOpenDatasetInMap: (dataset: DatasetCreateResponse) => void
|
||||
onSetAreaLayerVisible: (visible: boolean) => void
|
||||
onSetAreaLayerOpacity: (opacity: number) => void
|
||||
@@ -512,7 +512,6 @@ export function MapWorkspace({
|
||||
availableMapDatasets,
|
||||
selectedMapDatasetId,
|
||||
onSelectMapArea,
|
||||
onSelectProject,
|
||||
onOpenDatasetInMap,
|
||||
onSetAreaLayerVisible,
|
||||
onSetAreaLayerOpacity,
|
||||
@@ -590,16 +589,9 @@ export function MapWorkspace({
|
||||
const activeTheme = DATA_THEMES.find((theme) => theme.id === activeThemeId) ?? DATA_THEMES[0]
|
||||
const activeThemeMapStyle = DATA_THEME_MAP_STYLES[activeTheme.id]
|
||||
const activeThemeDataset = themeDatasetMap[activeTheme.id]
|
||||
const operationalScopeProjects = useMemo(() => {
|
||||
const scoped = projects.filter((project) => project.name === MOL_PROJECT_NAME || project.name === KEMPEN_PROJECT_NAME)
|
||||
const selected = projects.find((project) => project.id === selectedProjectId)
|
||||
if (selected && !scoped.some((project) => project.id === selected.id)) {
|
||||
return [selected, ...scoped]
|
||||
}
|
||||
return scoped
|
||||
}, [projects, selectedProjectId])
|
||||
const activeScopeProject = projects.find((project) => project.id === selectedProjectId) ?? null
|
||||
const activeScopeLabel = activeScopeProject ? operationalScopeProjectLabel(activeScopeProject) : 'Werkgebied'
|
||||
const municipalityAreaCount = areas.filter((area) => /^Gemeente\s/i.test(area.name)).length
|
||||
const activeTemporalSeriesGroups = useMemo(
|
||||
() => listThemeTemporalSeries(availableMapDatasets, activeTheme),
|
||||
[activeTheme, availableMapDatasets],
|
||||
@@ -964,19 +956,11 @@ export function MapWorkspace({
|
||||
<p>Dit zijn databronnen, geen AI-modellen.</p>
|
||||
</div>
|
||||
</div>
|
||||
<label className="geo-project-scope-select">
|
||||
Regio
|
||||
<select
|
||||
aria-label="Regio"
|
||||
value={selectedProjectId ?? ''}
|
||||
onChange={(event) => onSelectProject(event.target.value)}
|
||||
disabled={operationalScopeProjects.length < 2}
|
||||
>
|
||||
{operationalScopeProjects.map((project) => (
|
||||
<option key={project.id} value={project.id}>{operationalScopeProjectLabel(project)}</option>
|
||||
))}
|
||||
</select>
|
||||
</label>
|
||||
<div className="geo-loaded-scope" aria-label="Ingeladen regiobereik">
|
||||
<span>Ingeladen bereik</span>
|
||||
<strong>{activeScopeLabel}</strong>
|
||||
<small>{municipalityAreaCount > 0 ? `${municipalityAreaCount} gemeenten en de volledige regio beschikbaar` : 'Regionale gegevens worden geladen'}</small>
|
||||
</div>
|
||||
<div className="geo-theme-list">
|
||||
{DATA_THEMES.map((theme) => {
|
||||
const dataset = themeDatasetMap[theme.id]
|
||||
@@ -1006,7 +990,7 @@ export function MapWorkspace({
|
||||
<strong>
|
||||
{analysisMode === 'evolution'
|
||||
? activeTemporalSeriesGroup?.label ?? 'Geen tijdreeks beschikbaar'
|
||||
: activeThemeDataset?.name ?? 'Geen databron beschikbaar'}
|
||||
: activeThemeDataset ? getDatasetDisplayName(activeThemeDataset) : 'Geen databron beschikbaar'}
|
||||
</strong>
|
||||
<small>
|
||||
{analysisMode === 'evolution'
|
||||
@@ -1065,9 +1049,8 @@ export function MapWorkspace({
|
||||
) : null}
|
||||
|
||||
<label className="geo-scope-select">
|
||||
Werkgebied
|
||||
Gemeente of volledige regio
|
||||
<select aria-label="Werkgebied" value={selectedMapAreaId} onChange={(event) => handleSelectMapArea(event.target.value)} disabled={areas.length === 0}>
|
||||
<option value="">Geen werkgebied</option>
|
||||
{areas.map((area) => (
|
||||
<option key={area.id} value={area.id}>{area.name}</option>
|
||||
))}
|
||||
@@ -1321,7 +1304,7 @@ export function MapWorkspace({
|
||||
{analysisMode === 'evolution'
|
||||
? activeTemporalSeriesGroup?.label ?? 'geen vergelijkbare tijdreeks'
|
||||
: activeThemeDataset
|
||||
? `${activeThemeDataset.source_name ?? activeThemeDataset.source} · ${activeThemeDataset.name}`
|
||||
? getDatasetDisplayName(activeThemeDataset)
|
||||
: 'niet beschikbaar'}
|
||||
</span>
|
||||
{usesDefaultOsmBasemap ? <span><strong>Ondergrond:</strong> OpenStreetMap</span> : null}
|
||||
|
||||
Reference in New Issue
Block a user