react-relay 14.0.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ReactRelayContainerUtils.js.flow +1 -2
- package/ReactRelayContext.js +1 -1
- package/ReactRelayContext.js.flow +1 -2
- package/ReactRelayFragmentContainer.js.flow +6 -4
- package/ReactRelayFragmentMockRenderer.js.flow +1 -2
- package/ReactRelayLocalQueryRenderer.js.flow +5 -5
- package/ReactRelayPaginationContainer.js.flow +21 -14
- package/ReactRelayQueryFetcher.js.flow +28 -16
- package/ReactRelayQueryRenderer.js.flow +42 -13
- package/ReactRelayQueryRendererContext.js.flow +2 -3
- package/ReactRelayRefetchContainer.js.flow +9 -9
- package/ReactRelayTestMocker.js.flow +3 -3
- package/ReactRelayTypes.js.flow +7 -8
- package/RelayContext.js.flow +1 -2
- package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +4 -5
- package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +4 -5
- package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +4 -5
- package/__flowtests__/RelayModern-flowtest.js.flow +3 -4
- package/__flowtests__/RelayModernFlowtest_badref.graphql.js.flow +3 -4
- package/__flowtests__/RelayModernFlowtest_notref.graphql.js.flow +3 -4
- package/__flowtests__/RelayModernFlowtest_user.graphql.js.flow +3 -4
- package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +3 -4
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +4 -2
- package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -1
- package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +3 -1
- package/assertFragmentMap.js.flow +1 -2
- package/buildReactRelayContainer.js.flow +7 -7
- package/getRootVariablesForFragments.js.flow +1 -3
- package/hooks.js +1 -1
- package/hooks.js.flow +4 -2
- package/index.js +1 -1
- package/index.js.flow +6 -2
- package/isRelayEnvironment.js.flow +1 -2
- package/jest-react/enqueueTask.js.flow +1 -1
- package/jest-react/index.js.flow +1 -1
- package/jest-react/internalAct.js.flow +1 -1
- package/legacy.js +1 -1
- package/legacy.js.flow +1 -2
- package/lib/ReactRelayContainerUtils.js +2 -3
- package/lib/ReactRelayContext.js +3 -4
- package/lib/ReactRelayFragmentContainer.js +47 -73
- package/lib/ReactRelayFragmentMockRenderer.js +2 -4
- package/lib/ReactRelayLocalQueryRenderer.js +18 -31
- package/lib/ReactRelayPaginationContainer.js +74 -164
- package/lib/ReactRelayQueryFetcher.js +49 -76
- package/lib/ReactRelayQueryRenderer.js +63 -84
- package/lib/ReactRelayQueryRendererContext.js +2 -2
- package/lib/ReactRelayRefetchContainer.js +58 -108
- package/lib/ReactRelayTestMocker.js +33 -68
- package/lib/ReactRelayTypes.js +2 -1
- package/lib/RelayContext.js +4 -7
- package/lib/assertFragmentMap.js +3 -5
- package/lib/buildReactRelayContainer.js +11 -27
- package/lib/getRootVariablesForFragments.js +6 -10
- package/lib/hooks.js +5 -18
- package/lib/index.js +7 -24
- package/lib/isRelayEnvironment.js +5 -4
- package/lib/jest-react/enqueueTask.js +5 -9
- package/lib/jest-react/index.js +0 -1
- package/lib/jest-react/internalAct.js +9 -20
- package/lib/legacy.js +2 -8
- package/lib/multi-actor/ActorChange.js +2 -5
- package/lib/multi-actor/index.js +2 -1
- package/lib/multi-actor/useRelayActorEnvironment.js +4 -8
- package/lib/relay-hooks/EntryPointContainer.react.js +9 -15
- package/lib/relay-hooks/EntryPointTypes.flow.js +5 -3
- package/lib/relay-hooks/FragmentResource.js +109 -203
- package/lib/relay-hooks/HooksImplementation.js +3 -6
- package/lib/relay-hooks/InternalLogger.js +2 -3
- package/lib/relay-hooks/LRUCache.js +2 -20
- package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +33 -54
- package/lib/relay-hooks/MatchContainer.js +15 -24
- package/lib/relay-hooks/ProfilerContext.js +3 -3
- package/lib/relay-hooks/QueryResource.js +31 -101
- package/lib/relay-hooks/RelayEnvironmentProvider.js +5 -9
- package/lib/relay-hooks/SuspenseResource.js +9 -33
- package/lib/relay-hooks/loadEntryPoint.js +19 -31
- package/lib/relay-hooks/loadQuery.js +42 -78
- package/lib/relay-hooks/preloadQuery_DEPRECATED.js +11 -37
- package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +9 -15
- package/lib/relay-hooks/react-cache/RelayReactCache.js +7 -12
- package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +27 -81
- package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +206 -0
- package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +195 -215
- package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +5 -15
- package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +17 -24
- package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +149 -0
- package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +24 -39
- package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +325 -0
- package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +37 -0
- package/lib/relay-hooks/useBlockingPaginationFragment.js +73 -93
- package/lib/relay-hooks/useClientQuery.js +30 -0
- package/lib/relay-hooks/useEntryPointLoader.js +18 -38
- package/lib/relay-hooks/useFetchTrackingRef.js +10 -12
- package/lib/relay-hooks/useFragment.js +8 -19
- package/lib/relay-hooks/useFragmentNode.js +20 -32
- package/lib/relay-hooks/useIsMountedRef.js +4 -6
- package/lib/relay-hooks/useIsOperationNodeActive.js +8 -20
- package/lib/relay-hooks/useIsParentQueryActive.js +3 -6
- package/lib/relay-hooks/useLazyLoadQuery.js +7 -24
- package/lib/relay-hooks/useLazyLoadQueryNode.js +23 -34
- package/lib/relay-hooks/useLoadMoreFunction.js +46 -78
- package/lib/relay-hooks/useMemoOperationDescriptor.js +6 -15
- package/lib/relay-hooks/useMemoVariables.js +15 -34
- package/lib/relay-hooks/useMutation.js +9 -27
- package/lib/relay-hooks/usePaginationFragment.js +73 -76
- package/lib/relay-hooks/usePreloadedQuery.js +13 -44
- package/lib/relay-hooks/useQueryLoader.js +24 -49
- package/lib/relay-hooks/useRefetchableFragment.js +19 -17
- package/lib/relay-hooks/useRefetchableFragmentNode.js +65 -109
- package/lib/relay-hooks/useRelayEnvironment.js +4 -8
- package/lib/relay-hooks/useStaticFragmentNodeWarning.js +4 -8
- package/lib/relay-hooks/useSubscribeToInvalidationState.js +8 -9
- package/lib/relay-hooks/useSubscription.js +5 -10
- package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +29 -0
- package/multi-actor/ActorChange.js.flow +1 -1
- package/multi-actor/index.js.flow +1 -1
- package/multi-actor/useRelayActorEnvironment.js.flow +2 -4
- package/package.json +2 -2
- package/react-relay-hooks.js +2 -2
- package/react-relay-hooks.min.js +2 -2
- package/react-relay-legacy.js +2 -2
- package/react-relay-legacy.min.js +2 -2
- package/react-relay.js +2 -2
- package/react-relay.min.js +2 -2
- package/relay-hooks/EntryPointContainer.react.js.flow +3 -5
- package/relay-hooks/EntryPointTypes.flow.js.flow +37 -37
- package/relay-hooks/FragmentResource.js.flow +43 -19
- package/relay-hooks/HooksImplementation.js.flow +7 -9
- package/relay-hooks/InternalLogger.js.flow +1 -3
- package/relay-hooks/LRUCache.js.flow +1 -3
- package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +19 -14
- package/relay-hooks/MatchContainer.js.flow +6 -8
- package/relay-hooks/ProfilerContext.js.flow +1 -3
- package/relay-hooks/QueryResource.js.flow +29 -11
- package/relay-hooks/RelayEnvironmentProvider.js.flow +4 -6
- package/relay-hooks/SuspenseResource.js.flow +1 -3
- package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +6 -4
- package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +4 -4
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
- package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
- package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +39 -39
- package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -3
- package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +37 -38
- package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +18 -20
- package/relay-hooks/__flowtests__/utils.js.flow +21 -12
- package/relay-hooks/loadEntryPoint.js.flow +11 -6
- package/relay-hooks/loadQuery.js.flow +11 -7
- package/relay-hooks/preloadQuery_DEPRECATED.js.flow +9 -12
- package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +13 -10
- package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -3
- package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +26 -20
- package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +297 -0
- package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +136 -96
- package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +1 -3
- package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +3 -5
- package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +190 -0
- package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +3 -6
- package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +601 -0
- package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +65 -0
- package/relay-hooks/useBlockingPaginationFragment.js.flow +86 -59
- package/relay-hooks/useClientQuery.js.flow +39 -0
- package/relay-hooks/useEntryPointLoader.js.flow +16 -14
- package/relay-hooks/useFetchTrackingRef.js.flow +7 -8
- package/relay-hooks/useFragment.js.flow +2 -4
- package/relay-hooks/useFragmentNode.js.flow +7 -8
- package/relay-hooks/useIsMountedRef.js.flow +2 -4
- package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
- package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
- package/relay-hooks/useLazyLoadQuery.js.flow +9 -32
- package/relay-hooks/useLazyLoadQueryNode.js.flow +4 -6
- package/relay-hooks/useLoadMoreFunction.js.flow +20 -17
- package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -5
- package/relay-hooks/useMemoVariables.js.flow +13 -31
- package/relay-hooks/useMutation.js.flow +6 -8
- package/relay-hooks/usePaginationFragment.js.flow +75 -43
- package/relay-hooks/usePreloadedQuery.js.flow +49 -43
- package/relay-hooks/useQueryLoader.js.flow +89 -28
- package/relay-hooks/useRefetchableFragment.js.flow +83 -23
- package/relay-hooks/useRefetchableFragmentNode.js.flow +26 -22
- package/relay-hooks/useRelayEnvironment.js.flow +2 -4
- package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -5
- package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -4
- package/relay-hooks/useSubscription.js.flow +1 -3
- package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
- package/lib/readContext.js +0 -28
- package/readContext.js.flow +0 -31
|
@@ -6,60 +6,45 @@
|
|
|
6
6
|
*
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
|
+
* @oncall relay
|
|
9
10
|
*/
|
|
10
|
-
// flowlint ambiguous-object-type:error
|
|
11
|
-
'use strict';
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
'use strict';
|
|
14
13
|
|
|
14
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
15
15
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
|
-
|
|
17
16
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
18
|
-
|
|
19
17
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
20
|
-
|
|
21
18
|
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
22
|
-
|
|
23
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
24
|
-
|
|
25
20
|
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
26
|
-
|
|
21
|
+
var _excluded = ["componentRef"],
|
|
22
|
+
_excluded2 = ["componentRef", "__relayContext", "__rootIsQueryRenderer"],
|
|
23
|
+
_excluded3 = ["componentRef", "__relayContext", "__rootIsQueryRenderer"];
|
|
27
24
|
var buildReactRelayContainer = require('./buildReactRelayContainer');
|
|
28
|
-
|
|
29
25
|
var getRootVariablesForFragments = require('./getRootVariablesForFragments');
|
|
30
|
-
|
|
31
26
|
var _require = require('./ReactRelayContainerUtils'),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
getComponentName = _require.getComponentName,
|
|
28
|
+
getContainerName = _require.getContainerName;
|
|
35
29
|
var ReactRelayContext = require('./ReactRelayContext');
|
|
36
|
-
|
|
37
30
|
var ReactRelayQueryFetcher = require('./ReactRelayQueryFetcher');
|
|
38
|
-
|
|
39
31
|
var _require2 = require('./RelayContext'),
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
assertRelayContext = _require2.assertRelayContext;
|
|
42
33
|
var areEqual = require("fbjs/lib/areEqual");
|
|
43
|
-
|
|
44
34
|
var invariant = require('invariant');
|
|
45
|
-
|
|
46
35
|
var React = require('react');
|
|
47
|
-
|
|
48
36
|
var _require3 = require('relay-runtime'),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
37
|
+
ConnectionInterface = _require3.ConnectionInterface,
|
|
38
|
+
Observable = _require3.Observable,
|
|
39
|
+
RelayFeatureFlags = _require3.RelayFeatureFlags,
|
|
40
|
+
createFragmentSpecResolver = _require3.createFragmentSpecResolver,
|
|
41
|
+
createOperationDescriptor = _require3.createOperationDescriptor,
|
|
42
|
+
getDataIDsFromObject = _require3.getDataIDsFromObject,
|
|
43
|
+
getRequest = _require3.getRequest,
|
|
44
|
+
getVariablesFromObject = _require3.getVariablesFromObject,
|
|
45
|
+
isScalarAndEqual = _require3.isScalarAndEqual;
|
|
59
46
|
var warning = require("fbjs/lib/warning");
|
|
60
|
-
|
|
61
47
|
var FORWARD = 'forward';
|
|
62
|
-
|
|
63
48
|
/**
|
|
64
49
|
* Extends the functionality of RelayFragmentContainer by providing a mechanism
|
|
65
50
|
* to load more data from a connection.
|
|
@@ -191,24 +176,21 @@ var FORWARD = 'forward';
|
|
|
191
176
|
* typically reference one of the container's fragment (as in the example)
|
|
192
177
|
* to ensure that all the necessary fields for sub-components are fetched.
|
|
193
178
|
*/
|
|
179
|
+
|
|
194
180
|
function createGetConnectionFromProps(metadata) {
|
|
195
181
|
var path = metadata.path;
|
|
196
182
|
!path ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getConnectionFromProps function.') : invariant(false) : void 0;
|
|
197
183
|
return function (props) {
|
|
198
184
|
var data = props[metadata.fragmentName];
|
|
199
|
-
|
|
200
185
|
for (var i = 0; i < path.length; i++) {
|
|
201
186
|
if (!data || typeof data !== 'object') {
|
|
202
187
|
return null;
|
|
203
188
|
}
|
|
204
|
-
|
|
205
189
|
data = data[path[i]];
|
|
206
190
|
}
|
|
207
|
-
|
|
208
191
|
return data;
|
|
209
192
|
};
|
|
210
193
|
}
|
|
211
|
-
|
|
212
194
|
function createGetFragmentVariables(metadata) {
|
|
213
195
|
var countVariable = metadata.count;
|
|
214
196
|
!countVariable ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Unable to synthesize a ' + 'getFragmentVariables function.') : invariant(false) : void 0;
|
|
@@ -216,21 +198,18 @@ function createGetFragmentVariables(metadata) {
|
|
|
216
198
|
return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, prevVars), {}, (0, _defineProperty2["default"])({}, countVariable, totalCount));
|
|
217
199
|
};
|
|
218
200
|
}
|
|
219
|
-
|
|
220
201
|
function findConnectionMetadata(fragments) {
|
|
221
202
|
var foundConnectionMetadata = null;
|
|
222
203
|
var isRelayModern = false;
|
|
223
|
-
|
|
224
204
|
for (var fragmentName in fragments) {
|
|
225
205
|
var fragment = fragments[fragmentName];
|
|
226
|
-
var connectionMetadata = fragment.metadata && fragment.metadata.connection;
|
|
206
|
+
var connectionMetadata = fragment.metadata && fragment.metadata.connection;
|
|
207
|
+
// HACK: metadata is always set to `undefined` in classic. In modern, even
|
|
227
208
|
// if empty, it is set to null (never undefined). We use that knowlege to
|
|
228
209
|
// check if we're dealing with classic or modern
|
|
229
|
-
|
|
230
210
|
if (fragment.metadata !== undefined) {
|
|
231
211
|
isRelayModern = true;
|
|
232
212
|
}
|
|
233
|
-
|
|
234
213
|
if (connectionMetadata) {
|
|
235
214
|
!(connectionMetadata.length === 1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Only a single @connection is ' + 'supported, `%s` has %s.', fragmentName, connectionMetadata.length) : invariant(false) : void 0;
|
|
236
215
|
!!foundConnectionMetadata ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Only a single fragment with ' + '@connection is supported.') : invariant(false) : void 0;
|
|
@@ -239,11 +218,9 @@ function findConnectionMetadata(fragments) {
|
|
|
239
218
|
});
|
|
240
219
|
}
|
|
241
220
|
}
|
|
242
|
-
|
|
243
221
|
!(!isRelayModern || foundConnectionMetadata !== null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: A @connection directive must be present.') : invariant(false) : void 0;
|
|
244
222
|
return foundConnectionMetadata || {};
|
|
245
223
|
}
|
|
246
|
-
|
|
247
224
|
function toObserver(observerOrCallback) {
|
|
248
225
|
return typeof observerOrCallback === 'function' ? {
|
|
249
226
|
error: observerOrCallback,
|
|
@@ -253,10 +230,8 @@ function toObserver(observerOrCallback) {
|
|
|
253
230
|
}
|
|
254
231
|
} : observerOrCallback || {};
|
|
255
232
|
}
|
|
256
|
-
|
|
257
233
|
function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
258
|
-
var _class
|
|
259
|
-
|
|
234
|
+
var _class;
|
|
260
235
|
var componentName = getComponentName(Component);
|
|
261
236
|
var containerName = getContainerName(Component);
|
|
262
237
|
var metadata = findConnectionMetadata(fragments);
|
|
@@ -264,12 +239,12 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
264
239
|
var direction = connectionConfig.direction || metadata.direction;
|
|
265
240
|
!direction ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Unable to infer direction of the ' + 'connection, possibly because both first and last are provided.') : invariant(false) : void 0;
|
|
266
241
|
var getFragmentVariables = connectionConfig.getFragmentVariables || createGetFragmentVariables(metadata);
|
|
267
|
-
return
|
|
242
|
+
return _class = /*#__PURE__*/function (_React$Component) {
|
|
268
243
|
(0, _inheritsLoose2["default"])(_class, _React$Component);
|
|
244
|
+
// $FlowFixMe[missing-local-annot]
|
|
269
245
|
|
|
270
246
|
function _class(props) {
|
|
271
247
|
var _props$__rootIsQueryR, _this;
|
|
272
|
-
|
|
273
248
|
_this = _React$Component.call(this, props) || this;
|
|
274
249
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_handleFragmentDataUpdate", function () {
|
|
275
250
|
_this.setState({
|
|
@@ -278,7 +253,6 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
278
253
|
});
|
|
279
254
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_hasMore", function () {
|
|
280
255
|
var connectionData = _this._getConnectionData();
|
|
281
|
-
|
|
282
256
|
return !!(connectionData && connectionData.hasMore && connectionData.cursor);
|
|
283
257
|
});
|
|
284
258
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_isLoading", function () {
|
|
@@ -290,18 +264,15 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
290
264
|
dispose: function dispose() {}
|
|
291
265
|
};
|
|
292
266
|
}
|
|
293
|
-
|
|
294
267
|
_this._refetchVariables = refetchVariables;
|
|
295
268
|
var paginatingVariables = {
|
|
296
269
|
count: totalCount,
|
|
297
270
|
cursor: null,
|
|
298
271
|
totalCount: totalCount
|
|
299
272
|
};
|
|
300
|
-
|
|
301
273
|
var fetch = _this._fetchPage(paginatingVariables, toObserver(observerOrCallback), {
|
|
302
274
|
force: true
|
|
303
275
|
});
|
|
304
|
-
|
|
305
276
|
return {
|
|
306
277
|
dispose: fetch.unsubscribe
|
|
307
278
|
};
|
|
@@ -312,28 +283,21 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
312
283
|
dispose: function dispose() {}
|
|
313
284
|
};
|
|
314
285
|
}
|
|
315
|
-
|
|
316
286
|
var observer = toObserver(observerOrCallback);
|
|
317
|
-
|
|
318
287
|
var connectionData = _this._getConnectionData();
|
|
319
|
-
|
|
320
288
|
if (!connectionData) {
|
|
321
289
|
Observable.create(function (sink) {
|
|
322
290
|
return sink.complete();
|
|
323
291
|
}).subscribe(observer);
|
|
324
292
|
return null;
|
|
325
293
|
}
|
|
326
|
-
|
|
327
294
|
var totalCount = connectionData.edgeCount + pageSize;
|
|
328
|
-
|
|
329
295
|
if (options && options.force) {
|
|
330
296
|
return _this._refetchConnection(totalCount, observerOrCallback);
|
|
331
297
|
}
|
|
332
|
-
|
|
333
298
|
var _ConnectionInterface$ = ConnectionInterface.get(),
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
299
|
+
END_CURSOR = _ConnectionInterface$.END_CURSOR,
|
|
300
|
+
START_CURSOR = _ConnectionInterface$.START_CURSOR;
|
|
337
301
|
var cursor = connectionData.cursor;
|
|
338
302
|
process.env.NODE_ENV !== "production" ? warning(cursor != null && cursor !== '', 'ReactRelayPaginationContainer: Cannot `loadMore` without valid `%s` (got `%s`)', direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;
|
|
339
303
|
var paginatingVariables = {
|
|
@@ -341,9 +305,7 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
341
305
|
cursor: cursor,
|
|
342
306
|
totalCount: totalCount
|
|
343
307
|
};
|
|
344
|
-
|
|
345
308
|
var fetch = _this._fetchPage(paginatingVariables, observer, options);
|
|
346
|
-
|
|
347
309
|
return {
|
|
348
310
|
dispose: fetch.unsubscribe
|
|
349
311
|
};
|
|
@@ -353,13 +315,11 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
353
315
|
_this._isARequestInFlight = false;
|
|
354
316
|
_this._refetchSubscription = null;
|
|
355
317
|
_this._refetchVariables = null;
|
|
356
|
-
|
|
357
318
|
if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {
|
|
358
319
|
_this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer);
|
|
359
320
|
} else {
|
|
360
321
|
_this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, props, rootIsQueryRenderer, _this._handleFragmentDataUpdate);
|
|
361
322
|
}
|
|
362
|
-
|
|
363
323
|
_this.state = {
|
|
364
324
|
data: _this._resolver.resolve(),
|
|
365
325
|
prevContext: relayContext,
|
|
@@ -371,17 +331,13 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
371
331
|
_this._hasFetched = false;
|
|
372
332
|
return _this;
|
|
373
333
|
}
|
|
374
|
-
|
|
375
334
|
var _proto = _class.prototype;
|
|
376
|
-
|
|
377
335
|
_proto.componentDidMount = function componentDidMount() {
|
|
378
336
|
this._isUnmounted = false;
|
|
379
|
-
|
|
380
337
|
if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {
|
|
381
338
|
this._subscribeToNewResolverAndRerenderIfStoreHasChanged();
|
|
382
339
|
}
|
|
383
340
|
};
|
|
384
|
-
|
|
385
341
|
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
|
|
386
342
|
if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {
|
|
387
343
|
if (prevState.resolverGeneration !== this.state.resolverGeneration) {
|
|
@@ -391,39 +347,35 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
391
347
|
}
|
|
392
348
|
}
|
|
393
349
|
}
|
|
350
|
+
|
|
394
351
|
/**
|
|
395
352
|
* When new props are received, read data for the new props and subscribe
|
|
396
353
|
* for updates. Props may be the same in which case previous data and
|
|
397
354
|
* subscriptions can be reused.
|
|
398
|
-
|
|
399
|
-
;
|
|
400
|
-
|
|
355
|
+
*/;
|
|
401
356
|
_proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
402
357
|
var _this2 = this;
|
|
403
|
-
|
|
404
358
|
var _nextProps$__rootIsQu;
|
|
405
|
-
|
|
406
359
|
var relayContext = assertRelayContext(nextProps.__relayContext);
|
|
407
360
|
var rootIsQueryRenderer = (_nextProps$__rootIsQu = nextProps.__rootIsQueryRenderer) !== null && _nextProps$__rootIsQu !== void 0 ? _nextProps$__rootIsQu : false;
|
|
408
361
|
var prevIDs = getDataIDsFromObject(fragments, this.props);
|
|
409
362
|
var nextIDs = getDataIDsFromObject(fragments, nextProps);
|
|
410
363
|
var prevRootVariables = getRootVariablesForFragments(fragments, this.props);
|
|
411
|
-
var nextRootVariables = getRootVariablesForFragments(fragments, nextProps);
|
|
364
|
+
var nextRootVariables = getRootVariablesForFragments(fragments, nextProps);
|
|
365
|
+
|
|
366
|
+
// If the environment has changed or props point to new records then
|
|
412
367
|
// previously fetched data and any pending fetches no longer apply:
|
|
413
368
|
// - Existing references are on the old environment.
|
|
414
369
|
// - Existing references are based on old variables.
|
|
415
370
|
// - Pending fetches are for the previous records.
|
|
416
|
-
|
|
417
371
|
if (relayContext.environment !== this.state.prevContext.environment || !areEqual(prevRootVariables, nextRootVariables) || !areEqual(prevIDs, nextIDs)) {
|
|
418
|
-
this._cleanup();
|
|
419
|
-
|
|
420
|
-
|
|
372
|
+
this._cleanup();
|
|
373
|
+
// Child containers rely on context.relay being mutated (for gDSFP).
|
|
421
374
|
if (RelayFeatureFlags.ENABLE_CONTAINERS_SUBSCRIBE_ON_COMMIT === true) {
|
|
422
375
|
this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer);
|
|
423
376
|
} else {
|
|
424
377
|
this._resolver = createFragmentSpecResolver(relayContext, containerName, fragments, nextProps, rootIsQueryRenderer, this._handleFragmentDataUpdate);
|
|
425
378
|
}
|
|
426
|
-
|
|
427
379
|
this.setState(function (prevState) {
|
|
428
380
|
return {
|
|
429
381
|
prevContext: relayContext,
|
|
@@ -435,49 +387,39 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
435
387
|
} else if (!this._hasFetched) {
|
|
436
388
|
this._resolver.setProps(nextProps);
|
|
437
389
|
}
|
|
438
|
-
|
|
439
390
|
var data = this._resolver.resolve();
|
|
440
|
-
|
|
441
391
|
if (data !== this.state.data) {
|
|
442
392
|
this.setState({
|
|
443
393
|
data: data
|
|
444
394
|
});
|
|
445
395
|
}
|
|
446
396
|
};
|
|
447
|
-
|
|
448
397
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
449
398
|
this._isUnmounted = true;
|
|
450
|
-
|
|
451
399
|
this._cleanup();
|
|
452
400
|
};
|
|
453
|
-
|
|
454
401
|
_proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {
|
|
455
402
|
// Short-circuit if any Relay-related data has changed
|
|
456
403
|
if (nextState.data !== this.state.data || nextState.relayProp !== this.state.relayProp || nextState.resolverGeneration !== this.state.resolverGeneration) {
|
|
457
404
|
return true;
|
|
458
|
-
}
|
|
405
|
+
}
|
|
406
|
+
// Otherwise, for convenience short-circuit if all non-Relay props
|
|
459
407
|
// are scalar and equal
|
|
460
|
-
|
|
461
|
-
|
|
462
408
|
var keys = Object.keys(nextProps);
|
|
463
|
-
|
|
464
409
|
for (var ii = 0; ii < keys.length; ii++) {
|
|
465
|
-
var
|
|
466
|
-
|
|
467
|
-
if (_key === '__relayContext') {
|
|
410
|
+
var key = keys[ii];
|
|
411
|
+
if (key === '__relayContext') {
|
|
468
412
|
if (nextState.prevContext.environment !== this.state.prevContext.environment) {
|
|
469
413
|
return true;
|
|
470
414
|
}
|
|
471
415
|
} else {
|
|
472
|
-
if (!fragments.hasOwnProperty(
|
|
416
|
+
if (!fragments.hasOwnProperty(key) && !isScalarAndEqual(nextProps[key], this.props[key])) {
|
|
473
417
|
return true;
|
|
474
418
|
}
|
|
475
419
|
}
|
|
476
420
|
}
|
|
477
|
-
|
|
478
421
|
return false;
|
|
479
422
|
};
|
|
480
|
-
|
|
481
423
|
_proto._buildRelayProp = function _buildRelayProp(relayContext) {
|
|
482
424
|
return {
|
|
483
425
|
hasMore: this._hasMore,
|
|
@@ -487,115 +429,97 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
487
429
|
environment: relayContext.environment
|
|
488
430
|
};
|
|
489
431
|
};
|
|
490
|
-
|
|
491
432
|
_proto._rerenderIfStoreHasChanged = function _rerenderIfStoreHasChanged() {
|
|
492
|
-
var data = this.state.data;
|
|
433
|
+
var data = this.state.data;
|
|
434
|
+
// External values could change between render and commit.
|
|
493
435
|
// Check for this case, even though it requires an extra store read.
|
|
494
|
-
|
|
495
436
|
var maybeNewData = this._resolver.resolve();
|
|
496
|
-
|
|
497
437
|
if (data !== maybeNewData) {
|
|
498
438
|
this.setState({
|
|
499
439
|
data: maybeNewData
|
|
500
440
|
});
|
|
501
441
|
}
|
|
502
442
|
};
|
|
503
|
-
|
|
504
443
|
_proto._subscribeToNewResolverAndRerenderIfStoreHasChanged = function _subscribeToNewResolverAndRerenderIfStoreHasChanged() {
|
|
505
444
|
var data = this.state.data;
|
|
445
|
+
var maybeNewData = this._resolver.resolve();
|
|
506
446
|
|
|
507
|
-
|
|
447
|
+
// Event listeners are only safe to add during the commit phase,
|
|
508
448
|
// So they won't leak if render is interrupted or errors.
|
|
449
|
+
this._resolver.setCallback(this.props, this._handleFragmentDataUpdate);
|
|
509
450
|
|
|
510
|
-
|
|
511
|
-
this._resolver.setCallback(this.props, this._handleFragmentDataUpdate); // External values could change between render and commit.
|
|
451
|
+
// External values could change between render and commit.
|
|
512
452
|
// Check for this case, even though it requires an extra store read.
|
|
513
|
-
|
|
514
|
-
|
|
515
453
|
if (data !== maybeNewData) {
|
|
516
454
|
this.setState({
|
|
517
455
|
data: maybeNewData
|
|
518
456
|
});
|
|
519
457
|
}
|
|
520
458
|
}
|
|
459
|
+
|
|
521
460
|
/**
|
|
522
461
|
* Render new data for the existing props/context.
|
|
523
|
-
|
|
524
|
-
;
|
|
525
|
-
|
|
462
|
+
*/;
|
|
526
463
|
_proto._getConnectionData = function _getConnectionData() {
|
|
527
464
|
// Extract connection data and verify there are more edges to fetch
|
|
465
|
+
// eslint-disable-next-line no-unused-vars
|
|
528
466
|
var _this$props = this.props,
|
|
529
|
-
|
|
530
|
-
|
|
467
|
+
_ = _this$props.componentRef,
|
|
468
|
+
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, _excluded);
|
|
531
469
|
var props = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, restProps), this.state.data);
|
|
532
470
|
var connectionData = getConnectionFromProps(props);
|
|
533
|
-
|
|
534
471
|
if (connectionData == null) {
|
|
535
472
|
return null;
|
|
536
473
|
}
|
|
537
|
-
|
|
538
474
|
var _ConnectionInterface$2 = ConnectionInterface.get(),
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
475
|
+
EDGES = _ConnectionInterface$2.EDGES,
|
|
476
|
+
PAGE_INFO = _ConnectionInterface$2.PAGE_INFO,
|
|
477
|
+
HAS_NEXT_PAGE = _ConnectionInterface$2.HAS_NEXT_PAGE,
|
|
478
|
+
HAS_PREV_PAGE = _ConnectionInterface$2.HAS_PREV_PAGE,
|
|
479
|
+
END_CURSOR = _ConnectionInterface$2.END_CURSOR,
|
|
480
|
+
START_CURSOR = _ConnectionInterface$2.START_CURSOR;
|
|
546
481
|
!(typeof connectionData === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return `null` or a plain object with %s and %s properties, got `%s`.', componentName, EDGES, PAGE_INFO, connectionData) : invariant(false) : void 0;
|
|
547
482
|
var edges = connectionData[EDGES];
|
|
548
483
|
var pageInfo = connectionData[PAGE_INFO];
|
|
549
|
-
|
|
550
484
|
if (edges == null || pageInfo == null) {
|
|
551
485
|
return null;
|
|
552
486
|
}
|
|
553
|
-
|
|
554
487
|
!Array.isArray(edges) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Array, got `%s`.', componentName, EDGES, edges) : invariant(false) : void 0;
|
|
555
488
|
!(typeof pageInfo === 'object') ? process.env.NODE_ENV !== "production" ? invariant(false, 'ReactRelayPaginationContainer: Expected `getConnectionFromProps()` in `%s`' + 'to return an object with %s: Object, got `%s`.', componentName, PAGE_INFO, pageInfo) : invariant(false) : void 0;
|
|
556
489
|
var hasMore = direction === FORWARD ? pageInfo[HAS_NEXT_PAGE] : pageInfo[HAS_PREV_PAGE];
|
|
557
490
|
var cursor = direction === FORWARD ? pageInfo[END_CURSOR] : pageInfo[START_CURSOR];
|
|
558
|
-
|
|
559
491
|
if (typeof hasMore !== 'boolean' || edges.length !== 0 && typeof cursor === 'undefined') {
|
|
560
492
|
process.env.NODE_ENV !== "production" ? warning(false, 'ReactRelayPaginationContainer: Cannot paginate without %s fields in `%s`. ' + 'Be sure to fetch %s (got `%s`) and %s (got `%s`).', PAGE_INFO, componentName, direction === FORWARD ? HAS_NEXT_PAGE : HAS_PREV_PAGE, hasMore, direction === FORWARD ? END_CURSOR : START_CURSOR, cursor) : void 0;
|
|
561
493
|
return null;
|
|
562
494
|
}
|
|
563
|
-
|
|
564
495
|
return {
|
|
565
496
|
cursor: cursor,
|
|
566
497
|
edgeCount: edges.length,
|
|
567
498
|
hasMore: hasMore
|
|
568
499
|
};
|
|
569
500
|
};
|
|
570
|
-
|
|
571
501
|
_proto._getQueryFetcher = function _getQueryFetcher() {
|
|
572
502
|
if (!this._queryFetcher) {
|
|
573
503
|
this._queryFetcher = new ReactRelayQueryFetcher();
|
|
574
504
|
}
|
|
575
|
-
|
|
576
505
|
return this._queryFetcher;
|
|
577
506
|
};
|
|
578
|
-
|
|
579
507
|
_proto._canFetchPage = function _canFetchPage(method) {
|
|
580
508
|
if (this._isUnmounted) {
|
|
581
509
|
process.env.NODE_ENV !== "production" ? warning(false, 'ReactRelayPaginationContainer: Unexpected call of `%s` ' + 'on unmounted container `%s`. It looks like some instances ' + 'of your container still trying to fetch data but they already ' + 'unmounted. Please make sure you clear all timers, intervals, async ' + 'calls, etc that may trigger `%s` call.', method, containerName, method) : void 0;
|
|
582
510
|
return false;
|
|
583
511
|
}
|
|
584
|
-
|
|
585
512
|
return true;
|
|
586
513
|
};
|
|
587
|
-
|
|
588
514
|
_proto._fetchPage = function _fetchPage(paginatingVariables, observer, options) {
|
|
589
515
|
var _this3 = this;
|
|
590
|
-
|
|
591
516
|
var _assertRelayContext = assertRelayContext(this.props.__relayContext),
|
|
592
|
-
|
|
593
|
-
|
|
517
|
+
environment = _assertRelayContext.environment;
|
|
594
518
|
var _this$props2 = this.props,
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
519
|
+
_ = _this$props2.componentRef,
|
|
520
|
+
__relayContext = _this$props2.__relayContext,
|
|
521
|
+
__rootIsQueryRenderer = _this$props2.__rootIsQueryRenderer,
|
|
522
|
+
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props2, _excluded2);
|
|
599
523
|
var props = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, restProps), this.state.data);
|
|
600
524
|
var fragmentVariables;
|
|
601
525
|
var rootVariables = getRootVariablesForFragments(fragments, restProps);
|
|
@@ -611,27 +535,22 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
611
535
|
var cacheConfig = options ? {
|
|
612
536
|
force: !!options.force
|
|
613
537
|
} : undefined;
|
|
614
|
-
|
|
615
538
|
if (cacheConfig != null && (options === null || options === void 0 ? void 0 : options.metadata) != null) {
|
|
616
539
|
cacheConfig.metadata = options === null || options === void 0 ? void 0 : options.metadata;
|
|
617
540
|
}
|
|
618
|
-
|
|
619
541
|
var request = getRequest(connectionConfig.query);
|
|
620
542
|
var operation = createOperationDescriptor(request, fetchVariables, cacheConfig);
|
|
621
543
|
var refetchSubscription = null;
|
|
622
|
-
|
|
623
544
|
if (this._refetchSubscription) {
|
|
624
545
|
this._refetchSubscription.unsubscribe();
|
|
625
546
|
}
|
|
626
|
-
|
|
627
547
|
this._hasFetched = true;
|
|
628
|
-
|
|
629
548
|
var onNext = function onNext(payload, complete) {
|
|
630
549
|
var prevData = _this3._resolver.resolve();
|
|
631
|
-
|
|
632
550
|
_this3._resolver.setVariables(getFragmentVariables(fragmentVariables, paginatingVariables.totalCount), operation.request.node);
|
|
551
|
+
var nextData = _this3._resolver.resolve();
|
|
633
552
|
|
|
634
|
-
|
|
553
|
+
// Workaround slightly different handling for connection in different
|
|
635
554
|
// core implementations:
|
|
636
555
|
// - Classic core requires the count to be explicitly incremented
|
|
637
556
|
// - Modern core automatically appends new items, updating the count
|
|
@@ -640,8 +559,6 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
640
559
|
// `setState` is only required if changing the variables would change the
|
|
641
560
|
// resolved data.
|
|
642
561
|
// TODO #14894725: remove PaginationContainer equal check
|
|
643
|
-
|
|
644
|
-
|
|
645
562
|
if (!areEqual(prevData, nextData)) {
|
|
646
563
|
_this3.setState({
|
|
647
564
|
data: nextData,
|
|
@@ -653,14 +570,12 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
653
570
|
complete();
|
|
654
571
|
}
|
|
655
572
|
};
|
|
656
|
-
|
|
657
573
|
var cleanup = function cleanup() {
|
|
658
574
|
if (_this3._refetchSubscription === refetchSubscription) {
|
|
659
575
|
_this3._refetchSubscription = null;
|
|
660
576
|
_this3._isARequestInFlight = false;
|
|
661
577
|
}
|
|
662
578
|
};
|
|
663
|
-
|
|
664
579
|
this._isARequestInFlight = true;
|
|
665
580
|
refetchSubscription = this._getQueryFetcher().execute({
|
|
666
581
|
environment: environment,
|
|
@@ -670,11 +585,11 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
670
585
|
return Observable.create(function (sink) {
|
|
671
586
|
onNext(payload, function () {
|
|
672
587
|
sink.next(); // pass void to public observer's `next`
|
|
673
|
-
|
|
674
588
|
sink.complete();
|
|
675
589
|
});
|
|
676
590
|
});
|
|
677
|
-
})
|
|
591
|
+
})
|
|
592
|
+
// use do instead of finally so that observer's `complete` fires after cleanup
|
|
678
593
|
["do"]({
|
|
679
594
|
error: cleanup,
|
|
680
595
|
complete: cleanup,
|
|
@@ -683,31 +598,29 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
683
598
|
this._refetchSubscription = this._isARequestInFlight ? refetchSubscription : null;
|
|
684
599
|
return refetchSubscription;
|
|
685
600
|
};
|
|
686
|
-
|
|
687
601
|
_proto._cleanup = function _cleanup() {
|
|
688
602
|
this._resolver.dispose();
|
|
689
|
-
|
|
690
603
|
this._refetchVariables = null;
|
|
691
604
|
this._hasFetched = false;
|
|
692
|
-
|
|
693
605
|
if (this._refetchSubscription) {
|
|
694
606
|
this._refetchSubscription.unsubscribe();
|
|
695
|
-
|
|
696
607
|
this._refetchSubscription = null;
|
|
697
608
|
this._isARequestInFlight = false;
|
|
698
609
|
}
|
|
699
|
-
|
|
700
610
|
if (this._queryFetcher) {
|
|
701
611
|
this._queryFetcher.dispose();
|
|
702
612
|
}
|
|
703
|
-
}
|
|
613
|
+
}
|
|
704
614
|
|
|
615
|
+
// $FlowFixMe[missing-local-annot]
|
|
616
|
+
;
|
|
705
617
|
_proto.render = function render() {
|
|
618
|
+
// eslint-disable-next-line no-unused-vars
|
|
706
619
|
var _this$props3 = this.props,
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
620
|
+
componentRef = _this$props3.componentRef,
|
|
621
|
+
__relayContext = _this$props3.__relayContext,
|
|
622
|
+
__rootIsQueryRenderer = _this$props3.__rootIsQueryRenderer,
|
|
623
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_this$props3, _excluded3);
|
|
711
624
|
return /*#__PURE__*/React.createElement(ReactRelayContext.Provider, {
|
|
712
625
|
value: this.state.contextForChildren
|
|
713
626
|
}, /*#__PURE__*/React.createElement(Component, (0, _extends2["default"])({}, props, this.state.data, {
|
|
@@ -715,10 +628,10 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
715
628
|
relay: this.state.relayProp
|
|
716
629
|
})));
|
|
717
630
|
};
|
|
718
|
-
|
|
719
631
|
return _class;
|
|
720
|
-
}(React.Component), (0, _defineProperty2["default"])(_class, "displayName", containerName),
|
|
632
|
+
}(React.Component), (0, _defineProperty2["default"])(_class, "displayName", containerName), _class;
|
|
721
633
|
}
|
|
634
|
+
|
|
722
635
|
/**
|
|
723
636
|
* Wrap the basic `createContainer()` function with logic to adapt to the
|
|
724
637
|
* `context.relay.environment` in which it is rendered. Specifically, the
|
|
@@ -726,15 +639,12 @@ function createContainerWithFragments(Component, fragments, connectionConfig) {
|
|
|
726
639
|
* `fragmentSpec` is memoized once per environment, rather than once per
|
|
727
640
|
* instance of the container constructed/rendered.
|
|
728
641
|
*/
|
|
729
|
-
|
|
730
|
-
|
|
731
642
|
function createContainer(Component, fragmentSpec, connectionConfig) {
|
|
732
643
|
// $FlowFixMe[incompatible-return]
|
|
733
644
|
return buildReactRelayContainer(Component, fragmentSpec, function (ComponentClass, fragments) {
|
|
734
645
|
return createContainerWithFragments(ComponentClass, fragments, connectionConfig);
|
|
735
646
|
});
|
|
736
647
|
}
|
|
737
|
-
|
|
738
648
|
module.exports = {
|
|
739
649
|
createContainer: createContainer
|
|
740
650
|
};
|