@@ -5,20 +5,24 @@ import { useDocument } from '@radix-ui/react-document-context';
5
5
/**
6
6
* Listens for when the escape key is down
7
7
*/
8
- function useEscapeKeydown ( onEscapeKeyDownProp ?: ( event : KeyboardEvent ) => void ) {
8
+ function useEscapeKeydown (
9
+ onEscapeKeyDownProp ?: ( event : KeyboardEvent ) => void ,
10
+ ownerDocument ?: Document
11
+ ) {
9
12
const providedDocument = useDocument ( ) ;
13
+ const document = ownerDocument || providedDocument ;
10
14
const onEscapeKeyDown = useCallbackRef ( onEscapeKeyDownProp ) ;
11
15
12
16
React . useEffect ( ( ) => {
13
- if ( ! providedDocument ) return ;
17
+ const _document = document || globalThis . document ;
14
18
const handleKeyDown = ( event : KeyboardEvent ) => {
15
19
if ( event . key === 'Escape' ) {
16
20
onEscapeKeyDown ( event ) ;
17
21
}
18
22
} ;
19
- providedDocument . addEventListener ( 'keydown' , handleKeyDown , { capture : true } ) ;
20
- return ( ) => providedDocument . removeEventListener ( 'keydown' , handleKeyDown , { capture : true } ) ;
21
- } , [ onEscapeKeyDown , providedDocument ] ) ;
23
+ _document . addEventListener ( 'keydown' , handleKeyDown , { capture : true } ) ;
24
+ return ( ) => _document . removeEventListener ( 'keydown' , handleKeyDown , { capture : true } ) ;
25
+ } , [ onEscapeKeyDown , document ] ) ;
22
26
}
23
27
24
28
export { useEscapeKeydown } ;
0 commit comments