UNPKG

react-bootstrap

Version:

Bootstrap 3 components build with React

144 lines (109 loc) 4.48 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _utilsCustomPropTypes = require('./utils/CustomPropTypes'); var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes); var _utilsDeprecationWarning = require('./utils/deprecationWarning'); var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning); var _utilsCreateChainedFunction = require('./utils/createChainedFunction'); var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction); var _utilsCreateContextWrapper = require('./utils/createContextWrapper'); var _utilsCreateContextWrapper2 = _interopRequireDefault(_utilsCreateContextWrapper); var _OverlayMixin = require('./OverlayMixin'); function createHideDepreciationWrapper(hide) { return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } (0, _utilsDeprecationWarning2['default'])('The Modal prop `onRequestHide`', 'the `onHide` prop'); return hide.apply(undefined, args); }; } var ModalTrigger = _react2['default'].createClass({ displayName: 'ModalTrigger', mixins: [_OverlayMixin.OverlayMixin], propTypes: { modal: _react2['default'].PropTypes.node.isRequired, /** * The DOM Node that the Component will render it's children into */ container: _utilsCustomPropTypes2['default'].mountable, onBlur: _react2['default'].PropTypes.func, onFocus: _react2['default'].PropTypes.func, onMouseOut: _react2['default'].PropTypes.func, onMouseOver: _react2['default'].PropTypes.func }, getInitialState: function getInitialState() { return { isOverlayShown: false }; }, show: function show() { this.setState({ isOverlayShown: true }); }, hide: function hide() { this.setState({ isOverlayShown: false }); }, toggle: function toggle() { this.setState({ isOverlayShown: !this.state.isOverlayShown }); }, renderOverlay: function renderOverlay() { var modal = this.props.modal; if (!this.state.isOverlayShown) { return _react2['default'].createElement('span', null); } return (0, _react.cloneElement)(modal, { onHide: this.hide, onRequestHide: createHideDepreciationWrapper(this.hide), __isUsedInModalTrigger: true }); }, render: function render() { var child = _react2['default'].Children.only(this.props.children); var props = {}; props.onClick = (0, _utilsCreateChainedFunction2['default'])(child.props.onClick, this.toggle); props.onMouseOver = (0, _utilsCreateChainedFunction2['default'])(child.props.onMouseOver, this.props.onMouseOver); props.onMouseOut = (0, _utilsCreateChainedFunction2['default'])(child.props.onMouseOut, this.props.onMouseOut); props.onFocus = (0, _utilsCreateChainedFunction2['default'])(child.props.onFocus, this.props.onFocus); props.onBlur = (0, _utilsCreateChainedFunction2['default'])(child.props.onBlur, this.props.onBlur); return (0, _react.cloneElement)(child, props); } }); /** * Creates a new ModalTrigger class that forwards the relevant context * * This static method should only be called at the module level, instead of in * e.g. a render() method, because it's expensive to create new classes. * * For example, you would want to have: * * > export default ModalTrigger.withContext({ * > myContextKey: React.PropTypes.object * > }); * * and import this when needed. */ ModalTrigger.withContext = (0, _utilsCreateContextWrapper2['default'])(ModalTrigger, 'modal'); var DepreciatedModalTrigger = _react2['default'].createClass({ displayName: 'DepreciatedModalTrigger', componentWillMount: function componentWillMount() { (0, _utilsDeprecationWarning2['default'])('The `ModalTrigger` component', 'the `Modal` component directly', 'http://react-bootstrap.github.io/components.html#modals'); }, render: function render() { return _react2['default'].createElement(ModalTrigger, this.props); } }); DepreciatedModalTrigger.withContext = ModalTrigger.withContext; DepreciatedModalTrigger.ModalTrigger = ModalTrigger; exports['default'] = DepreciatedModalTrigger; module.exports = exports['default'];