UNPKG

react-bootstrap

Version:

Bootstrap 3 components build with React

59 lines (48 loc) 1.43 kB
var React = require('react'); var joinClasses = require('./utils/joinClasses'); var classSet = require('./utils/classSet'); var BootstrapMixin = require('./BootstrapMixin'); var Alert = React.createClass({displayName: "Alert", mixins: [BootstrapMixin], propTypes: { onDismiss: React.PropTypes.func, dismissAfter: React.PropTypes.number }, getDefaultProps: function () { return { bsClass: 'alert', bsStyle: 'info' }; }, renderDismissButton: function () { return ( React.createElement("button", { type: "button", className: "close", onClick: this.props.onDismiss, "aria-hidden": "true"}, "×" ) ); }, render: function () { var classes = this.getBsClassSet(); var isDismissable = !!this.props.onDismiss; classes['alert-dismissable'] = isDismissable; return ( React.createElement("div", React.__spread({}, this.props, {className: joinClasses(this.props.className, classSet(classes))}), isDismissable ? this.renderDismissButton() : null, this.props.children ) ); }, componentDidMount: function() { if (this.props.dismissAfter && this.props.onDismiss) { this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter); } }, componentWillUnmount: function() { clearTimeout(this.dismissTimer); } }); module.exports = Alert;