From 5b8b7ee2b8bfd24f6bac8b10c184fd69626be513 Mon Sep 17 00:00:00 2001 From: Nico Date: Wed, 3 Jun 2026 21:25:23 -0700 Subject: [PATCH] fix: clear hidden map area selection --- frontend/src/pages/LocationMapManager.jsx | 9 +++++++++ frontend/tests/location-map-manager.spec.ts | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/frontend/src/pages/LocationMapManager.jsx b/frontend/src/pages/LocationMapManager.jsx index 65b79a1..a962db9 100644 --- a/frontend/src/pages/LocationMapManager.jsx +++ b/frontend/src/pages/LocationMapManager.jsx @@ -189,6 +189,15 @@ export default function LocationMapManager() { } }, [editorTool, mode]); + useEffect(() => { + if (!selectedObjectKey) return; + + const selectedMapObject = objects.find((object) => getObjectKey(object) === selectedObjectKey); + if (!selectedMapObject || !filters.showZones || selectedMapObject.visible === false) { + setSelectedObjectKey(null); + } + }, [filters.showZones, objects, selectedObjectKey]); + const remember = (currentObjects = objects) => { setHistory((previous) => [...previous.slice(-19), currentObjects.map((object) => ({ ...object }))]); setFuture([]); diff --git a/frontend/tests/location-map-manager.spec.ts b/frontend/tests/location-map-manager.spec.ts index 568458a..f48c9aa 100644 --- a/frontend/tests/location-map-manager.spec.ts +++ b/frontend/tests/location-map-manager.spec.ts @@ -1171,11 +1171,16 @@ test("viewer explains when the zones layer hides the map", async ({ page }) => { await page.goto("/stores/100/locations/10/map"); await expect(page.getByRole("button", { name: "Map area Bakery" })).toBeVisible(); + await page.getByRole("button", { name: "Map area Bakery" }).click(); + await expect(page.locator(".location-map-sheet-header strong")).toHaveText("Bakery"); + await expect(page.locator(".location-map-sheet-count")).toHaveText("2 items"); await page.getByRole("button", { name: "Layers" }).click(); await page.getByLabel("Zones").uncheck(); await expect(page.getByRole("button", { name: "Map area Bakery" })).toHaveCount(0); + await expect(page.locator(".location-map-sheet-header strong")).toHaveText("Map Details"); + await expect(page.locator(".location-map-sheet-count")).toHaveCount(0); await expect(page.getByText("Zones hidden in Layers")).toBeVisible(); await expect(page.getByRole("button", { name: "Show Zones" })).toBeVisible(); await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toBeVisible();