@shakacode/recompose
Version:
A React utility belt for function components and higher-order components
27 lines (26 loc) • 1.38 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 _react = _interopRequireDefault(require("react"));
var _setDisplayName = _interopRequireDefault(require("./setDisplayName"));
var _wrapDisplayName = _interopRequireDefault(require("./wrapDisplayName"));
var fromRenderProps = function fromRenderProps(RenderPropsComponent, propsMapper, renderPropName) {
if (renderPropName === void 0) {
renderPropName = 'children';
}
return function (BaseComponent) {
var FromRenderProps = function FromRenderProps(ownerProps) {
var _React$createElement;
return /*#__PURE__*/_react["default"].createElement(RenderPropsComponent, (_React$createElement = {}, _React$createElement[renderPropName] = function () {
return /*#__PURE__*/_react["default"].createElement(BaseComponent, (0, _extends2["default"])({}, ownerProps, propsMapper.apply(void 0, arguments)));
}, _React$createElement));
};
if (process.env.NODE_ENV !== 'production') {
return (0, _setDisplayName["default"])((0, _wrapDisplayName["default"])(BaseComponent, 'fromRenderProps'))(FromRenderProps);
}
return FromRenderProps;
};
};
var _default = exports["default"] = fromRenderProps;