Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

76 linhas
2.6 KiB

  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  7. var _react = require("react");
  8. var _setDisplayName = _interopRequireDefault(require("./setDisplayName"));
  9. var _wrapDisplayName = _interopRequireDefault(require("./wrapDisplayName"));
  10. var _mapValues = _interopRequireDefault(require("./utils/mapValues"));
  11. var withStateHandlers = function withStateHandlers(initialState, stateUpdaters) {
  12. return function (BaseComponent) {
  13. var factory = (0, _react.createFactory)(BaseComponent);
  14. var WithStateHandlers =
  15. /*#__PURE__*/
  16. function (_Component) {
  17. (0, _inheritsLoose2.default)(WithStateHandlers, _Component);
  18. function WithStateHandlers() {
  19. var _this;
  20. for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
  21. _args[_key] = arguments[_key];
  22. }
  23. _this = _Component.call.apply(_Component, [this].concat(_args)) || this;
  24. _this.state = typeof initialState === 'function' ? initialState(_this.props) : initialState;
  25. _this.stateUpdaters = (0, _mapValues.default)(stateUpdaters, function (handler) {
  26. return function (mayBeEvent) {
  27. for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
  28. args[_key2 - 1] = arguments[_key2];
  29. }
  30. // Having that functional form of setState can be called async
  31. // we need to persist SyntheticEvent
  32. if (mayBeEvent && typeof mayBeEvent.persist === 'function') {
  33. mayBeEvent.persist();
  34. }
  35. _this.setState(function (state, props) {
  36. return handler(state, props).apply(void 0, [mayBeEvent].concat(args));
  37. });
  38. };
  39. });
  40. return _this;
  41. }
  42. var _proto = WithStateHandlers.prototype;
  43. _proto.render = function render() {
  44. return factory((0, _extends2.default)({}, this.props, this.state, this.stateUpdaters));
  45. };
  46. return WithStateHandlers;
  47. }(_react.Component);
  48. if (process.env.NODE_ENV !== 'production') {
  49. return (0, _setDisplayName.default)((0, _wrapDisplayName.default)(BaseComponent, 'withStateHandlers'))(WithStateHandlers);
  50. }
  51. return WithStateHandlers;
  52. };
  53. };
  54. var _default = withStateHandlers;
  55. exports.default = _default;