UNPKG

dareway-rui

Version:

120 lines (98 loc) 4.96 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = wrapWithPromiseDisabled; var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends')); var _objectWithoutProperties2 = _interopRequireDefault(require('@babel/runtime/helpers/objectWithoutProperties')); var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass')); var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _propTypes = _interopRequireDefault(require('prop-types')); function wrapWithPromiseDisabled(Component) { var _class, _temp; return ( (_temp = _class = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(ComponentWithPromiseDisabled, _React$Component); function ComponentWithPromiseDisabled(props) { var _this; (0, _classCallCheck2.default)(this, ComponentWithPromiseDisabled); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(ComponentWithPromiseDisabled).call(this, props) ); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleClick', function() { var autoDisabled = _this.state.autoDisabled; var onClick = _this.props.onClick; if (autoDisabled) { return; } if (onClick) { _this.setState({ autoDisabled: true }); Promise.resolve(onClick()) .then(function() { _this.setState({ autoDisabled: false }); }) .catch(function() { _this.setState({ autoDisabled: false }); }); } } ); var disabled = _this.props.disabled; _this.state = { autoDisabled: disabled }; return _this; } (0, _createClass2.default)(ComponentWithPromiseDisabled, [ { key: 'render', value: function render() { var _this$props = this.props, onClick = _this$props.onClick, disabled = _this$props.disabled, rest = (0, _objectWithoutProperties2.default)(_this$props, ['onClick', 'disabled']); var disabledResult = disabled || this.state.autoDisabled; return _react.default.createElement( Component, (0, _extends2.default)({}, rest, { onClick: this.handleClick, disabled: disabledResult }) ); } } ]); return ComponentWithPromiseDisabled; })(_react.default.Component)), (0, _defineProperty2.default)( _class, 'displayName', 'ComponentWithPromiseDisabled('.concat(Component.name || Component.displayName, ')') ), (0, _defineProperty2.default)(_class, 'propTypes', { onClick: _propTypes.default.func, disabled: _propTypes.default.bool }), _temp ); } //@ sourceMappingURL=wrapWithPromiseDisabled.js.map