UX: level selector now has an "All"-level

This commit is contained in:
Pieter Vander Vennet 2025-04-23 10:43:28 +02:00
parent 981b412180
commit 8c478f5e4e

View file

@ -11,6 +11,13 @@
export let zoom: Store<number> export let zoom: Store<number>
const maxZoom = 16 const maxZoom = 16
let floorWithAll = floors.mapD(floors => {
if (floors.length > 1) {
return [...floors, "All"]
}
return floors
})
let selectedFloor: UIEventSource<string> = new UIEventSource<string>(undefined) let selectedFloor: UIEventSource<string> = new UIEventSource<string>(undefined)
selectedFloor.stabilized(5).map( selectedFloor.stabilized(5).map(
@ -19,6 +26,8 @@
// Only a single floor is visible -> disable the 'level' global filter // Only a single floor is visible -> disable the 'level' global filter
// OR we might have zoomed out to much ant want to show all // OR we might have zoomed out to much ant want to show all
layerState.setLevelFilter(undefined) layerState.setLevelFilter(undefined)
} else if (floor === "All") {
layerState.setLevelFilter(undefined)
} else { } else {
layerState.setLevelFilter(floor) layerState.setLevelFilter(floor)
} }
@ -28,5 +37,5 @@
</script> </script>
{#if $zoom >= maxZoom} {#if $zoom >= maxZoom}
<FloorSelector {floors} value={selectedFloor} /> <FloorSelector floors={floorWithAll} value={selectedFloor} />
{/if} {/if}