File tree Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Expand file tree Collapse file tree 1 file changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -33,21 +33,35 @@ const CModal = props => {
3333 } = props
3434
3535 const [ isOpen , setIsOpen ] = useState ( false )
36+ const [ modalTrigger , setModalTrigger ] = useState ( false )
3637 const modalClick = e => e . target . dataset . modal && closeOnBackdrop && close ( )
3738
3839 useEffect ( ( ) => {
3940 setIsOpen ( show )
4041 } , [ show ] )
4142
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 ] )
4249
4350 const close = ( ) => {
4451 onClose && onClose ( )
4552 setIsOpen ( false )
4653 }
4754
48- const onEntered = ( ) => onOpened && onOpened ( )
55+ const onEntered = ( ) => {
56+ setModalTrigger ( document . querySelector ( ':focus' ) )
57+ nodeRef . current . focus ( )
58+ onOpened && onOpened ( )
59+ }
4960
50- const onExited = ( ) => onClosed && onClosed ( )
61+ const onExited = ( ) => {
62+ modalTrigger && modalTrigger . focus ( )
63+ onClosed && onClosed ( )
64+ }
5165
5266 const modalClasses = classNames (
5367 'modal overflow-auto fade' , {
You can’t perform that action at this time.
0 commit comments