react-relay 14.1.0 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (196) hide show
  1. package/ReactRelayContainerUtils.js.flow +1 -0
  2. package/ReactRelayContext.js +1 -1
  3. package/ReactRelayContext.js.flow +1 -0
  4. package/ReactRelayFragmentContainer.js.flow +6 -2
  5. package/ReactRelayFragmentMockRenderer.js.flow +1 -0
  6. package/ReactRelayLocalQueryRenderer.js.flow +5 -3
  7. package/ReactRelayPaginationContainer.js.flow +21 -12
  8. package/ReactRelayQueryFetcher.js.flow +20 -10
  9. package/ReactRelayQueryRenderer.js.flow +15 -11
  10. package/ReactRelayQueryRendererContext.js.flow +1 -0
  11. package/ReactRelayRefetchContainer.js.flow +9 -5
  12. package/ReactRelayTestMocker.js.flow +3 -1
  13. package/ReactRelayTypes.js.flow +2 -0
  14. package/RelayContext.js.flow +1 -0
  15. package/__flowtests__/ReactRelayFragmentContainer-flowtest.js.flow +2 -1
  16. package/__flowtests__/ReactRelayPaginationContainer-flowtest.js.flow +1 -0
  17. package/__flowtests__/ReactRelayRefetchContainer-flowtest.js.flow +1 -0
  18. package/__flowtests__/RelayModern-flowtest.js.flow +1 -0
  19. package/__flowtests__/RelayModernFlowtest_badref.graphql.js.flow +1 -0
  20. package/__flowtests__/RelayModernFlowtest_notref.graphql.js.flow +1 -0
  21. package/__flowtests__/RelayModernFlowtest_user.graphql.js.flow +1 -0
  22. package/__flowtests__/RelayModernFlowtest_users.graphql.js.flow +1 -0
  23. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer.graphql.js.flow +3 -1
  24. package/__flowtests__/__generated__/ReactRelayFragmentContainerFlowtest_viewer2.graphql.js.flow +3 -1
  25. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtestQuery.graphql.js.flow +4 -2
  26. package/__flowtests__/__generated__/ReactRelayPaginationContainerFlowtest_viewer.graphql.js.flow +3 -1
  27. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtestQuery.graphql.js.flow +4 -2
  28. package/__flowtests__/__generated__/ReactRelayRefetchContainerFlowtest_viewer.graphql.js.flow +3 -1
  29. package/__flowtests__/__generated__/RelayModernFlowtest_badref.graphql.js.flow +4 -2
  30. package/__flowtests__/__generated__/RelayModernFlowtest_notref.graphql.js.flow +4 -2
  31. package/__flowtests__/__generated__/RelayModernFlowtest_user.graphql.js.flow +3 -1
  32. package/__flowtests__/__generated__/RelayModernFlowtest_users.graphql.js.flow +3 -1
  33. package/assertFragmentMap.js.flow +1 -0
  34. package/buildReactRelayContainer.js.flow +10 -6
  35. package/getRootVariablesForFragments.js.flow +1 -1
  36. package/hooks.js +1 -1
  37. package/hooks.js.flow +4 -0
  38. package/index.js +1 -1
  39. package/index.js.flow +4 -0
  40. package/isRelayEnvironment.js.flow +1 -0
  41. package/jest-react/enqueueTask.js.flow +1 -1
  42. package/jest-react/index.js.flow +1 -1
  43. package/jest-react/internalAct.js.flow +1 -1
  44. package/legacy.js +1 -1
  45. package/legacy.js.flow +1 -0
  46. package/lib/ReactRelayContainerUtils.js +0 -11
  47. package/lib/ReactRelayContext.js +1 -12
  48. package/lib/ReactRelayFragmentContainer.js +23 -122
  49. package/lib/ReactRelayFragmentMockRenderer.js +0 -12
  50. package/lib/ReactRelayLocalQueryRenderer.js +12 -41
  51. package/lib/ReactRelayPaginationContainer.js +45 -341
  52. package/lib/ReactRelayQueryFetcher.js +36 -111
  53. package/lib/ReactRelayQueryRenderer.js +29 -137
  54. package/lib/ReactRelayQueryRendererContext.js +0 -10
  55. package/lib/ReactRelayRefetchContainer.js +33 -166
  56. package/lib/ReactRelayTestMocker.js +18 -128
  57. package/lib/ReactRelayTypes.js +0 -9
  58. package/lib/RelayContext.js +0 -23
  59. package/lib/assertFragmentMap.js +0 -16
  60. package/lib/buildReactRelayContainer.js +7 -41
  61. package/lib/getRootVariablesForFragments.js +2 -19
  62. package/lib/hooks.js +3 -30
  63. package/lib/index.js +3 -39
  64. package/lib/isRelayEnvironment.js +1 -16
  65. package/lib/jest-react/enqueueTask.js +1 -25
  66. package/lib/jest-react/index.js +0 -1
  67. package/lib/jest-react/internalAct.js +2 -51
  68. package/lib/legacy.js +0 -20
  69. package/lib/multi-actor/ActorChange.js +0 -14
  70. package/lib/multi-actor/index.js +0 -10
  71. package/lib/multi-actor/useRelayActorEnvironment.js +2 -16
  72. package/lib/relay-hooks/EntryPointContainer.react.js +7 -23
  73. package/lib/relay-hooks/EntryPointTypes.flow.js +0 -10
  74. package/lib/relay-hooks/FragmentResource.js +130 -280
  75. package/lib/relay-hooks/HooksImplementation.js +0 -14
  76. package/lib/relay-hooks/InternalLogger.js +0 -11
  77. package/lib/relay-hooks/LRUCache.js +0 -39
  78. package/lib/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js +27 -65
  79. package/lib/relay-hooks/MatchContainer.js +9 -111
  80. package/lib/relay-hooks/NestedRelayEntryPointBuilderUtils.js +9 -0
  81. package/lib/relay-hooks/ProfilerContext.js +0 -14
  82. package/lib/relay-hooks/QueryResource.js +14 -149
  83. package/lib/relay-hooks/RelayEnvironmentProvider.js +3 -17
  84. package/lib/relay-hooks/SuspenseResource.js +2 -59
  85. package/lib/relay-hooks/loadEntryPoint.js +10 -45
  86. package/lib/relay-hooks/loadQuery.js +29 -169
  87. package/lib/relay-hooks/preloadQuery_DEPRECATED.js +8 -58
  88. package/lib/relay-hooks/prepareEntryPoint_DEPRECATED.js +6 -24
  89. package/lib/relay-hooks/react-cache/RelayReactCache.js +4 -20
  90. package/lib/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js +13 -102
  91. package/lib/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js +18 -75
  92. package/lib/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js +79 -222
  93. package/lib/relay-hooks/react-cache/useFragment_REACT_CACHE.js +3 -27
  94. package/lib/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js +11 -33
  95. package/lib/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js +62 -85
  96. package/lib/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js +20 -63
  97. package/lib/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js +53 -179
  98. package/lib/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js +5 -27
  99. package/lib/relay-hooks/useBlockingPaginationFragment.js +58 -121
  100. package/lib/relay-hooks/useClientQuery.js +0 -21
  101. package/lib/relay-hooks/useEntryPointLoader.js +12 -100
  102. package/lib/relay-hooks/useFetchTrackingRef.js +6 -33
  103. package/lib/relay-hooks/useFragment.js +5 -32
  104. package/lib/relay-hooks/useFragmentNode.js +14 -55
  105. package/lib/relay-hooks/useIsMountedRef.js +2 -14
  106. package/lib/relay-hooks/useIsOperationNodeActive.js +6 -29
  107. package/lib/relay-hooks/useIsParentQueryActive.js +1 -15
  108. package/lib/relay-hooks/useLazyLoadQuery.js +2 -23
  109. package/lib/relay-hooks/useLazyLoadQueryNode.js +18 -63
  110. package/lib/relay-hooks/useLoadMoreFunction.js +44 -100
  111. package/lib/relay-hooks/useMemoOperationDescriptor.js +4 -23
  112. package/lib/relay-hooks/useMemoVariables.js +8 -43
  113. package/lib/relay-hooks/useMutation.js +6 -34
  114. package/lib/relay-hooks/usePaginationFragment.js +49 -89
  115. package/lib/relay-hooks/usePreloadedQuery.js +10 -54
  116. package/lib/relay-hooks/useQueryLoader.js +18 -116
  117. package/lib/relay-hooks/useRefetchableFragment.js +4 -30
  118. package/lib/relay-hooks/useRefetchableFragmentNode.js +58 -184
  119. package/lib/relay-hooks/useRelayEnvironment.js +2 -16
  120. package/lib/relay-hooks/useStaticFragmentNodeWarning.js +2 -20
  121. package/lib/relay-hooks/useSubscribeToInvalidationState.js +3 -28
  122. package/lib/relay-hooks/useSubscription.js +3 -22
  123. package/lib/relay-hooks/useUnsafeRef_DEPRECATED.js +12 -0
  124. package/multi-actor/ActorChange.js.flow +1 -1
  125. package/multi-actor/index.js.flow +1 -1
  126. package/multi-actor/useRelayActorEnvironment.js.flow +2 -2
  127. package/package.json +2 -2
  128. package/react-relay-hooks.js +2 -2
  129. package/react-relay-hooks.min.js +2 -2
  130. package/react-relay-legacy.js +2 -2
  131. package/react-relay-legacy.min.js +2 -2
  132. package/react-relay.js +2 -2
  133. package/react-relay.min.js +2 -2
  134. package/relay-hooks/EntryPointContainer.react.js.flow +6 -1
  135. package/relay-hooks/EntryPointTypes.flow.js.flow +23 -20
  136. package/relay-hooks/FragmentResource.js.flow +148 -34
  137. package/relay-hooks/HooksImplementation.js.flow +1 -1
  138. package/relay-hooks/InternalLogger.js.flow +1 -1
  139. package/relay-hooks/LRUCache.js.flow +1 -1
  140. package/relay-hooks/LazyLoadEntryPointContainer_DEPRECATED.react.js.flow +19 -10
  141. package/relay-hooks/MatchContainer.js.flow +1 -1
  142. package/relay-hooks/NestedRelayEntryPointBuilderUtils.js.flow +51 -0
  143. package/relay-hooks/ProfilerContext.js.flow +1 -1
  144. package/relay-hooks/QueryResource.js.flow +25 -5
  145. package/relay-hooks/RelayEnvironmentProvider.js.flow +2 -2
  146. package/relay-hooks/SuspenseResource.js.flow +1 -1
  147. package/relay-hooks/__flowtests__/EntryPointTypes/EntryPointElementConfig-flowtest.js.flow +3 -1
  148. package/relay-hooks/__flowtests__/EntryPointTypes/NestedEntrypoints-flowtest.js.flow +9 -7
  149. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_user.graphql.js.flow +3 -1
  150. package/relay-hooks/__flowtests__/__generated__/useFragmentFlowtest_users.graphql.js.flow +3 -1
  151. package/relay-hooks/__flowtests__/useBlockingPaginationFragment-flowtest.js.flow +40 -33
  152. package/relay-hooks/__flowtests__/useFragment-flowtest.js.flow +1 -1
  153. package/relay-hooks/__flowtests__/usePaginationFragment-flowtest.js.flow +38 -32
  154. package/relay-hooks/__flowtests__/useRefetchableFragment-flowtest.js.flow +20 -18
  155. package/relay-hooks/__flowtests__/utils.js.flow +13 -2
  156. package/relay-hooks/loadEntryPoint.js.flow +15 -8
  157. package/relay-hooks/loadQuery.js.flow +32 -8
  158. package/relay-hooks/preloadQuery_DEPRECATED.js.flow +5 -6
  159. package/relay-hooks/prepareEntryPoint_DEPRECATED.js.flow +17 -10
  160. package/relay-hooks/react-cache/RelayReactCache.js.flow +1 -1
  161. package/relay-hooks/react-cache/getQueryResultOrFetchQuery_REACT_CACHE.js.flow +4 -4
  162. package/relay-hooks/react-cache/readFragmentInternal_REACT_CACHE.js.flow +5 -4
  163. package/relay-hooks/react-cache/useFragmentInternal_REACT_CACHE.js.flow +32 -14
  164. package/relay-hooks/react-cache/useFragment_REACT_CACHE.js.flow +4 -10
  165. package/relay-hooks/react-cache/useLazyLoadQuery_REACT_CACHE.js.flow +1 -1
  166. package/relay-hooks/react-cache/usePaginationFragment_REACT_CACHE.js.flow +39 -49
  167. package/relay-hooks/react-cache/usePreloadedQuery_REACT_CACHE.js.flow +1 -2
  168. package/relay-hooks/react-cache/useRefetchableFragmentInternal_REACT_CACHE.js.flow +29 -16
  169. package/relay-hooks/react-cache/useRefetchableFragment_REACT_CACHE.js.flow +17 -33
  170. package/relay-hooks/useBlockingPaginationFragment.js.flow +85 -58
  171. package/relay-hooks/useClientQuery.js.flow +3 -3
  172. package/relay-hooks/useEntryPointLoader.js.flow +10 -6
  173. package/relay-hooks/useFetchTrackingRef.js.flow +5 -4
  174. package/relay-hooks/useFragment.js.flow +2 -2
  175. package/relay-hooks/useFragmentNode.js.flow +7 -6
  176. package/relay-hooks/useIsMountedRef.js.flow +1 -1
  177. package/relay-hooks/useIsOperationNodeActive.js.flow +1 -1
  178. package/relay-hooks/useIsParentQueryActive.js.flow +1 -1
  179. package/relay-hooks/useLazyLoadQuery.js.flow +2 -2
  180. package/relay-hooks/useLazyLoadQueryNode.js.flow +2 -2
  181. package/relay-hooks/useLoadMoreFunction.js.flow +27 -16
  182. package/relay-hooks/useMemoOperationDescriptor.js.flow +3 -3
  183. package/relay-hooks/useMemoVariables.js.flow +13 -29
  184. package/relay-hooks/useMutation.js.flow +30 -13
  185. package/relay-hooks/usePaginationFragment.js.flow +55 -54
  186. package/relay-hooks/usePreloadedQuery.js.flow +47 -22
  187. package/relay-hooks/useQueryLoader.js.flow +78 -21
  188. package/relay-hooks/useRefetchableFragment.js.flow +65 -33
  189. package/relay-hooks/useRefetchableFragmentNode.js.flow +38 -17
  190. package/relay-hooks/useRelayEnvironment.js.flow +2 -2
  191. package/relay-hooks/useStaticFragmentNodeWarning.js.flow +3 -3
  192. package/relay-hooks/useSubscribeToInvalidationState.js.flow +2 -2
  193. package/relay-hooks/useSubscription.js.flow +1 -1
  194. package/relay-hooks/useUnsafeRef_DEPRECATED.js.flow +25 -0
  195. package/lib/readContext.js +0 -27
  196. package/readContext.js.flow +0 -29
