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