react-relay 18.1.0 → 18.2.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/ReactRelayContext.js +1 -1
- package/ReactRelayFragmentContainer.js.flow +2 -5
- package/hooks.js +1 -1
- package/index.js +1 -1
- package/index.js.flow +3 -0
- package/legacy.js +1 -1
- package/lib/index.js +2 -0
- package/lib/relay-hooks/legacy/FragmentResource.js +1 -2
- package/lib/relay-hooks/loadQuery.js +5 -14
- package/lib/relay-hooks/useFragmentInternal_CURRENT.js +1 -2
- package/lib/relay-hooks/useFragmentInternal_EXPERIMENTAL.js +1 -2
- package/lib/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js +227 -0
- 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 +1 -1
- package/react-relay-legacy.min.js +1 -1
- package/react-relay.js +2 -2
- package/react-relay.min.js +2 -2
- package/relay-hooks/EntryPointTypes.flow.js.flow +2 -2
- package/relay-hooks/MatchContainer.js.flow +1 -1
- package/relay-hooks/legacy/FragmentResource.js.flow +2 -3
- package/relay-hooks/loadQuery.js.flow +30 -38
- package/relay-hooks/useFragmentInternal_CURRENT.js.flow +5 -7
- package/relay-hooks/useFragmentInternal_EXPERIMENTAL.js.flow +5 -7
- package/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js.flow +433 -0
package/ReactRelayContext.js
CHANGED
@@ -270,14 +270,11 @@ function getRelayProp(environment: IEnvironment) {
|
|
270
270
|
function createContainer<
|
271
271
|
Props: {...},
|
272
272
|
Instance,
|
273
|
-
TComponent: React.
|
273
|
+
TComponent: component(ref: React.RefSetter<Instance>, ...Props),
|
274
274
|
>(
|
275
275
|
Component: TComponent,
|
276
276
|
fragmentSpec: GeneratedNodeMap,
|
277
|
-
): React.
|
278
|
-
$RelayProps<React.ElementConfig<TComponent>, RelayProp>,
|
279
|
-
Instance,
|
280
|
-
> {
|
277
|
+
): component(ref: React.RefSetter<Instance>, ...$RelayProps<Props, RelayProp>) {
|
281
278
|
// $FlowFixMe[incompatible-return]
|
282
279
|
return buildReactRelayContainer(
|
283
280
|
Component,
|
package/hooks.js
CHANGED
package/index.js
CHANGED
package/index.js.flow
CHANGED
@@ -28,6 +28,7 @@ const useFragment = require('./relay-hooks/useFragment');
|
|
28
28
|
const useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
29
29
|
const useMutation = require('./relay-hooks/useMutation');
|
30
30
|
const usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
31
|
+
const usePrefetchableForwardPaginationFragment_EXPERIMENTAL = require('./relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL');
|
31
32
|
const usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
32
33
|
const useQueryLoader = require('./relay-hooks/useQueryLoader');
|
33
34
|
const useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');
|
@@ -125,6 +126,8 @@ module.exports = {
|
|
125
126
|
usePaginationFragment: usePaginationFragment,
|
126
127
|
usePreloadedQuery: usePreloadedQuery,
|
127
128
|
useRefetchableFragment: useRefetchableFragment,
|
129
|
+
usePrefetchableForwardPaginationFragment_EXPERIMENTAL:
|
130
|
+
usePrefetchableForwardPaginationFragment_EXPERIMENTAL,
|
128
131
|
useRelayEnvironment: useRelayEnvironment,
|
129
132
|
useSubscribeToInvalidationState: useSubscribeToInvalidationState,
|
130
133
|
useSubscription: useSubscription,
|
package/legacy.js
CHANGED
package/lib/index.js
CHANGED
@@ -18,6 +18,7 @@ var useFragment = require('./relay-hooks/useFragment');
|
|
18
18
|
var useLazyLoadQuery = require('./relay-hooks/useLazyLoadQuery');
|
19
19
|
var useMutation = require('./relay-hooks/useMutation');
|
20
20
|
var usePaginationFragment = require('./relay-hooks/usePaginationFragment');
|
21
|
+
var usePrefetchableForwardPaginationFragment_EXPERIMENTAL = require('./relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL');
|
21
22
|
var usePreloadedQuery = require('./relay-hooks/usePreloadedQuery');
|
22
23
|
var useQueryLoader = require('./relay-hooks/useQueryLoader');
|
23
24
|
var useRefetchableFragment = require('./relay-hooks/useRefetchableFragment');
|
@@ -57,6 +58,7 @@ module.exports = {
|
|
57
58
|
usePaginationFragment: usePaginationFragment,
|
58
59
|
usePreloadedQuery: usePreloadedQuery,
|
59
60
|
useRefetchableFragment: useRefetchableFragment,
|
61
|
+
usePrefetchableForwardPaginationFragment_EXPERIMENTAL: usePrefetchableForwardPaginationFragment_EXPERIMENTAL,
|
60
62
|
useRelayEnvironment: useRelayEnvironment,
|
61
63
|
useSubscribeToInvalidationState: useSubscribeToInvalidationState,
|
62
64
|
useSubscription: useSubscription
|
@@ -243,8 +243,7 @@ var FragmentResourceImpl = /*#__PURE__*/function () {
|
|
243
243
|
var fragmentOwner = fragmentSelector.kind === 'PluralReaderSelector' ? fragmentSelector.selectors[0].owner : fragmentSelector.owner;
|
244
244
|
var parentQueryPromiseResult = this._getAndSavePromiseForFragmentRequestInFlight(fragmentIdentifier, fragmentNode, fragmentOwner, fragmentResult);
|
245
245
|
var parentQueryPromiseResultPromise = parentQueryPromiseResult === null || parentQueryPromiseResult === void 0 ? void 0 : parentQueryPromiseResult.promise;
|
246
|
-
var missingResolverFieldPromises = (_missingLiveResolverF2 = (_missingLiveResolverF3 = missingLiveResolverFields(snapshot)) === null || _missingLiveResolverF3 === void 0 ? void 0 : _missingLiveResolverF3.map(function (
|
247
|
-
var liveStateID = _ref2.liveStateID;
|
246
|
+
var missingResolverFieldPromises = (_missingLiveResolverF2 = (_missingLiveResolverF3 = missingLiveResolverFields(snapshot)) === null || _missingLiveResolverF3 === void 0 ? void 0 : _missingLiveResolverF3.map(function (liveStateID) {
|
248
247
|
var store = environment.getStore();
|
249
248
|
return store.getLiveResolverPromise(liveStateID);
|
250
249
|
})) !== null && _missingLiveResolverF2 !== void 0 ? _missingLiveResolverF2 : [];
|
@@ -7,7 +7,6 @@ var _require = require('relay-runtime'),
|
|
7
7
|
fetchQueryDeduped = _require.__internal.fetchQueryDeduped,
|
8
8
|
Observable = _require.Observable,
|
9
9
|
PreloadableQueryRegistry = _require.PreloadableQueryRegistry,
|
10
|
-
RelayFeatureFlags = _require.RelayFeatureFlags,
|
11
10
|
ReplaySubject = _require.ReplaySubject,
|
12
11
|
createOperationDescriptor = _require.createOperationDescriptor,
|
13
12
|
getRequest = _require.getRequest,
|
@@ -38,18 +37,12 @@ function loadQuery(environment, preloadableRequest, variables, options, environm
|
|
38
37
|
var didMakeNetworkRequest = false;
|
39
38
|
var makeNetworkRequest = function makeNetworkRequest(params) {
|
40
39
|
didMakeNetworkRequest = true;
|
41
|
-
var observable;
|
42
40
|
var subject = new ReplaySubject();
|
43
|
-
|
44
|
-
|
45
|
-
observable = fetchQueryDeduped(environment, identifier, function () {
|
46
|
-
var network = environment.getNetwork();
|
47
|
-
return network.execute(params, variables, networkCacheConfig);
|
48
|
-
});
|
49
|
-
} else {
|
41
|
+
var identifier = 'raw-network-request-' + getRequestIdentifier(params, variables);
|
42
|
+
var observable = fetchQueryDeduped(environment, identifier, function () {
|
50
43
|
var network = environment.getNetwork();
|
51
|
-
|
52
|
-
}
|
44
|
+
return network.execute(params, variables, networkCacheConfig);
|
45
|
+
});
|
53
46
|
var _observable$subscribe = observable.subscribe({
|
54
47
|
error: function error(err) {
|
55
48
|
networkError = err;
|
@@ -74,9 +67,7 @@ function loadQuery(environment, preloadableRequest, variables, options, environm
|
|
74
67
|
};
|
75
68
|
var unsubscribeFromExecution;
|
76
69
|
var executeDeduped = function executeDeduped(operation, fetchFn) {
|
77
|
-
|
78
|
-
didMakeNetworkRequest = true;
|
79
|
-
}
|
70
|
+
didMakeNetworkRequest = true;
|
80
71
|
var _fetchQueryDeduped$su = fetchQueryDeduped(environment, operation.request.identifier, fetchFn).subscribe({
|
81
72
|
error: function error(err) {
|
82
73
|
executionSubject.error(err);
|
@@ -399,8 +399,7 @@ function useFragmentInternal(fragmentNode, fragmentRef, hookDisplayName, queryOp
|
|
399
399
|
if (isMissingData(state)) {
|
400
400
|
var suspendingLiveResolvers = getSuspendingLiveResolver(state);
|
401
401
|
if (suspendingLiveResolvers != null && suspendingLiveResolvers.length > 0) {
|
402
|
-
throw Promise.all(suspendingLiveResolvers.map(function (
|
403
|
-
var liveStateID = _ref.liveStateID;
|
402
|
+
throw Promise.all(suspendingLiveResolvers.map(function (liveStateID) {
|
404
403
|
return environment.getStore().getLiveResolverPromise(liveStateID);
|
405
404
|
}));
|
406
405
|
}
|
@@ -401,8 +401,7 @@ function useFragmentInternal_EXPERIMENTAL(fragmentNode, fragmentRef, hookDisplay
|
|
401
401
|
if (isMissingData(state)) {
|
402
402
|
var suspendingLiveResolvers = getSuspendingLiveResolver(state);
|
403
403
|
if (suspendingLiveResolvers != null && suspendingLiveResolvers.length > 0) {
|
404
|
-
throw Promise.all(suspendingLiveResolvers.map(function (
|
405
|
-
var liveStateID = _ref.liveStateID;
|
404
|
+
throw Promise.all(suspendingLiveResolvers.map(function (liveStateID) {
|
406
405
|
return environment.getStore().getLiveResolverPromise(liveStateID);
|
407
406
|
}));
|
408
407
|
}
|
@@ -0,0 +1,227 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
4
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
5
|
+
var useFragment = require('./useFragment');
|
6
|
+
var useLoadMoreFunction = require('./useLoadMoreFunction');
|
7
|
+
var useRefetchableFragmentInternal = require('./useRefetchableFragmentInternal');
|
8
|
+
var useRelayEnvironment = require('./useRelayEnvironment');
|
9
|
+
var useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');
|
10
|
+
var invariant = require('invariant');
|
11
|
+
var _require = require('react'),
|
12
|
+
useCallback = _require.useCallback,
|
13
|
+
useDebugValue = _require.useDebugValue,
|
14
|
+
useEffect = _require.useEffect,
|
15
|
+
useLayoutEffect = _require.useLayoutEffect,
|
16
|
+
useMemo = _require.useMemo,
|
17
|
+
useRef = _require.useRef,
|
18
|
+
useState = _require.useState;
|
19
|
+
var _require2 = require('relay-runtime'),
|
20
|
+
getFragment = _require2.getFragment,
|
21
|
+
getFragmentIdentifier = _require2.getFragmentIdentifier,
|
22
|
+
getPaginationMetadata = _require2.getPaginationMetadata;
|
23
|
+
var _require3 = require('relay-runtime'),
|
24
|
+
ConnectionInterface = _require3.ConnectionInterface,
|
25
|
+
getSelector = _require3.getSelector,
|
26
|
+
getValueAtPath = _require3.getValueAtPath;
|
27
|
+
function usePrefetchableForwardPaginationFragment_EXPERIMENTAL(fragmentInput, parentFragmentRef, bufferSize, initialSize, prefetchingLoadMoreOptions) {
|
28
|
+
var _fragmentInput$metada, _fragmentInput$metada2;
|
29
|
+
var minimalFetchSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
|
30
|
+
var fragmentNode = getFragment(fragmentInput);
|
31
|
+
useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePrefetchableForwardPaginationFragment_EXPERIMENTAL()');
|
32
|
+
var componentDisplayName = 'usePrefetchableForwardPaginationFragment_EXPERIMENTAL()';
|
33
|
+
var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),
|
34
|
+
connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
|
35
|
+
paginationRequest = _getPaginationMetadat.paginationRequest,
|
36
|
+
paginationMetadata = _getPaginationMetadat.paginationMetadata;
|
37
|
+
var _useRefetchableFragme = useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, componentDisplayName),
|
38
|
+
fragmentData = _useRefetchableFragme.fragmentData,
|
39
|
+
fragmentRef = _useRefetchableFragme.fragmentRef,
|
40
|
+
refetch = _useRefetchableFragme.refetch;
|
41
|
+
var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);
|
42
|
+
var edgeKeys = useMemo(function () {
|
43
|
+
var connection = getValueAtPath(fragmentData, connectionPathInFragmentData);
|
44
|
+
if (connection == null) {
|
45
|
+
return null;
|
46
|
+
}
|
47
|
+
var _ConnectionInterface$ = ConnectionInterface.get(),
|
48
|
+
EDGES = _ConnectionInterface$.EDGES;
|
49
|
+
return connection[EDGES];
|
50
|
+
}, [connectionPathInFragmentData, fragmentData]);
|
51
|
+
var sourceSize = edgeKeys == null ? -1 : edgeKeys.length;
|
52
|
+
var _useState = useState(initialSize != null ? initialSize : sourceSize),
|
53
|
+
_numInUse = _useState[0],
|
54
|
+
setNumInUse = _useState[1];
|
55
|
+
var numInUse = _numInUse;
|
56
|
+
if (_numInUse === -1 && sourceSize !== -1) {
|
57
|
+
numInUse = initialSize != null ? initialSize : sourceSize;
|
58
|
+
setNumInUse(numInUse);
|
59
|
+
}
|
60
|
+
var environment = useRelayEnvironment();
|
61
|
+
var _useState2 = useState(false),
|
62
|
+
isLoadingMore = _useState2[0],
|
63
|
+
reallySetIsLoadingMore = _useState2[1];
|
64
|
+
var _useState3 = useState(false),
|
65
|
+
isRefetching = _useState3[0],
|
66
|
+
setIsRefetching = _useState3[1];
|
67
|
+
var availableSizeRef = useRef(0);
|
68
|
+
var setIsLoadingMore = useCallback(function (value) {
|
69
|
+
var _environment$getSched;
|
70
|
+
var schedule = (_environment$getSched = environment.getScheduler()) === null || _environment$getSched === void 0 ? void 0 : _environment$getSched.schedule;
|
71
|
+
if (schedule) {
|
72
|
+
schedule(function () {
|
73
|
+
reallySetIsLoadingMore(value);
|
74
|
+
});
|
75
|
+
} else {
|
76
|
+
reallySetIsLoadingMore(value);
|
77
|
+
}
|
78
|
+
}, [environment]);
|
79
|
+
var isLoadingMoreRef = useRef(false);
|
80
|
+
var observer = useMemo(function () {
|
81
|
+
return {
|
82
|
+
start: function start() {
|
83
|
+
isLoadingMoreRef.current = true;
|
84
|
+
reallySetIsLoadingMore(true);
|
85
|
+
},
|
86
|
+
complete: function complete() {
|
87
|
+
isLoadingMoreRef.current = false;
|
88
|
+
setIsLoadingMore(false);
|
89
|
+
},
|
90
|
+
error: function error() {
|
91
|
+
isLoadingMoreRef.current = false;
|
92
|
+
setIsLoadingMore(false);
|
93
|
+
}
|
94
|
+
};
|
95
|
+
}, [setIsLoadingMore]);
|
96
|
+
var handleReset = useCallback(function () {
|
97
|
+
if (!isRefetching) {
|
98
|
+
var _environment$getSched2;
|
99
|
+
var schedule = (_environment$getSched2 = environment.getScheduler()) === null || _environment$getSched2 === void 0 ? void 0 : _environment$getSched2.schedule;
|
100
|
+
if (schedule) {
|
101
|
+
schedule(function () {
|
102
|
+
setNumInUse(-1);
|
103
|
+
});
|
104
|
+
} else {
|
105
|
+
setNumInUse(-1);
|
106
|
+
}
|
107
|
+
}
|
108
|
+
isLoadingMoreRef.current = false;
|
109
|
+
setIsLoadingMore(false);
|
110
|
+
}, [environment, isRefetching, setIsLoadingMore]);
|
111
|
+
var _useLoadMoreFunction = useLoadMoreFunction({
|
112
|
+
componentDisplayName: componentDisplayName,
|
113
|
+
connectionPathInFragmentData: connectionPathInFragmentData,
|
114
|
+
direction: 'forward',
|
115
|
+
fragmentData: fragmentData,
|
116
|
+
fragmentIdentifier: fragmentIdentifier,
|
117
|
+
fragmentNode: fragmentNode,
|
118
|
+
fragmentRef: fragmentRef,
|
119
|
+
paginationMetadata: paginationMetadata,
|
120
|
+
paginationRequest: paginationRequest,
|
121
|
+
observer: observer,
|
122
|
+
onReset: handleReset
|
123
|
+
}),
|
124
|
+
loadMore = _useLoadMoreFunction[0],
|
125
|
+
hasNext = _useLoadMoreFunction[1],
|
126
|
+
disposeFetchNext = _useLoadMoreFunction[2];
|
127
|
+
useLayoutEffect(function () {
|
128
|
+
availableSizeRef.current = sourceSize - numInUse;
|
129
|
+
}, [numInUse, sourceSize]);
|
130
|
+
var prefetchingUNSTABLE_extraVariables = prefetchingLoadMoreOptions === null || prefetchingLoadMoreOptions === void 0 ? void 0 : prefetchingLoadMoreOptions.UNSTABLE_extraVariables;
|
131
|
+
var prefetchingOnComplete = prefetchingLoadMoreOptions === null || prefetchingLoadMoreOptions === void 0 ? void 0 : prefetchingLoadMoreOptions.onComplete;
|
132
|
+
var showMore = useCallback(function (numToAdd, options) {
|
133
|
+
if (!isLoadingMoreRef.current || availableSizeRef.current >= 0) {
|
134
|
+
availableSizeRef.current -= numToAdd;
|
135
|
+
setNumInUse(function (lastNumInUse) {
|
136
|
+
return lastNumInUse + numToAdd;
|
137
|
+
});
|
138
|
+
if (!isLoadingMoreRef.current && availableSizeRef.current < 0) {
|
139
|
+
loadMore(Math.max(minimalFetchSize, Math.min(numToAdd, bufferSize - availableSizeRef.current)), options !== null && options !== void 0 ? options : {
|
140
|
+
onComplete: prefetchingOnComplete,
|
141
|
+
UNSTABLE_extraVariables: typeof prefetchingUNSTABLE_extraVariables === 'function' ? prefetchingUNSTABLE_extraVariables({
|
142
|
+
hasNext: hasNext,
|
143
|
+
data: fragmentData,
|
144
|
+
getServerEdges: function getServerEdges() {
|
145
|
+
var selector = getSelector(edgesFragment, edgeKeys);
|
146
|
+
if (selector == null) {
|
147
|
+
return [];
|
148
|
+
}
|
149
|
+
!(selector.kind === 'PluralReaderSelector') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a plural selector') : invariant(false) : void 0;
|
150
|
+
return selector.selectors.map(function (sel) {
|
151
|
+
return environment.lookup(sel).data;
|
152
|
+
});
|
153
|
+
}
|
154
|
+
}) : prefetchingUNSTABLE_extraVariables
|
155
|
+
});
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}, [bufferSize, loadMore, minimalFetchSize, edgeKeys, fragmentData, prefetchingUNSTABLE_extraVariables, prefetchingOnComplete]);
|
159
|
+
var edgesFragment = (_fragmentInput$metada = fragmentInput.metadata) === null || _fragmentInput$metada === void 0 ? void 0 : (_fragmentInput$metada2 = _fragmentInput$metada.refetch) === null || _fragmentInput$metada2 === void 0 ? void 0 : _fragmentInput$metada2.edgesFragment;
|
160
|
+
!(edgesFragment != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'usePrefetchableForwardPaginationFragment_EXPERIMENTAL: Expected the edge fragment to be defined, ' + 'please make sure you have added `prefetchable_pagination: true` to `@connection`') : invariant(false) : void 0;
|
161
|
+
useEffect(function () {
|
162
|
+
if (!isLoadingMoreRef.current && !isLoadingMore && !isRefetching && hasNext && (sourceSize - numInUse < bufferSize || numInUse > sourceSize)) {
|
163
|
+
var onComplete = prefetchingOnComplete;
|
164
|
+
loadMore(Math.max(bufferSize - Math.max(sourceSize - numInUse, 0), numInUse - sourceSize, minimalFetchSize), {
|
165
|
+
onComplete: onComplete,
|
166
|
+
UNSTABLE_extraVariables: typeof prefetchingUNSTABLE_extraVariables === 'function' ? prefetchingUNSTABLE_extraVariables({
|
167
|
+
hasNext: hasNext,
|
168
|
+
data: fragmentData,
|
169
|
+
getServerEdges: function getServerEdges() {
|
170
|
+
var selector = getSelector(edgesFragment, edgeKeys);
|
171
|
+
if (selector == null) {
|
172
|
+
return [];
|
173
|
+
}
|
174
|
+
!(selector.kind === 'PluralReaderSelector') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a plural selector') : invariant(false) : void 0;
|
175
|
+
return selector.selectors.map(function (sel) {
|
176
|
+
return environment.lookup(sel).data;
|
177
|
+
});
|
178
|
+
}
|
179
|
+
}) : prefetchingUNSTABLE_extraVariables
|
180
|
+
});
|
181
|
+
}
|
182
|
+
}, [hasNext, bufferSize, isRefetching, loadMore, numInUse, prefetchingUNSTABLE_extraVariables, prefetchingOnComplete, sourceSize, edgeKeys, isLoadingMore, minimalFetchSize, environment, edgesFragment]);
|
183
|
+
var realNumInUse = Math.min(numInUse, sourceSize);
|
184
|
+
var derivedEdgeKeys = useMemo(function () {
|
185
|
+
var _edgeKeys$slice;
|
186
|
+
return (_edgeKeys$slice = edgeKeys === null || edgeKeys === void 0 ? void 0 : edgeKeys.slice(0, realNumInUse)) !== null && _edgeKeys$slice !== void 0 ? _edgeKeys$slice : [];
|
187
|
+
}, [edgeKeys, realNumInUse]);
|
188
|
+
var edges = useFragment(edgesFragment, derivedEdgeKeys);
|
189
|
+
var refetchPagination = useCallback(function (variables, options) {
|
190
|
+
disposeFetchNext();
|
191
|
+
setIsRefetching(true);
|
192
|
+
return refetch(variables, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, options), {}, {
|
193
|
+
onComplete: function onComplete(maybeError) {
|
194
|
+
var _environment$getSched3, _options$onComplete;
|
195
|
+
var schedule = (_environment$getSched3 = environment.getScheduler()) === null || _environment$getSched3 === void 0 ? void 0 : _environment$getSched3.schedule;
|
196
|
+
if (schedule) {
|
197
|
+
schedule(function () {
|
198
|
+
setIsRefetching(false);
|
199
|
+
setNumInUse(-1);
|
200
|
+
});
|
201
|
+
} else {
|
202
|
+
setIsRefetching(false);
|
203
|
+
setNumInUse(-1);
|
204
|
+
}
|
205
|
+
options === null || options === void 0 ? void 0 : (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 ? void 0 : _options$onComplete.call(options, maybeError);
|
206
|
+
},
|
207
|
+
__environment: undefined
|
208
|
+
}));
|
209
|
+
}, [disposeFetchNext, environment, refetch]);
|
210
|
+
if (process.env.NODE_ENV !== "production") {
|
211
|
+
useDebugValue({
|
212
|
+
fragment: fragmentNode.name,
|
213
|
+
data: fragmentData,
|
214
|
+
hasNext: hasNext,
|
215
|
+
isLoadingNext: isLoadingMore
|
216
|
+
});
|
217
|
+
}
|
218
|
+
return {
|
219
|
+
edges: edges,
|
220
|
+
data: fragmentData,
|
221
|
+
loadNext: showMore,
|
222
|
+
hasNext: hasNext || sourceSize > numInUse,
|
223
|
+
isLoadingNext: isLoadingMore && numInUse > sourceSize,
|
224
|
+
refetch: refetchPagination
|
225
|
+
};
|
226
|
+
}
|
227
|
+
module.exports = usePrefetchableForwardPaginationFragment_EXPERIMENTAL;
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-relay",
|
3
3
|
"description": "A framework for building GraphQL-driven React applications.",
|
4
|
-
"version": "18.
|
4
|
+
"version": "18.2.0",
|
5
5
|
"keywords": [
|
6
6
|
"graphql",
|
7
7
|
"relay",
|
@@ -20,7 +20,7 @@
|
|
20
20
|
"fbjs": "^3.0.2",
|
21
21
|
"invariant": "^2.2.4",
|
22
22
|
"nullthrows": "^1.1.1",
|
23
|
-
"relay-runtime": "18.
|
23
|
+
"relay-runtime": "18.2.0"
|
24
24
|
},
|
25
25
|
"peerDependencies": {
|
26
26
|
"react": "^16.9.0 || ^17 || ^18"
|