From 9a72c209b3de5ba64ff80166c099c1ce2a3c8ba5 Mon Sep 17 00:00:00 2001 From: JB Date: Sat, 20 Dec 2025 07:19:02 -0800 Subject: [PATCH] feat: Enhance provider picker modal handling and improve action event delegation --- abogen/web/static/voices.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/abogen/web/static/voices.js b/abogen/web/static/voices.js index 44b1ea1..1c3bf87 100644 --- a/abogen/web/static/voices.js +++ b/abogen/web/static/voices.js @@ -211,7 +211,9 @@ const setupVoiceMixer = () => { return new Promise((resolve) => { let resolved = false; const teardown = () => { + providerPickerModal.dataset.open = "false"; providerPickerModal.hidden = true; + document.body.classList.remove("modal-open"); document.removeEventListener("keydown", onKeydown); providerPickerOptions.removeEventListener("change", onChange); providerPickerOverlay?.removeEventListener("click", onCancel); @@ -244,6 +246,8 @@ const setupVoiceMixer = () => { }; providerPickerModal.hidden = false; + providerPickerModal.dataset.open = "true"; + document.body.classList.add("modal-open"); document.addEventListener("keydown", onKeydown); providerPickerOptions.addEventListener("change", onChange); providerPickerOverlay?.addEventListener("click", onCancel); @@ -1088,7 +1092,8 @@ const setupVoiceMixer = () => { headerActions.addEventListener("click", (event) => { const target = event.target; if (!(target instanceof HTMLElement)) return; - const action = target.dataset.action; + const actionEl = target.closest("[data-action]"); + const action = actionEl instanceof HTMLElement ? actionEl.dataset.action : null; if (!action) return; if (action === "new-profile") { requestNewProfile();