From ca7dd78d5dc51b229c7c34065e1218be1ba4623c 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);