ldx-widgets
Version:
widgets
100 lines (90 loc) • 2.74 kB
JavaScript
(function() {
var AlertModal, NoAccess, PropTypes, React, animationMixin, button, createClass, div, ref;
React = require('react');
createClass = require('create-react-class');
PropTypes = require('prop-types');
animationMixin = require('../mixins/animation_mixin');
NoAccess = React.createFactory(require('./no_access'));
ref = React.DOM, div = ref.div, button = ref.button;
AlertModal = createClass({
displayName: 'AlertModal',
mixins: [animationMixin],
enterStateStart: {
scale: .9
},
enterStateEnd: {
scale: 1
},
enterEasing: 'easeOutElastic',
enterDuration: 600,
propTypes: {
className: PropTypes.string,
close: PropTypes.func.isRequired,
okText: PropTypes.string,
cancelText: PropTypes.string,
cb: PropTypes.func,
message: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired
},
getDefaultProps: function() {
return {
okText: 'OK',
cancelText: 'Cancel',
className: 'modal alert'
};
},
handleClick: function(e) {
return e.stopPropagation();
},
close: function() {
return this.props.close();
},
confirm: function() {
var base;
if (typeof (base = this.props).cb === "function") {
base.cb();
}
return this.props.close();
},
render: function() {
var cancelText, cb, className, message, messageAsChild, okText, ref1, scale;
scale = this.state.scale;
ref1 = this.props, message = ref1.message, okText = ref1.okText, cancelText = ref1.cancelText, cb = ref1.cb, className = ref1.className;
messageAsChild = typeof message === 'object';
return div({
className: className,
onClick: this.handleClick,
style: {
transform: "scale(" + scale + ")",
WebkitTransform: "scale(" + scale + ")",
msTransform: "scale(" + scale + ")"
}
}, [
div({
key: 'message',
className: 'message'
}, messageAsChild ? message : NoAccess({
displayText: message,
styleOverrides: {
fontSize: '14px',
background: 'none',
paddingTop: 10
}
})), div({
key: 'ok',
className: 'buttons'
}, [
cb != null ? button({
className: 'okay-cancel cancel',
key: 'cancel',
onClick: this.close
}, cancelText) : void 0, button({
className: cb != null ? 'okay-cancel okay' : 'prmy ok',
key: 'ok',
onClick: this.confirm
}, okText)
])
]);
}
});
module.exports = AlertModal;
}).call(this);