@@ -14,6 +14,7 @@ import SLDSButton from '../SLDSButton';
14
14
import { Icon } from '../SLDSIcons' ;
15
15
import { EventUtil } from '../utils' ;
16
16
import SLDSSettings from '../SLDSSettings' ;
17
+ import cx from 'classnames' ;
17
18
18
19
19
20
import Modal from 'react-modal' ;
@@ -40,13 +41,19 @@ const customStyles = {
40
41
41
42
module . exports = React . createClass ( {
42
43
44
+ propTypes : {
45
+ size : React . PropTypes . oneOf ( [ 'medium' , 'large' ] )
46
+ } ,
47
+
43
48
getDefaultProps ( ) {
44
49
return {
45
50
title :'' ,
46
51
isOpen :false ,
47
52
content :[ ] ,
48
53
footer :[ ] ,
49
- returnFocusTo :null
54
+ returnFocusTo :null ,
55
+ size :'medium' ,
56
+ directional : false
50
57
} ;
51
58
} ,
52
59
@@ -100,8 +107,19 @@ module.exports = React.createClass( {
100
107
} ,
101
108
102
109
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
+
103
121
return < div
104
- className = { 'slds-modal' + ( this . state . revealed ? ' slds-fade-in-open' : '' ) }
122
+ className = { cx ( modalClass ) }
105
123
style = { { pointerEvents :'inherit' } }
106
124
onClick = { this . closeModal }
107
125
>
@@ -126,7 +144,7 @@ module.exports = React.createClass( {
126
144
{ this . props . children }
127
145
128
146
</ div >
129
- < div className = 'slds-modal__footer' >
147
+ < div className = { cx ( footerClass ) } >
130
148
{ this . props . footer }
131
149
</ div >
132
150
@@ -136,12 +154,17 @@ module.exports = React.createClass( {
136
154
} ,
137
155
138
156
render ( ) {
157
+ const overlayClasses = {
158
+ 'slds-modal-backdrop' : true ,
159
+ 'slds-modal-backdrop--open' :this . state . revealed
160
+ } ;
161
+
139
162
return (
140
163
< Modal
141
164
isOpen = { this . props . isOpen }
142
165
onRequestClose = { this . closeModal }
143
166
style = { customStyles }
144
- overlayClassName = { 'slds-modal-backdrop' + ( this . state . revealed ? ' slds-modal-backdrop--open' : '' ) } >
167
+ overlayClassName = { cx ( overlayClasses ) } >
145
168
{ this . getModal ( ) }
146
169
</ Modal >
147
170
) ;
0 commit comments