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

Register useDismissable events as capturing

Changed files
+10 -10
src
+10 -10
src/useDismissable.ts
···
}
if (focusLoss) {
-
document.body.addEventListener('focusout', onFocusOut);
-
document.body.addEventListener('focusin', onFocusIn);
}
-
document.addEventListener('mousedown', onClick);
-
document.addEventListener('touchstart', onClick);
-
document.addEventListener('keydown', onKey);
return () => {
if (focusLoss) {
-
document.body.removeEventListener('focusout', onFocusOut);
-
document.body.removeEventListener('focusin', onFocusIn);
}
-
document.removeEventListener('mousedown', onClick);
-
document.removeEventListener('touchstart', onClick);
-
document.removeEventListener('keydown', onKey);
};
}, [ref.current, hasPriority, disabled, focusLoss]);
}
···
}
if (focusLoss) {
+
document.body.addEventListener('focusout', onFocusOut, true);
+
document.body.addEventListener('focusin', onFocusIn, true);
}
+
document.addEventListener('click', onClick, true);
+
document.addEventListener('touchstart', onClick, true);
+
document.addEventListener('keydown', onKey, true);
return () => {
if (focusLoss) {
+
document.body.removeEventListener('focusout', onFocusOut, true);
+
document.body.removeEventListener('focusin', onFocusIn, true);
}
+
document.removeEventListener('click', onClick, true);
+
document.removeEventListener('touchstart', onClick, true);
+
document.removeEventListener('keydown', onKey, true);
};
}, [ref.current, hasPriority, disabled, focusLoss]);
}