You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
2.2 KiB
48 lines
2.2 KiB
4 months ago
|
import { __assign, __extends } from "tslib";
|
||
|
import { invariant } from "../../utilities/globals/index.js";
|
||
|
import * as React from "rehackt";
|
||
|
import hoistNonReactStatics from "hoist-non-react-statics";
|
||
|
import { ApolloConsumer } from "../context/index.js";
|
||
|
function getDisplayName(WrappedComponent) {
|
||
|
return WrappedComponent.displayName || WrappedComponent.name || "Component";
|
||
|
}
|
||
|
/**
|
||
|
* @deprecated
|
||
|
* Official support for React Apollo higher order components ended in March 2020.
|
||
|
* This library is still included in the `@apollo/client` package, but it no longer receives feature updates or bug fixes.
|
||
|
*/
|
||
|
export function withApollo(WrappedComponent, operationOptions) {
|
||
|
if (operationOptions === void 0) { operationOptions = {}; }
|
||
|
var withDisplayName = "withApollo(".concat(getDisplayName(WrappedComponent), ")");
|
||
|
var WithApollo = /** @class */ (function (_super) {
|
||
|
__extends(WithApollo, _super);
|
||
|
function WithApollo(props) {
|
||
|
var _this = _super.call(this, props) || this;
|
||
|
_this.setWrappedInstance = _this.setWrappedInstance.bind(_this);
|
||
|
return _this;
|
||
|
}
|
||
|
WithApollo.prototype.getWrappedInstance = function () {
|
||
|
invariant(operationOptions.withRef, 48);
|
||
|
return this.wrappedInstance;
|
||
|
};
|
||
|
WithApollo.prototype.setWrappedInstance = function (ref) {
|
||
|
this.wrappedInstance = ref;
|
||
|
};
|
||
|
WithApollo.prototype.render = function () {
|
||
|
var _this = this;
|
||
|
return (React.createElement(ApolloConsumer, null, function (client) {
|
||
|
var props = Object.assign({}, _this.props, {
|
||
|
client: client,
|
||
|
ref: operationOptions.withRef ? _this.setWrappedInstance : undefined,
|
||
|
});
|
||
|
return React.createElement(WrappedComponent, __assign({}, props));
|
||
|
}));
|
||
|
};
|
||
|
WithApollo.displayName = withDisplayName;
|
||
|
WithApollo.WrappedComponent = WrappedComponent;
|
||
|
return WithApollo;
|
||
|
}(React.Component));
|
||
|
// Make sure we preserve any custom statics on the original component.
|
||
|
return hoistNonReactStatics(WithApollo, WrappedComponent, {});
|
||
|
}
|
||
|
//# sourceMappingURL=withApollo.js.map
|