ldx-widgets
Version:
widgets
85 lines (76 loc) • 2.2 kB
JavaScript
(function() {
var FormAlertItem, PropTypes, React, animationMixin, button, createClass, div, li, ref;
React = require('react');
createClass = require('create-react-class');
PropTypes = require('prop-types');
animationMixin = require('../mixins/animation_mixin');
ref = require('react-dom-factories'), li = ref.li, div = ref.div, button = ref.button;
FormAlertItem = createClass({
displayName: 'FormAlertItem',
mixins: [animationMixin],
enterDuration: 300,
enterStateStart: {
scale: 0
},
enterStateEnd: {
scale: 1
},
enterEasing: 'easeOutCirc',
leaveDuration: 300,
leaveStateStart: {
scale: 1
},
leaveStateEnd: {
scale: 0
},
leaveEasing: 'easeInCirc',
propTypes: {
isAlert: PropTypes.bool,
message: PropTypes.oneOfType([PropTypes.string, PropTypes.number])
},
render: function() {
var alert, isAlert, message, scale;
alert = this.props.alert;
isAlert = alert.isAlert, message = alert.message;
scale = this.state.scale;
return li({
className: isAlert ? 'alert' : 'success',
style: {
transform: "scaleY(" + scale + ") translateZ(0)",
WebkitTransform: "scaleY(" + scale + ") translateZ(0)",
msTransform: "scaleY(" + scale + ")"
}
}, [
div({
key: 'title',
className: 'message'
}, [
div({
key: 'message',
className: 'alert-text',
title: message
}, message), button({
key: 'remove-item',
onClick: this.removeAlert,
className: 'alert-close'
})
])
]);
},
componentDidMount: function() {
var removeTimer;
removeTimer = this.props.alert.removeTimer;
if (removeTimer != null) {
return setTimeout((function(_this) {
return function() {
return _this.removeAlert(_this.props.alert);
};
})(this), removeTimer);
}
},
removeAlert: function() {
return this.props.removeAlert(this.props.alert);
}
});
module.exports = FormAlertItem;
}).call(this);