From f4181d6ada45b6ed86b76555de2a04b3ebfde575 Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Tue, 30 Dec 2025 14:54:49 +0100 Subject: [PATCH] feat: close dialogs on backdrop click Native dialog elements don't close on backdrop click by default. Added click handlers that check if click target is the dialog itself (not its children) to enable this expected UX behavior. --- src/app.de.js | 6 ++++++ src/app.js | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/app.de.js b/src/app.de.js index 7e32b37..c893645 100644 --- a/src/app.de.js +++ b/src/app.de.js @@ -553,8 +553,14 @@ function init() { // Dialogs elements.helpBtn.addEventListener("click", showHelp); elements.helpDialogClose.addEventListener("click", closeHelpDialog); + elements.helpDialog.addEventListener("click", (e) => { + if (e.target === elements.helpDialog) closeHelpDialog(); + }); elements.resetBtn.addEventListener("click", showResetConfirmation); elements.resetDialogClose.addEventListener("click", closeResetDialog); + elements.resetDialog.addEventListener("click", (e) => { + if (e.target === elements.resetDialog) closeResetDialog(); + }); elements.cancelReset.addEventListener("click", closeResetDialog); elements.confirmReset.addEventListener("click", handleResetConfirm); diff --git a/src/app.js b/src/app.js index 4e83f35..776d58c 100644 --- a/src/app.js +++ b/src/app.js @@ -579,8 +579,14 @@ function init() { // Dialogs elements.helpBtn.addEventListener("click", showHelp); elements.helpDialogClose.addEventListener("click", closeHelpDialog); + elements.helpDialog.addEventListener("click", (e) => { + if (e.target === elements.helpDialog) closeHelpDialog(); + }); elements.resetBtn.addEventListener("click", showResetConfirmation); elements.resetDialogClose.addEventListener("click", closeResetDialog); + elements.resetDialog.addEventListener("click", (e) => { + if (e.target === elements.resetDialog) closeResetDialog(); + }); elements.cancelReset.addEventListener("click", closeResetDialog); elements.confirmReset.addEventListener("click", handleResetConfirm);