use-tus 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -30
- package/dist/TusClientProvider/TusClientProvider.d.ts +6 -3
- package/dist/TusClientProvider/constants.d.ts +4 -0
- package/dist/TusClientProvider/index.d.ts +3 -2
- package/dist/{core → TusClientProvider/store}/contexts.d.ts +3 -3
- package/dist/{core → TusClientProvider/store}/tucClientActions.d.ts +9 -10
- package/dist/{core → TusClientProvider/store}/tusClientReducer.d.ts +5 -5
- package/dist/TusClientProvider/types.d.ts +2 -0
- package/dist/__stories__/Basic.stories.d.ts +1 -1
- package/dist/__stories__/CacheKey.stories.d.ts +1 -1
- package/dist/__stories__/DefaultOptions.stories.d.ts +1 -1
- package/dist/__stories__/components/BasicButton/BasicButton.d.ts +4 -4
- package/dist/__stories__/components/BasicButton/index.d.ts +1 -1
- package/dist/__stories__/components/LoadingCircle/LoadingCircle.d.ts +2 -2
- package/dist/__stories__/components/LoadingCircle/index.d.ts +1 -1
- package/dist/__stories__/components/ProgressBar/ProgressBar.d.ts +2 -2
- package/dist/__stories__/components/ProgressBar/index.d.ts +1 -1
- package/dist/__stories__/components/UploadIcon/UploadIcon.d.ts +2 -2
- package/dist/__stories__/components/UploadIcon/index.d.ts +1 -1
- package/dist/__tests__/useTusStore.test.d.ts +1 -0
- package/dist/__tests__/utils/getDefaultOptions.d.ts +2 -0
- package/dist/__tests__/utils/mock.d.ts +6 -1
- package/dist/index.cjs.js +266 -343
- package/dist/index.d.ts +3 -4
- package/dist/index.esm.js +267 -324
- package/dist/index.js +175 -211
- package/dist/useTus/index.d.ts +3 -2
- package/dist/useTus/types.d.ts +8 -9
- package/dist/useTus/useTus.d.ts +2 -2
- package/dist/useTus/useTusStore.d.ts +2 -0
- package/dist/useTus/utils/createUpload.d.ts +7 -0
- package/dist/useTus/utils/startOrResumeUpload.d.ts +2 -0
- package/dist/useTus/utils/useAutoAbort.d.ts +2 -0
- package/dist/useTus/utils/useMergeTusOptions.d.ts +6 -0
- package/dist/useTusClient/index.d.ts +1 -1
- package/dist/useTusClient/useTusClient.d.ts +1 -1
- package/package.json +9 -10
- package/dist/TusClientProvider/TusController.d.ts +0 -4
- package/dist/core/constants.d.ts +0 -4
- package/dist/core/tusHandler.d.ts +0 -17
- package/dist/core/types.d.ts +0 -8
- package/dist/useTus/utils.d.ts +0 -16
- package/dist/utils/uid.d.ts +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import { Upload } from 'tus-js-client';
|
|
1
|
+
import { useEffect, useMemo, useState, useCallback, createContext, useContext, useReducer, createElement } from 'react';
|
|
2
|
+
import { Upload, isSupported } from 'tus-js-client';
|
|
4
3
|
|
|
5
4
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
6
5
|
try {
|
|
@@ -38,28 +37,6 @@ function _asyncToGenerator(fn) {
|
|
|
38
37
|
};
|
|
39
38
|
}
|
|
40
39
|
|
|
41
|
-
function _classCallCheck(instance, Constructor) {
|
|
42
|
-
if (!(instance instanceof Constructor)) {
|
|
43
|
-
throw new TypeError("Cannot call a class as a function");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function _defineProperties(target, props) {
|
|
48
|
-
for (var i = 0; i < props.length; i++) {
|
|
49
|
-
var descriptor = props[i];
|
|
50
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
51
|
-
descriptor.configurable = true;
|
|
52
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
53
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
58
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
59
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
60
|
-
return Constructor;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
40
|
function _defineProperty(obj, key, value) {
|
|
64
41
|
if (key in obj) {
|
|
65
42
|
Object.defineProperty(obj, key, {
|
|
@@ -165,9 +142,204 @@ function _nonIterableRest() {
|
|
|
165
142
|
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
166
143
|
}
|
|
167
144
|
|
|
145
|
+
var createUpload = function createUpload(file, options, dispatchIsAborted) {
|
|
146
|
+
var upload = new Upload(file, options);
|
|
147
|
+
var originalStart = upload.start.bind(upload);
|
|
148
|
+
var originalAbort = upload.abort.bind(upload);
|
|
149
|
+
|
|
150
|
+
var start = function start() {
|
|
151
|
+
originalStart();
|
|
152
|
+
dispatchIsAborted(false);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
var abort = function () {
|
|
156
|
+
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
157
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
158
|
+
while (1) {
|
|
159
|
+
switch (_context.prev = _context.next) {
|
|
160
|
+
case 0:
|
|
161
|
+
originalAbort();
|
|
162
|
+
dispatchIsAborted(true);
|
|
163
|
+
|
|
164
|
+
case 2:
|
|
165
|
+
case "end":
|
|
166
|
+
return _context.stop();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}, _callee);
|
|
170
|
+
}));
|
|
171
|
+
|
|
172
|
+
return function abort() {
|
|
173
|
+
return _ref.apply(this, arguments);
|
|
174
|
+
};
|
|
175
|
+
}();
|
|
176
|
+
|
|
177
|
+
upload.start = start;
|
|
178
|
+
upload.abort = abort;
|
|
179
|
+
return {
|
|
180
|
+
upload: upload,
|
|
181
|
+
originalStart: originalStart,
|
|
182
|
+
originalAbort: originalAbort
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
var startOrResumeUpload = function startOrResumeUpload(upload) {
|
|
187
|
+
upload.findPreviousUploads().then(function (previousUploads) {
|
|
188
|
+
if (previousUploads.length) {
|
|
189
|
+
upload.resumeFromPreviousUpload(previousUploads[0]);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
upload.start();
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
var useAutoAbort = function useAutoAbort(upload, abort, autoAbort) {
|
|
197
|
+
useEffect(function () {
|
|
198
|
+
var abortUploading = function () {
|
|
199
|
+
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
200
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
201
|
+
while (1) {
|
|
202
|
+
switch (_context.prev = _context.next) {
|
|
203
|
+
case 0:
|
|
204
|
+
if (!(!upload || !abort)) {
|
|
205
|
+
_context.next = 2;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return _context.abrupt("return");
|
|
210
|
+
|
|
211
|
+
case 2:
|
|
212
|
+
_context.next = 4;
|
|
213
|
+
return abort();
|
|
214
|
+
|
|
215
|
+
case 4:
|
|
216
|
+
case "end":
|
|
217
|
+
return _context.stop();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}, _callee);
|
|
221
|
+
}));
|
|
222
|
+
|
|
223
|
+
return function abortUploading() {
|
|
224
|
+
return _ref.apply(this, arguments);
|
|
225
|
+
};
|
|
226
|
+
}();
|
|
227
|
+
|
|
228
|
+
return function () {
|
|
229
|
+
if (!autoAbort) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
abortUploading();
|
|
234
|
+
};
|
|
235
|
+
}, [autoAbort, upload]);
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
var defaultUseTusOptionsValue = Object.freeze({
|
|
239
|
+
autoAbort: true,
|
|
240
|
+
autoStart: false
|
|
241
|
+
});
|
|
242
|
+
var useMergeTusOptions = function useMergeTusOptions(options) {
|
|
243
|
+
return useMemo(function () {
|
|
244
|
+
return _objectSpread2(_objectSpread2({}, defaultUseTusOptionsValue), options || {});
|
|
245
|
+
}, [options]);
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
var initialUseTusState = Object.freeze({
|
|
249
|
+
upload: undefined,
|
|
250
|
+
isSuccess: false,
|
|
251
|
+
isAborted: false,
|
|
252
|
+
error: undefined,
|
|
253
|
+
originalAbort: undefined
|
|
254
|
+
});
|
|
255
|
+
var useTus = function useTus(baseOption) {
|
|
256
|
+
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
257
|
+
autoAbort = _useMergeTusOptions.autoAbort,
|
|
258
|
+
autoStart = _useMergeTusOptions.autoStart,
|
|
259
|
+
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
260
|
+
|
|
261
|
+
var _useState = useState(initialUseTusState),
|
|
262
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
263
|
+
tusState = _useState2[0],
|
|
264
|
+
setTusState = _useState2[1];
|
|
265
|
+
|
|
266
|
+
var updateTusState = useCallback(function (newOptions) {
|
|
267
|
+
setTusState(function (tus) {
|
|
268
|
+
return _objectSpread2(_objectSpread2({}, tus), newOptions);
|
|
269
|
+
});
|
|
270
|
+
}, []);
|
|
271
|
+
var setUpload = useCallback(function (file) {
|
|
272
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
273
|
+
|
|
274
|
+
var targetOptions = _objectSpread2(_objectSpread2({}, uploadOptions), options);
|
|
275
|
+
|
|
276
|
+
var onSuccess = function onSuccess() {
|
|
277
|
+
var _targetOptions$onSucc;
|
|
278
|
+
|
|
279
|
+
updateTusState({
|
|
280
|
+
isSuccess: true
|
|
281
|
+
});
|
|
282
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
var onError = function onError(error) {
|
|
286
|
+
var _targetOptions$onErro;
|
|
287
|
+
|
|
288
|
+
updateTusState({
|
|
289
|
+
error: error
|
|
290
|
+
});
|
|
291
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
295
|
+
onSuccess: onSuccess,
|
|
296
|
+
onError: onError
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
300
|
+
updateTusState({
|
|
301
|
+
isAborted: isAborted
|
|
302
|
+
});
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
306
|
+
upload = _createUpload.upload,
|
|
307
|
+
originalAbort = _createUpload.originalAbort;
|
|
308
|
+
|
|
309
|
+
if (autoStart) {
|
|
310
|
+
startOrResumeUpload(upload);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
updateTusState(_objectSpread2(_objectSpread2({}, initialUseTusState), {}, {
|
|
314
|
+
upload: upload,
|
|
315
|
+
originalAbort: originalAbort
|
|
316
|
+
}));
|
|
317
|
+
}, [autoStart, updateTusState, uploadOptions]);
|
|
318
|
+
var remove = useCallback(function () {
|
|
319
|
+
var _tusState$originalAbo;
|
|
320
|
+
|
|
321
|
+
tusState === null || tusState === void 0 ? void 0 : (_tusState$originalAbo = tusState.originalAbort) === null || _tusState$originalAbo === void 0 ? void 0 : _tusState$originalAbo.call(tusState);
|
|
322
|
+
setTusState(initialUseTusState);
|
|
323
|
+
}, [tusState]);
|
|
324
|
+
var tusResult = useMemo(function () {
|
|
325
|
+
var _tusState$isSuccess, _tusState$isAborted;
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
upload: tusState === null || tusState === void 0 ? void 0 : tusState.upload,
|
|
329
|
+
isSuccess: (_tusState$isSuccess = tusState === null || tusState === void 0 ? void 0 : tusState.isSuccess) !== null && _tusState$isSuccess !== void 0 ? _tusState$isSuccess : false,
|
|
330
|
+
error: tusState === null || tusState === void 0 ? void 0 : tusState.error,
|
|
331
|
+
isAborted: (_tusState$isAborted = tusState === null || tusState === void 0 ? void 0 : tusState.isAborted) !== null && _tusState$isAborted !== void 0 ? _tusState$isAborted : false,
|
|
332
|
+
setUpload: setUpload,
|
|
333
|
+
remove: remove
|
|
334
|
+
};
|
|
335
|
+
}, [tusState, setUpload, remove]);
|
|
336
|
+
useAutoAbort(tusResult.upload, tusState.originalAbort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
337
|
+
return tusResult;
|
|
338
|
+
};
|
|
339
|
+
|
|
168
340
|
var ERROR_MESSAGES = {
|
|
169
|
-
tusClientHasNotFounded:
|
|
170
|
-
tusIsNotSupported:
|
|
341
|
+
tusClientHasNotFounded: "No TusClient set, use TusClientProvider to set one",
|
|
342
|
+
tusIsNotSupported: "This browser does not support uploads. Please use a modern browser instead."
|
|
171
343
|
};
|
|
172
344
|
|
|
173
345
|
var TusClientStateContext = createContext(undefined);
|
|
@@ -175,7 +347,7 @@ var TusClientDispatchContext = createContext(undefined);
|
|
|
175
347
|
var useTusClientState = function useTusClientState() {
|
|
176
348
|
var tusClientState = useContext(TusClientStateContext);
|
|
177
349
|
|
|
178
|
-
if (!tusClientState && process.env.NODE_ENV !==
|
|
350
|
+
if (!tusClientState && process.env.NODE_ENV !== "production") {
|
|
179
351
|
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
180
352
|
}
|
|
181
353
|
|
|
@@ -186,7 +358,7 @@ var useTusClientState = function useTusClientState() {
|
|
|
186
358
|
var useTusClientDispatch = function useTusClientDispatch() {
|
|
187
359
|
var tusClientDispatch = useContext(TusClientDispatchContext);
|
|
188
360
|
|
|
189
|
-
if (!tusClientDispatch && process.env.NODE_ENV !==
|
|
361
|
+
if (!tusClientDispatch && process.env.NODE_ENV !== "production") {
|
|
190
362
|
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
191
363
|
}
|
|
192
364
|
|
|
@@ -197,7 +369,7 @@ var useTusClientDispatch = function useTusClientDispatch() {
|
|
|
197
369
|
|
|
198
370
|
var insertUploadInstance = function insertUploadInstance(cacheKey, upload) {
|
|
199
371
|
return {
|
|
200
|
-
type:
|
|
372
|
+
type: "INSERT_UPLOAD_INSTANCE",
|
|
201
373
|
payload: {
|
|
202
374
|
cacheKey: cacheKey,
|
|
203
375
|
uploadState: {
|
|
@@ -210,7 +382,7 @@ var insertUploadInstance = function insertUploadInstance(cacheKey, upload) {
|
|
|
210
382
|
};
|
|
211
383
|
var updateSuccessUpload = function updateSuccessUpload(cacheKey) {
|
|
212
384
|
return {
|
|
213
|
-
type:
|
|
385
|
+
type: "UPDATE_SUCCESS_UPLOAD",
|
|
214
386
|
payload: {
|
|
215
387
|
cacheKey: cacheKey
|
|
216
388
|
}
|
|
@@ -218,7 +390,7 @@ var updateSuccessUpload = function updateSuccessUpload(cacheKey) {
|
|
|
218
390
|
};
|
|
219
391
|
var updateErrorUpload = function updateErrorUpload(cacheKey, error) {
|
|
220
392
|
return {
|
|
221
|
-
type:
|
|
393
|
+
type: "UPDATE_ERROR_UPLOAD",
|
|
222
394
|
payload: {
|
|
223
395
|
cacheKey: cacheKey,
|
|
224
396
|
error: error
|
|
@@ -227,7 +399,7 @@ var updateErrorUpload = function updateErrorUpload(cacheKey, error) {
|
|
|
227
399
|
};
|
|
228
400
|
var updateIsAbortedUpload = function updateIsAbortedUpload(cacheKey, isAborted) {
|
|
229
401
|
return {
|
|
230
|
-
type:
|
|
402
|
+
type: "UPDATE_IS_ABORTED_UPLOAD",
|
|
231
403
|
payload: {
|
|
232
404
|
cacheKey: cacheKey,
|
|
233
405
|
isAborted: isAborted
|
|
@@ -236,202 +408,78 @@ var updateIsAbortedUpload = function updateIsAbortedUpload(cacheKey, isAborted)
|
|
|
236
408
|
};
|
|
237
409
|
var removeUploadInstance = function removeUploadInstance(cacheKey) {
|
|
238
410
|
return {
|
|
239
|
-
type:
|
|
411
|
+
type: "REMOVE_UPLOAD_INSTANCE",
|
|
240
412
|
payload: {
|
|
241
413
|
cacheKey: cacheKey
|
|
242
414
|
}
|
|
243
415
|
};
|
|
244
416
|
};
|
|
245
|
-
var
|
|
417
|
+
var updateDefaultOptions = function updateDefaultOptions(defaultOptions) {
|
|
246
418
|
return {
|
|
247
|
-
type:
|
|
248
|
-
payload:
|
|
249
|
-
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
var createOptionHandler = function createOptionHandler(handlers, _ref) {
|
|
253
|
-
var dispatch = _ref.dispatch,
|
|
254
|
-
internalDispatch = _ref.internalDispatch,
|
|
255
|
-
cacheKey = _ref.cacheKey;
|
|
256
|
-
|
|
257
|
-
var onSuccess = function onSuccess() {
|
|
258
|
-
if (cacheKey) {
|
|
259
|
-
dispatch(updateSuccessUpload(cacheKey));
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
if (!cacheKey) {
|
|
263
|
-
internalDispatch(function (internalTusState) {
|
|
264
|
-
return _objectSpread2(_objectSpread2({}, internalTusState), {}, {
|
|
265
|
-
isSuccess: true
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
if (handlers.onSuccess) {
|
|
271
|
-
handlers.onSuccess();
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
var onError = function onError(err) {
|
|
276
|
-
if (cacheKey) {
|
|
277
|
-
dispatch(updateErrorUpload(cacheKey, err));
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
if (!cacheKey) {
|
|
281
|
-
internalDispatch(function (internalTusState) {
|
|
282
|
-
return _objectSpread2(_objectSpread2({}, internalTusState), {}, {
|
|
283
|
-
error: err
|
|
284
|
-
});
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
if (handlers.onError) {
|
|
289
|
-
handlers.onError(err);
|
|
419
|
+
type: "UPDATE_DEFAULT_OPTIONS",
|
|
420
|
+
payload: {
|
|
421
|
+
defaultOptions: defaultOptions
|
|
290
422
|
}
|
|
291
423
|
};
|
|
292
|
-
|
|
293
|
-
return {
|
|
294
|
-
onSuccess: onSuccess,
|
|
295
|
-
onError: onError
|
|
296
|
-
};
|
|
297
424
|
};
|
|
298
|
-
var startOrResumeUpload = function startOrResumeUpload(upload) {
|
|
299
|
-
upload.findPreviousUploads().then(function (previousUploads) {
|
|
300
|
-
if (previousUploads.length) {
|
|
301
|
-
upload.resumeFromPreviousUpload(previousUploads[0]);
|
|
302
|
-
}
|
|
303
425
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
};
|
|
307
|
-
var createUpload = function createUpload(file, options, _ref2) {
|
|
308
|
-
var dispatch = _ref2.dispatch,
|
|
309
|
-
internalDispatch = _ref2.internalDispatch,
|
|
310
|
-
cacheKey = _ref2.cacheKey;
|
|
311
|
-
var upload = new Upload(file, options);
|
|
312
|
-
var originalStart = upload.start.bind(upload);
|
|
313
|
-
var originalAbort = upload.abort.bind(upload);
|
|
426
|
+
var useTusStore = function useTusStore(cacheKey, baseOption) {
|
|
427
|
+
var _tusResult$upload;
|
|
314
428
|
|
|
315
|
-
var
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
429
|
+
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
430
|
+
autoAbort = _useMergeTusOptions.autoAbort,
|
|
431
|
+
autoStart = _useMergeTusOptions.autoStart,
|
|
432
|
+
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
320
433
|
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
};
|
|
434
|
+
var _useTusClientState = useTusClientState(),
|
|
435
|
+
defaultOptions = _useTusClientState.defaultOptions,
|
|
436
|
+
uploads = _useTusClientState.uploads;
|
|
327
437
|
|
|
328
|
-
var
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
};
|
|
438
|
+
var tusClientDispatch = useTusClientDispatch();
|
|
439
|
+
var setUpload = useCallback(function (file) {
|
|
440
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
332
441
|
|
|
333
|
-
|
|
334
|
-
var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
335
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
336
|
-
while (1) {
|
|
337
|
-
switch (_context.prev = _context.next) {
|
|
338
|
-
case 0:
|
|
339
|
-
originalAbort();
|
|
340
|
-
dispatchIsAborted(true);
|
|
442
|
+
var targetOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions(file)), uploadOptions), options);
|
|
341
443
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
return _context.stop();
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
}, _callee);
|
|
348
|
-
}));
|
|
444
|
+
var onSuccess = function onSuccess() {
|
|
445
|
+
var _targetOptions$onSucc;
|
|
349
446
|
|
|
350
|
-
|
|
351
|
-
|
|
447
|
+
tusClientDispatch(updateSuccessUpload(cacheKey));
|
|
448
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
352
449
|
};
|
|
353
|
-
}();
|
|
354
450
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
return upload;
|
|
358
|
-
};
|
|
451
|
+
var onError = function onError(error) {
|
|
452
|
+
var _targetOptions$onErro;
|
|
359
453
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
autoAbort: true,
|
|
363
|
-
autoStart: false
|
|
364
|
-
});
|
|
365
|
-
var initialUseTusState = Object.freeze({
|
|
366
|
-
upload: undefined,
|
|
367
|
-
isSuccess: false,
|
|
368
|
-
isAborted: false,
|
|
369
|
-
error: undefined
|
|
370
|
-
});
|
|
371
|
-
var useTus = function useTus(useTusOptions) {
|
|
372
|
-
var _defaultUseTusOptions = _objectSpread2(_objectSpread2({}, defaultUseTusOptionsValue), useTusOptions || {}),
|
|
373
|
-
cacheKey = _defaultUseTusOptions.cacheKey,
|
|
374
|
-
autoAbort = _defaultUseTusOptions.autoAbort,
|
|
375
|
-
autoStart = _defaultUseTusOptions.autoStart;
|
|
376
|
-
|
|
377
|
-
var _useState = useState(initialUseTusState),
|
|
378
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
379
|
-
internalTusState = _useState2[0],
|
|
380
|
-
setInternalTusState = _useState2[1];
|
|
381
|
-
|
|
382
|
-
var tusClientState = useTusClientState();
|
|
383
|
-
var tusClientDispatch = useTusClientDispatch();
|
|
384
|
-
var tus = tusClientState.tusHandler.getTus;
|
|
385
|
-
var setUpload = useCallback(function (file) {
|
|
386
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
387
|
-
var dispatcher = {
|
|
388
|
-
cacheKey: cacheKey,
|
|
389
|
-
dispatch: tusClientDispatch,
|
|
390
|
-
internalDispatch: setInternalTusState
|
|
454
|
+
tusClientDispatch(updateErrorUpload(cacheKey, error));
|
|
455
|
+
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
391
456
|
};
|
|
392
457
|
|
|
393
|
-
var
|
|
394
|
-
|
|
395
|
-
var _createOptionHandler = createOptionHandler({
|
|
396
|
-
onError: targetOptions.onError,
|
|
397
|
-
onSuccess: targetOptions.onSuccess
|
|
398
|
-
}, dispatcher),
|
|
399
|
-
onSuccess = _createOptionHandler.onSuccess,
|
|
400
|
-
onError = _createOptionHandler.onError;
|
|
401
|
-
|
|
402
|
-
var uploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
458
|
+
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
403
459
|
onSuccess: onSuccess,
|
|
404
460
|
onError: onError
|
|
405
461
|
});
|
|
406
462
|
|
|
407
|
-
var
|
|
463
|
+
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
464
|
+
tusClientDispatch(updateIsAbortedUpload(cacheKey, isAborted));
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
468
|
+
upload = _createUpload.upload;
|
|
408
469
|
|
|
409
470
|
if (autoStart) {
|
|
410
471
|
startOrResumeUpload(upload);
|
|
411
472
|
}
|
|
412
473
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
return;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
setInternalTusState(_objectSpread2(_objectSpread2({}, initialUseTusState), {}, {
|
|
419
|
-
upload: upload
|
|
420
|
-
}));
|
|
421
|
-
}, [tusClientDispatch, cacheKey, tus, autoStart]);
|
|
474
|
+
tusClientDispatch(insertUploadInstance(cacheKey, upload));
|
|
475
|
+
}, [autoStart, cacheKey, defaultOptions, tusClientDispatch, uploadOptions]);
|
|
422
476
|
var targetTusState = useMemo(function () {
|
|
423
|
-
return
|
|
424
|
-
}, [cacheKey,
|
|
477
|
+
return uploads[cacheKey];
|
|
478
|
+
}, [cacheKey, uploads]);
|
|
425
479
|
var remove = useCallback(function () {
|
|
426
480
|
var _targetTusState$uploa;
|
|
427
481
|
|
|
428
482
|
targetTusState === null || targetTusState === void 0 ? void 0 : (_targetTusState$uploa = targetTusState.upload) === null || _targetTusState$uploa === void 0 ? void 0 : _targetTusState$uploa.abort();
|
|
429
|
-
|
|
430
|
-
if (!cacheKey) {
|
|
431
|
-
setInternalTusState(initialUseTusState);
|
|
432
|
-
return;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
483
|
tusClientDispatch(removeUploadInstance(cacheKey));
|
|
436
484
|
}, [targetTusState, tusClientDispatch, cacheKey]);
|
|
437
485
|
var tusResult = useMemo(function () {
|
|
@@ -446,80 +494,13 @@ var useTus = function useTus(useTusOptions) {
|
|
|
446
494
|
remove: remove
|
|
447
495
|
};
|
|
448
496
|
}, [targetTusState, setUpload, remove]);
|
|
449
|
-
|
|
450
|
-
var abortUploading = function () {
|
|
451
|
-
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
452
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
453
|
-
while (1) {
|
|
454
|
-
switch (_context.prev = _context.next) {
|
|
455
|
-
case 0:
|
|
456
|
-
if (tusResult.upload) {
|
|
457
|
-
_context.next = 2;
|
|
458
|
-
break;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
return _context.abrupt("return");
|
|
462
|
-
|
|
463
|
-
case 2:
|
|
464
|
-
_context.next = 4;
|
|
465
|
-
return tusResult.upload.abort();
|
|
466
|
-
|
|
467
|
-
case 4:
|
|
468
|
-
case "end":
|
|
469
|
-
return _context.stop();
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
}, _callee);
|
|
473
|
-
}));
|
|
474
|
-
|
|
475
|
-
return function abortUploading() {
|
|
476
|
-
return _ref.apply(this, arguments);
|
|
477
|
-
};
|
|
478
|
-
}();
|
|
479
|
-
|
|
480
|
-
return function () {
|
|
481
|
-
if (!autoAbort) {
|
|
482
|
-
return;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
abortUploading();
|
|
486
|
-
};
|
|
487
|
-
}, [autoAbort, tusResult.upload]);
|
|
497
|
+
useAutoAbort(tusResult.upload, (_tusResult$upload = tusResult.upload) === null || _tusResult$upload === void 0 ? void 0 : _tusResult$upload.abort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
488
498
|
return tusResult;
|
|
489
499
|
};
|
|
490
500
|
|
|
491
|
-
var initialDefaultOptions = function initialDefaultOptions() {
|
|
492
|
-
return tus.defaultOptions;
|
|
493
|
-
};
|
|
494
|
-
var TusHandler = function () {
|
|
495
|
-
function TusHandler(tusConfigs) {
|
|
496
|
-
_classCallCheck(this, TusHandler);
|
|
497
|
-
|
|
498
|
-
var _ref = tusConfigs || {},
|
|
499
|
-
_ref$canStoreURLs = _ref.canStoreURLs,
|
|
500
|
-
canStoreURLs = _ref$canStoreURLs === void 0 ? tus.canStoreURLs : _ref$canStoreURLs,
|
|
501
|
-
_ref$defaultOptions = _ref.defaultOptions,
|
|
502
|
-
defaultOptions = _ref$defaultOptions === void 0 ? initialDefaultOptions : _ref$defaultOptions;
|
|
503
|
-
|
|
504
|
-
this.tus = _objectSpread2(_objectSpread2({}, tus), {}, {
|
|
505
|
-
canStoreURLs: canStoreURLs,
|
|
506
|
-
defaultOptions: defaultOptions
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
_createClass(TusHandler, [{
|
|
511
|
-
key: "getTus",
|
|
512
|
-
get: function get() {
|
|
513
|
-
return this.tus;
|
|
514
|
-
}
|
|
515
|
-
}]);
|
|
516
|
-
|
|
517
|
-
return TusHandler;
|
|
518
|
-
}();
|
|
519
|
-
|
|
520
501
|
var tusClientReducer = function tusClientReducer(state, actions) {
|
|
521
502
|
switch (actions.type) {
|
|
522
|
-
case
|
|
503
|
+
case "INSERT_UPLOAD_INSTANCE":
|
|
523
504
|
{
|
|
524
505
|
var _actions$payload = actions.payload,
|
|
525
506
|
_cacheKey = _actions$payload.cacheKey,
|
|
@@ -529,7 +510,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
529
510
|
});
|
|
530
511
|
}
|
|
531
512
|
|
|
532
|
-
case
|
|
513
|
+
case "UPDATE_SUCCESS_UPLOAD":
|
|
533
514
|
{
|
|
534
515
|
var _cacheKey2 = actions.payload.cacheKey;
|
|
535
516
|
var target = state.uploads[_cacheKey2];
|
|
@@ -545,7 +526,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
545
526
|
});
|
|
546
527
|
}
|
|
547
528
|
|
|
548
|
-
case
|
|
529
|
+
case "UPDATE_ERROR_UPLOAD":
|
|
549
530
|
{
|
|
550
531
|
var _actions$payload2 = actions.payload,
|
|
551
532
|
_cacheKey3 = _actions$payload2.cacheKey,
|
|
@@ -563,7 +544,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
563
544
|
});
|
|
564
545
|
}
|
|
565
546
|
|
|
566
|
-
case
|
|
547
|
+
case "UPDATE_IS_ABORTED_UPLOAD":
|
|
567
548
|
{
|
|
568
549
|
var _actions$payload3 = actions.payload,
|
|
569
550
|
_cacheKey4 = _actions$payload3.cacheKey,
|
|
@@ -581,7 +562,7 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
581
562
|
});
|
|
582
563
|
}
|
|
583
564
|
|
|
584
|
-
case
|
|
565
|
+
case "REMOVE_UPLOAD_INSTANCE":
|
|
585
566
|
{
|
|
586
567
|
var _cacheKey5 = actions.payload.cacheKey;
|
|
587
568
|
var newUploads = state.uploads;
|
|
@@ -591,24 +572,11 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
591
572
|
});
|
|
592
573
|
}
|
|
593
574
|
|
|
594
|
-
case
|
|
575
|
+
case "UPDATE_DEFAULT_OPTIONS":
|
|
595
576
|
{
|
|
596
|
-
|
|
597
|
-
tusHandler: new TusHandler(),
|
|
598
|
-
uploads: {}
|
|
599
|
-
};
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
case 'UPDATE_TUS_HANDLER_OPTIONS':
|
|
603
|
-
{
|
|
604
|
-
var _actions$payload4 = actions.payload,
|
|
605
|
-
canStoreURLs = _actions$payload4.canStoreURLs,
|
|
606
|
-
defaultOptions = _actions$payload4.defaultOptions;
|
|
577
|
+
var defaultOptions = actions.payload.defaultOptions;
|
|
607
578
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
608
|
-
|
|
609
|
-
canStoreURLs: canStoreURLs,
|
|
610
|
-
defaultOptions: defaultOptions
|
|
611
|
-
})
|
|
579
|
+
defaultOptions: defaultOptions
|
|
612
580
|
});
|
|
613
581
|
}
|
|
614
582
|
|
|
@@ -618,65 +586,40 @@ var tusClientReducer = function tusClientReducer(state, actions) {
|
|
|
618
586
|
};
|
|
619
587
|
var tusClientInitialState = {
|
|
620
588
|
uploads: {},
|
|
621
|
-
|
|
589
|
+
defaultOptions: undefined
|
|
622
590
|
};
|
|
623
591
|
|
|
624
|
-
var
|
|
625
|
-
var
|
|
626
|
-
_ref$defaultOptions = _ref.defaultOptions,
|
|
627
|
-
defaultOptions = _ref$defaultOptions === void 0 ? initialDefaultOptions : _ref$defaultOptions,
|
|
592
|
+
var TusClientProvider = function TusClientProvider(_ref) {
|
|
593
|
+
var defaultOptions = _ref.defaultOptions,
|
|
628
594
|
children = _ref.children;
|
|
629
595
|
|
|
630
|
-
var
|
|
631
|
-
|
|
596
|
+
var _useReducer = useReducer(tusClientReducer, _objectSpread2(_objectSpread2({}, tusClientInitialState), {}, {
|
|
597
|
+
defaultOptions: defaultOptions
|
|
598
|
+
})),
|
|
599
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
600
|
+
tusClientState = _useReducer2[0],
|
|
601
|
+
tusClientDispatch = _useReducer2[1];
|
|
632
602
|
|
|
633
|
-
var tus = tusHandler.getTus;
|
|
634
|
-
var tusClientDispatch = useTusClientDispatch();
|
|
635
603
|
useEffect(function () {
|
|
636
|
-
if (
|
|
604
|
+
if (isSupported || process.env.NODE_ENV === "production") {
|
|
637
605
|
return;
|
|
638
606
|
}
|
|
639
607
|
|
|
640
608
|
console.error(ERROR_MESSAGES.tusIsNotSupported);
|
|
641
|
-
}, [
|
|
609
|
+
}, []);
|
|
642
610
|
useEffect(function () {
|
|
643
|
-
if (
|
|
611
|
+
if (tusClientState.defaultOptions === defaultOptions) {
|
|
644
612
|
return;
|
|
645
613
|
}
|
|
646
614
|
|
|
647
|
-
tusClientDispatch(
|
|
648
|
-
|
|
649
|
-
defaultOptions: defaultOptions
|
|
650
|
-
}));
|
|
651
|
-
}, [tusClientDispatch, canStoreURLs, defaultOptions, tus.canStoreURLs, tus.defaultOptions]);
|
|
652
|
-
return createElement(Fragment, {}, children);
|
|
653
|
-
};
|
|
654
|
-
|
|
655
|
-
var TusClientProvider = function TusClientProvider(_ref) {
|
|
656
|
-
var canStoreURLs = _ref.canStoreURLs,
|
|
657
|
-
defaultOptions = _ref.defaultOptions,
|
|
658
|
-
children = _ref.children;
|
|
659
|
-
|
|
660
|
-
var _useReducer = useReducer(tusClientReducer, _objectSpread2(_objectSpread2({}, tusClientInitialState), {}, {
|
|
661
|
-
tusHandler: new TusHandler({
|
|
662
|
-
canStoreURLs: canStoreURLs,
|
|
663
|
-
defaultOptions: defaultOptions
|
|
664
|
-
})
|
|
665
|
-
})),
|
|
666
|
-
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
667
|
-
tusClientState = _useReducer2[0],
|
|
668
|
-
tusClientDispatch = _useReducer2[1];
|
|
669
|
-
|
|
670
|
-
var tusControllerElement = createElement(TusController, {
|
|
671
|
-
canStoreURLs: canStoreURLs,
|
|
672
|
-
defaultOptions: defaultOptions
|
|
673
|
-
}, children);
|
|
615
|
+
tusClientDispatch(updateDefaultOptions(defaultOptions));
|
|
616
|
+
}, [defaultOptions, tusClientState.defaultOptions]);
|
|
674
617
|
var tusClientDispatchContextProviderElement = createElement(TusClientDispatchContext.Provider, {
|
|
675
618
|
value: tusClientDispatch
|
|
676
|
-
},
|
|
619
|
+
}, children);
|
|
677
620
|
return createElement(TusClientStateContext.Provider, {
|
|
678
621
|
value: tusClientState
|
|
679
622
|
}, tusClientDispatchContextProviderElement);
|
|
680
623
|
};
|
|
681
624
|
|
|
682
|
-
export { TusClientProvider, useTus };
|
|
625
|
+
export { TusClientProvider, useTus, useTusStore };
|