fix: close map layers with escape
This commit is contained in:
parent
407d8a6943
commit
ff68413e62
@ -88,6 +88,21 @@ export default function LocationMapBottomSheet({
|
|||||||
}
|
}
|
||||||
}, [selectedObject, setLayersOpen]);
|
}, [selectedObject, setLayersOpen]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!layersOpen || typeof window === "undefined") {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleKeyDown = (event) => {
|
||||||
|
if (event.key === "Escape") {
|
||||||
|
setLayersOpen(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener("keydown", handleKeyDown);
|
||||||
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
||||||
|
}, [layersOpen, setLayersOpen]);
|
||||||
|
|
||||||
const changedLayerCount = useMemo(
|
const changedLayerCount = useMemo(
|
||||||
() => MAP_DISPLAY_CONTROLS.filter(([key]) => filters[key] !== DEFAULT_MAP_FILTERS[key]).length,
|
() => MAP_DISPLAY_CONTROLS.filter(([key]) => filters[key] !== DEFAULT_MAP_FILTERS[key]).length,
|
||||||
[filters]
|
[filters]
|
||||||
|
|||||||
@ -1394,6 +1394,14 @@ test("mode switches close open map layers without resetting filters", async ({ p
|
|||||||
await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "true");
|
await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "true");
|
||||||
await expect(page.getByRole("group", { name: "Layer filters" })).toBeVisible();
|
await expect(page.getByRole("group", { name: "Layer filters" })).toBeVisible();
|
||||||
|
|
||||||
|
await page.keyboard.press("Escape");
|
||||||
|
|
||||||
|
await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "false");
|
||||||
|
await expect(page.getByRole("group", { name: "Layer filters" })).toHaveCount(0);
|
||||||
|
|
||||||
|
await page.getByRole("button", { name: "Layers, 1 changed" }).click();
|
||||||
|
await expect(page.getByRole("group", { name: "Layer filters" })).toBeVisible();
|
||||||
|
|
||||||
await page.getByRole("button", { name: "Edit Draft" }).click();
|
await page.getByRole("button", { name: "Edit Draft" }).click();
|
||||||
|
|
||||||
await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "false");
|
await expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "false");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user