ldx-widgets
Version:
widgets
86 lines (77 loc) • 2.09 kB
JavaScript
(function() {
var AlertModal, Flux, NoAccess, React, animationMixin, button, div, ref;
React = require('react');
Flux = require('delorean').Flux;
animationMixin = require('../mixins/animation_mixin');
NoAccess = React.createFactory(require('./no_access'));
ref = React.DOM, div = ref.div, button = ref.button;
AlertModal = React.createClass({
displayName: 'AlertModal',
mixins: [animationMixin, Flux.mixins.storeListener],
watchStores: ['popoverModal'],
enterStateStart: {
scale: .9
},
enterStateEnd: {
scale: 1
},
enterEasing: 'easeOutElastic',
enterDuration: 600,
propTypes: {
okText: React.PropTypes.string,
cb: React.PropTypes.func,
message: React.PropTypes.string.isRequired
},
getDefaultProps: function() {
return {
okText: 'OK'
};
},
handleClick: function(e) {
return e.stopPropagation();
},
close: function() {
var base;
if (typeof (base = this.props).cb === "function") {
base.cb();
}
return this.trigger('closeModal');
},
render: function() {
var message, okText, ref1, scale;
scale = this.state.scale;
ref1 = this.props, message = ref1.message, okText = ref1.okText;
return div({
className: 'modal alert',
onClick: this.handleClick,
style: {
transform: "scale(" + scale + ")",
WebkitTransform: "scale(" + scale + ")",
msTransform: "scale(" + scale + ")"
}
}, [
div({
key: 'message',
className: 'message'
}, NoAccess({
displayText: message,
styleOverrides: {
fontSize: '14px',
background: 'none',
paddingTop: 10
}
})), div({
key: 'ok',
className: 'buttons'
}, [
button({
className: 'prmy ok',
key: 'ok',
onClick: this.close
}, okText)
])
]);
}
});
module.exports = AlertModal;
}).call(this);