dott-react-popper
Version:
React wrapper around Popper.js
69 lines (50 loc) • 2.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = Reference;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _warning = _interopRequireDefault(require("warning"));
var _Manager = require("./Manager");
var _utils = require("./utils");
var InnerReference =
/*#__PURE__*/
function (_React$Component) {
(0, _inheritsLoose2["default"])(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;
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "refHandler", function (node) {
(0, _utils.safeInvoke)(_this.props.innerRef, node);
(0, _utils.safeInvoke)(_this.props.setReferenceNode, node);
});
return _this;
}
var _proto = InnerReference.prototype;
_proto.componentWillUnmount = function componentWillUnmount() {
(0, _utils.safeInvoke)(this.props.innerRef, null);
};
_proto.render = function render() {
(0, _warning["default"])(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');
return (0, _utils.unwrapArray)(this.props.children)({
ref: this.refHandler
});
};
return InnerReference;
}(_react["default"].Component);
function Reference(props) {
return _react["default"].createElement(_Manager.ManagerContext.Consumer, null, function (_ref) {
var setReferenceNode = _ref.setReferenceNode;
return _react["default"].createElement(InnerReference, (0, _extends2["default"])({
setReferenceNode: setReferenceNode
}, props));
});
}