@apollo/client 3.5.10 → 3.6.9
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/LICENSE +1 -1
- package/README.md +5 -5
- package/apollo-client.cjs +563 -375
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +10 -11
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +2288 -0
- package/cache/inmemory/policies.js +1 -1
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.d.ts.map +1 -1
- package/cache/inmemory/readFromStore.js +10 -11
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/core/ApolloClient.d.ts +2 -3
- package/core/ApolloClient.d.ts.map +1 -1
- package/core/ApolloClient.js +4 -8
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +10 -4
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +101 -46
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts.map +1 -1
- package/core/QueryInfo.js +4 -2
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +5 -2
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +36 -27
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +148 -90
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +2146 -0
- package/core/index.d.ts +1 -1
- package/core/index.d.ts.map +1 -1
- package/core/index.js +1 -1
- package/core/index.js.map +1 -1
- package/core/watchQueryOptions.d.ts +9 -1
- package/core/watchQueryOptions.d.ts.map +1 -1
- package/core/watchQueryOptions.js.map +1 -1
- package/errors/errors.cjs.native.js +48 -0
- package/invariantErrorCodes.js +1 -1
- package/link/batch/batch.cjs +46 -37
- package/link/batch/batch.cjs.map +1 -1
- package/link/batch/batch.cjs.native.js +160 -0
- package/link/batch/batching.d.ts +2 -6
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +46 -37
- package/link/batch/batching.js.map +1 -1
- package/link/batch-http/batch-http.cjs.native.js +127 -0
- package/link/context/context.cjs.native.js +38 -0
- package/link/core/core.cjs.native.js +121 -0
- package/link/error/error.cjs.native.js +90 -0
- package/link/http/http.cjs.native.js +320 -0
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
- package/link/http/selectHttpOptionsAndBody.js.map +1 -1
- package/link/persisted-queries/index.d.ts +2 -1
- package/link/persisted-queries/index.d.ts.map +1 -1
- package/link/persisted-queries/index.js +26 -13
- package/link/persisted-queries/index.js.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs +25 -12
- package/link/persisted-queries/persisted-queries.cjs.map +1 -1
- package/link/persisted-queries/persisted-queries.cjs.native.js +174 -0
- package/link/retry/retry.cjs.native.js +170 -0
- package/link/schema/schema.cjs.native.js +56 -0
- package/link/subscriptions/subscriptions.cjs.native.js +45 -0
- package/link/utils/utils.cjs.native.js +115 -0
- package/link/ws/ws.cjs.native.js +28 -0
- package/main.cjs.native.js +16 -0
- package/package.json +30 -27
- package/react/components/components.cjs.native.js +79 -0
- package/react/context/ApolloConsumer.js +2 -2
- package/react/context/ApolloProvider.js +2 -2
- package/react/context/context.cjs +4 -4
- package/react/context/context.cjs.map +1 -1
- package/react/context/context.cjs.native.js +67 -0
- package/react/hoc/hoc.cjs.native.js +325 -0
- package/react/hooks/hooks.cjs +376 -253
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +623 -0
- package/react/hooks/index.d.ts +1 -1
- package/react/hooks/index.d.ts.map +1 -1
- package/react/hooks/index.js +1 -1
- package/react/hooks/index.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts +2 -2
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +26 -21
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts.map +1 -1
- package/react/hooks/useMutation.js +13 -10
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +37 -2
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +256 -206
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts.map +1 -1
- package/react/hooks/useSubscription.js +17 -7
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSyncExternalStore.d.ts +4 -0
- package/react/hooks/useSyncExternalStore.d.ts.map +1 -0
- package/react/hooks/useSyncExternalStore.js +48 -0
- package/react/hooks/useSyncExternalStore.js.map +1 -0
- package/react/parser/index.d.ts.map +1 -1
- package/react/parser/index.js +24 -10
- package/react/parser/index.js.map +1 -1
- package/react/parser/parser.cjs +24 -10
- package/react/parser/parser.cjs.map +1 -1
- package/react/parser/parser.cjs.native.js +103 -0
- package/react/react.cjs.native.js +22 -0
- package/react/ssr/RenderPromises.d.ts +3 -2
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js +25 -3
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/ssr.cjs +25 -3
- package/react/ssr/ssr.cjs.map +1 -1
- package/react/ssr/ssr.cjs.native.js +150 -0
- package/react/types/types.d.ts +10 -11
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/core/core.cjs.native.js +288 -0
- package/testing/core/mocking/mockFetch.js +1 -1
- package/testing/core/mocking/mockFetch.js.map +1 -1
- package/testing/core/mocking/mockQueryManager.js +1 -1
- package/testing/core/mocking/mockWatchQuery.js +1 -1
- package/testing/core/wrap.js +1 -1
- package/testing/testing.cjs.native.js +58 -0
- package/utilities/common/canUse.d.ts +2 -0
- package/utilities/common/canUse.d.ts.map +1 -1
- package/utilities/common/canUse.js +6 -2
- package/utilities/common/canUse.js.map +1 -1
- package/utilities/common/mergeDeep.d.ts.map +1 -1
- package/utilities/common/mergeDeep.js +8 -11
- package/utilities/common/mergeDeep.js.map +1 -1
- package/utilities/common/mergeOptions.d.ts +5 -0
- package/utilities/common/mergeOptions.d.ts.map +1 -0
- package/utilities/common/mergeOptions.js +8 -0
- package/utilities/common/mergeOptions.js.map +1 -0
- package/utilities/globals/global.js +1 -2
- package/utilities/globals/globals.cjs.native.js +56 -0
- package/utilities/graphql/transform.d.ts +2 -2
- package/utilities/graphql/transform.d.ts.map +1 -1
- package/utilities/graphql/transform.js +1 -1
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/index.d.ts +1 -0
- package/utilities/index.d.ts.map +1 -1
- package/utilities/index.js +1 -0
- package/utilities/index.js.map +1 -1
- package/utilities/observables/Concast.d.ts +1 -0
- package/utilities/observables/Concast.d.ts.map +1 -1
- package/utilities/observables/Concast.js +5 -2
- package/utilities/observables/Concast.js.map +1 -1
- package/utilities/policies/pagination.d.ts.map +1 -1
- package/utilities/policies/pagination.js +9 -7
- package/utilities/policies/pagination.js.map +1 -1
- package/utilities/utilities.cjs +37 -23
- package/utilities/utilities.cjs.map +1 -1
- package/utilities/utilities.cjs.native.js +1281 -0
- package/version.js +1 -1
package/react/hooks/hooks.cjs
CHANGED
|
@@ -3,16 +3,31 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var globals = require('../../utilities/globals');
|
|
6
|
-
var
|
|
6
|
+
var React = require('react');
|
|
7
7
|
var context = require('../context');
|
|
8
8
|
var tslib = require('tslib');
|
|
9
|
+
var utilities = require('../../utilities');
|
|
9
10
|
var equality = require('@wry/equality');
|
|
10
11
|
var core = require('../../core');
|
|
11
12
|
var errors = require('../../errors');
|
|
12
13
|
var parser = require('../parser');
|
|
13
14
|
|
|
15
|
+
function _interopNamespace(e) {
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
17
|
+
var n = Object.create(null);
|
|
18
|
+
if (e) {
|
|
19
|
+
for (var k in e) {
|
|
20
|
+
n[k] = e[k];
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
n["default"] = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
14
29
|
function useApolloClient(override) {
|
|
15
|
-
var context$1 =
|
|
30
|
+
var context$1 = React.useContext(context.getApolloContext());
|
|
16
31
|
var client = override || context$1.client;
|
|
17
32
|
__DEV__ ? globals.invariant(!!client, 'Could not find "client" in the context or passed in as an option. ' +
|
|
18
33
|
'Wrap the root component in an <ApolloProvider>, or pass an ApolloClient ' +
|
|
@@ -20,254 +35,350 @@ function useApolloClient(override) {
|
|
|
20
35
|
return client;
|
|
21
36
|
}
|
|
22
37
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
38
|
+
var didWarnUncachedGetSnapshot = false;
|
|
39
|
+
var uSESKey = "useSyncExternalStore";
|
|
40
|
+
var realHook = React__namespace[uSESKey];
|
|
41
|
+
var useSyncExternalStore = realHook || (function (subscribe, getSnapshot, getServerSnapshot) {
|
|
42
|
+
var value = getSnapshot();
|
|
43
|
+
if (__DEV__ &&
|
|
44
|
+
!didWarnUncachedGetSnapshot &&
|
|
45
|
+
value !== getSnapshot()) {
|
|
46
|
+
didWarnUncachedGetSnapshot = true;
|
|
47
|
+
__DEV__ && globals.invariant.error('The result of getSnapshot should be cached to avoid an infinite loop');
|
|
48
|
+
}
|
|
49
|
+
var _a = React__namespace.useState({ inst: { value: value, getSnapshot: getSnapshot } }), inst = _a[0].inst, forceUpdate = _a[1];
|
|
50
|
+
if (utilities.canUseLayoutEffect) {
|
|
51
|
+
React__namespace.useLayoutEffect(function () {
|
|
52
|
+
Object.assign(inst, { value: value, getSnapshot: getSnapshot });
|
|
53
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
54
|
+
forceUpdate({ inst: inst });
|
|
55
|
+
}
|
|
56
|
+
}, [subscribe, value, getSnapshot]);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
Object.assign(inst, { value: value, getSnapshot: getSnapshot });
|
|
60
|
+
}
|
|
61
|
+
React__namespace.useEffect(function () {
|
|
62
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
63
|
+
forceUpdate({ inst: inst });
|
|
34
64
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
context$1.renderPromises.registerSSRObservable(obsQuery, watchQueryOptions);
|
|
65
|
+
return subscribe(function handleStoreChange() {
|
|
66
|
+
if (checkIfSnapshotChanged(inst)) {
|
|
67
|
+
forceUpdate({ inst: inst });
|
|
39
68
|
}
|
|
69
|
+
});
|
|
70
|
+
}, [subscribe]);
|
|
71
|
+
return value;
|
|
72
|
+
});
|
|
73
|
+
function checkIfSnapshotChanged(_a) {
|
|
74
|
+
var value = _a.value, getSnapshot = _a.getSnapshot;
|
|
75
|
+
try {
|
|
76
|
+
return value !== getSnapshot();
|
|
77
|
+
}
|
|
78
|
+
catch (_b) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
84
|
+
function useQuery(query, options) {
|
|
85
|
+
if (options === void 0) { options = Object.create(null); }
|
|
86
|
+
return useInternalState(useApolloClient(options.client), query).useQuery(options);
|
|
87
|
+
}
|
|
88
|
+
function useInternalState(client, query) {
|
|
89
|
+
var stateRef = React.useRef();
|
|
90
|
+
if (!stateRef.current ||
|
|
91
|
+
client !== stateRef.current.client ||
|
|
92
|
+
query !== stateRef.current.query) {
|
|
93
|
+
stateRef.current = new InternalState(client, query, stateRef.current);
|
|
94
|
+
}
|
|
95
|
+
var state = stateRef.current;
|
|
96
|
+
var _a = React.useState(0); _a[0]; var setTick = _a[1];
|
|
97
|
+
state.forceUpdate = function () {
|
|
98
|
+
setTick(function (tick) { return tick + 1; });
|
|
99
|
+
};
|
|
100
|
+
return state;
|
|
101
|
+
}
|
|
102
|
+
var InternalState = (function () {
|
|
103
|
+
function InternalState(client, query, previous) {
|
|
104
|
+
this.client = client;
|
|
105
|
+
this.query = query;
|
|
106
|
+
this.asyncResolveFns = new Set();
|
|
107
|
+
this.optionsToIgnoreOnce = new (utilities.canUseWeakSet ? WeakSet : Set)();
|
|
108
|
+
this.ssrDisabledResult = utilities.maybeDeepFreeze({
|
|
109
|
+
loading: true,
|
|
110
|
+
data: void 0,
|
|
111
|
+
error: void 0,
|
|
112
|
+
networkStatus: core.NetworkStatus.loading,
|
|
113
|
+
});
|
|
114
|
+
this.skipStandbyResult = utilities.maybeDeepFreeze({
|
|
115
|
+
loading: false,
|
|
116
|
+
data: void 0,
|
|
117
|
+
error: void 0,
|
|
118
|
+
networkStatus: core.NetworkStatus.ready,
|
|
119
|
+
});
|
|
120
|
+
this.toQueryResultCache = new (utilities.canUseWeakMap ? WeakMap : Map)();
|
|
121
|
+
parser.verifyDocumentType(query, parser.DocumentType.Query);
|
|
122
|
+
var previousResult = previous && previous.result;
|
|
123
|
+
var previousData = previousResult && previousResult.data;
|
|
124
|
+
if (previousData) {
|
|
125
|
+
this.previousData = previousData;
|
|
40
126
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
127
|
+
}
|
|
128
|
+
InternalState.prototype.forceUpdate = function () {
|
|
129
|
+
__DEV__ && globals.invariant.warn("Calling default no-op implementation of InternalState#forceUpdate");
|
|
130
|
+
};
|
|
131
|
+
InternalState.prototype.asyncUpdate = function () {
|
|
132
|
+
var _this = this;
|
|
133
|
+
return new Promise(function (resolve) {
|
|
134
|
+
_this.asyncResolveFns.add(resolve);
|
|
135
|
+
_this.optionsToIgnoreOnce.add(_this.watchQueryOptions);
|
|
136
|
+
_this.forceUpdate();
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
InternalState.prototype.useQuery = function (options) {
|
|
140
|
+
var _this = this;
|
|
141
|
+
this.renderPromises = React.useContext(context.getApolloContext()).renderPromises;
|
|
142
|
+
this.useOptions(options);
|
|
143
|
+
var obsQuery = this.useObservableQuery();
|
|
144
|
+
var result = useSyncExternalStore(React.useCallback(function () {
|
|
145
|
+
if (_this.renderPromises) {
|
|
146
|
+
return function () { };
|
|
147
|
+
}
|
|
148
|
+
var onNext = function () {
|
|
149
|
+
var previousResult = _this.result;
|
|
150
|
+
var result = obsQuery.getCurrentResult();
|
|
151
|
+
if (previousResult &&
|
|
152
|
+
previousResult.loading === result.loading &&
|
|
153
|
+
previousResult.networkStatus === result.networkStatus &&
|
|
154
|
+
equality.equal(previousResult.data, result.data)) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
_this.setResult(result);
|
|
158
|
+
};
|
|
159
|
+
var onError = function (error) {
|
|
160
|
+
var last = obsQuery["last"];
|
|
161
|
+
subscription.unsubscribe();
|
|
162
|
+
try {
|
|
163
|
+
obsQuery.resetLastResults();
|
|
164
|
+
subscription = obsQuery.subscribe(onNext, onError);
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
obsQuery["last"] = last;
|
|
168
|
+
}
|
|
169
|
+
if (!hasOwnProperty.call(error, 'graphQLErrors')) {
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
var previousResult = _this.result;
|
|
173
|
+
if (!previousResult ||
|
|
174
|
+
(previousResult && previousResult.loading) ||
|
|
175
|
+
!equality.equal(error, previousResult.error)) {
|
|
176
|
+
_this.setResult({
|
|
177
|
+
data: (previousResult && previousResult.data),
|
|
178
|
+
error: error,
|
|
179
|
+
loading: false,
|
|
180
|
+
networkStatus: core.NetworkStatus.error,
|
|
62
181
|
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
var subscription = obsQuery.subscribe(onNext, onError);
|
|
185
|
+
return function () { return subscription.unsubscribe(); };
|
|
186
|
+
}, [
|
|
187
|
+
obsQuery,
|
|
188
|
+
this.renderPromises,
|
|
189
|
+
this.client.disableNetworkFetches,
|
|
190
|
+
]), function () { return _this.getCurrentResult(); }, function () { return _this.getCurrentResult(); });
|
|
191
|
+
this.unsafeHandlePartialRefetch(result);
|
|
192
|
+
var queryResult = this.toQueryResult(result);
|
|
193
|
+
if (!queryResult.loading && this.asyncResolveFns.size) {
|
|
194
|
+
this.asyncResolveFns.forEach(function (resolve) { return resolve(queryResult); });
|
|
195
|
+
this.asyncResolveFns.clear();
|
|
65
196
|
}
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
var _a
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
197
|
+
return queryResult;
|
|
198
|
+
};
|
|
199
|
+
InternalState.prototype.useOptions = function (options) {
|
|
200
|
+
var _a;
|
|
201
|
+
var watchQueryOptions = this.createWatchQueryOptions(this.queryHookOptions = options);
|
|
202
|
+
var currentWatchQueryOptions = this.watchQueryOptions;
|
|
203
|
+
if (this.optionsToIgnoreOnce.has(currentWatchQueryOptions) ||
|
|
204
|
+
!equality.equal(watchQueryOptions, currentWatchQueryOptions)) {
|
|
205
|
+
this.watchQueryOptions = watchQueryOptions;
|
|
206
|
+
if (currentWatchQueryOptions && this.observable) {
|
|
207
|
+
this.optionsToIgnoreOnce.delete(currentWatchQueryOptions);
|
|
208
|
+
this.observable.reobserve(this.getObsQueryOptions());
|
|
209
|
+
this.previousData = ((_a = this.result) === null || _a === void 0 ? void 0 : _a.data) || this.previousData;
|
|
210
|
+
this.result = void 0;
|
|
77
211
|
}
|
|
78
212
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
result: result,
|
|
86
|
-
previousData: void 0,
|
|
87
|
-
watchQueryOptions: createWatchQueryOptions(query, options, defaultWatchQueryOptions),
|
|
88
|
-
});
|
|
89
|
-
react.useEffect(function () {
|
|
90
|
-
var _a, _b;
|
|
91
|
-
var watchQueryOptions = createWatchQueryOptions(query, options, defaultWatchQueryOptions);
|
|
92
|
-
var nextResult;
|
|
93
|
-
if (ref.current.client !== client || !equality.equal(ref.current.query, query)) {
|
|
94
|
-
var obsQuery_1 = client.watchQuery(watchQueryOptions);
|
|
95
|
-
setObsQuery(obsQuery_1);
|
|
96
|
-
nextResult = obsQuery_1.getCurrentResult();
|
|
213
|
+
this.onCompleted = options.onCompleted || InternalState.prototype.onCompleted;
|
|
214
|
+
this.onError = options.onError || InternalState.prototype.onError;
|
|
215
|
+
if ((this.renderPromises || this.client.disableNetworkFetches) &&
|
|
216
|
+
this.queryHookOptions.ssr === false &&
|
|
217
|
+
!this.queryHookOptions.skip) {
|
|
218
|
+
this.result = this.ssrDisabledResult;
|
|
97
219
|
}
|
|
98
|
-
else if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
ref.current.watchQueryOptions = watchQueryOptions;
|
|
220
|
+
else if (this.queryHookOptions.skip ||
|
|
221
|
+
this.watchQueryOptions.fetchPolicy === 'standby') {
|
|
222
|
+
this.result = this.skipStandbyResult;
|
|
102
223
|
}
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
ref.current.previousData = previousResult.data;
|
|
107
|
-
}
|
|
108
|
-
setResult(ref.current.result = nextResult);
|
|
109
|
-
if (!nextResult.loading && options) {
|
|
110
|
-
if (nextResult.error) {
|
|
111
|
-
(_a = options.onError) === null || _a === void 0 ? void 0 : _a.call(options, nextResult.error);
|
|
112
|
-
}
|
|
113
|
-
else if (nextResult.data) {
|
|
114
|
-
(_b = options.onCompleted) === null || _b === void 0 ? void 0 : _b.call(options, nextResult.data);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
224
|
+
else if (this.result === this.ssrDisabledResult ||
|
|
225
|
+
this.result === this.skipStandbyResult) {
|
|
226
|
+
this.result = void 0;
|
|
117
227
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
228
|
+
};
|
|
229
|
+
InternalState.prototype.getObsQueryOptions = function () {
|
|
230
|
+
var toMerge = [];
|
|
231
|
+
var globalDefaults = this.client.defaultOptions.watchQuery;
|
|
232
|
+
if (globalDefaults)
|
|
233
|
+
toMerge.push(globalDefaults);
|
|
234
|
+
if (this.queryHookOptions.defaultOptions) {
|
|
235
|
+
toMerge.push(this.queryHookOptions.defaultOptions);
|
|
123
236
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
ref.current.previousData = previousResult.data;
|
|
137
|
-
}
|
|
138
|
-
setResult(ref.current.result = result);
|
|
139
|
-
if (!result.loading) {
|
|
140
|
-
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, result.data);
|
|
141
|
-
}
|
|
237
|
+
toMerge.push(utilities.compact(this.observable && this.observable.options, this.watchQueryOptions));
|
|
238
|
+
return toMerge.reduce(core.mergeOptions);
|
|
239
|
+
};
|
|
240
|
+
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
241
|
+
var _b;
|
|
242
|
+
if (_a === void 0) { _a = {}; }
|
|
243
|
+
var skip = _a.skip; _a.ssr; _a.onCompleted; _a.onError; _a.displayName; _a.defaultOptions; var otherOptions = tslib.__rest(_a, ["skip", "ssr", "onCompleted", "onError", "displayName", "defaultOptions"]);
|
|
244
|
+
var watchQueryOptions = Object.assign(otherOptions, { query: this.query });
|
|
245
|
+
if (this.renderPromises &&
|
|
246
|
+
(watchQueryOptions.fetchPolicy === 'network-only' ||
|
|
247
|
+
watchQueryOptions.fetchPolicy === 'cache-and-network')) {
|
|
248
|
+
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
142
249
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
250
|
+
if (!watchQueryOptions.variables) {
|
|
251
|
+
watchQueryOptions.variables = {};
|
|
252
|
+
}
|
|
253
|
+
if (skip) {
|
|
254
|
+
var _c = watchQueryOptions.fetchPolicy, fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c, _d = watchQueryOptions.initialFetchPolicy, initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;
|
|
255
|
+
Object.assign(watchQueryOptions, {
|
|
256
|
+
initialFetchPolicy: initialFetchPolicy,
|
|
257
|
+
fetchPolicy: 'standby',
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
else if (!watchQueryOptions.fetchPolicy) {
|
|
261
|
+
watchQueryOptions.fetchPolicy =
|
|
262
|
+
((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) ||
|
|
263
|
+
this.getDefaultFetchPolicy();
|
|
264
|
+
}
|
|
265
|
+
return watchQueryOptions;
|
|
266
|
+
};
|
|
267
|
+
InternalState.prototype.getDefaultFetchPolicy = function () {
|
|
268
|
+
var _a, _b;
|
|
269
|
+
return (((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
|
|
270
|
+
((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||
|
|
271
|
+
"cache-first");
|
|
272
|
+
};
|
|
273
|
+
InternalState.prototype.onCompleted = function (data) { };
|
|
274
|
+
InternalState.prototype.onError = function (error) { };
|
|
275
|
+
InternalState.prototype.useObservableQuery = function () {
|
|
276
|
+
var obsQuery = this.observable =
|
|
277
|
+
this.renderPromises
|
|
278
|
+
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
279
|
+
|| this.observable
|
|
280
|
+
|| this.client.watchQuery(this.getObsQueryOptions());
|
|
281
|
+
this.obsQueryFields = React.useMemo(function () { return ({
|
|
282
|
+
refetch: obsQuery.refetch.bind(obsQuery),
|
|
283
|
+
reobserve: obsQuery.reobserve.bind(obsQuery),
|
|
284
|
+
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
285
|
+
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
286
|
+
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
287
|
+
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
288
|
+
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
289
|
+
}); }, [obsQuery]);
|
|
290
|
+
var ssrAllowed = !(this.queryHookOptions.ssr === false ||
|
|
291
|
+
this.queryHookOptions.skip);
|
|
292
|
+
if (this.renderPromises && ssrAllowed) {
|
|
293
|
+
this.renderPromises.registerSSRObservable(obsQuery);
|
|
294
|
+
if (obsQuery.getCurrentResult().loading) {
|
|
295
|
+
this.renderPromises.addObservableQueryPromise(obsQuery);
|
|
153
296
|
}
|
|
154
|
-
|
|
155
|
-
|
|
297
|
+
}
|
|
298
|
+
return obsQuery;
|
|
299
|
+
};
|
|
300
|
+
InternalState.prototype.setResult = function (nextResult) {
|
|
301
|
+
var previousResult = this.result;
|
|
302
|
+
if (previousResult && previousResult.data) {
|
|
303
|
+
this.previousData = previousResult.data;
|
|
304
|
+
}
|
|
305
|
+
this.result = nextResult;
|
|
306
|
+
this.forceUpdate();
|
|
307
|
+
this.handleErrorOrCompleted(nextResult);
|
|
308
|
+
};
|
|
309
|
+
InternalState.prototype.handleErrorOrCompleted = function (result) {
|
|
310
|
+
if (!result.loading) {
|
|
311
|
+
if (result.error) {
|
|
312
|
+
this.onError(result.error);
|
|
156
313
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
!equality.equal(error, previousResult.error)) {
|
|
160
|
-
setResult(ref.current.result = {
|
|
161
|
-
data: previousResult.data,
|
|
162
|
-
error: error,
|
|
163
|
-
loading: false,
|
|
164
|
-
networkStatus: core.NetworkStatus.error,
|
|
165
|
-
});
|
|
166
|
-
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, error);
|
|
314
|
+
else if (result.data) {
|
|
315
|
+
this.onCompleted(result.data);
|
|
167
316
|
}
|
|
168
317
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
318
|
+
};
|
|
319
|
+
InternalState.prototype.getCurrentResult = function () {
|
|
320
|
+
if (!this.result) {
|
|
321
|
+
this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());
|
|
322
|
+
}
|
|
323
|
+
return this.result;
|
|
324
|
+
};
|
|
325
|
+
InternalState.prototype.toQueryResult = function (result) {
|
|
326
|
+
var queryResult = this.toQueryResultCache.get(result);
|
|
327
|
+
if (queryResult)
|
|
328
|
+
return queryResult;
|
|
329
|
+
var data = result.data; result.partial; var resultWithoutPartial = tslib.__rest(result, ["data", "partial"]);
|
|
330
|
+
this.toQueryResultCache.set(result, queryResult = tslib.__assign(tslib.__assign(tslib.__assign({ data: data }, resultWithoutPartial), this.obsQueryFields), { client: this.client, observable: this.observable, variables: this.observable.variables, called: !this.queryHookOptions.skip, previousData: this.previousData }));
|
|
331
|
+
if (!queryResult.error && utilities.isNonEmptyArray(result.errors)) {
|
|
332
|
+
queryResult.error = new errors.ApolloError({ graphQLErrors: result.errors });
|
|
333
|
+
}
|
|
334
|
+
return queryResult;
|
|
335
|
+
};
|
|
336
|
+
InternalState.prototype.unsafeHandlePartialRefetch = function (result) {
|
|
337
|
+
if (result.partial &&
|
|
338
|
+
this.queryHookOptions.partialRefetch &&
|
|
176
339
|
!result.loading &&
|
|
177
340
|
(!result.data || Object.keys(result.data).length === 0) &&
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
(
|
|
184
|
-
!(options === null || options === void 0 ? void 0 : options.skip) &&
|
|
185
|
-
result.loading) {
|
|
186
|
-
obsQuery.setOptions(createWatchQueryOptions(query, options, defaultWatchQueryOptions)).catch(function () { });
|
|
341
|
+
this.observable.options.fetchPolicy !== 'cache-only') {
|
|
342
|
+
Object.assign(result, {
|
|
343
|
+
loading: true,
|
|
344
|
+
networkStatus: core.NetworkStatus.refetch,
|
|
345
|
+
});
|
|
346
|
+
this.observable.refetch();
|
|
187
347
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
(options === null || options === void 0 ? void 0 : options.ssr) === false) {
|
|
192
|
-
result = ref.current.result = {
|
|
193
|
-
loading: true,
|
|
194
|
-
data: void 0,
|
|
195
|
-
error: void 0,
|
|
196
|
-
networkStatus: core.NetworkStatus.loading,
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
else if ((options === null || options === void 0 ? void 0 : options.skip) || (options === null || options === void 0 ? void 0 : options.fetchPolicy) === 'standby') {
|
|
200
|
-
result = {
|
|
201
|
-
loading: false,
|
|
202
|
-
data: void 0,
|
|
203
|
-
error: void 0,
|
|
204
|
-
networkStatus: core.NetworkStatus.ready,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
if (result.errors && result.errors.length) {
|
|
208
|
-
result = tslib.__assign(tslib.__assign({}, result), { error: result.error || new errors.ApolloError({ graphQLErrors: result.errors }) });
|
|
209
|
-
}
|
|
210
|
-
var obsQueryFields = react.useMemo(function () { return ({
|
|
211
|
-
refetch: obsQuery.refetch.bind(obsQuery),
|
|
212
|
-
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
213
|
-
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
214
|
-
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
215
|
-
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
216
|
-
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
217
|
-
}); }, [obsQuery]);
|
|
218
|
-
return tslib.__assign(tslib.__assign(tslib.__assign({}, obsQueryFields), { variables: createWatchQueryOptions(query, options, defaultWatchQueryOptions).variables, client: client, called: true, previousData: ref.current.previousData }), result);
|
|
219
|
-
}
|
|
220
|
-
function createWatchQueryOptions(query, options, defaultOptions) {
|
|
221
|
-
var _a;
|
|
222
|
-
if (options === void 0) { options = {}; }
|
|
223
|
-
var skip = options.skip; options.ssr; options.onCompleted; options.onError; options.displayName; var otherOptions = tslib.__rest(options, ["skip", "ssr", "onCompleted", "onError", "displayName"]);
|
|
224
|
-
var watchQueryOptions = tslib.__assign({ query: query }, otherOptions);
|
|
225
|
-
if (defaultOptions) {
|
|
226
|
-
watchQueryOptions = core.mergeOptions(defaultOptions, watchQueryOptions);
|
|
227
|
-
}
|
|
228
|
-
if (skip) {
|
|
229
|
-
watchQueryOptions.fetchPolicy = 'standby';
|
|
230
|
-
}
|
|
231
|
-
else if (((_a = watchQueryOptions.context) === null || _a === void 0 ? void 0 : _a.renderPromises) &&
|
|
232
|
-
(watchQueryOptions.fetchPolicy === 'network-only' ||
|
|
233
|
-
watchQueryOptions.fetchPolicy === 'cache-and-network')) {
|
|
234
|
-
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
235
|
-
}
|
|
236
|
-
else if (!watchQueryOptions.fetchPolicy) {
|
|
237
|
-
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
238
|
-
}
|
|
239
|
-
if (!watchQueryOptions.variables) {
|
|
240
|
-
watchQueryOptions.variables = {};
|
|
241
|
-
}
|
|
242
|
-
return watchQueryOptions;
|
|
243
|
-
}
|
|
348
|
+
};
|
|
349
|
+
return InternalState;
|
|
350
|
+
}());
|
|
244
351
|
|
|
245
352
|
var EAGER_METHODS = [
|
|
246
353
|
'refetch',
|
|
354
|
+
'reobserve',
|
|
247
355
|
'fetchMore',
|
|
248
356
|
'updateQuery',
|
|
249
357
|
'startPolling',
|
|
250
358
|
'subscribeToMore',
|
|
251
359
|
];
|
|
252
360
|
function useLazyQuery(query, options) {
|
|
253
|
-
var
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
361
|
+
var internalState = useInternalState(useApolloClient(options && options.client), query);
|
|
362
|
+
var execOptionsRef = React.useRef();
|
|
363
|
+
var merged = execOptionsRef.current
|
|
364
|
+
? utilities.mergeOptions(options, execOptionsRef.current)
|
|
365
|
+
: options;
|
|
366
|
+
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
367
|
+
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
368
|
+
internalState.getDefaultFetchPolicy();
|
|
369
|
+
var result = Object.assign(useQueryResult, {
|
|
370
|
+
called: !!execOptionsRef.current,
|
|
371
|
+
});
|
|
372
|
+
var eagerMethods = React.useMemo(function () {
|
|
261
373
|
var eagerMethods = {};
|
|
262
374
|
var _loop_1 = function (key) {
|
|
263
375
|
var method = result[key];
|
|
264
376
|
eagerMethods[key] = function () {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
377
|
+
if (!execOptionsRef.current) {
|
|
378
|
+
execOptionsRef.current = Object.create(null);
|
|
379
|
+
internalState.forceUpdate();
|
|
268
380
|
}
|
|
269
|
-
|
|
270
|
-
return method.apply(void 0, args);
|
|
381
|
+
return method.apply(this, arguments);
|
|
271
382
|
};
|
|
272
383
|
};
|
|
273
384
|
for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {
|
|
@@ -276,15 +387,14 @@ function useLazyQuery(query, options) {
|
|
|
276
387
|
}
|
|
277
388
|
return eagerMethods;
|
|
278
389
|
}, []);
|
|
279
|
-
result.error = result.error || void 0;
|
|
280
390
|
Object.assign(result, eagerMethods);
|
|
281
|
-
var execute =
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
391
|
+
var execute = React.useCallback(function (executeOptions) {
|
|
392
|
+
execOptionsRef.current = executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
|
|
393
|
+
fetchPolicy: initialFetchPolicy,
|
|
394
|
+
};
|
|
395
|
+
var promise = internalState
|
|
396
|
+
.asyncUpdate()
|
|
397
|
+
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
|
|
288
398
|
promise.catch(function () { });
|
|
289
399
|
return promise;
|
|
290
400
|
}, []);
|
|
@@ -294,12 +404,12 @@ function useLazyQuery(query, options) {
|
|
|
294
404
|
function useMutation(mutation, options) {
|
|
295
405
|
var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
|
|
296
406
|
parser.verifyDocumentType(mutation, parser.DocumentType.Mutation);
|
|
297
|
-
var _a =
|
|
407
|
+
var _a = React.useState({
|
|
298
408
|
called: false,
|
|
299
409
|
loading: false,
|
|
300
410
|
client: client,
|
|
301
411
|
}), result = _a[0], setResult = _a[1];
|
|
302
|
-
var ref =
|
|
412
|
+
var ref = React.useRef({
|
|
303
413
|
result: result,
|
|
304
414
|
mutationId: 0,
|
|
305
415
|
isMounted: true,
|
|
@@ -310,7 +420,7 @@ function useMutation(mutation, options) {
|
|
|
310
420
|
{
|
|
311
421
|
Object.assign(ref.current, { client: client, options: options, mutation: mutation });
|
|
312
422
|
}
|
|
313
|
-
var execute =
|
|
423
|
+
var execute = React.useCallback(function (executeOptions) {
|
|
314
424
|
if (executeOptions === void 0) { executeOptions = {}; }
|
|
315
425
|
var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;
|
|
316
426
|
var baseOptions = tslib.__assign(tslib.__assign({}, options), { mutation: mutation });
|
|
@@ -326,7 +436,7 @@ function useMutation(mutation, options) {
|
|
|
326
436
|
var mutationId = ++ref.current.mutationId;
|
|
327
437
|
var clientOptions = core.mergeOptions(baseOptions, executeOptions);
|
|
328
438
|
return client.mutate(clientOptions).then(function (response) {
|
|
329
|
-
var _a, _b;
|
|
439
|
+
var _a, _b, _c;
|
|
330
440
|
var data = response.data, errors$1 = response.errors;
|
|
331
441
|
var error = errors$1 && errors$1.length > 0
|
|
332
442
|
? new errors.ApolloError({ graphQLErrors: errors$1 })
|
|
@@ -344,11 +454,11 @@ function useMutation(mutation, options) {
|
|
|
344
454
|
setResult(ref.current.result = result_1);
|
|
345
455
|
}
|
|
346
456
|
}
|
|
347
|
-
(_a =
|
|
348
|
-
(
|
|
457
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data);
|
|
458
|
+
(_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data);
|
|
349
459
|
return response;
|
|
350
460
|
}).catch(function (error) {
|
|
351
|
-
var _a, _b;
|
|
461
|
+
var _a, _b, _c, _d;
|
|
352
462
|
if (mutationId === ref.current.mutationId &&
|
|
353
463
|
ref.current.isMounted) {
|
|
354
464
|
var result_2 = {
|
|
@@ -362,33 +472,36 @@ function useMutation(mutation, options) {
|
|
|
362
472
|
setResult(ref.current.result = result_2);
|
|
363
473
|
}
|
|
364
474
|
}
|
|
365
|
-
if (
|
|
366
|
-
(
|
|
367
|
-
(
|
|
475
|
+
if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {
|
|
476
|
+
(_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error);
|
|
477
|
+
(_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error);
|
|
368
478
|
return { data: void 0, errors: error };
|
|
369
479
|
}
|
|
370
480
|
throw error;
|
|
371
481
|
});
|
|
372
482
|
}, []);
|
|
373
|
-
var reset =
|
|
483
|
+
var reset = React.useCallback(function () {
|
|
374
484
|
setResult({ called: false, loading: false, client: client });
|
|
375
485
|
}, []);
|
|
376
|
-
|
|
377
|
-
ref.current.isMounted =
|
|
378
|
-
|
|
486
|
+
React.useEffect(function () {
|
|
487
|
+
ref.current.isMounted = true;
|
|
488
|
+
return function () {
|
|
489
|
+
ref.current.isMounted = false;
|
|
490
|
+
};
|
|
491
|
+
}, []);
|
|
379
492
|
return [execute, tslib.__assign({ reset: reset }, result)];
|
|
380
493
|
}
|
|
381
494
|
|
|
382
495
|
function useSubscription(subscription, options) {
|
|
383
496
|
var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
|
|
384
497
|
parser.verifyDocumentType(subscription, parser.DocumentType.Subscription);
|
|
385
|
-
var _a =
|
|
498
|
+
var _a = React.useState({
|
|
386
499
|
loading: !(options === null || options === void 0 ? void 0 : options.skip),
|
|
387
500
|
error: void 0,
|
|
388
501
|
data: void 0,
|
|
389
502
|
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
390
503
|
}), result = _a[0], setResult = _a[1];
|
|
391
|
-
var _b =
|
|
504
|
+
var _b = React.useState(function () {
|
|
392
505
|
if (options === null || options === void 0 ? void 0 : options.skip) {
|
|
393
506
|
return null;
|
|
394
507
|
}
|
|
@@ -399,15 +512,21 @@ function useSubscription(subscription, options) {
|
|
|
399
512
|
context: options === null || options === void 0 ? void 0 : options.context,
|
|
400
513
|
});
|
|
401
514
|
}), observable = _b[0], setObservable = _b[1];
|
|
402
|
-
var
|
|
403
|
-
|
|
515
|
+
var canResetObservableRef = React.useRef(false);
|
|
516
|
+
React.useEffect(function () {
|
|
517
|
+
return function () {
|
|
518
|
+
canResetObservableRef.current = true;
|
|
519
|
+
};
|
|
520
|
+
}, []);
|
|
521
|
+
var ref = React.useRef({ client: client, subscription: subscription, options: options });
|
|
522
|
+
React.useEffect(function () {
|
|
404
523
|
var _a, _b, _c, _d;
|
|
405
524
|
var shouldResubscribe = options === null || options === void 0 ? void 0 : options.shouldResubscribe;
|
|
406
525
|
if (typeof shouldResubscribe === 'function') {
|
|
407
526
|
shouldResubscribe = !!shouldResubscribe(options);
|
|
408
527
|
}
|
|
409
528
|
if (options === null || options === void 0 ? void 0 : options.skip) {
|
|
410
|
-
if (!(options === null || options === void 0 ? void 0 : options.skip) !== !((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip)) {
|
|
529
|
+
if (!(options === null || options === void 0 ? void 0 : options.skip) !== !((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.skip) || canResetObservableRef.current) {
|
|
411
530
|
setResult({
|
|
412
531
|
loading: false,
|
|
413
532
|
data: void 0,
|
|
@@ -415,13 +534,16 @@ function useSubscription(subscription, options) {
|
|
|
415
534
|
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
416
535
|
});
|
|
417
536
|
setObservable(null);
|
|
537
|
+
canResetObservableRef.current = false;
|
|
418
538
|
}
|
|
419
539
|
}
|
|
420
|
-
else if (shouldResubscribe !== false &&
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
540
|
+
else if ((shouldResubscribe !== false &&
|
|
541
|
+
(client !== ref.current.client ||
|
|
542
|
+
subscription !== ref.current.subscription ||
|
|
543
|
+
(options === null || options === void 0 ? void 0 : options.fetchPolicy) !== ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||
|
|
544
|
+
!(options === null || options === void 0 ? void 0 : options.skip) !== !((_c = ref.current.options) === null || _c === void 0 ? void 0 : _c.skip) ||
|
|
545
|
+
!equality.equal(options === null || options === void 0 ? void 0 : options.variables, (_d = ref.current.options) === null || _d === void 0 ? void 0 : _d.variables))) ||
|
|
546
|
+
canResetObservableRef.current) {
|
|
425
547
|
setResult({
|
|
426
548
|
loading: true,
|
|
427
549
|
data: void 0,
|
|
@@ -434,10 +556,11 @@ function useSubscription(subscription, options) {
|
|
|
434
556
|
fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
|
|
435
557
|
context: options === null || options === void 0 ? void 0 : options.context,
|
|
436
558
|
}));
|
|
559
|
+
canResetObservableRef.current = false;
|
|
437
560
|
}
|
|
438
561
|
Object.assign(ref.current, { client: client, subscription: subscription, options: options });
|
|
439
|
-
}, [client, subscription, options]);
|
|
440
|
-
|
|
562
|
+
}, [client, subscription, options, canResetObservableRef.current]);
|
|
563
|
+
React.useEffect(function () {
|
|
441
564
|
if (!observable) {
|
|
442
565
|
return;
|
|
443
566
|
}
|
|
@@ -478,8 +601,8 @@ function useSubscription(subscription, options) {
|
|
|
478
601
|
|
|
479
602
|
function useReactiveVar(rv) {
|
|
480
603
|
var value = rv();
|
|
481
|
-
var setValue =
|
|
482
|
-
|
|
604
|
+
var setValue = React.useState(value)[1];
|
|
605
|
+
React.useEffect(function () {
|
|
483
606
|
var probablySameValue = rv();
|
|
484
607
|
if (value !== probablySameValue) {
|
|
485
608
|
setValue(probablySameValue);
|