File tree 1 file changed +16
-2
lines changed
1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -33,21 +33,35 @@ const CModal = props => {
33
33
} = props
34
34
35
35
const [ isOpen , setIsOpen ] = useState ( false )
36
+ const [ modalTrigger , setModalTrigger ] = useState ( false )
36
37
const modalClick = e => e . target . dataset . modal && closeOnBackdrop && close ( )
37
38
38
39
useEffect ( ( ) => {
39
40
setIsOpen ( show )
40
41
} , [ show ] )
41
42
43
+ const onKeypress = e => e . keyCode == '27' && close ( )
44
+
45
+ useEffect ( ( ) => {
46
+ isOpen && document . addEventListener ( 'keydown' , onKeypress )
47
+ return ( ) => document . removeEventListener ( 'keydown' , onKeypress )
48
+ } , [ isOpen ] )
42
49
43
50
const close = ( ) => {
44
51
onClose && onClose ( )
45
52
setIsOpen ( false )
46
53
}
47
54
48
- const onEntered = ( ) => onOpened && onOpened ( )
55
+ const onEntered = ( ) => {
56
+ setModalTrigger ( document . querySelector ( ':focus' ) )
57
+ nodeRef . current . focus ( )
58
+ onOpened && onOpened ( )
59
+ }
49
60
50
- const onExited = ( ) => onClosed && onClosed ( )
61
+ const onExited = ( ) => {
62
+ modalTrigger && modalTrigger . focus ( )
63
+ onClosed && onClosed ( )
64
+ }
51
65
52
66
const modalClasses = classNames (
53
67
'modal overflow-auto fade' , {
You can’t perform that action at this time.
0 commit comments