Fix deploy modal closing when opening the map dropdown

The bounding-rect click-outside check treated native <select> option clicks
(which render below the dialog) as backdrop clicks. Switch to the standard
e.target === dialog check — only clicks on the dialog element itself close.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-09-13 18:44:34 -04:00
co-authored by Claude Opus 4.7
parent 13a29e5ace
commit 21d9b54953
@@ -59,14 +59,12 @@
open = false; open = false;
} }
// Click-outside-to-close (native <dialog> only supports Esc). // Click-outside-to-close (native <dialog> only supports Esc). Only treat
// clicks whose target is the dialog element itself (the backdrop) as
// outside — a bounding-rect check catches native <select> dropdown
// options that render below the modal and closes the whole thing.
function onDialogClick(e: MouseEvent): void { function onDialogClick(e: MouseEvent): void {
if (!dialog) return; if (e.target === dialog) close();
const rect = dialog.getBoundingClientRect();
const inDialog =
e.clientX >= rect.left && e.clientX <= rect.right &&
e.clientY >= rect.top && e.clientY <= rect.bottom;
if (!inDialog) close();
} }
let selectedMap = $derived(maps.find((m) => m.slug === mapSlug)); let selectedMap = $derived(maps.find((m) => m.slug === mapSlug));