From ef9d75bb136cc00ff11d23816a85e220470a63cb Mon Sep 17 00:00:00 2001 From: Phil Pluckthun Date: Fri, 16 Jun 2023 14:58:01 +0100 Subject: [PATCH] Make focus loss/gain detection stricter --- src/useDismissable.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/useDismissable.ts b/src/useDismissable.ts index 4d3d9ee..12ba5e8 100644 --- a/src/useDismissable.ts +++ b/src/useDismissable.ts @@ -36,7 +36,7 @@ export function useDismissable( const { target, relatedTarget } = event; if ( !event.defaultPrevented && - (relatedTarget || willLoseFocus) && + willLoseFocus && contains(element, target) && !contains(element, relatedTarget) ) { @@ -47,7 +47,12 @@ export function useDismissable( 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); } } -- knotmirror 0.0.1