fix(filter): Liste schließt nur noch bei OK/Abbrechen/Escape
All checks were successful
Build & Publish Docker Image / build-and-push (push) Successful in 1m16s

Der Klick-außerhalb-Handler fing gelegentlich Events von abgewählten
Checkbox-Zeilen ab, weil deren Layout beim Re-Render kurz verschob und
event.target außerhalb des Containers landete — das Menu schloss sich
dann mitten im Filtern. Handler komplett entfernt; Escape und die
expliziten Footer-Buttons bleiben die einzigen Wege zum Schließen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-18 10:51:56 +02:00
parent 4465744838
commit 3e41505b81

View File

@@ -48,20 +48,18 @@
else openMenu(); else openMenu();
} }
function handleClickOutside(e: MouseEvent) {
if (container && !container.contains(e.target as Node)) cancel();
}
function handleKey(e: KeyboardEvent) { function handleKey(e: KeyboardEvent) {
if (e.key === 'Escape' && open) cancel(); if (e.key === 'Escape' && open) cancel();
} }
// Kein Klick-außerhalb-Handler: die Liste schließt sich nur noch explizit
// über OK/Abbrechen. Früher wurde bei Re-Render einer Checkbox-Zeile
// gelegentlich ein click-Target gesehen, das nicht mehr im container hing,
// was das Menu fälschlich schloss.
$effect(() => { $effect(() => {
if (open) { if (open) {
document.addEventListener('click', handleClickOutside);
document.addEventListener('keydown', handleKey); document.addEventListener('keydown', handleKey);
return () => { return () => {
document.removeEventListener('click', handleClickOutside);
document.removeEventListener('keydown', handleKey); document.removeEventListener('keydown', handleKey);
}; };
} }