Mirror: React hooks for accessible, common web interactions. UI super powers without the UI.

Make focus loss/gain detection stricter

Changed files
+7 -2
src
+7 -2
src/useDismissable.ts
···
const { target, relatedTarget } = event;
if (
!event.defaultPrevented &&
-
(relatedTarget || willLoseFocus) &&
+
willLoseFocus &&
contains(element, target) &&
!contains(element, relatedTarget)
) {
···
function onFocusIn(event: FocusEvent) {
const { target } = event;
-
if (!event.defaultPrevented && !contains(element, target)) {
+
if (
+
!event.defaultPrevented &&
+
willLoseFocus &&
+
!contains(element, target)
+
) {
+
willLoseFocus = false;
onDismissRef.current(event);
}
}