@@ -1,35 +1,16 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var useMemoVariables = require('./useMemoVariables');
14
-
15
4
  var React = require('react');
16
-
17
5
  var _require = require('relay-runtime'),
18
- createOperationDescriptor = _require.createOperationDescriptor,
19
- getRequest = _require.getRequest;
20
-
6
+ createOperationDescriptor = _require.createOperationDescriptor,
7
+ getRequest = _require.getRequest;
21
8
  var useMemo = React.useMemo;
22
-
23
9
  function useMemoOperationDescriptor(gqlQuery, variables, cacheConfig) {
24
- var _useMemoVariables = useMemoVariables(variables),
25
- memoVariables = _useMemoVariables[0];
26
-
27
- var _useMemoVariables2 = useMemoVariables(cacheConfig || {}),
28
- memoCacheConfig = _useMemoVariables2[0];
29
-
10
+ var memoVariables = useMemoVariables(variables);
11
+ var memoCacheConfig = useMemoVariables(cacheConfig || {});
30
12
  return useMemo(function () {
31
13
  return createOperationDescriptor(getRequest(gqlQuery), memoVariables, memoCacheConfig);
32
14
  }, [gqlQuery, memoVariables, memoCacheConfig]);
33
15
  }
34
-
35
16
  module.exports = useMemoOperationDescriptor;
