From d6edd150a89c49ea7d2ab3659e0d685511797134 Mon Sep 17 00:00:00 2001 From: Wendelin <12148533+wendevlin@users.noreply.github.com> Date: Wed, 3 Dec 2025 10:45:18 +0100 Subject: [PATCH] Fix filtering of floors in getAreasAndFloorsItems function (#28302) --- src/data/area_floor.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/data/area_floor.ts b/src/data/area_floor.ts index 75d96434b0..bbaf4226b2 100644 --- a/src/data/area_floor.ts +++ b/src/data/area_floor.ts @@ -223,6 +223,7 @@ const getAreasAndFloorsItems = ( } let outputAreas = areas; + let outputFloors = floors; let areaIds: string[] | undefined; @@ -254,9 +255,29 @@ const getAreasAndFloorsItems = ( outputAreas = outputAreas.filter( (area) => !area.floor_id || !excludeFloors!.includes(area.floor_id) ); + + outputFloors = outputFloors.filter( + (floor) => !excludeFloors!.includes(floor.floor_id) + ); } - const hierarchy = getAreasFloorHierarchy(floors, outputAreas); + if ( + entityFilter || + deviceFilter || + includeDomains || + excludeDomains || + includeDeviceClasses + ) { + // Ensure we only include floors that have areas with the filtered entities/devices + const validFloorIds = new Set( + outputAreas.map((area) => area.floor_id).filter((id) => id) + ); + outputFloors = outputFloors.filter((floor) => + validFloorIds.has(floor.floor_id) + ); + } + + const hierarchy = getAreasFloorHierarchy(outputFloors, outputAreas); const items: ( | FloorComboBoxItem