react-relay 18.1.0 → 19.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 +2 -2
- package/ReactRelayContext.js +1 -1
- package/ReactRelayFragmentContainer.js.flow +5 -10
- package/ReactRelayLoggingContext.js.flow +21 -0
- package/ReactRelayPaginationContainer.js.flow +8 -8
- package/ReactRelayRefetchContainer.js.flow +8 -8
- package/ReactRelayTypes.js.flow +18 -11
- package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +1 -8
- package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +2 -5
- package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +2 -5
- package/buildReactRelayContainer.js.flow +3 -3
- package/hooks.js +1 -1
- package/index.js +1 -1
- package/index.js.flow +3 -0
- package/legacy.js +1 -1
- package/lib/ReactRelayLoggingContext.js +6 -0
- package/lib/index.js +2 -0
- package/lib/relay-hooks/legacy/FragmentResource.js +4 -5
- package/lib/relay-hooks/legacy/useRefetchableFragmentNode.js +1 -1
- package/lib/relay-hooks/loadEntryPoint.js +3 -0
- package/lib/relay-hooks/loadQuery.js +9 -16
- package/lib/relay-hooks/preloadQuery_DEPRECATED.js +7 -2
- package/lib/relay-hooks/readFragmentInternal.js +2 -2
- package/lib/relay-hooks/useFragmentInternal_CURRENT.js +12 -8
- package/lib/relay-hooks/useFragmentInternal_EXPERIMENTAL.js +12 -8
- package/lib/relay-hooks/useLoadMoreFunction.js +3 -2
- package/lib/relay-hooks/useLoadMoreFunction_EXPERIMENTAL.js +3 -2
- package/lib/relay-hooks/usePaginationFragment.js +5 -1
- package/lib/relay-hooks/usePrefetchableForwardPaginationFragment.js +228 -0
- package/lib/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js +227 -0
- package/lib/relay-hooks/useRefetchableFragmentInternal.js +3 -3
- package/lib/relay-hooks/useRelayLoggingContext.js +9 -0
- package/package.json +3 -3
- package/relay-hooks/EntryPointContainer.react.js.flow +13 -17
- package/relay-hooks/EntryPointTypes.flow.js.flow +7 -5
- package/relay-hooks/MatchContainer.js.flow +1 -1
- package/relay-hooks/legacy/FragmentResource.js.flow +5 -9
- package/relay-hooks/legacy/useBlockingPaginationFragment.js.flow +2 -17
- package/relay-hooks/legacy/useRefetchableFragmentNode.js.flow +1 -1
- package/relay-hooks/loadEntryPoint.js.flow +6 -0
- package/relay-hooks/loadQuery.js.flow +47 -39
- package/relay-hooks/preloadQuery_DEPRECATED.js.flow +18 -3
- package/relay-hooks/readFragmentInternal.js.flow +2 -5
- package/relay-hooks/useEntryPointLoader.js.flow +4 -2
- package/relay-hooks/useFragment.js.flow +1 -0
- package/relay-hooks/useFragmentInternal.js.flow +2 -0
- package/relay-hooks/useFragmentInternal_CURRENT.js.flow +27 -12
- package/relay-hooks/useFragmentInternal_EXPERIMENTAL.js.flow +29 -12
- package/relay-hooks/useLazyLoadQuery.js.flow +4 -4
- package/relay-hooks/useLoadMoreFunction.js.flow +7 -7
- package/relay-hooks/useLoadMoreFunction_EXPERIMENTAL.js.flow +5 -7
- package/relay-hooks/usePaginationFragment.js.flow +6 -10
- package/relay-hooks/usePrefetchableForwardPaginationFragment.js.flow +436 -0
- package/relay-hooks/usePrefetchableForwardPaginationFragment_EXPERIMENTAL.js.flow +435 -0
- package/relay-hooks/usePreloadedQuery.js.flow +1 -0
- package/relay-hooks/useQueryLoader.js.flow +5 -1
- package/relay-hooks/useQueryLoader_EXPERIMENTAL.js.flow +3 -1
- package/relay-hooks/useRefetchableFragment.js.flow +1 -0
- package/relay-hooks/useRefetchableFragmentInternal.js.flow +3 -3
- package/relay-hooks/useRelayLoggingContext.js.flow +21 -0
- package/relay-hooks/useStaticFragmentNodeWarning.js.flow +1 -0
- package/react-relay-hooks.js +0 -4
- package/react-relay-hooks.min.js +0 -9
- package/react-relay-legacy.js +0 -4
- package/react-relay-legacy.min.js +0 -9
- package/react-relay.js +0 -4
- package/react-relay.min.js +0 -9
@@ -7,6 +7,7 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
7
7
|
var _require = require('./QueryResource'),
|
8
8
|
getQueryResourceForEnvironment = _require.getQueryResourceForEnvironment;
|
9
9
|
var useRelayEnvironment = require('./useRelayEnvironment');
|
10
|
+
var useRelayLoggingContext = require('./useRelayLoggingContext');
|
10
11
|
var invariant = require('invariant');
|
11
12
|
var _require2 = require('react'),
|
12
13
|
useDebugValue = _require2.useDebugValue,
|
@@ -114,16 +115,16 @@ function getSuspendingLiveResolver(state) {
|
|
114
115
|
return missingFields;
|
115
116
|
}
|
116
117
|
}
|
117
|
-
function handlePotentialSnapshotErrorsForState(environment, state) {
|
118
|
+
function handlePotentialSnapshotErrorsForState(environment, state, loggingContext) {
|
118
119
|
if (state.kind === 'singular') {
|
119
|
-
handlePotentialSnapshotErrors(environment, state.snapshot.
|
120
|
+
handlePotentialSnapshotErrors(environment, state.snapshot.fieldErrors, loggingContext);
|
120
121
|
} else if (state.kind === 'plural') {
|
121
122
|
var _iterator5 = (0, _createForOfIteratorHelper2["default"])(state.snapshots),
|
122
123
|
_step5;
|
123
124
|
try {
|
124
125
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
125
126
|
var snapshot = _step5.value;
|
126
|
-
handlePotentialSnapshotErrors(environment, snapshot.
|
127
|
+
handlePotentialSnapshotErrors(environment, snapshot.fieldErrors, loggingContext);
|
127
128
|
}
|
128
129
|
} catch (err) {
|
129
130
|
_iterator5.e(err);
|
@@ -150,7 +151,7 @@ function handleMissedUpdates(environment, state) {
|
|
150
151
|
missingLiveResolverFields: currentSnapshot.missingLiveResolverFields,
|
151
152
|
seenRecords: currentSnapshot.seenRecords,
|
152
153
|
selector: currentSnapshot.selector,
|
153
|
-
|
154
|
+
fieldErrors: currentSnapshot.fieldErrors
|
154
155
|
};
|
155
156
|
return [updatedData !== state.snapshot.data, {
|
156
157
|
kind: 'singular',
|
@@ -173,7 +174,7 @@ function handleMissedUpdates(environment, state) {
|
|
173
174
|
missingLiveResolverFields: _currentSnapshot.missingLiveResolverFields,
|
174
175
|
seenRecords: _currentSnapshot.seenRecords,
|
175
176
|
selector: _currentSnapshot.selector,
|
176
|
-
|
177
|
+
fieldErrors: _currentSnapshot.fieldErrors
|
177
178
|
};
|
178
179
|
if (_updatedData !== snapshot.data) {
|
179
180
|
didMissUpdates = true;
|
@@ -324,6 +325,10 @@ function useFragmentInternal_EXPERIMENTAL(fragmentNode, fragmentRef, hookDisplay
|
|
324
325
|
}
|
325
326
|
!(fragmentRef == null || isPlural && Array.isArray(fragmentRef) && fragmentRef.length === 0 || fragmentSelector != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Relay: Expected to receive an object where `...%s` was spread, ' + 'but the fragment reference was not found`. This is most ' + 'likely the result of:\n' + "- Forgetting to spread `%s` in `%s`'s parent's fragment.\n" + '- Conditionally fetching `%s` but unconditionally passing %s prop ' + 'to `%s`. If the parent fragment only fetches the fragment conditionally ' + '- with e.g. `@include`, `@skip`, or inside a `... on SomeType { }` ' + 'spread - then the fragment reference will not exist. ' + 'In this case, pass `null` if the conditions for evaluating the ' + 'fragment are not met (e.g. if the `@include(if)` value is false.)', fragmentNode.name, fragmentNode.name, hookDisplayName, fragmentNode.name, hookDisplayName) : invariant(false) : void 0;
|
326
327
|
var environment = useRelayEnvironment();
|
328
|
+
var loggerContext;
|
329
|
+
if (RelayFeatureFlags.ENABLE_UI_CONTEXT_ON_RELAY_LOGGER) {
|
330
|
+
loggerContext = useRelayLoggingContext();
|
331
|
+
}
|
327
332
|
var _useState = useState(function () {
|
328
333
|
return getFragmentState(environment, fragmentSelector);
|
329
334
|
}),
|
@@ -401,8 +406,7 @@ function useFragmentInternal_EXPERIMENTAL(fragmentNode, fragmentRef, hookDisplay
|
|
401
406
|
if (isMissingData(state)) {
|
402
407
|
var suspendingLiveResolvers = getSuspendingLiveResolver(state);
|
403
408
|
if (suspendingLiveResolvers != null && suspendingLiveResolvers.length > 0) {
|
404
|
-
throw Promise.all(suspendingLiveResolvers.map(function (
|
405
|
-
var liveStateID = _ref.liveStateID;
|
409
|
+
throw Promise.all(suspendingLiveResolvers.map(function (liveStateID) {
|
406
410
|
return environment.getStore().getLiveResolverPromise(liveStateID);
|
407
411
|
}));
|
408
412
|
}
|
@@ -415,7 +419,7 @@ function useFragmentInternal_EXPERIMENTAL(fragmentNode, fragmentRef, hookDisplay
|
|
415
419
|
}
|
416
420
|
}
|
417
421
|
}
|
418
|
-
handlePotentialSnapshotErrorsForState(environment, state);
|
422
|
+
handlePotentialSnapshotErrorsForState(environment, state, loggerContext);
|
419
423
|
var storeSubscriptionRef = useRef(null);
|
420
424
|
useEffect(function () {
|
421
425
|
var storeSubscription = storeSubscriptionRef.current;
|
@@ -71,6 +71,7 @@ function useLoadMoreFunction_CURRENT(args) {
|
|
71
71
|
disposeFetch();
|
72
72
|
};
|
73
73
|
}, [disposeFetch]);
|
74
|
+
var isRequestInvalid = fragmentData == null || isParentQueryActive;
|
74
75
|
var loadMore = useCallback(function (count, options) {
|
75
76
|
var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;
|
76
77
|
if (isMountedRef.current !== true) {
|
@@ -80,7 +81,7 @@ function useLoadMoreFunction_CURRENT(args) {
|
|
80
81
|
};
|
81
82
|
}
|
82
83
|
var fragmentSelector = getSelector(fragmentNode, fragmentRef);
|
83
|
-
if (isFetchingRef.current === true ||
|
84
|
+
if (isFetchingRef.current === true || isRequestInvalid) {
|
84
85
|
if (fragmentSelector == null) {
|
85
86
|
process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Unexpected fetch while using a null fragment ref ' + 'for fragment `%s` in `%s`. When fetching more items, we expect ' + "initial fragment data to be non-null. Please make sure you're " + 'passing a valid fragment ref to `%s` before paginating.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;
|
86
87
|
}
|
@@ -125,7 +126,7 @@ function useLoadMoreFunction_CURRENT(args) {
|
|
125
126
|
return {
|
126
127
|
dispose: disposeFetch
|
127
128
|
};
|
128
|
-
}, [environment, identifierValue, direction, cursor, startFetch, disposeFetch, completeFetch, isFetchingRef,
|
129
|
+
}, [environment, identifierValue, direction, cursor, startFetch, disposeFetch, completeFetch, isFetchingRef, isRequestInvalid, fragmentNode.name, fragmentRef, componentDisplayName]);
|
129
130
|
return [loadMore, hasMore, disposeFetch];
|
130
131
|
}
|
131
132
|
module.exports = useLoadMoreFunction;
|
@@ -62,6 +62,7 @@ function useLoadMoreFunction_EXPERIMENTAL(args) {
|
|
62
62
|
var _getConnectionState = getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData),
|
63
63
|
cursor = _getConnectionState.cursor,
|
64
64
|
hasMore = _getConnectionState.hasMore;
|
65
|
+
var isRequestInvalid = fragmentData == null || isParentQueryActive;
|
65
66
|
var isMountedRef = useIsMountedRef();
|
66
67
|
var loadMore = useCallback(function (count, options) {
|
67
68
|
var onComplete = options === null || options === void 0 ? void 0 : options.onComplete;
|
@@ -72,7 +73,7 @@ function useLoadMoreFunction_EXPERIMENTAL(args) {
|
|
72
73
|
};
|
73
74
|
}
|
74
75
|
var fragmentSelector = getSelector(fragmentNode, fragmentRef);
|
75
|
-
if (fetchStatusRef.current.kind === 'fetching' ||
|
76
|
+
if (fetchStatusRef.current.kind === 'fetching' || isRequestInvalid) {
|
76
77
|
if (fragmentSelector == null) {
|
77
78
|
process.env.NODE_ENV !== "production" ? warning(false, 'Relay: Unexpected fetch while using a null fragment ref ' + 'for fragment `%s` in `%s`. When fetching more items, we expect ' + "initial fragment data to be non-null. Please make sure you're " + 'passing a valid fragment ref to `%s` before paginating.', fragmentNode.name, componentDisplayName, componentDisplayName) : void 0;
|
78
79
|
}
|
@@ -124,7 +125,7 @@ function useLoadMoreFunction_EXPERIMENTAL(args) {
|
|
124
125
|
return {
|
125
126
|
dispose: function dispose() {}
|
126
127
|
};
|
127
|
-
}, [environment, identifierValue, direction, cursor,
|
128
|
+
}, [environment, identifierValue, direction, cursor, isRequestInvalid, fragmentNode.name, fragmentRef, componentDisplayName]);
|
128
129
|
return [loadMore, hasMore, forceDisposeFn];
|
129
130
|
}
|
130
131
|
module.exports = useLoadMoreFunction_EXPERIMENTAL;
|
@@ -11,6 +11,7 @@ var _require = require('react'),
|
|
11
11
|
useDebugValue = _require.useDebugValue,
|
12
12
|
useState = _require.useState;
|
13
13
|
var _require2 = require('relay-runtime'),
|
14
|
+
RelayFeatureFlags = _require2.RelayFeatureFlags,
|
14
15
|
getFragment = _require2.getFragment,
|
15
16
|
getFragmentIdentifier = _require2.getFragmentIdentifier,
|
16
17
|
getPaginationMetadata = _require2.getPaginationMetadata;
|
@@ -110,7 +111,10 @@ function useLoadMore(args) {
|
|
110
111
|
},
|
111
112
|
error: function error() {
|
112
113
|
return setIsLoadingMore(false);
|
113
|
-
}
|
114
|
+
},
|
115
|
+
unsubscribe: RelayFeatureFlags.ENABLE_USE_PAGINATION_IS_LOADING_FIX ? function () {
|
116
|
+
return setIsLoadingMore(false);
|
117
|
+
} : undefined
|
114
118
|
};
|
115
119
|
var handleReset = function handleReset() {
|
116
120
|
return setIsLoadingMore(false);
|
@@ -0,0 +1,228 @@
|
|
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
|
+
RelayFeatureFlags = _require3.RelayFeatureFlags,
|
26
|
+
getSelector = _require3.getSelector,
|
27
|
+
getValueAtPath = _require3.getValueAtPath;
|
28
|
+
function usePrefetchableForwardPaginationFragment(fragmentInput, parentFragmentRef, bufferSize, initialSize, prefetchingLoadMoreOptions) {
|
29
|
+
var _fragmentInput$metada, _fragmentInput$metada2;
|
30
|
+
var minimalFetchSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
|
31
|
+
var disablePrefetching = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
|
32
|
+
var fragmentNode = getFragment(fragmentInput);
|
33
|
+
useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePrefetchableForwardPaginationFragment()');
|
34
|
+
var componentDisplayName = 'usePrefetchableForwardPaginationFragment()';
|
35
|
+
var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),
|
36
|
+
connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
|
37
|
+
paginationRequest = _getPaginationMetadat.paginationRequest,
|
38
|
+
paginationMetadata = _getPaginationMetadat.paginationMetadata;
|
39
|
+
var _useRefetchableFragme = useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, componentDisplayName),
|
40
|
+
fragmentData = _useRefetchableFragme.fragmentData,
|
41
|
+
fragmentRef = _useRefetchableFragme.fragmentRef,
|
42
|
+
refetch = _useRefetchableFragme.refetch;
|
43
|
+
var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);
|
44
|
+
var edgeKeys = useMemo(function () {
|
45
|
+
var connection = getValueAtPath(fragmentData, connectionPathInFragmentData);
|
46
|
+
if (connection == null) {
|
47
|
+
return null;
|
48
|
+
}
|
49
|
+
var _ConnectionInterface$ = ConnectionInterface.get(),
|
50
|
+
EDGES = _ConnectionInterface$.EDGES;
|
51
|
+
return connection[EDGES];
|
52
|
+
}, [connectionPathInFragmentData, fragmentData]);
|
53
|
+
var sourceSize = edgeKeys == null ? -1 : edgeKeys.length;
|
54
|
+
var _useState = useState(initialSize != null ? initialSize : sourceSize),
|
55
|
+
_numInUse = _useState[0],
|
56
|
+
setNumInUse = _useState[1];
|
57
|
+
var numInUse = _numInUse;
|
58
|
+
if (_numInUse === -1 && sourceSize !== -1) {
|
59
|
+
numInUse = initialSize != null ? initialSize : sourceSize;
|
60
|
+
setNumInUse(numInUse);
|
61
|
+
}
|
62
|
+
var environment = useRelayEnvironment();
|
63
|
+
var _useState2 = useState(false),
|
64
|
+
isLoadingMore = _useState2[0],
|
65
|
+
reallySetIsLoadingMore = _useState2[1];
|
66
|
+
var _useState3 = useState(false),
|
67
|
+
isRefetching = _useState3[0],
|
68
|
+
setIsRefetching = _useState3[1];
|
69
|
+
var availableSizeRef = useRef(0);
|
70
|
+
var setIsLoadingMore = useCallback(function (value) {
|
71
|
+
var _environment$getSched;
|
72
|
+
var schedule = (_environment$getSched = environment.getScheduler()) === null || _environment$getSched === void 0 ? void 0 : _environment$getSched.schedule;
|
73
|
+
if (schedule) {
|
74
|
+
schedule(function () {
|
75
|
+
reallySetIsLoadingMore(value);
|
76
|
+
});
|
77
|
+
} else {
|
78
|
+
reallySetIsLoadingMore(value);
|
79
|
+
}
|
80
|
+
}, [environment]);
|
81
|
+
var isLoadingMoreRef = useRef(false);
|
82
|
+
var observer = useMemo(function () {
|
83
|
+
function setIsLoadingFalse() {
|
84
|
+
isLoadingMoreRef.current = false;
|
85
|
+
setIsLoadingMore(false);
|
86
|
+
}
|
87
|
+
return {
|
88
|
+
start: function start() {
|
89
|
+
isLoadingMoreRef.current = true;
|
90
|
+
reallySetIsLoadingMore(true);
|
91
|
+
},
|
92
|
+
complete: setIsLoadingFalse,
|
93
|
+
error: setIsLoadingFalse,
|
94
|
+
unsubscribe: RelayFeatureFlags.ENABLE_USE_PAGINATION_IS_LOADING_FIX ? setIsLoadingFalse : undefined
|
95
|
+
};
|
96
|
+
}, [setIsLoadingMore]);
|
97
|
+
var handleReset = useCallback(function () {
|
98
|
+
if (!isRefetching) {
|
99
|
+
var _environment$getSched2;
|
100
|
+
var schedule = (_environment$getSched2 = environment.getScheduler()) === null || _environment$getSched2 === void 0 ? void 0 : _environment$getSched2.schedule;
|
101
|
+
if (schedule) {
|
102
|
+
schedule(function () {
|
103
|
+
setNumInUse(-1);
|
104
|
+
});
|
105
|
+
} else {
|
106
|
+
setNumInUse(-1);
|
107
|
+
}
|
108
|
+
}
|
109
|
+
isLoadingMoreRef.current = false;
|
110
|
+
setIsLoadingMore(false);
|
111
|
+
}, [environment, isRefetching, setIsLoadingMore]);
|
112
|
+
var _useLoadMoreFunction = useLoadMoreFunction({
|
113
|
+
componentDisplayName: componentDisplayName,
|
114
|
+
connectionPathInFragmentData: connectionPathInFragmentData,
|
115
|
+
direction: 'forward',
|
116
|
+
fragmentData: fragmentData,
|
117
|
+
fragmentIdentifier: fragmentIdentifier,
|
118
|
+
fragmentNode: fragmentNode,
|
119
|
+
fragmentRef: fragmentRef,
|
120
|
+
paginationMetadata: paginationMetadata,
|
121
|
+
paginationRequest: paginationRequest,
|
122
|
+
observer: observer,
|
123
|
+
onReset: handleReset
|
124
|
+
}),
|
125
|
+
loadMore = _useLoadMoreFunction[0],
|
126
|
+
hasNext = _useLoadMoreFunction[1],
|
127
|
+
disposeFetchNext = _useLoadMoreFunction[2];
|
128
|
+
useLayoutEffect(function () {
|
129
|
+
availableSizeRef.current = sourceSize - numInUse;
|
130
|
+
}, [numInUse, sourceSize]);
|
131
|
+
var prefetchingUNSTABLE_extraVariables = prefetchingLoadMoreOptions === null || prefetchingLoadMoreOptions === void 0 ? void 0 : prefetchingLoadMoreOptions.UNSTABLE_extraVariables;
|
132
|
+
var prefetchingOnComplete = prefetchingLoadMoreOptions === null || prefetchingLoadMoreOptions === void 0 ? void 0 : prefetchingLoadMoreOptions.onComplete;
|
133
|
+
var showMore = useCallback(function (numToAdd, options) {
|
134
|
+
if (!isLoadingMoreRef.current || availableSizeRef.current >= 0) {
|
135
|
+
availableSizeRef.current -= numToAdd;
|
136
|
+
setNumInUse(function (lastNumInUse) {
|
137
|
+
return lastNumInUse + numToAdd;
|
138
|
+
});
|
139
|
+
if (!isLoadingMoreRef.current && availableSizeRef.current < 0) {
|
140
|
+
loadMore(Math.max(minimalFetchSize, Math.min(numToAdd, bufferSize - availableSizeRef.current)), options !== null && options !== void 0 ? options : {
|
141
|
+
onComplete: prefetchingOnComplete,
|
142
|
+
UNSTABLE_extraVariables: typeof prefetchingUNSTABLE_extraVariables === 'function' ? prefetchingUNSTABLE_extraVariables({
|
143
|
+
hasNext: hasNext,
|
144
|
+
data: fragmentData,
|
145
|
+
getServerEdges: function getServerEdges() {
|
146
|
+
var selector = getSelector(edgesFragment, edgeKeys);
|
147
|
+
if (selector == null) {
|
148
|
+
return [];
|
149
|
+
}
|
150
|
+
!(selector.kind === 'PluralReaderSelector') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a plural selector') : invariant(false) : void 0;
|
151
|
+
return selector.selectors.map(function (sel) {
|
152
|
+
return environment.lookup(sel).data;
|
153
|
+
});
|
154
|
+
}
|
155
|
+
}) : prefetchingUNSTABLE_extraVariables
|
156
|
+
});
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}, [bufferSize, loadMore, minimalFetchSize, edgeKeys, fragmentData, prefetchingUNSTABLE_extraVariables, prefetchingOnComplete]);
|
160
|
+
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;
|
161
|
+
!(edgesFragment != null) ? process.env.NODE_ENV !== "production" ? invariant(false, 'usePrefetchableForwardPaginationFragment: Expected the edge fragment to be defined, ' + 'please make sure you have added `prefetchable_pagination: true` to `@connection`') : invariant(false) : void 0;
|
162
|
+
useEffect(function () {
|
163
|
+
if (!isLoadingMoreRef.current && !isLoadingMore && !isRefetching && !disablePrefetching && hasNext && (sourceSize - numInUse < bufferSize || numInUse > sourceSize)) {
|
164
|
+
var onComplete = prefetchingOnComplete;
|
165
|
+
loadMore(Math.max(bufferSize - Math.max(sourceSize - numInUse, 0), numInUse - sourceSize, minimalFetchSize), {
|
166
|
+
onComplete: onComplete,
|
167
|
+
UNSTABLE_extraVariables: typeof prefetchingUNSTABLE_extraVariables === 'function' ? prefetchingUNSTABLE_extraVariables({
|
168
|
+
hasNext: hasNext,
|
169
|
+
data: fragmentData,
|
170
|
+
getServerEdges: function getServerEdges() {
|
171
|
+
var selector = getSelector(edgesFragment, edgeKeys);
|
172
|
+
if (selector == null) {
|
173
|
+
return [];
|
174
|
+
}
|
175
|
+
!(selector.kind === 'PluralReaderSelector') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected a plural selector') : invariant(false) : void 0;
|
176
|
+
return selector.selectors.map(function (sel) {
|
177
|
+
return environment.lookup(sel).data;
|
178
|
+
});
|
179
|
+
}
|
180
|
+
}) : prefetchingUNSTABLE_extraVariables
|
181
|
+
});
|
182
|
+
}
|
183
|
+
}, [hasNext, bufferSize, isRefetching, loadMore, numInUse, prefetchingUNSTABLE_extraVariables, prefetchingOnComplete, sourceSize, edgeKeys, isLoadingMore, minimalFetchSize, environment, edgesFragment]);
|
184
|
+
var realNumInUse = Math.min(numInUse, sourceSize);
|
185
|
+
var derivedEdgeKeys = useMemo(function () {
|
186
|
+
var _edgeKeys$slice;
|
187
|
+
return (_edgeKeys$slice = edgeKeys === null || edgeKeys === void 0 ? void 0 : edgeKeys.slice(0, realNumInUse)) !== null && _edgeKeys$slice !== void 0 ? _edgeKeys$slice : [];
|
188
|
+
}, [edgeKeys, realNumInUse]);
|
189
|
+
var edges = useFragment(edgesFragment, derivedEdgeKeys);
|
190
|
+
var refetchPagination = useCallback(function (variables, options) {
|
191
|
+
disposeFetchNext();
|
192
|
+
setIsRefetching(true);
|
193
|
+
return refetch(variables, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, options), {}, {
|
194
|
+
onComplete: function onComplete(maybeError) {
|
195
|
+
var _environment$getSched3, _options$onComplete;
|
196
|
+
var schedule = (_environment$getSched3 = environment.getScheduler()) === null || _environment$getSched3 === void 0 ? void 0 : _environment$getSched3.schedule;
|
197
|
+
if (schedule) {
|
198
|
+
schedule(function () {
|
199
|
+
setIsRefetching(false);
|
200
|
+
setNumInUse(-1);
|
201
|
+
});
|
202
|
+
} else {
|
203
|
+
setIsRefetching(false);
|
204
|
+
setNumInUse(-1);
|
205
|
+
}
|
206
|
+
options === null || options === void 0 ? void 0 : (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 ? void 0 : _options$onComplete.call(options, maybeError);
|
207
|
+
},
|
208
|
+
__environment: undefined
|
209
|
+
}));
|
210
|
+
}, [disposeFetchNext, environment, refetch]);
|
211
|
+
if (process.env.NODE_ENV !== "production") {
|
212
|
+
useDebugValue({
|
213
|
+
fragment: fragmentNode.name,
|
214
|
+
data: fragmentData,
|
215
|
+
hasNext: hasNext,
|
216
|
+
isLoadingNext: isLoadingMore
|
217
|
+
});
|
218
|
+
}
|
219
|
+
return {
|
220
|
+
edges: edges,
|
221
|
+
data: fragmentData,
|
222
|
+
loadNext: showMore,
|
223
|
+
hasNext: hasNext || sourceSize > numInUse,
|
224
|
+
isLoadingNext: isLoadingMore && numInUse > sourceSize,
|
225
|
+
refetch: refetchPagination
|
226
|
+
};
|
227
|
+
}
|
228
|
+
module.exports = usePrefetchableForwardPaginationFragment;
|
@@ -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
|
+
RelayFeatureFlags = _require3.RelayFeatureFlags,
|
26
|
+
getSelector = _require3.getSelector,
|
27
|
+
getValueAtPath = _require3.getValueAtPath;
|
28
|
+
function usePrefetchableForwardPaginationFragment_EXPERIMENTAL(fragmentInput, parentFragmentRef, bufferSize, initialSize, prefetchingLoadMoreOptions) {
|
29
|
+
var _fragmentInput$metada, _fragmentInput$metada2;
|
30
|
+
var minimalFetchSize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1;
|
31
|
+
var fragmentNode = getFragment(fragmentInput);
|
32
|
+
useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePrefetchableForwardPaginationFragment_EXPERIMENTAL()');
|
33
|
+
var componentDisplayName = 'usePrefetchableForwardPaginationFragment_EXPERIMENTAL()';
|
34
|
+
var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),
|
35
|
+
connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
|
36
|
+
paginationRequest = _getPaginationMetadat.paginationRequest,
|
37
|
+
paginationMetadata = _getPaginationMetadat.paginationMetadata;
|
38
|
+
var _useRefetchableFragme = useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, componentDisplayName),
|
39
|
+
fragmentData = _useRefetchableFragme.fragmentData,
|
40
|
+
fragmentRef = _useRefetchableFragme.fragmentRef,
|
41
|
+
refetch = _useRefetchableFragme.refetch;
|
42
|
+
var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);
|
43
|
+
var edgeKeys = useMemo(function () {
|
44
|
+
var connection = getValueAtPath(fragmentData, connectionPathInFragmentData);
|
45
|
+
if (connection == null) {
|
46
|
+
return null;
|
47
|
+
}
|
48
|
+
var _ConnectionInterface$ = ConnectionInterface.get(),
|
49
|
+
EDGES = _ConnectionInterface$.EDGES;
|
50
|
+
return connection[EDGES];
|
51
|
+
}, [connectionPathInFragmentData, fragmentData]);
|
52
|
+
var sourceSize = edgeKeys == null ? -1 : edgeKeys.length;
|
53
|
+
var _useState = useState(initialSize != null ? initialSize : sourceSize),
|
54
|
+
_numInUse = _useState[0],
|
55
|
+
setNumInUse = _useState[1];
|
56
|
+
var numInUse = _numInUse;
|
57
|
+
if (_numInUse === -1 && sourceSize !== -1) {
|
58
|
+
numInUse = initialSize != null ? initialSize : sourceSize;
|
59
|
+
setNumInUse(numInUse);
|
60
|
+
}
|
61
|
+
var environment = useRelayEnvironment();
|
62
|
+
var _useState2 = useState(false),
|
63
|
+
isLoadingMore = _useState2[0],
|
64
|
+
reallySetIsLoadingMore = _useState2[1];
|
65
|
+
var _useState3 = useState(false),
|
66
|
+
isRefetching = _useState3[0],
|
67
|
+
setIsRefetching = _useState3[1];
|
68
|
+
var availableSizeRef = useRef(0);
|
69
|
+
var setIsLoadingMore = useCallback(function (value) {
|
70
|
+
var _environment$getSched;
|
71
|
+
var schedule = (_environment$getSched = environment.getScheduler()) === null || _environment$getSched === void 0 ? void 0 : _environment$getSched.schedule;
|
72
|
+
if (schedule) {
|
73
|
+
schedule(function () {
|
74
|
+
reallySetIsLoadingMore(value);
|
75
|
+
});
|
76
|
+
} else {
|
77
|
+
reallySetIsLoadingMore(value);
|
78
|
+
}
|
79
|
+
}, [environment]);
|
80
|
+
var isLoadingMoreRef = useRef(false);
|
81
|
+
var observer = useMemo(function () {
|
82
|
+
function setIsLoadingFalse() {
|
83
|
+
isLoadingMoreRef.current = false;
|
84
|
+
setIsLoadingMore(false);
|
85
|
+
}
|
86
|
+
return {
|
87
|
+
start: function start() {
|
88
|
+
isLoadingMoreRef.current = true;
|
89
|
+
reallySetIsLoadingMore(true);
|
90
|
+
},
|
91
|
+
complete: setIsLoadingFalse,
|
92
|
+
error: setIsLoadingFalse,
|
93
|
+
unsubscribe: RelayFeatureFlags.ENABLE_USE_PAGINATION_IS_LOADING_FIX ? setIsLoadingFalse : undefined
|
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;
|
@@ -55,7 +55,7 @@ function reducer(state, action) {
|
|
55
55
|
}
|
56
56
|
}
|
57
57
|
}
|
58
|
-
function
|
58
|
+
function useRefetchableFragmentInternal(fragmentNode, parentFragmentRef, componentDisplayName) {
|
59
59
|
var parentEnvironment = useRelayEnvironment();
|
60
60
|
var _getRefetchMetadata = getRefetchMetadata(fragmentNode, componentDisplayName),
|
61
61
|
refetchableRequest = _getRefetchMetadata.refetchableRequest,
|
@@ -226,7 +226,7 @@ if (process.env.NODE_ENV !== "production") {
|
|
226
226
|
}
|
227
227
|
},
|
228
228
|
checkSameIDAfterRefetch: function checkSameIDAfterRefetch(previousIDAndTypename, refetchedFragmentRef, fragmentNode, componentDisplayName) {
|
229
|
-
if (previousIDAndTypename == null) {
|
229
|
+
if (previousIDAndTypename == null || refetchedFragmentRef == null) {
|
230
230
|
return;
|
231
231
|
}
|
232
232
|
var _require6 = require('relay-runtime'),
|
@@ -238,4 +238,4 @@ if (process.env.NODE_ENV !== "production") {
|
|
238
238
|
}
|
239
239
|
};
|
240
240
|
}
|
241
|
-
module.exports =
|
241
|
+
module.exports = useRefetchableFragmentInternal;
|
@@ -0,0 +1,9 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
var ReactRelayLoggingContext = require('./../ReactRelayLoggingContext');
|
4
|
+
var _require = require('react'),
|
5
|
+
useContext = _require.useContext;
|
6
|
+
function useRelayLoggingContext() {
|
7
|
+
return useContext(ReactRelayLoggingContext);
|
8
|
+
}
|
9
|
+
module.exports = useRelayLoggingContext;
|
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": "
|
4
|
+
"version": "19.0.0",
|
5
5
|
"keywords": [
|
6
6
|
"graphql",
|
7
7
|
"relay",
|
@@ -20,10 +20,10 @@
|
|
20
20
|
"fbjs": "^3.0.2",
|
21
21
|
"invariant": "^2.2.4",
|
22
22
|
"nullthrows": "^1.1.1",
|
23
|
-
"relay-runtime": "
|
23
|
+
"relay-runtime": "19.0.0"
|
24
24
|
},
|
25
25
|
"peerDependencies": {
|
26
|
-
"react": "^16.9.0 || ^17 || ^18"
|
26
|
+
"react": "^16.9.0 || ^17 || ^18 || ^19"
|
27
27
|
},
|
28
28
|
"directories": {
|
29
29
|
"": "./"
|