@@ -14,6 +14,7 @@ import SLDSButton from '../SLDSButton';
1414import { Icon } from '../SLDSIcons' ;
1515import { EventUtil } from '../utils' ;
1616import SLDSSettings from '../SLDSSettings' ;
17+ import cx from 'classnames' ;
1718
1819
1920import Modal from 'react-modal' ;
@@ -40,13 +41,19 @@ const customStyles = {
4041
4142module . exports = React . createClass ( {
4243
44+ propTypes : {
45+ size : React . PropTypes . oneOf ( [ 'medium' , 'large' ] )
46+ } ,
47+
4348 getDefaultProps ( ) {
4449 return {
4550 title :'' ,
4651 isOpen :false ,
4752 content :[ ] ,
4853 footer :[ ] ,
49- returnFocusTo :null
54+ returnFocusTo :null ,
55+ size :'medium' ,
56+ directional : false
5057 } ;
5158 } ,
5259
@@ -100,8 +107,19 @@ module.exports = React.createClass( {
100107 } ,
101108
102109 getModal ( ) {
110+ const modalClass = {
111+ 'slds-modal' : true ,
112+ 'slds-fade-in-open' :this . state . revealed ,
113+ 'slds-modal--large' :this . props . size === 'large'
114+ } ;
115+
116+ const footerClass = {
117+ 'slds-modal__footer' : true ,
118+ 'slds-modal__footer--directional' : this . props . directional
119+ } ;
120+
103121 return < div
104- className = { 'slds-modal' + ( this . state . revealed ? ' slds-fade-in-open' : '' ) }
122+ className = { cx ( modalClass ) }
105123 style = { { pointerEvents :'inherit' } }
106124 onClick = { this . closeModal }
107125 >
@@ -126,7 +144,7 @@ module.exports = React.createClass( {
126144 { this . props . children }
127145
128146 </ div >
129- < div className = 'slds-modal__footer' >
147+ < div className = { cx ( footerClass ) } >
130148 { this . props . footer }
131149 </ div >
132150
@@ -136,12 +154,17 @@ module.exports = React.createClass( {
136154 } ,
137155
138156 render ( ) {
157+ const overlayClasses = {
158+ 'slds-modal-backdrop' : true ,
159+ 'slds-modal-backdrop--open' :this . state . revealed
160+ } ;
161+
139162 return (
140163 < Modal
141164 isOpen = { this . props . isOpen }
142165 onRequestClose = { this . closeModal }
143166 style = { customStyles }
144- overlayClassName = { 'slds-modal-backdrop' + ( this . state . revealed ? ' slds-modal-backdrop--open' : '' ) } >
167+ overlayClassName = { cx ( overlayClasses ) } >
145168 { this . getModal ( ) }
146169 </ Modal >
147170 ) ;
0 commit comments