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
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:
@@ -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);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user