Skip to content

Commit e652c43

Browse files
committed
Merge pull request #18 from sfdc-matrix/modal-variant
Add size and directional props to modal
2 parents a55af52 + 28a6389 commit e652c43

File tree

1 file changed

+27
-4
lines changed

1 file changed

+27
-4
lines changed

components/SLDSModal/index.jsx

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import SLDSButton from '../SLDSButton';
1414
import {Icon} from '../SLDSIcons';
1515
import {EventUtil} from '../utils';
1616
import SLDSSettings from '../SLDSSettings';
17+
import cx from 'classnames';
1718

1819

1920
import Modal from 'react-modal';
@@ -40,13 +41,19 @@ const customStyles = {
4041

4142
module.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

Comments
 (0)