UNPKG

2.02 kBJavaScriptView Raw
1import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2import _createClass from "@babel/runtime/helpers/esm/createClass";
3import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
4import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
5import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
6import _inherits from "@babel/runtime/helpers/esm/inherits";
7import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8import * as PropTypes from 'prop-types';
9import * as React from 'react';
10import handleRef from './handleRef';
11import { refPropType } from './types';
12
13var RefForward =
14/*#__PURE__*/
15function (_React$Component) {
16 _inherits(RefForward, _React$Component);
17
18 function RefForward() {
19 var _getPrototypeOf2;
20
21 var _this;
22
23 _classCallCheck(this, RefForward);
24
25 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26 args[_key] = arguments[_key];
27 }
28
29 _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(RefForward)).call.apply(_getPrototypeOf2, [this].concat(args)));
30
31 _defineProperty(_assertThisInitialized(_this), "handleRefOverride", function (node) {
32 var _this$props = _this.props,
33 children = _this$props.children,
34 innerRef = _this$props.innerRef;
35 handleRef(children.ref, node);
36 handleRef(innerRef, node);
37 });
38
39 return _this;
40 }
41
42 _createClass(RefForward, [{
43 key: "render",
44 value: function render() {
45 var children = this.props.children;
46 return React.cloneElement(children, {
47 ref: this.handleRefOverride
48 });
49 }
50 }]);
51
52 return RefForward;
53}(React.Component);
54
55_defineProperty(RefForward, "displayName", 'RefForward');
56
57_defineProperty(RefForward, "propTypes", process.env.NODE_ENV !== 'production' ? {
58 children: PropTypes.element.isRequired,
59 innerRef: refPropType.isRequired
60} : {});
61
62export { RefForward as default };
\No newline at end of file