UNPKG

@shakacode/recompose

Version:

A React utility belt for function components and higher-order components

38 lines (36 loc) 1.7 kB
"use strict"; 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;