@ -56,15 +56,21 @@ export default class ModalRoot extends React.PureComponent {
} else if ( ! nextProps . children ) {
} else if ( ! nextProps . children ) {
this . setState ( { revealed : false } ) ;
this . setState ( { revealed : false } ) ;
}
}
if ( ! nextProps . children && ! ! this . props . children ) {
this . activeElement . focus ( ) ;
this . activeElement = null ;
}
}
}
componentDidUpdate ( prevProps ) {
componentDidUpdate ( prevProps ) {
if ( ! this . props . children && ! ! prevProps . children ) {
if ( ! this . props . children && ! ! prevProps . children ) {
this . getSiblings ( ) . forEach ( sibling => sibling . removeAttribute ( 'inert' ) ) ;
this . getSiblings ( ) . forEach ( sibling => sibling . removeAttribute ( 'inert' ) ) ;
// Because of the wicg-inert polyfill, the activeElement may not be
// immediately selectable, we have to wait for observers to run, as
// described in https://github.com/WICG/inert#performance-and-gotchas
Promise . resolve ( ) . then ( ( ) => {
this . activeElement . focus ( ) ;
this . activeElement = null ;
} ) . catch ( ( error ) => {
console . error ( error ) ;
} ) ;
}
}
if ( this . props . children ) {
if ( this . props . children ) {
requestAnimationFrame ( ( ) => {
requestAnimationFrame ( ( ) => {