UNPKG

1.23 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = void 0;
11
12var PropTypes = _interopRequireWildcard(require("prop-types"));
13
14var React = _interopRequireWildcard(require("react"));
15
16var ReactIs = _interopRequireWildcard(require("react-is"));
17
18var _RefFindNode = _interopRequireDefault(require("./RefFindNode"));
19
20var _RefForward = _interopRequireDefault(require("./RefForward"));
21
22var _types = require("./types");
23
24var Ref = function Ref(props) {
25 var children = props.children,
26 innerRef = props.innerRef;
27 var child = React.Children.only(children);
28 var ElementType = ReactIs.isForwardRef(child) ? _RefForward.default : _RefFindNode.default;
29 return React.createElement(ElementType, {
30 innerRef: innerRef
31 }, child);
32};
33
34Ref.displayName = 'Ref'; // TODO: use Babel plugin for this
35
36if (process.env.NODE_ENV !== 'production') {
37 Ref.propTypes = {
38 children: PropTypes.element.isRequired,
39 innerRef: _types.refPropType.isRequired
40 };
41}
42
43var _default = Ref;
44exports.default = _default;
\No newline at end of file