UNPKG

shineout

Version:

Shein 前端组件库

133 lines (97 loc) 4.44 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _config = _interopRequireDefault(require("../config")); var _func = require("../utils/func"); var _default = (0, _func.curry)(function (defaultDelay, Origin) { var _temp; return _temp = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(_temp, _PureComponent); function _temp(props) { var _this; _this = _PureComponent.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "changeLocked", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "changeTimer", void 0); _this.state = { value: props.value }; _this.handleChange = _this.handleChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.forceChange = _this.forceChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.cancelChange = _this.cancelChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = _temp.prototype; _proto.getValue = function getValue() { if (this.changeLocked) return this.state.value; return this.props.value; }; _proto.getDelay = function getDelay() { var delay = this.props.delay; if (delay !== undefined) return delay; if (_config.default.delay !== undefined) return _config.default.delay; return defaultDelay; }; _proto.handleChange = function handleChange(value) { var _this2 = this; for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var delay = this.getDelay(); if (delay === 0) { var _this$props; (_this$props = this.props).onChange.apply(_this$props, [value].concat(args)); return; } this.setState({ value: value }); this.changeLocked = true; this.forceUpdate(); if (this.changeTimer) clearTimeout(this.changeTimer); this.changeTimer = setTimeout(function () { var _this2$props; _this2.changeLocked = false; (_this2$props = _this2.props).onChange.apply(_this2$props, [value].concat(args)); }, delay); }; _proto.cancelChange = function cancelChange() { if (this.changeTimer) clearTimeout(this.changeTimer); }; _proto.forceChange = function forceChange(value) { var _this$props2; this.cancelChange(); this.setState({ value: value }); for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } (_this$props2 = this.props).onChange.apply(_this$props2, [value].concat(args)); this.changeLocked = false; }; _proto.render = function render() { var _this$props3 = this.props, value = _this$props3.value, onChange = _this$props3.onChange, props = (0, _objectWithoutPropertiesLoose2.default)(_this$props3, ["value", "onChange"]); return _react.default.createElement(Origin, (0, _extends2.default)({}, props, { value: this.getValue(), onChange: this.handleChange, forceChange: this.forceChange, cancelChange: this.cancelChange })); }; return _temp; }(_react.PureComponent), _temp; }); exports.default = _default;