@@ -1,52 +1,17 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var areEqual = require("fbjs/lib/areEqual");
14
-
15
- var React = require('react');
16
-
17
- var useMemo = React.useMemo,
18
- useRef = React.useRef,
19
- useState = React.useState;
20
-
4
+ var _require = require('react'),
5
+ useState = _require.useState;
21
6
  function useMemoVariables(variables) {
22
- var _variablesChangedGene2;
23
-
24
- // The value of this ref is a counter that should be incremented when
25
- // variables change. This allows us to use the counter as a
26
- // memoization value to indicate if the computation for useMemo
27
- // should be re-executed.
28
- var variablesChangedGenerationRef = useRef(0); // We mirror the variables to check if they have changed between renders
29
-
30
7
  var _useState = useState(variables),
31
- mirroredVariables = _useState[0],
32
- setMirroredVariables = _useState[1];
33
-
34
- var variablesChanged = !areEqual(variables, mirroredVariables);
35
-
36
- if (variablesChanged) {
37
- var _variablesChangedGene;
38
-
39
- variablesChangedGenerationRef.current = ((_variablesChangedGene = variablesChangedGenerationRef.current) !== null && _variablesChangedGene !== void 0 ? _variablesChangedGene : 0) + 1;
8
+ mirroredVariables = _useState[0],
9
+ setMirroredVariables = _useState[1];
10
+ if (areEqual(variables, mirroredVariables)) {
11
+ return mirroredVariables;
12
+ } else {
40
13
  setMirroredVariables(variables);
41
- } // NOTE: We disable react-hooks-deps warning because we explicitly
42
- // don't want to memoize on object identity
43
- // eslint-disable-next-line react-hooks/exhaustive-deps
44
-
45
-
46
- var memoVariables = useMemo(function () {
47
14
  return variables;
48
- }, [variablesChangedGenerationRef.current]);
49
- return [memoVariables, (_variablesChangedGene2 = variablesChangedGenerationRef.current) !== null && _variablesChangedGene2 !== void 0 ? _variablesChangedGene2 : 0];
15
+ }
50
16
  }
