UNPKG

1.99 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7exports.__esModule = true;
8exports.withReduxForm = exports.renderChildren = exports.ReduxFormContext = void 0;
9
10var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
15
16var React = _interopRequireWildcard(require("react"));
17
18var ReduxFormContext = React.createContext(null);
19exports.ReduxFormContext = ReduxFormContext;
20
21var renderChildren = function renderChildren(Component, _ref) {
22 var forwardedRef = _ref.forwardedRef,
23 rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["forwardedRef"]);
24 return function (_reduxForm) {
25 return React.createElement(Component, (0, _extends2["default"])({}, rest, {
26 _reduxForm: _reduxForm,
27 ref: forwardedRef
28 }));
29 };
30};
31
32exports.renderChildren = renderChildren;
33
34var withReduxForm = function withReduxForm(Component) {
35 var Hoc =
36 /*#__PURE__*/
37 function (_React$Component) {
38 (0, _inheritsLoose2["default"])(Hoc, _React$Component);
39
40 function Hoc() {
41 return _React$Component.apply(this, arguments) || this;
42 }
43
44 var _proto = Hoc.prototype;
45
46 _proto.render = function render() {
47 return React.createElement(ReduxFormContext.Consumer, {
48 children: renderChildren(Component, this.props)
49 });
50 };
51
52 return Hoc;
53 }(React.Component);
54
55 var ref = React.forwardRef(function (props, ref) {
56 return React.createElement(Hoc, (0, _extends2["default"])({}, props, {
57 forwardedRef: ref
58 }));
59 });
60 ref.displayName = Component.displayName || Component.name || 'Component';
61 return ref;
62};
63
64exports.withReduxForm = withReduxForm;
\No newline at end of file