File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ var ExecutionEnvironment = require('react/lib/ExecutionEnvironment');
33var ModalPortal = React . createFactory ( require ( './ModalPortal' ) ) ;
44var ariaAppHider = require ( '../helpers/ariaAppHider' ) ;
55var injectCSS = require ( '../helpers/injectCSS' ) ;
6+ var elementClass = require ( 'element-class' ) ;
67
78var SafeHTMLElement = ExecutionEnvironment . canUseDOM ? window . HTMLElement : { } ;
89
@@ -48,6 +49,12 @@ var Modal = module.exports = React.createClass({
4849 } ,
4950
5051 renderPortal : function ( props ) {
52+ if ( props . isOpen ) {
53+ elementClass ( document . body ) . add ( 'ReactModal__Body--open' ) ;
54+ } else {
55+ elementClass ( document . body ) . remove ( 'ReactModal__Body--open' ) ;
56+ }
57+
5158 if ( props . ariaHideApp ) {
5259 ariaAppHider . toggle ( props . isOpen , props . appElement ) ;
5360 }
Original file line number Diff line number Diff line change 4040 "webpack-dev-server" : " 1.10.1"
4141 },
4242 "dependencies" : {
43- "classnames" : " ^2.1.3"
43+ "classnames" : " ^2.1.3" ,
44+ "element-class" : " ^0.2.0"
4445 },
4546 "peerDependencies" : {
4647 "react" : " >=0.13.3"
Original file line number Diff line number Diff line change @@ -115,6 +115,18 @@ describe('Modal', function () {
115115 equal ( modal . portal . refs . content . getDOMNode ( ) . style . width , '20px' ) ;
116116 } ) ;
117117
118+ it ( 'adds class to body when open' , function ( ) {
119+ var modal = renderModal ( { isOpen : false } ) ;
120+ equal ( document . body . className . contains ( 'ReactModal__Body--open' ) , false ) ;
121+
122+ modal . setProps ( { isOpen : true } ) ;
123+ equal ( document . body . className . contains ( 'ReactModal__Body--open' ) , true ) ;
124+
125+ modal = renderModal ( { isOpen : false } ) ;
126+ equal ( document . body . className . contains ( 'ReactModal__Body--open' ) , false ) ;
127+ unmountModal ( ) ;
128+ } ) ;
129+
118130 it ( 'adds --after-open for animations' , function ( ) {
119131 var modal = renderModal ( { isOpen : true } ) ;
120132 var overlay = document . querySelector ( '.ReactModal__Overlay' ) ;
You can’t perform that action at this time.
0 commit comments