51
-
52
17
  module.exports = useMemoVariables;
@@ -1,33 +1,16 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
14
-
15
4
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
-
17
5
  var useIsMountedRef = require('./useIsMountedRef');
18
-
19
6
  var useRelayEnvironment = require('./useRelayEnvironment');
20
-
21
7
  var React = require('react');
22
-
23
8
  var _require = require('relay-runtime'),
24
- defaultCommitMutation = _require.commitMutation;
25
-
9
+ defaultCommitMutation = _require.commitMutation;
26
10
  var useState = React.useState,
27
- useEffect = React.useEffect,
28
- useRef = React.useRef,
29
- useCallback = React.useCallback;
30
-
11
+ useEffect = React.useEffect,
12
+ useRef = React.useRef,
13
+ useCallback = React.useCallback;
31
14
  function useMutation(mutation) {
32
15
  var commitMutationFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultCommitMutation;
33
16
  var environment = useRelayEnvironment();
@@ -35,15 +18,12 @@ function useMutation(mutation) {
35
18
  var environmentRef = useRef(environment);
36
19
  var mutationRef = useRef(mutation);
37
20
  var inFlightMutationsRef = useRef(new Set());
38
-
39
21
  var _useState = useState(false),
40
- isMutationInFlight = _useState[0],
41
- setMutationInFlight = _useState[1];
42
-
22
+ isMutationInFlight = _useState[0],
23
+ setMutationInFlight = _useState[1];
43
24
  var cleanup = useCallback(function (disposable) {
44
25
  if (environmentRef.current === environment && mutationRef.current === mutation) {
45
26
  inFlightMutationsRef.current["delete"](disposable);
46
-
47
27
  if (isMountedRef.current) {
48
28
  setMutationInFlight(inFlightMutationsRef.current.size > 0);
49
29
  }
@@ -52,11 +32,9 @@ function useMutation(mutation) {
52
32
  useEffect(function () {
53
33
  if (environmentRef.current !== environment || mutationRef.current !== mutation) {
54
34
  inFlightMutationsRef.current = new Set();
55
-
56
35
  if (isMountedRef.current) {
57
36
  setMutationInFlight(false);
58
37
  }
59
-
60
38
  environmentRef.current = environment;
61
39
  mutationRef.current = mutation;
62
40
  }
@@ -65,30 +43,25 @@ function useMutation(mutation) {
65
43
  if (isMountedRef.current) {
66
44
  setMutationInFlight(true);
67
45
  }
68
-
69
46
  var disposable = commitMutationFn(environment, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, config), {}, {
70
47
  mutation: mutation,
71
48
  onCompleted: function onCompleted(response, errors) {
72
49
  var _config$onCompleted;
73
-
74
50
  cleanup(disposable);
75
51
  (_config$onCompleted = config.onCompleted) === null || _config$onCompleted === void 0 ? void 0 : _config$onCompleted.call(config, response, errors);
76
52
  },
77
53
  onError: function onError(error) {
78
54
  var _config$onError;
79
-
80
55
  cleanup(disposable);
81
56
  (_config$onError = config.onError) === null || _config$onError === void 0 ? void 0 : _config$onError.call(config, error);
82
57
  },
83
58
  onUnsubscribe: function onUnsubscribe() {
84
59
  var _config$onUnsubscribe;
85
-
86
60
  cleanup(disposable);
87
61
  (_config$onUnsubscribe = config.onUnsubscribe) === null || _config$onUnsubscribe === void 0 ? void 0 : _config$onUnsubscribe.call(config);
88
62
  },
89
63
  onNext: function onNext() {
90
64
  var _config$onNext;
91
-
92
65
  (_config$onNext = config.onNext) === null || _config$onNext === void 0 ? void 0 : _config$onNext.call(config);
93
66
  }
94
67
  }));
@@ -97,5 +70,4 @@ function useMutation(mutation) {
97
70
  }, [cleanup, commitMutationFn, environment, isMountedRef, mutation]);
98
71
  return [commit, isMutationInFlight];
99
72
  }
100
-
101
73
  module.exports = useMutation;
@@ -1,90 +1,62 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
14
-
15
4
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
16
-
17
5
  var HooksImplementation = require('./HooksImplementation');
18
-
19
6
  var useLoadMoreFunction = require('./useLoadMoreFunction');
20
-
21
7
  var useRefetchableFragmentNode = require('./useRefetchableFragmentNode');
22
-
23
8
  var useStaticFragmentNodeWarning = require('./useStaticFragmentNodeWarning');
24
-
25
9
  var _require = require('react'),
26
- useCallback = _require.useCallback,
27
- useDebugValue = _require.useDebugValue,
28
- useState = _require.useState;
29
-
10
+ useCallback = _require.useCallback,
11
+ useDebugValue = _require.useDebugValue,
12
+ useState = _require.useState;
30
13
  var _require2 = require('relay-runtime'),
31
- getFragment = _require2.getFragment,
32
- getFragmentIdentifier = _require2.getFragmentIdentifier,
33
- getPaginationMetadata = _require2.getPaginationMetadata;
34
-
14
+ getFragment = _require2.getFragment,
15
+ getFragmentIdentifier = _require2.getFragmentIdentifier,
16
+ getPaginationMetadata = _require2.getPaginationMetadata;
35
17
  function usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef) {
36
18
  var fragmentNode = getFragment(fragmentInput);
37
19
  useStaticFragmentNodeWarning(fragmentNode, 'first argument of usePaginationFragment()');
38
20
  var componentDisplayName = 'usePaginationFragment()';
39
-
40
21
  var _getPaginationMetadat = getPaginationMetadata(fragmentNode, componentDisplayName),
41
- connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
42
- paginationRequest = _getPaginationMetadat.paginationRequest,
43
- paginationMetadata = _getPaginationMetadat.paginationMetadata,
44
- identifierField = _getPaginationMetadat.identifierField;
45
-
22
+ connectionPathInFragmentData = _getPaginationMetadat.connectionPathInFragmentData,
23
+ paginationRequest = _getPaginationMetadat.paginationRequest,
24
+ paginationMetadata = _getPaginationMetadat.paginationMetadata;
46
25
  var _useRefetchableFragme = useRefetchableFragmentNode(fragmentNode, parentFragmentRef, componentDisplayName),
47
- fragmentData = _useRefetchableFragme.fragmentData,
48
- fragmentRef = _useRefetchableFragme.fragmentRef,
49
- refetch = _useRefetchableFragme.refetch;
50
-
51
- var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef); // Backward pagination
52
-
26
+ fragmentData = _useRefetchableFragme.fragmentData,
27
+ fragmentRef = _useRefetchableFragme.fragmentRef,
28
+ refetch = _useRefetchableFragme.refetch;
29
+ var fragmentIdentifier = getFragmentIdentifier(fragmentNode, fragmentRef);
53
30
  var _useLoadMore = useLoadMore({
54
- componentDisplayName: componentDisplayName,
55
- connectionPathInFragmentData: connectionPathInFragmentData,
56
- direction: 'backward',
57
- fragmentData: fragmentData,
58
- fragmentIdentifier: fragmentIdentifier,
59
- fragmentNode: fragmentNode,
60
- fragmentRef: fragmentRef,
61
- identifierField: identifierField,
62
- paginationMetadata: paginationMetadata,
63
- paginationRequest: paginationRequest
64
- }),
65
- loadPrevious = _useLoadMore[0],
66
- hasPrevious = _useLoadMore[1],
67
- isLoadingPrevious = _useLoadMore[2],
68
- disposeFetchPrevious = _useLoadMore[3]; // Forward pagination
69
-
70
-
31
+ componentDisplayName: componentDisplayName,
32
+ connectionPathInFragmentData: connectionPathInFragmentData,
33
+ direction: 'backward',
34
+ fragmentData: fragmentData,
35
+ fragmentIdentifier: fragmentIdentifier,
36
+ fragmentNode: fragmentNode,
37
+ fragmentRef: fragmentRef,
38
+ paginationMetadata: paginationMetadata,
39
+ paginationRequest: paginationRequest
40
+ }),
41
+ loadPrevious = _useLoadMore[0],
42
+ hasPrevious = _useLoadMore[1],
43
+ isLoadingPrevious = _useLoadMore[2],
44
+ disposeFetchPrevious = _useLoadMore[3];
71
45
  var _useLoadMore2 = useLoadMore({
72
- componentDisplayName: componentDisplayName,
73
- connectionPathInFragmentData: connectionPathInFragmentData,
74
- direction: 'forward',
75
- fragmentData: fragmentData,
76
- fragmentIdentifier: fragmentIdentifier,
77
- fragmentNode: fragmentNode,
78
- fragmentRef: fragmentRef,
79
- identifierField: identifierField,
80
- paginationMetadata: paginationMetadata,
81
- paginationRequest: paginationRequest
82
- }),
83
- loadNext = _useLoadMore2[0],
84
- hasNext = _useLoadMore2[1],
85
- isLoadingNext = _useLoadMore2[2],
86
- disposeFetchNext = _useLoadMore2[3];
87
-
46
+ componentDisplayName: componentDisplayName,
47
+ connectionPathInFragmentData: connectionPathInFragmentData,
48
+ direction: 'forward',
49
+ fragmentData: fragmentData,
50
+ fragmentIdentifier: fragmentIdentifier,
51
+ fragmentNode: fragmentNode,
52
+ fragmentRef: fragmentRef,
53
+ paginationMetadata: paginationMetadata,
54
+ paginationRequest: paginationRequest
55
+ }),
56
+ loadNext = _useLoadMore2[0],
57
+ hasNext = _useLoadMore2[1],
58
+ isLoadingNext = _useLoadMore2[2],
59
+ disposeFetchNext = _useLoadMore2[3];
88
60
  var refetchPagination = useCallback(function (variables, options) {
89
61
  disposeFetchNext();
90
62
  disposeFetchPrevious();
@@ -92,9 +64,7 @@ function usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef) {
92
64
  __environment: undefined
93
65
  }));
