@shakacode/recompose
Version:
A React utility belt for function components and higher-order components
38 lines (36 loc) • 1.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _react = require("react");
var _setDisplayName = _interopRequireDefault(require("./setDisplayName"));
var _wrapDisplayName = _interopRequireDefault(require("./wrapDisplayName"));
/* eslint-disable no-console */
var lifecycle = function lifecycle(spec) {
return function (BaseComponent) {
if (process.env.NODE_ENV !== 'production' && spec.hasOwnProperty('render')) {
console.error('lifecycle() does not support the render method; its behavior is to ' + 'pass all props and state to the base component.');
}
var Lifecycle = /*#__PURE__*/function (_Component) {
function Lifecycle() {
return _Component.apply(this, arguments) || this;
}
(0, _inheritsLoose2["default"])(Lifecycle, _Component);
var _proto = Lifecycle.prototype;
_proto.render = function render() {
return /*#__PURE__*/(0, _react.createElement)(BaseComponent, (0, _extends2["default"])({}, this.props, this.state));
};
return Lifecycle;
}(_react.Component);
Object.keys(spec).forEach(function (hook) {
return Lifecycle.prototype[hook] = spec[hook];
});
if (process.env.NODE_ENV !== 'production') {
return (0, _setDisplayName["default"])((0, _wrapDisplayName["default"])(BaseComponent, 'lifecycle'))(Lifecycle);
}
return Lifecycle;
};
};
var _default = exports["default"] = lifecycle;