fix: Dropdown bleibt beim Scrollen offen, Dialog beim Markieren
Zwei Klick-Aergernisse mit derselben Ursache – ein zu grob gefasster Schliess-Ausloeser. Die Kategorieliste schloss bei jedem Scroll-Ereignis, wegen capture=true auch beim Scrollen IN der Liste. Genau das will man aber tun. Jetzt zaehlt nur noch Scrollen ausserhalb. Der Dialog schloss, sobald ein Klick auf dem Hintergrund endete. Markiert man Text in einem Feld und zieht ueber den Rand hinaus, liegt das Mouseup dort – der Dialog ging mitten im Markieren zu. Jetzt muss der Klick auch auf dem Hintergrund begonnen haben. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -75,7 +75,13 @@ export default function CategorySelect({
|
||||
setOpen(false);
|
||||
};
|
||||
const onKey = (e) => e.key === "Escape" && setOpen(false);
|
||||
const onScrollResize = () => setOpen(false);
|
||||
// Beim Scrollen der Seite wandert die Liste weg vom Knopf, deshalb zu.
|
||||
// Scrollen INNERHALB der Liste ist aber genau das, was man tun will –
|
||||
// capture=true fing das bisher mit ab und schloss sie sofort wieder.
|
||||
const onScrollResize = (e) => {
|
||||
if (e?.target && panelRef.current?.contains(e.target)) return;
|
||||
setOpen(false);
|
||||
};
|
||||
document.addEventListener("mousedown", onDown);
|
||||
document.addEventListener("keydown", onKey);
|
||||
// capture=true: fängt auch das Scrollen innerhalb der Tabelle ab.
|
||||
|
||||
Reference in New Issue
Block a user