94
66
  }, [disposeFetchNext, disposeFetchPrevious, refetch]);
95
-
96
67
  if (process.env.NODE_ENV !== "production") {
97
- // eslint-disable-next-line react-hooks/rules-of-hooks
98
68
  useDebugValue({
99
69
  fragment: fragmentNode.name,
100
70
  data: fragmentData,
@@ -104,7 +74,6 @@ function usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef) {
104
74
  isLoadingPrevious: isLoadingPrevious
105
75
  });
106
76
  }
107
-
108
77
  return {
109
78
  data: fragmentData,
110
79
  loadNext: loadNext,
@@ -116,12 +85,10 @@ function usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef) {
116
85
  refetch: refetchPagination
117
86
  };
118
87
  }
119
-
120
88
  function useLoadMore(args) {
121
89
  var _useState = useState(false),
122
- isLoadingMore = _useState[0],
123
- setIsLoadingMore = _useState[1];
124
-
90
+ isLoadingMore = _useState[0],
91
+ setIsLoadingMore = _useState[1];
125
92
  var observer = {
126
93
  start: function start() {
127
94
  return setIsLoadingMore(true);
@@ -133,31 +100,24 @@ function useLoadMore(args) {
133
100
  return setIsLoadingMore(false);
134
101
  }
135
102
  };
136
-
137
103
  var handleReset = function handleReset() {
138
104
  return setIsLoadingMore(false);
139
105
  };
140
-
141
106
  var _useLoadMoreFunction = useLoadMoreFunction((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, args), {}, {
142
- observer: observer,
143
- onReset: handleReset
144
- })),
145
- loadMore = _useLoadMoreFunction[0],
146
- hasMore = _useLoadMoreFunction[1],
147
- disposeFetch = _useLoadMoreFunction[2];
148
-
107
+ observer: observer,
108
+ onReset: handleReset
109
+ })),
110
+ loadMore = _useLoadMoreFunction[0],
111
+ hasMore = _useLoadMoreFunction[1],
112
+ disposeFetch = _useLoadMoreFunction[2];
149
113
  return [loadMore, hasMore, isLoadingMore, disposeFetch];
