@@ -702,8 +702,16 @@ Modal.propTypes = {
702702 } ) ,
703703 portalClassName : _propTypes2 . default . string ,
704704 bodyOpenClassName : _propTypes2 . default . string ,
705- className : _propTypes2 . default . oneOfType ( [ _propTypes2 . default . string , _propTypes2 . default . object ] ) ,
706- overlayClassName : _propTypes2 . default . oneOfType ( [ _propTypes2 . default . string , _propTypes2 . default . object ] ) ,
705+ className : _propTypes2 . default . oneOfType ( [ _propTypes2 . default . string , _propTypes2 . default . shape ( {
706+ base : _propTypes2 . default . string . isRequired ,
707+ afterOpen : _propTypes2 . default . string . isRequired ,
708+ beforeClose : _propTypes2 . default . string . isRequired
709+ } ) ] ) ,
710+ overlayClassName : _propTypes2 . default . oneOfType ( [ _propTypes2 . default . string , _propTypes2 . default . shape ( {
711+ base : _propTypes2 . default . string . isRequired ,
712+ afterOpen : _propTypes2 . default . string . isRequired ,
713+ beforeClose : _propTypes2 . default . string . isRequired
714+ } ) ] ) ,
707715 appElement : _propTypes2 . default . instanceOf ( _safeHTMLElement2 . default ) ,
708716 onAfterOpen : _propTypes2 . default . func ,
709717 onRequestClose : _propTypes2 . default . func ,
@@ -1628,6 +1636,8 @@ var ModalPortal = function (_Component) {
16281636 } ;
16291637
16301638 _this . afterClose = function ( ) {
1639+ // Remove body class
1640+ bodyClassList . remove ( _this . props . bodyOpenClassName ) ;
16311641 focusManager . returnFocus ( ) ;
16321642 focusManager . teardownScopedFocus ( ) ;
16331643 } ;
@@ -1815,6 +1825,8 @@ var ModalPortal = function (_Component) {
18151825 } , {
18161826 key : "componentWillUnmount" ,
18171827 value : function componentWillUnmount ( ) {
1828+ // Remove body class
1829+ bodyClassList . remove ( this . props . bodyOpenClassName ) ;
18181830 this . beforeClose ( ) ;
18191831 clearTimeout ( this . closeTimer ) ;
18201832 }
@@ -1838,12 +1850,9 @@ var ModalPortal = function (_Component) {
18381850 value : function beforeClose ( ) {
18391851 var _props2 = this . props ,
18401852 appElement = _props2 . appElement ,
1841- ariaHideApp = _props2 . ariaHideApp ,
1842- bodyOpenClassName = _props2 . bodyOpenClassName ;
1843- // Remove class if no more modals are open
1844-
1845- bodyClassList . remove ( bodyOpenClassName ) ;
1853+ ariaHideApp = _props2 . ariaHideApp ;
18461854 // Reset aria-hidden attribute if all modals have been removed
1855+
18471856 if ( ariaHideApp && refCount . totalCount ( ) < 1 ) {
18481857 ariaAppHider . show ( appElement ) ;
18491858 }
0 commit comments