UNPKG

2.21 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports.default = LocalQueryRenderer;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _react = _interopRequireWildcard(require("react"));
15
16var _reactRelay = require("react-relay");
17
18var _js = require("@kiwicom/js");
19
20var _createLocalEnvironment = _interopRequireDefault(require("./createLocalEnvironment"));
21
22// Please note: we are currently only wrapping this component to add it correct Flow types.
23// Eventually, it can be extended with other functions like original QueryRenderer.
24function LocalQueryRenderer(props) {
25 var _ref2, _props$environment;
26
27 function renderQueryRendererResponse(_ref) {
28 var rendererProps = _ref.props;
29
30 if (!rendererProps) {
31 return props.onLoading ? props.onLoading() : _react.default.createElement("div", {
32 "data-testid": "loading"
33 }, "Loading local...");
34 }
35
36 !(props.onResponse !== undefined) ? process.env.NODE_ENV !== "production" ? (0, _js.invariant)(false, 'LocalQueryRenderer used default render function but "onResponse" property has not been provided.') : (0, _js.invariant)(false) : void 0;
37 return props.onResponse(rendererProps);
38 } // 1) <LQR environment={Env} /> always win
39 // 2) <LQR /> checks whether we provide Environment via `RelayEnvironmentProvider`
40 // 3) <LQR /> defaults to the default local environment
41
42
43 var context = (0, _react.useContext)(_reactRelay.ReactRelayContext); // TODO: does it make sense to add support for separate local env context?
44
45 var environment = (_ref2 = (_props$environment = props.environment) !== null && _props$environment !== void 0 ? _props$environment : context === null || context === void 0 ? void 0 : context.environment) !== null && _ref2 !== void 0 ? _ref2 : (0, _createLocalEnvironment.default)();
46 return _react.default.createElement(_reactRelay.LocalQueryRenderer, (0, _extends2.default)({
47 environment: environment,
48 render: renderQueryRendererResponse
49 }, props));
50}
\No newline at end of file