From 6206dea01104ed0d86bb84789d229af9e788094c Mon Sep 17 00:00:00 2001 From: marijo Date: Mon, 29 Jun 2026 08:02:45 +0000 Subject: [PATCH] Dropdown fix --- app.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app.js b/app.js index b249413..00b50e6 100644 --- a/app.js +++ b/app.js @@ -35,6 +35,8 @@ form.addEventListener("submit", saveRoute); cancelEditButton.addEventListener("click", resetForm); clearAllButton?.addEventListener("click", removeAllRoutes); routesList.addEventListener("click", handleRouteAction); +document.addEventListener("click", closeMenusOnOutsideClick); +document.addEventListener("keydown", closeMenusOnEscape); if (sessionStorage.getItem(AUTH_SESSION_KEY) === "yes") { unlockApp(); @@ -168,6 +170,24 @@ function renderRoutes() { } } +function closeMenusOnOutsideClick(event) { + if (event.target.closest(".route-menu")) { + return; + } + + closeRouteMenus(); +} + +function closeMenusOnEscape(event) { + if (event.key === "Escape") { + closeRouteMenus(); + } +} + +function closeRouteMenus() { + document.querySelectorAll(".route-menu[open]").forEach((menu) => menu.removeAttribute("open")); +} + function handleRouteAction(event) { const button = event.target.closest("button"); if (!button) {