This commit is contained in:
Andras Schmelczer 2026-05-28 21:48:35 +01:00
parent 39ef5c6646
commit c995f12f8b
78 changed files with 4830 additions and 1619 deletions

View file

@ -50,6 +50,7 @@ import {
} from './poi-distance-filter';
import { dedupeTravelTimeEntries } from './travel-params';
import { isOverlayId, type OverlayId } from './overlays';
import { isBasemapId, type BasemapId } from './basemaps';
const POI_NONE_PARAM = '__none';
@ -58,6 +59,7 @@ export interface UrlState {
filters: FeatureFilters;
poiCategories: Set<string>;
overlays: Set<OverlayId>;
basemap: BasemapId;
tab: 'properties' | 'area';
travelTime?: TravelTimeInitial;
postcode?: string;
@ -213,6 +215,7 @@ export function parseUrlState(): UrlState {
filters: parseFilters(params),
poiCategories: new Set(),
overlays: new Set(),
basemap: 'standard',
tab: 'area',
};
@ -253,6 +256,11 @@ export function parseUrlState(): UrlState {
result.overlays = new Set(overlayParams.filter(isOverlayId));
}
const basemap = params.get('basemap');
if (basemap && isBasemapId(basemap)) {
result.basemap = basemap;
}
// Tab: full name
const tab = params.get('tab');
if (tab === 'properties' || tab === 'area') {
@ -320,7 +328,8 @@ export function stateToParams(
rightPaneTab: 'properties' | 'area',
travelTimeEntries?: TravelTimeEntry[],
share?: string,
selectedOverlays?: Set<OverlayId>
selectedOverlays?: Set<OverlayId>,
basemap?: BasemapId
): URLSearchParams {
const params = new URLSearchParams();
@ -409,6 +418,10 @@ export function stateToParams(
}
}
if (basemap && basemap !== 'standard') {
params.set('basemap', basemap);
}
// Travel time: repeated `tt` params
if (travelTimeEntries) {
for (const entry of dedupeTravelTimeEntries(travelTimeEntries)) {