1 | import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
2 | import _createClass from "@babel/runtime/helpers/esm/createClass";
|
3 | import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
4 | import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
5 | import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
6 | import _inherits from "@babel/runtime/helpers/esm/inherits";
|
7 | import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
8 | import * as PropTypes from 'prop-types';
|
9 | import * as React from 'react';
|
10 | import * as ReactDOM from 'react-dom';
|
11 | import handleRef from './handleRef';
|
12 | import { refPropType } from './types';
|
13 |
|
14 | var RefFindNode =
|
15 |
|
16 | function (_React$Component) {
|
17 | _inherits(RefFindNode, _React$Component);
|
18 |
|
19 | function RefFindNode() {
|
20 | var _getPrototypeOf2;
|
21 |
|
22 | var _this;
|
23 |
|
24 | _classCallCheck(this, RefFindNode);
|
25 |
|
26 | for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
27 | args[_key] = arguments[_key];
|
28 | }
|
29 |
|
30 | _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(RefFindNode)).call.apply(_getPrototypeOf2, [this].concat(args)));
|
31 |
|
32 | _defineProperty(_assertThisInitialized(_this), "prevNode", null);
|
33 |
|
34 | return _this;
|
35 | }
|
36 |
|
37 | _createClass(RefFindNode, [{
|
38 | key: "componentDidMount",
|
39 | value: function componentDidMount() {
|
40 | this.prevNode = ReactDOM.findDOMNode(this);
|
41 | handleRef(this.props.innerRef, this.prevNode);
|
42 | }
|
43 | }, {
|
44 | key: "componentDidUpdate",
|
45 | value: function componentDidUpdate(prevProps) {
|
46 | var currentNode = ReactDOM.findDOMNode(this);
|
47 |
|
48 | if (this.prevNode !== currentNode) {
|
49 | this.prevNode = currentNode;
|
50 | handleRef(this.props.innerRef, currentNode);
|
51 | }
|
52 |
|
53 | if (prevProps.innerRef !== this.props.innerRef) {
|
54 | handleRef(this.props.innerRef, currentNode);
|
55 | }
|
56 | }
|
57 | }, {
|
58 | key: "componentWillUnmount",
|
59 | value: function componentWillUnmount() {
|
60 | handleRef(this.props.innerRef, null);
|
61 | }
|
62 | }, {
|
63 | key: "render",
|
64 | value: function render() {
|
65 | var children = this.props.children;
|
66 | return children;
|
67 | }
|
68 | }]);
|
69 |
|
70 | return RefFindNode;
|
71 | }(React.Component);
|
72 |
|
73 | _defineProperty(RefFindNode, "displayName", 'RefFindNode');
|
74 |
|
75 | _defineProperty(RefFindNode, "propTypes", process.env.NODE_ENV !== 'production' ? {
|
76 | children: PropTypes.element.isRequired,
|
77 | innerRef: refPropType.isRequired
|
78 | } : {});
|
79 |
|
80 | export { RefFindNode as default }; |
\ | No newline at end of file |