mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-29 03:45:15 +00:00
54 lines
1.8 KiB
JavaScript
54 lines
1.8 KiB
JavaScript
|
import _extends from "@babel/runtime/helpers/extends";
|
||
|
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
|
||
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
||
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
||
|
import * as React from 'react';
|
||
|
import warning from 'warning';
|
||
|
import { ManagerReferenceNodeSetterContext } from './Manager';
|
||
|
import { safeInvoke, unwrapArray, setRef } from './utils';
|
||
|
|
||
|
var InnerReference =
|
||
|
/*#__PURE__*/
|
||
|
function (_React$Component) {
|
||
|
_inheritsLoose(InnerReference, _React$Component);
|
||
|
|
||
|
function InnerReference() {
|
||
|
var _this;
|
||
|
|
||
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
|
args[_key] = arguments[_key];
|
||
|
}
|
||
|
|
||
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
||
|
|
||
|
_defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "refHandler", function (node) {
|
||
|
setRef(_this.props.innerRef, node);
|
||
|
safeInvoke(_this.props.setReferenceNode, node);
|
||
|
});
|
||
|
|
||
|
return _this;
|
||
|
}
|
||
|
|
||
|
var _proto = InnerReference.prototype;
|
||
|
|
||
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
||
|
setRef(this.props.innerRef, null);
|
||
|
};
|
||
|
|
||
|
_proto.render = function render() {
|
||
|
warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');
|
||
|
return unwrapArray(this.props.children)({
|
||
|
ref: this.refHandler
|
||
|
});
|
||
|
};
|
||
|
|
||
|
return InnerReference;
|
||
|
}(React.Component);
|
||
|
|
||
|
export default function Reference(props) {
|
||
|
return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {
|
||
|
return React.createElement(InnerReference, _extends({
|
||
|
setReferenceNode: setReferenceNode
|
||
|
}, props));
|
||
|
});
|
||
|
}
|