150
114
  }
151
-
152
115
  function usePaginationFragment(fragmentInput, parentFragmentRef) {
153
116
  var impl = HooksImplementation.get();
154
-
155
117
  if (impl) {
156
118
  return impl.usePaginationFragment(fragmentInput, parentFragmentRef);
157
119
  } else {
158
- // eslint-disable-next-line react-hooks/rules-of-hooks
159
120
  return usePaginationFragment_LEGACY(fragmentInput, parentFragmentRef);
160
121
  }
161
122
  }
162
-
163
123
  module.exports = usePaginationFragment;
@@ -1,52 +1,28 @@
1
- /**
2
- * Copyright (c) Meta Platforms, Inc. and affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- * @emails oncall+relay
8
- *
9
- * @format
10
- */
11
1
  'use strict';
12
2
 
13
3
  var _require = require('./loadQuery'),
14
- useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
15
-
4
+ useTrackLoadQueryInRender = _require.useTrackLoadQueryInRender;
16
5
  var useLazyLoadQueryNode = require('./useLazyLoadQueryNode');
17
-
18
6
  var useMemoOperationDescriptor = require('./useMemoOperationDescriptor');
19
-
20
7
  var useRelayEnvironment = require('./useRelayEnvironment');
21
-
22
8
  var invariant = require('invariant');
