react-bootstrap
Version:
Bootstrap 3 components build with React
78 lines (58 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _BootstrapMixin = require('./BootstrapMixin');
var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
var Alert = _react2['default'].createClass({
displayName: 'Alert',
mixins: [_BootstrapMixin2['default']],
propTypes: {
onDismiss: _react2['default'].PropTypes.func,
dismissAfter: _react2['default'].PropTypes.number
},
getDefaultProps: function getDefaultProps() {
return {
bsClass: 'alert',
bsStyle: 'info'
};
},
renderDismissButton: function renderDismissButton() {
return _react2['default'].createElement(
'button',
{
type: 'button',
className: 'close',
onClick: this.props.onDismiss,
'aria-hidden': 'true' },
'×'
);
},
render: function render() {
var classes = this.getBsClassSet();
var isDismissable = !!this.props.onDismiss;
classes['alert-dismissable'] = isDismissable;
return _react2['default'].createElement(
'div',
_extends({}, this.props, { className: (0, _classnames2['default'])(this.props.className, classes) }),
isDismissable ? this.renderDismissButton() : null,
this.props.children
);
},
componentDidMount: function componentDidMount() {
if (this.props.dismissAfter && this.props.onDismiss) {
this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter);
}
},
componentWillUnmount: function componentWillUnmount() {
clearTimeout(this.dismissTimer);
}
});
exports['default'] = Alert;
module.exports = exports['default'];