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]);
|
||||
|
||||
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(
|
||||
() => MAP_DISPLAY_CONTROLS.filter(([key]) => filters[key] !== DEFAULT_MAP_FILTERS[key]).length,
|
||||
[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("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 expect(page.getByRole("button", { name: "Layers, 1 changed" })).toHaveAttribute("aria-expanded", "false");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user