23
-
24
9
  var _require2 = require('react'),
25
- useDebugValue = _require2.useDebugValue;
26
-
10
+ useDebugValue = _require2.useDebugValue;
27
11
  var _require3 = require('relay-runtime'),
28
- _require3$__internal = _require3.__internal,
29
- fetchQueryDeduped = _require3$__internal.fetchQueryDeduped,
30
- fetchQuery = _require3$__internal.fetchQuery;
31
-
32
- var warning = require("fbjs/lib/warning"); // This separate type export is only needed as long as we are injecting
33
- // a separate hooks implementation in ./HooksImplementation -- it can
34
- // be removed after we stop doing that.
35
-
36
-
12
+ _require3$__internal = _require3.__internal,
13
+ fetchQueryDeduped = _require3$__internal.fetchQueryDeduped,
14
+ fetchQuery = _require3$__internal.fetchQuery;
15
+ var warning = require("fbjs/lib/warning");
37
16
  function usePreloadedQuery(gqlQuery, preloadedQuery, options) {
38
- // We need to use this hook in order to be able to track if
39
- // loadQuery was called during render
40
17
  useTrackLoadQueryInRender();
41
18
  var environment = useRelayEnvironment();
42
19
  var fetchKey = preloadedQuery.fetchKey,
43
- fetchPolicy = preloadedQuery.fetchPolicy,
44
- source = preloadedQuery.source,
45
- variables = preloadedQuery.variables,
46
- networkCacheConfig = preloadedQuery.networkCacheConfig;
20
+ fetchPolicy = preloadedQuery.fetchPolicy,
21
+ source = preloadedQuery.source,
22
+ variables = preloadedQuery.variables,
23
+ networkCacheConfig = preloadedQuery.networkCacheConfig;
47
24
  var operation = useMemoOperationDescriptor(gqlQuery, variables, networkCacheConfig);
48
25
  var useLazyLoadQueryNodeParams;
49
-
50
26
  if (preloadedQuery.kind === 'PreloadedQuery_DEPRECATED') {
51
27
  !(operation.request.node.params.name === preloadedQuery.name) ? process.env.NODE_ENV !== "production" ? invariant(false, 'usePreloadedQuery(): Expected data to be prefetched for query `%s`, ' + 'got prefetch results for query `%s`.', operation.request.node.params.name, preloadedQuery.name) : invariant(false) : void 0;
52
28
  useLazyLoadQueryNodeParams = {
@@ -72,29 +48,14 @@ function usePreloadedQuery(gqlQuery, preloadedQuery, options) {
72
48
  process.env.NODE_ENV !== "production" ? warning(preloadedQuery.isDisposed === false, 'usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. ' + 'This is because disposing the query marks it for future garbage ' + 'collection, and as such query results may no longer be present in the Relay ' + 'store. In the future, this will become a hard error.') : void 0;
73
49
  var fallbackFetchObservable = fetchQuery(environment, operation);
74
50
  var fetchObservable;
75
-
76
51
  if (source != null && environment === preloadedQuery.environment) {
77
- // If the source observable exists and the environments match, reuse
78
- // the source observable.
79
- // If the source observable happens to be empty, we need to fall back
80
- // and re-execute and de-dupe the query (at render time).
81
52
  fetchObservable = source.ifEmpty(fallbackFetchObservable);
82
53
  } else if (environment !== preloadedQuery.environment) {
83
- // If a call to loadQuery is made with a particular environment, and that
84
- // preloaded query is passed to usePreloadedQuery in a different environment
85
- // context, we cannot re-use the existing preloaded query.
86
- // Instead, we need to fall back and re-execute and de-dupe the query with
87
- // the new environment (at render time).
88
- // TODO T68036756 track occurences of this warning and turn it into a hard error
89
54
  process.env.NODE_ENV !== "production" ? warning(false, 'usePreloadedQuery(): usePreloadedQuery was passed a preloaded query ' + 'that was created with a different environment than the one that is currently ' + 'in context. In the future, this will become a hard error.') : void 0;
90
55
  fetchObservable = fallbackFetchObservable;
91
56
  } else {
92
- // if (source == null)
93
- // If the source observable does not exist, we need to
94
- // fall back and re-execute and de-dupe the query (at render time).
95
57
  fetchObservable = fallbackFetchObservable;
96
58
  }
97
-
98
59
  useLazyLoadQueryNodeParams = {
99
60
  componentDisplayName: 'usePreloadedQuery()',
100
61
  fetchObservable: fetchObservable,
@@ -104,11 +65,8 @@ function usePreloadedQuery(gqlQuery, preloadedQuery, options) {
104
65
  renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy
105
66
  };
106
67
  }
107
-
108
68
  var data = useLazyLoadQueryNode(useLazyLoadQueryNodeParams);
109
-
110
69
  if (process.env.NODE_ENV !== "production") {
111
- // eslint-disable-next-line react-hooks/rules-of-hooks
112
70
  useDebugValue({
113
71
  query: preloadedQuery.name,
114
72
  variables: preloadedQuery.variables,
@@ -118,8 +76,6 @@ function usePreloadedQuery(gqlQuery, preloadedQuery, options) {
118
76
  renderPolicy: options === null || options === void 0 ? void 0 : options.UNSTABLE_renderPolicy
119
77
  });
120
78
  }
121
-
122
79
  return data;
123
80
  }
124
-
125
81
  module.exports = usePreloadedQuery;