Refactor Modal component
This commit is contained in:
parent
2b7c258cf3
commit
ce33050fb3
1 changed files with 14 additions and 34 deletions
|
@ -23,41 +23,21 @@ var Modal = React.createClass({
|
|||
};
|
||||
},
|
||||
render: function() {
|
||||
var props = Object.assign({}, this.props);
|
||||
|
||||
if (typeof props.className == 'undefined') {
|
||||
props.className = 'modal';
|
||||
} else {
|
||||
props.className += ' modal';
|
||||
}
|
||||
|
||||
if (typeof props.overlayClassName == 'undefined') {
|
||||
props.overlayClassName = 'modal-overlay';
|
||||
} else {
|
||||
props.overlayClassName += ' modal-overlay';
|
||||
}
|
||||
|
||||
props.onCloseRequested = props.onAborted || props.onConfirmed;
|
||||
|
||||
if (this.props.type == 'custom') {
|
||||
var buttons = null;
|
||||
} else {
|
||||
var buttons = (
|
||||
<div className="modal__buttons">
|
||||
{this.props.type == 'confirm'
|
||||
? <Link button="alt" label={props.abortButtonLabel} className="modal__button" disabled={this.props.abortButtonDisabled} onClick={props.onAborted} />
|
||||
: null}
|
||||
<Link button="primary" label={props.confirmButtonLabel} className="modal__button" disabled={this.props.confirmButtonDisabled} onClick={props.onConfirmed} />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<ReactModal {...props}>
|
||||
<div>
|
||||
{this.props.children}
|
||||
</div>
|
||||
{buttons}
|
||||
<ReactModal onCloseRequested={this.props.onAborted || this.props.onConfirmed} {...this.props}
|
||||
className={(this.props.className || '') + ' modal'}
|
||||
overlayClassName={(this.props.overlayClassName || '') + ' modal-overlay'}>
|
||||
<div>
|
||||
{this.props.children}
|
||||
</div>
|
||||
{this.props.type == 'custom' // custom modals define their own buttons
|
||||
? null
|
||||
: <div className="modal__buttons">
|
||||
{this.props.type == 'confirm'
|
||||
? <Link button="alt" label={this.props.abortButtonLabel} className="modal__button" disabled={this.props.abortButtonDisabled} onClick={this.props.onAborted} />
|
||||
: null}
|
||||
<Link button="primary" label={this.props.confirmButtonLabel} className="modal__button" disabled={this.props.confirmButtonDisabled} onClick={this.props.onConfirmed} />
|
||||
</div>}
|
||||
</ReactModal>
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue