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

Configure Feed

Select the types of activity you want to include in your feed.

Register useDismissable events as capturing

+10 -10
+10 -10
src/useDismissable.ts
··· 81 81 } 82 82 83 83 if (focusLoss) { 84 - document.body.addEventListener('focusout', onFocusOut); 85 - document.body.addEventListener('focusin', onFocusIn); 84 + document.body.addEventListener('focusout', onFocusOut, true); 85 + document.body.addEventListener('focusin', onFocusIn, true); 86 86 } 87 87 88 - document.addEventListener('mousedown', onClick); 89 - document.addEventListener('touchstart', onClick); 90 - document.addEventListener('keydown', onKey); 88 + document.addEventListener('click', onClick, true); 89 + document.addEventListener('touchstart', onClick, true); 90 + document.addEventListener('keydown', onKey, true); 91 91 92 92 return () => { 93 93 if (focusLoss) { 94 - document.body.removeEventListener('focusout', onFocusOut); 95 - document.body.removeEventListener('focusin', onFocusIn); 94 + document.body.removeEventListener('focusout', onFocusOut, true); 95 + document.body.removeEventListener('focusin', onFocusIn, true); 96 96 } 97 97 98 - document.removeEventListener('mousedown', onClick); 99 - document.removeEventListener('touchstart', onClick); 100 - document.removeEventListener('keydown', onKey); 98 + document.removeEventListener('click', onClick, true); 99 + document.removeEventListener('touchstart', onClick, true); 100 + document.removeEventListener('keydown', onKey, true); 101 101 }; 102 102 }, [ref.current, hasPriority, disabled, focusLoss]); 103 103 }