From 0f629753f48ed4867c63234c9ec24b9342a87d72 Mon Sep 17 00:00:00 2001 From: janis steiner Date: Thu, 7 May 2026 19:15:39 +0200 Subject: [PATCH] improving dialogs --- frontend/assets/js/app.js | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/frontend/assets/js/app.js b/frontend/assets/js/app.js index 914da9b..15ddd15 100644 --- a/frontend/assets/js/app.js +++ b/frontend/assets/js/app.js @@ -373,14 +373,11 @@ function showConfirm(msg) { document.getElementById('confirmMsg').textContent = msg; const btn = document.getElementById('confirmBtn'); let resolved = false; - const cleanup = () => { - btn.removeEventListener('click', onClick); - modalEl.removeEventListener('hidden.bs.modal', onHidden); - }; - const onClick = () => { resolved = true; cleanup(); modal.hide(); resolve(true); }; - const onHidden = () => { if (!resolved) { cleanup(); resolve(false); } }; - btn.addEventListener('click', onClick); - modalEl.addEventListener('hidden.bs.modal', onHidden); + const done = (val) => { if (resolved) return; resolved = true; modal.hide(); resolve(val); }; + const onKey = (e) => { if (e.key === 'Enter') { e.preventDefault(); done(true); } }; + btn.onclick = () => done(true); + modalEl.addEventListener('hidden.bs.modal', () => { document.removeEventListener('keydown', onKey); if (!resolved) resolve(false); }); + document.addEventListener('keydown', onKey); modal.show(); }); }