@apollo/client 3.5.10 → 3.6.5
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/apollo-client.cjs +541 -369
- package/apollo-client.cjs.map +1 -1
- package/apollo-client.min.cjs +1 -1
- package/cache/cache.cjs +9 -10
- package/cache/cache.cjs.map +1 -1
- package/cache/cache.cjs.native.js +2288 -0
- 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 +97 -45
- 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 +29 -23
- package/core/QueryManager.js.map +1 -1
- package/core/core.cjs +138 -85
- package/core/core.cjs.map +1 -1
- package/core/core.cjs.native.js +2141 -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 +47 -37
- package/link/batch/batch.cjs.map +1 -1
- package/link/batch/batch.cjs.native.js +161 -0
- package/link/batch/batching.d.ts +2 -6
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +47 -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 +28 -26
- 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 +365 -253
- package/react/hooks/hooks.cjs.map +1 -1
- package/react/hooks/hooks.cjs.native.js +612 -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 +36 -2
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +245 -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.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,339 @@ 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(watchQueryOptions);
|
|
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
|
-
if (
|
|
122
|
-
|
|
228
|
+
};
|
|
229
|
+
InternalState.prototype.createWatchQueryOptions = function (_a) {
|
|
230
|
+
var _b;
|
|
231
|
+
if (_a === void 0) { _a = {}; }
|
|
232
|
+
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"]);
|
|
233
|
+
var watchQueryOptions = Object.assign(otherOptions, { query: this.query });
|
|
234
|
+
if (this.renderPromises &&
|
|
235
|
+
(watchQueryOptions.fetchPolicy === 'network-only' ||
|
|
236
|
+
watchQueryOptions.fetchPolicy === 'cache-and-network')) {
|
|
237
|
+
watchQueryOptions.fetchPolicy = 'cache-first';
|
|
123
238
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var _a, _b;
|
|
127
|
-
var previousResult = ref.current.result;
|
|
128
|
-
var result = obsQuery.getCurrentResult();
|
|
129
|
-
if (previousResult &&
|
|
130
|
-
previousResult.loading === result.loading &&
|
|
131
|
-
previousResult.networkStatus === result.networkStatus &&
|
|
132
|
-
equality.equal(previousResult.data, result.data)) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (previousResult.data) {
|
|
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
|
-
}
|
|
239
|
+
if (!watchQueryOptions.variables) {
|
|
240
|
+
watchQueryOptions.variables = {};
|
|
142
241
|
}
|
|
143
|
-
|
|
144
|
-
var
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
242
|
+
if (skip) {
|
|
243
|
+
var _c = watchQueryOptions.fetchPolicy, fetchPolicy = _c === void 0 ? this.getDefaultFetchPolicy() : _c, _d = watchQueryOptions.initialFetchPolicy, initialFetchPolicy = _d === void 0 ? fetchPolicy : _d;
|
|
244
|
+
Object.assign(watchQueryOptions, {
|
|
245
|
+
initialFetchPolicy: initialFetchPolicy,
|
|
246
|
+
fetchPolicy: 'standby',
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
else if (!watchQueryOptions.fetchPolicy) {
|
|
250
|
+
watchQueryOptions.fetchPolicy =
|
|
251
|
+
((_b = this.observable) === null || _b === void 0 ? void 0 : _b.options.initialFetchPolicy) ||
|
|
252
|
+
this.getDefaultFetchPolicy();
|
|
253
|
+
}
|
|
254
|
+
return watchQueryOptions;
|
|
255
|
+
};
|
|
256
|
+
InternalState.prototype.getDefaultFetchPolicy = function () {
|
|
257
|
+
var _a, _b;
|
|
258
|
+
return (((_a = this.queryHookOptions.defaultOptions) === null || _a === void 0 ? void 0 : _a.fetchPolicy) ||
|
|
259
|
+
((_b = this.client.defaultOptions.watchQuery) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||
|
|
260
|
+
"cache-first");
|
|
261
|
+
};
|
|
262
|
+
InternalState.prototype.onCompleted = function (data) { };
|
|
263
|
+
InternalState.prototype.onError = function (error) { };
|
|
264
|
+
InternalState.prototype.useObservableQuery = function () {
|
|
265
|
+
var obsQuery = this.observable =
|
|
266
|
+
this.renderPromises
|
|
267
|
+
&& this.renderPromises.getSSRObservable(this.watchQueryOptions)
|
|
268
|
+
|| this.observable
|
|
269
|
+
|| this.client.watchQuery(core.mergeOptions(this.queryHookOptions.defaultOptions, this.watchQueryOptions));
|
|
270
|
+
this.obsQueryFields = React.useMemo(function () { return ({
|
|
271
|
+
refetch: obsQuery.refetch.bind(obsQuery),
|
|
272
|
+
reobserve: obsQuery.reobserve.bind(obsQuery),
|
|
273
|
+
fetchMore: obsQuery.fetchMore.bind(obsQuery),
|
|
274
|
+
updateQuery: obsQuery.updateQuery.bind(obsQuery),
|
|
275
|
+
startPolling: obsQuery.startPolling.bind(obsQuery),
|
|
276
|
+
stopPolling: obsQuery.stopPolling.bind(obsQuery),
|
|
277
|
+
subscribeToMore: obsQuery.subscribeToMore.bind(obsQuery),
|
|
278
|
+
}); }, [obsQuery]);
|
|
279
|
+
var ssrAllowed = !(this.queryHookOptions.ssr === false ||
|
|
280
|
+
this.queryHookOptions.skip);
|
|
281
|
+
if (this.renderPromises && ssrAllowed) {
|
|
282
|
+
this.renderPromises.registerSSRObservable(obsQuery);
|
|
283
|
+
if (obsQuery.getCurrentResult().loading) {
|
|
284
|
+
this.renderPromises.addObservableQueryPromise(obsQuery);
|
|
153
285
|
}
|
|
154
|
-
|
|
155
|
-
|
|
286
|
+
}
|
|
287
|
+
return obsQuery;
|
|
288
|
+
};
|
|
289
|
+
InternalState.prototype.setResult = function (nextResult) {
|
|
290
|
+
var previousResult = this.result;
|
|
291
|
+
if (previousResult && previousResult.data) {
|
|
292
|
+
this.previousData = previousResult.data;
|
|
293
|
+
}
|
|
294
|
+
this.result = nextResult;
|
|
295
|
+
this.forceUpdate();
|
|
296
|
+
this.handleErrorOrCompleted(nextResult);
|
|
297
|
+
};
|
|
298
|
+
InternalState.prototype.handleErrorOrCompleted = function (result) {
|
|
299
|
+
if (!result.loading) {
|
|
300
|
+
if (result.error) {
|
|
301
|
+
this.onError(result.error);
|
|
156
302
|
}
|
|
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);
|
|
303
|
+
else if (result.data) {
|
|
304
|
+
this.onCompleted(result.data);
|
|
167
305
|
}
|
|
168
306
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
307
|
+
};
|
|
308
|
+
InternalState.prototype.getCurrentResult = function () {
|
|
309
|
+
if (!this.result) {
|
|
310
|
+
this.handleErrorOrCompleted(this.result = this.observable.getCurrentResult());
|
|
311
|
+
}
|
|
312
|
+
return this.result;
|
|
313
|
+
};
|
|
314
|
+
InternalState.prototype.toQueryResult = function (result) {
|
|
315
|
+
var queryResult = this.toQueryResultCache.get(result);
|
|
316
|
+
if (queryResult)
|
|
317
|
+
return queryResult;
|
|
318
|
+
var data = result.data; result.partial; var resultWithoutPartial = tslib.__rest(result, ["data", "partial"]);
|
|
319
|
+
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: true, previousData: this.previousData }));
|
|
320
|
+
if (!queryResult.error && utilities.isNonEmptyArray(result.errors)) {
|
|
321
|
+
queryResult.error = new errors.ApolloError({ graphQLErrors: result.errors });
|
|
322
|
+
}
|
|
323
|
+
return queryResult;
|
|
324
|
+
};
|
|
325
|
+
InternalState.prototype.unsafeHandlePartialRefetch = function (result) {
|
|
326
|
+
if (result.partial &&
|
|
327
|
+
this.queryHookOptions.partialRefetch &&
|
|
176
328
|
!result.loading &&
|
|
177
329
|
(!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 () { });
|
|
330
|
+
this.observable.options.fetchPolicy !== 'cache-only') {
|
|
331
|
+
Object.assign(result, {
|
|
332
|
+
loading: true,
|
|
333
|
+
networkStatus: core.NetworkStatus.refetch,
|
|
334
|
+
});
|
|
335
|
+
this.observable.refetch();
|
|
187
336
|
}
|
|
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
|
-
}
|
|
337
|
+
};
|
|
338
|
+
return InternalState;
|
|
339
|
+
}());
|
|
244
340
|
|
|
245
341
|
var EAGER_METHODS = [
|
|
246
342
|
'refetch',
|
|
343
|
+
'reobserve',
|
|
247
344
|
'fetchMore',
|
|
248
345
|
'updateQuery',
|
|
249
346
|
'startPolling',
|
|
250
347
|
'subscribeToMore',
|
|
251
348
|
];
|
|
252
349
|
function useLazyQuery(query, options) {
|
|
253
|
-
var
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
350
|
+
var internalState = useInternalState(useApolloClient(options && options.client), query);
|
|
351
|
+
var execOptionsRef = React.useRef();
|
|
352
|
+
var merged = execOptionsRef.current
|
|
353
|
+
? utilities.mergeOptions(options, execOptionsRef.current)
|
|
354
|
+
: options;
|
|
355
|
+
var useQueryResult = internalState.useQuery(tslib.__assign(tslib.__assign({}, merged), { skip: !execOptionsRef.current }));
|
|
356
|
+
var initialFetchPolicy = useQueryResult.observable.options.initialFetchPolicy ||
|
|
357
|
+
internalState.getDefaultFetchPolicy();
|
|
358
|
+
var result = Object.assign(useQueryResult, {
|
|
359
|
+
called: !!execOptionsRef.current,
|
|
360
|
+
});
|
|
361
|
+
var eagerMethods = React.useMemo(function () {
|
|
261
362
|
var eagerMethods = {};
|
|
262
363
|
var _loop_1 = function (key) {
|
|
263
364
|
var method = result[key];
|
|
264
365
|
eagerMethods[key] = function () {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
366
|
+
if (!execOptionsRef.current) {
|
|
367
|
+
execOptionsRef.current = Object.create(null);
|
|
368
|
+
internalState.forceUpdate();
|
|
268
369
|
}
|
|
269
|
-
|
|
270
|
-
return method.apply(void 0, args);
|
|
370
|
+
return method.apply(this, arguments);
|
|
271
371
|
};
|
|
272
372
|
};
|
|
273
373
|
for (var _i = 0, EAGER_METHODS_1 = EAGER_METHODS; _i < EAGER_METHODS_1.length; _i++) {
|
|
@@ -276,15 +376,14 @@ function useLazyQuery(query, options) {
|
|
|
276
376
|
}
|
|
277
377
|
return eagerMethods;
|
|
278
378
|
}, []);
|
|
279
|
-
result.error = result.error || void 0;
|
|
280
379
|
Object.assign(result, eagerMethods);
|
|
281
|
-
var execute =
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
380
|
+
var execute = React.useCallback(function (executeOptions) {
|
|
381
|
+
execOptionsRef.current = executeOptions ? tslib.__assign(tslib.__assign({}, executeOptions), { fetchPolicy: executeOptions.fetchPolicy || initialFetchPolicy }) : {
|
|
382
|
+
fetchPolicy: initialFetchPolicy,
|
|
383
|
+
};
|
|
384
|
+
var promise = internalState
|
|
385
|
+
.asyncUpdate()
|
|
386
|
+
.then(function (queryResult) { return Object.assign(queryResult, eagerMethods); });
|
|
288
387
|
promise.catch(function () { });
|
|
289
388
|
return promise;
|
|
290
389
|
}, []);
|
|
@@ -294,12 +393,12 @@ function useLazyQuery(query, options) {
|
|
|
294
393
|
function useMutation(mutation, options) {
|
|
295
394
|
var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
|
|
296
395
|
parser.verifyDocumentType(mutation, parser.DocumentType.Mutation);
|
|
297
|
-
var _a =
|
|
396
|
+
var _a = React.useState({
|
|
298
397
|
called: false,
|
|
299
398
|
loading: false,
|
|
300
399
|
client: client,
|
|
301
400
|
}), result = _a[0], setResult = _a[1];
|
|
302
|
-
var ref =
|
|
401
|
+
var ref = React.useRef({
|
|
303
402
|
result: result,
|
|
304
403
|
mutationId: 0,
|
|
305
404
|
isMounted: true,
|
|
@@ -310,7 +409,7 @@ function useMutation(mutation, options) {
|
|
|
310
409
|
{
|
|
311
410
|
Object.assign(ref.current, { client: client, options: options, mutation: mutation });
|
|
312
411
|
}
|
|
313
|
-
var execute =
|
|
412
|
+
var execute = React.useCallback(function (executeOptions) {
|
|
314
413
|
if (executeOptions === void 0) { executeOptions = {}; }
|
|
315
414
|
var _a = ref.current, client = _a.client, options = _a.options, mutation = _a.mutation;
|
|
316
415
|
var baseOptions = tslib.__assign(tslib.__assign({}, options), { mutation: mutation });
|
|
@@ -326,7 +425,7 @@ function useMutation(mutation, options) {
|
|
|
326
425
|
var mutationId = ++ref.current.mutationId;
|
|
327
426
|
var clientOptions = core.mergeOptions(baseOptions, executeOptions);
|
|
328
427
|
return client.mutate(clientOptions).then(function (response) {
|
|
329
|
-
var _a, _b;
|
|
428
|
+
var _a, _b, _c;
|
|
330
429
|
var data = response.data, errors$1 = response.errors;
|
|
331
430
|
var error = errors$1 && errors$1.length > 0
|
|
332
431
|
? new errors.ApolloError({ graphQLErrors: errors$1 })
|
|
@@ -344,11 +443,11 @@ function useMutation(mutation, options) {
|
|
|
344
443
|
setResult(ref.current.result = result_1);
|
|
345
444
|
}
|
|
346
445
|
}
|
|
347
|
-
(_a =
|
|
348
|
-
(
|
|
446
|
+
(_b = (_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onCompleted) === null || _b === void 0 ? void 0 : _b.call(_a, response.data);
|
|
447
|
+
(_c = executeOptions.onCompleted) === null || _c === void 0 ? void 0 : _c.call(executeOptions, response.data);
|
|
349
448
|
return response;
|
|
350
449
|
}).catch(function (error) {
|
|
351
|
-
var _a, _b;
|
|
450
|
+
var _a, _b, _c, _d;
|
|
352
451
|
if (mutationId === ref.current.mutationId &&
|
|
353
452
|
ref.current.isMounted) {
|
|
354
453
|
var result_2 = {
|
|
@@ -362,33 +461,36 @@ function useMutation(mutation, options) {
|
|
|
362
461
|
setResult(ref.current.result = result_2);
|
|
363
462
|
}
|
|
364
463
|
}
|
|
365
|
-
if (
|
|
366
|
-
(
|
|
367
|
-
(
|
|
464
|
+
if (((_a = ref.current.options) === null || _a === void 0 ? void 0 : _a.onError) || clientOptions.onError) {
|
|
465
|
+
(_c = (_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.onError) === null || _c === void 0 ? void 0 : _c.call(_b, error);
|
|
466
|
+
(_d = executeOptions.onError) === null || _d === void 0 ? void 0 : _d.call(executeOptions, error);
|
|
368
467
|
return { data: void 0, errors: error };
|
|
369
468
|
}
|
|
370
469
|
throw error;
|
|
371
470
|
});
|
|
372
471
|
}, []);
|
|
373
|
-
var reset =
|
|
472
|
+
var reset = React.useCallback(function () {
|
|
374
473
|
setResult({ called: false, loading: false, client: client });
|
|
375
474
|
}, []);
|
|
376
|
-
|
|
377
|
-
ref.current.isMounted =
|
|
378
|
-
|
|
475
|
+
React.useEffect(function () {
|
|
476
|
+
ref.current.isMounted = true;
|
|
477
|
+
return function () {
|
|
478
|
+
ref.current.isMounted = false;
|
|
479
|
+
};
|
|
480
|
+
}, []);
|
|
379
481
|
return [execute, tslib.__assign({ reset: reset }, result)];
|
|
380
482
|
}
|
|
381
483
|
|
|
382
484
|
function useSubscription(subscription, options) {
|
|
383
485
|
var client = useApolloClient(options === null || options === void 0 ? void 0 : options.client);
|
|
384
486
|
parser.verifyDocumentType(subscription, parser.DocumentType.Subscription);
|
|
385
|
-
var _a =
|
|
487
|
+
var _a = React.useState({
|
|
386
488
|
loading: !(options === null || options === void 0 ? void 0 : options.skip),
|
|
387
489
|
error: void 0,
|
|
388
490
|
data: void 0,
|
|
389
491
|
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
390
492
|
}), result = _a[0], setResult = _a[1];
|
|
391
|
-
var _b =
|
|
493
|
+
var _b = React.useState(function () {
|
|
392
494
|
if (options === null || options === void 0 ? void 0 : options.skip) {
|
|
393
495
|
return null;
|
|
394
496
|
}
|
|
@@ -399,15 +501,21 @@ function useSubscription(subscription, options) {
|
|
|
399
501
|
context: options === null || options === void 0 ? void 0 : options.context,
|
|
400
502
|
});
|
|
401
503
|
}), observable = _b[0], setObservable = _b[1];
|
|
402
|
-
var
|
|
403
|
-
|
|
504
|
+
var canResetObservableRef = React.useRef(false);
|
|
505
|
+
React.useEffect(function () {
|
|
506
|
+
return function () {
|
|
507
|
+
canResetObservableRef.current = true;
|
|
508
|
+
};
|
|
509
|
+
}, []);
|
|
510
|
+
var ref = React.useRef({ client: client, subscription: subscription, options: options });
|
|
511
|
+
React.useEffect(function () {
|
|
404
512
|
var _a, _b, _c, _d;
|
|
405
513
|
var shouldResubscribe = options === null || options === void 0 ? void 0 : options.shouldResubscribe;
|
|
406
514
|
if (typeof shouldResubscribe === 'function') {
|
|
407
515
|
shouldResubscribe = !!shouldResubscribe(options);
|
|
408
516
|
}
|
|
409
517
|
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)) {
|
|
518
|
+
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
519
|
setResult({
|
|
412
520
|
loading: false,
|
|
413
521
|
data: void 0,
|
|
@@ -415,13 +523,16 @@ function useSubscription(subscription, options) {
|
|
|
415
523
|
variables: options === null || options === void 0 ? void 0 : options.variables,
|
|
416
524
|
});
|
|
417
525
|
setObservable(null);
|
|
526
|
+
canResetObservableRef.current = false;
|
|
418
527
|
}
|
|
419
528
|
}
|
|
420
|
-
else if (shouldResubscribe !== false &&
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
529
|
+
else if ((shouldResubscribe !== false &&
|
|
530
|
+
(client !== ref.current.client ||
|
|
531
|
+
subscription !== ref.current.subscription ||
|
|
532
|
+
(options === null || options === void 0 ? void 0 : options.fetchPolicy) !== ((_b = ref.current.options) === null || _b === void 0 ? void 0 : _b.fetchPolicy) ||
|
|
533
|
+
!(options === null || options === void 0 ? void 0 : options.skip) !== !((_c = ref.current.options) === null || _c === void 0 ? void 0 : _c.skip) ||
|
|
534
|
+
!equality.equal(options === null || options === void 0 ? void 0 : options.variables, (_d = ref.current.options) === null || _d === void 0 ? void 0 : _d.variables))) ||
|
|
535
|
+
canResetObservableRef.current) {
|
|
425
536
|
setResult({
|
|
426
537
|
loading: true,
|
|
427
538
|
data: void 0,
|
|
@@ -434,10 +545,11 @@ function useSubscription(subscription, options) {
|
|
|
434
545
|
fetchPolicy: options === null || options === void 0 ? void 0 : options.fetchPolicy,
|
|
435
546
|
context: options === null || options === void 0 ? void 0 : options.context,
|
|
436
547
|
}));
|
|
548
|
+
canResetObservableRef.current = false;
|
|
437
549
|
}
|
|
438
550
|
Object.assign(ref.current, { client: client, subscription: subscription, options: options });
|
|
439
|
-
}, [client, subscription, options]);
|
|
440
|
-
|
|
551
|
+
}, [client, subscription, options, canResetObservableRef.current]);
|
|
552
|
+
React.useEffect(function () {
|
|
441
553
|
if (!observable) {
|
|
442
554
|
return;
|
|
443
555
|
}
|
|
@@ -478,8 +590,8 @@ function useSubscription(subscription, options) {
|
|
|
478
590
|
|
|
479
591
|
function useReactiveVar(rv) {
|
|
480
592
|
var value = rv();
|
|
481
|
-
var setValue =
|
|
482
|
-
|
|
593
|
+
var setValue = React.useState(value)[1];
|
|
594
|
+
React.useEffect(function () {
|
|
483
595
|
var probablySameValue = rv();
|
|
484
596
|
if (value !== probablySameValue) {
|
|
485
597
|
setValue(probablySameValue);
|