@civet/core 1.2.0 → 1.2.1
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/lib/useResource.js +46 -32
- package/package.json +1 -1
- package/src/useResource.js +51 -35
package/lib/useResource.js
CHANGED
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _AbortSignal = _interopRequireDefault(require("./AbortSignal"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _context3 = require("./context");
|
|
13
13
|
|
|
14
14
|
var _Meta = _interopRequireDefault(require("./Meta"));
|
|
15
15
|
|
|
@@ -59,7 +59,7 @@ function useResource(_ref) {
|
|
|
59
59
|
nextPersistent = _ref.persistent,
|
|
60
60
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
61
61
|
|
|
62
|
-
var configContext = (0,
|
|
62
|
+
var configContext = (0, _context3.useConfigContext)();
|
|
63
63
|
var currentDataProvider = dataProviderProp || configContext.dataProvider;
|
|
64
64
|
|
|
65
65
|
var _React$useState = _react["default"].useState(currentDataProvider),
|
|
@@ -211,40 +211,54 @@ function useResource(_ref) {
|
|
|
211
211
|
if (requestDetails.empty) return undefined;
|
|
212
212
|
var abortSignal = new _AbortSignal["default"]();
|
|
213
213
|
var meta = new _Meta["default"](_objectSpread({}, value.meta), instance);
|
|
214
|
+
var promise = Promise.resolve(state);
|
|
214
215
|
|
|
215
216
|
var callback = function callback(error, done, data) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
217
|
+
promise = promise.then(function (prevState) {
|
|
218
|
+
try {
|
|
219
|
+
var nextState;
|
|
220
|
+
|
|
221
|
+
if (error != null) {
|
|
222
|
+
nextState = _objectSpread(_objectSpread({}, prevState), {}, {
|
|
223
|
+
isLoading: false,
|
|
224
|
+
value: _objectSpread(_objectSpread({}, prevState.value), {}, {
|
|
225
|
+
error: error,
|
|
226
|
+
isIncomplete: false
|
|
227
|
+
})
|
|
228
|
+
});
|
|
229
|
+
} else {
|
|
230
|
+
var _context2 = {
|
|
231
|
+
name: requestDetails.name,
|
|
232
|
+
query: requestDetails.query,
|
|
233
|
+
options: requestDetails.options,
|
|
234
|
+
request: request,
|
|
235
|
+
revision: revision,
|
|
236
|
+
data: data,
|
|
237
|
+
meta: meta.commit(prevState.value.meta),
|
|
238
|
+
error: undefined,
|
|
239
|
+
isEmpty: false,
|
|
240
|
+
isIncomplete: !done,
|
|
241
|
+
isInitial: !!prevState.isInitial && !done
|
|
242
|
+
};
|
|
243
|
+
_context2.data = dataProvider.transition(_context2, prevState.value);
|
|
244
|
+
_context2.data = dataProvider.recycleItems(_context2, prevState.value);
|
|
245
|
+
nextState = _objectSpread(_objectSpread({}, prevState), {}, {
|
|
246
|
+
isLoading: !done,
|
|
247
|
+
value: _context2
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
setState(function (otherState) {
|
|
252
|
+
if (request !== otherState.request || revision !== otherState.revision) {
|
|
253
|
+
return otherState;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return nextState;
|
|
226
257
|
});
|
|
258
|
+
return nextState;
|
|
259
|
+
} catch (_unused) {
|
|
260
|
+
return prevState;
|
|
227
261
|
}
|
|
228
|
-
|
|
229
|
-
var context = {
|
|
230
|
-
name: requestDetails.name,
|
|
231
|
-
query: requestDetails.query,
|
|
232
|
-
options: requestDetails.options,
|
|
233
|
-
request: request,
|
|
234
|
-
revision: revision,
|
|
235
|
-
data: data,
|
|
236
|
-
meta: meta.commit(prevState.value.meta),
|
|
237
|
-
error: undefined,
|
|
238
|
-
isEmpty: false,
|
|
239
|
-
isIncomplete: !done,
|
|
240
|
-
isInitial: !!prevState.isInitial && !done
|
|
241
|
-
};
|
|
242
|
-
context.data = dataProvider.transition(context, prevState.value);
|
|
243
|
-
context.data = dataProvider.recycleItems(context, prevState.value);
|
|
244
|
-
return _objectSpread(_objectSpread({}, prevState), {}, {
|
|
245
|
-
isLoading: !done,
|
|
246
|
-
value: context
|
|
247
|
-
});
|
|
248
262
|
});
|
|
249
263
|
};
|
|
250
264
|
|
package/package.json
CHANGED
package/src/useResource.js
CHANGED
|
@@ -147,43 +147,59 @@ function useResource({
|
|
|
147
147
|
|
|
148
148
|
const meta = new Meta({ ...value.meta }, instance);
|
|
149
149
|
|
|
150
|
+
let promise = Promise.resolve(state);
|
|
151
|
+
|
|
150
152
|
const callback = (error, done, data) => {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
153
|
+
promise = promise.then((prevState) => {
|
|
154
|
+
try {
|
|
155
|
+
let nextState;
|
|
156
|
+
|
|
157
|
+
if (error != null) {
|
|
158
|
+
nextState = {
|
|
159
|
+
...prevState,
|
|
160
|
+
isLoading: false,
|
|
161
|
+
value: {
|
|
162
|
+
...prevState.value,
|
|
163
|
+
error,
|
|
164
|
+
isIncomplete: false,
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
} else {
|
|
168
|
+
const context = {
|
|
169
|
+
name: requestDetails.name,
|
|
170
|
+
query: requestDetails.query,
|
|
171
|
+
options: requestDetails.options,
|
|
172
|
+
request,
|
|
173
|
+
revision,
|
|
174
|
+
data,
|
|
175
|
+
meta: meta.commit(prevState.value.meta),
|
|
176
|
+
error: undefined,
|
|
177
|
+
isEmpty: false,
|
|
178
|
+
isIncomplete: !done,
|
|
179
|
+
isInitial: !!prevState.isInitial && !done,
|
|
180
|
+
};
|
|
181
|
+
context.data = dataProvider.transition(context, prevState.value);
|
|
182
|
+
context.data = dataProvider.recycleItems(context, prevState.value);
|
|
183
|
+
|
|
184
|
+
nextState = {
|
|
185
|
+
...prevState,
|
|
186
|
+
isLoading: !done,
|
|
187
|
+
value: context,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
setState((otherState) => {
|
|
192
|
+
if (request !== otherState.request || revision !== otherState.revision) {
|
|
193
|
+
return otherState;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return nextState;
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
return nextState;
|
|
200
|
+
} catch {
|
|
201
|
+
return prevState;
|
|
164
202
|
}
|
|
165
|
-
|
|
166
|
-
const context = {
|
|
167
|
-
name: requestDetails.name,
|
|
168
|
-
query: requestDetails.query,
|
|
169
|
-
options: requestDetails.options,
|
|
170
|
-
request,
|
|
171
|
-
revision,
|
|
172
|
-
data,
|
|
173
|
-
meta: meta.commit(prevState.value.meta),
|
|
174
|
-
error: undefined,
|
|
175
|
-
isEmpty: false,
|
|
176
|
-
isIncomplete: !done,
|
|
177
|
-
isInitial: !!prevState.isInitial && !done,
|
|
178
|
-
};
|
|
179
|
-
context.data = dataProvider.transition(context, prevState.value);
|
|
180
|
-
context.data = dataProvider.recycleItems(context, prevState.value);
|
|
181
|
-
|
|
182
|
-
return {
|
|
183
|
-
...prevState,
|
|
184
|
-
isLoading: !done,
|
|
185
|
-
value: context,
|
|
186
|
-
};
|
|
187
203
|
});
|
|
188
204
|
};
|
|
189
205
|
|