use-tus 0.7.1 → 0.7.3
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/dist/TusClientProvider/TusClientProvider.d.ts +1 -1
- package/dist/TusClientProvider/store/tucClientActions.d.ts +1 -1
- package/dist/TusClientProvider/store/tusClientReducer.d.ts +2 -2
- package/dist/TusClientProvider/types.d.ts +1 -1
- package/dist/__stories__/Basic.stories.d.ts +5 -3
- package/dist/__stories__/components/BasicButton/BasicButton.d.ts +3 -3
- package/dist/__stories__/components/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/__tests__/utils/mock.d.ts +2 -8
- package/dist/index.cjs.js +1 -631
- package/dist/index.esm.js +1 -625
- package/dist/index.js +1 -3
- package/dist/useTus/utils/createUpload.d.ts +1 -1
- package/package.json +43 -47
- package/dist/__stories__/CacheKey.stories.d.ts +0 -5
- package/dist/__stories__/DefaultOptions.stories.d.ts +0 -5
package/dist/index.cjs.js
CHANGED
|
@@ -1,631 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var react = require('react');
|
|
6
|
-
var tusJsClient = require('tus-js-client');
|
|
7
|
-
|
|
8
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
9
|
-
try {
|
|
10
|
-
var info = gen[key](arg);
|
|
11
|
-
var value = info.value;
|
|
12
|
-
} catch (error) {
|
|
13
|
-
reject(error);
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
if (info.done) {
|
|
18
|
-
resolve(value);
|
|
19
|
-
} else {
|
|
20
|
-
Promise.resolve(value).then(_next, _throw);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function _asyncToGenerator(fn) {
|
|
25
|
-
return function () {
|
|
26
|
-
var self = this,
|
|
27
|
-
args = arguments;
|
|
28
|
-
return new Promise(function (resolve, reject) {
|
|
29
|
-
var gen = fn.apply(self, args);
|
|
30
|
-
|
|
31
|
-
function _next(value) {
|
|
32
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function _throw(err) {
|
|
36
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
_next(undefined);
|
|
40
|
-
});
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function _defineProperty(obj, key, value) {
|
|
45
|
-
if (key in obj) {
|
|
46
|
-
Object.defineProperty(obj, key, {
|
|
47
|
-
value: value,
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true
|
|
51
|
-
});
|
|
52
|
-
} else {
|
|
53
|
-
obj[key] = value;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return obj;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function ownKeys(object, enumerableOnly) {
|
|
60
|
-
var keys = Object.keys(object);
|
|
61
|
-
|
|
62
|
-
if (Object.getOwnPropertySymbols) {
|
|
63
|
-
var symbols = Object.getOwnPropertySymbols(object);
|
|
64
|
-
if (enumerableOnly) symbols = symbols.filter(function (sym) {
|
|
65
|
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
66
|
-
});
|
|
67
|
-
keys.push.apply(keys, symbols);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return keys;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
function _objectSpread2(target) {
|
|
74
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
75
|
-
var source = arguments[i] != null ? arguments[i] : {};
|
|
76
|
-
|
|
77
|
-
if (i % 2) {
|
|
78
|
-
ownKeys(Object(source), true).forEach(function (key) {
|
|
79
|
-
_defineProperty(target, key, source[key]);
|
|
80
|
-
});
|
|
81
|
-
} else if (Object.getOwnPropertyDescriptors) {
|
|
82
|
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
83
|
-
} else {
|
|
84
|
-
ownKeys(Object(source)).forEach(function (key) {
|
|
85
|
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return target;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function _slicedToArray(arr, i) {
|
|
94
|
-
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function _arrayWithHoles(arr) {
|
|
98
|
-
if (Array.isArray(arr)) return arr;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
function _iterableToArrayLimit(arr, i) {
|
|
102
|
-
if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
|
|
103
|
-
var _arr = [];
|
|
104
|
-
var _n = true;
|
|
105
|
-
var _d = false;
|
|
106
|
-
var _e = undefined;
|
|
107
|
-
|
|
108
|
-
try {
|
|
109
|
-
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
|
110
|
-
_arr.push(_s.value);
|
|
111
|
-
|
|
112
|
-
if (i && _arr.length === i) break;
|
|
113
|
-
}
|
|
114
|
-
} catch (err) {
|
|
115
|
-
_d = true;
|
|
116
|
-
_e = err;
|
|
117
|
-
} finally {
|
|
118
|
-
try {
|
|
119
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
120
|
-
} finally {
|
|
121
|
-
if (_d) throw _e;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return _arr;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
129
|
-
if (!o) return;
|
|
130
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
131
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
132
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
133
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
|
134
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function _arrayLikeToArray(arr, len) {
|
|
138
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
139
|
-
|
|
140
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
141
|
-
|
|
142
|
-
return arr2;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function _nonIterableRest() {
|
|
146
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
var createUpload = function createUpload(file, options, dispatchIsAborted) {
|
|
150
|
-
var upload = new tusJsClient.Upload(file, options);
|
|
151
|
-
var originalStart = upload.start.bind(upload);
|
|
152
|
-
var originalAbort = upload.abort.bind(upload);
|
|
153
|
-
|
|
154
|
-
var start = function start() {
|
|
155
|
-
originalStart();
|
|
156
|
-
dispatchIsAborted(false);
|
|
157
|
-
};
|
|
158
|
-
|
|
159
|
-
var abort = function () {
|
|
160
|
-
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
161
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
162
|
-
while (1) {
|
|
163
|
-
switch (_context.prev = _context.next) {
|
|
164
|
-
case 0:
|
|
165
|
-
originalAbort();
|
|
166
|
-
dispatchIsAborted(true);
|
|
167
|
-
|
|
168
|
-
case 2:
|
|
169
|
-
case "end":
|
|
170
|
-
return _context.stop();
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}, _callee);
|
|
174
|
-
}));
|
|
175
|
-
|
|
176
|
-
return function abort() {
|
|
177
|
-
return _ref.apply(this, arguments);
|
|
178
|
-
};
|
|
179
|
-
}();
|
|
180
|
-
|
|
181
|
-
upload.start = start;
|
|
182
|
-
upload.abort = abort;
|
|
183
|
-
return {
|
|
184
|
-
upload: upload,
|
|
185
|
-
originalStart: originalStart,
|
|
186
|
-
originalAbort: originalAbort
|
|
187
|
-
};
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
var startOrResumeUpload = function startOrResumeUpload(upload) {
|
|
191
|
-
upload.findPreviousUploads().then(function (previousUploads) {
|
|
192
|
-
if (previousUploads.length) {
|
|
193
|
-
upload.resumeFromPreviousUpload(previousUploads[0]);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
upload.start();
|
|
197
|
-
});
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
var useAutoAbort = function useAutoAbort(upload, abort, autoAbort) {
|
|
201
|
-
react.useEffect(function () {
|
|
202
|
-
var abortUploading = function () {
|
|
203
|
-
var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee() {
|
|
204
|
-
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
205
|
-
while (1) {
|
|
206
|
-
switch (_context.prev = _context.next) {
|
|
207
|
-
case 0:
|
|
208
|
-
if (!(!upload || !abort)) {
|
|
209
|
-
_context.next = 2;
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
return _context.abrupt("return");
|
|
214
|
-
|
|
215
|
-
case 2:
|
|
216
|
-
_context.next = 4;
|
|
217
|
-
return abort();
|
|
218
|
-
|
|
219
|
-
case 4:
|
|
220
|
-
case "end":
|
|
221
|
-
return _context.stop();
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}, _callee);
|
|
225
|
-
}));
|
|
226
|
-
|
|
227
|
-
return function abortUploading() {
|
|
228
|
-
return _ref.apply(this, arguments);
|
|
229
|
-
};
|
|
230
|
-
}();
|
|
231
|
-
|
|
232
|
-
return function () {
|
|
233
|
-
if (!autoAbort) {
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
abortUploading();
|
|
238
|
-
};
|
|
239
|
-
}, [autoAbort, upload]);
|
|
240
|
-
};
|
|
241
|
-
|
|
242
|
-
var defaultUseTusOptionsValue = Object.freeze({
|
|
243
|
-
autoAbort: true,
|
|
244
|
-
autoStart: false
|
|
245
|
-
});
|
|
246
|
-
var useMergeTusOptions = function useMergeTusOptions(options) {
|
|
247
|
-
return react.useMemo(function () {
|
|
248
|
-
return _objectSpread2(_objectSpread2({}, defaultUseTusOptionsValue), options || {});
|
|
249
|
-
}, [options]);
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
var initialUseTusState = Object.freeze({
|
|
253
|
-
upload: undefined,
|
|
254
|
-
isSuccess: false,
|
|
255
|
-
isAborted: false,
|
|
256
|
-
error: undefined,
|
|
257
|
-
originalAbort: undefined
|
|
258
|
-
});
|
|
259
|
-
var useTus = function useTus(baseOption) {
|
|
260
|
-
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
261
|
-
autoAbort = _useMergeTusOptions.autoAbort,
|
|
262
|
-
autoStart = _useMergeTusOptions.autoStart,
|
|
263
|
-
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
264
|
-
|
|
265
|
-
var _useState = react.useState(initialUseTusState),
|
|
266
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
267
|
-
tusState = _useState2[0],
|
|
268
|
-
setTusState = _useState2[1];
|
|
269
|
-
|
|
270
|
-
var updateTusState = react.useCallback(function (newOptions) {
|
|
271
|
-
setTusState(function (tus) {
|
|
272
|
-
return _objectSpread2(_objectSpread2({}, tus), newOptions);
|
|
273
|
-
});
|
|
274
|
-
}, []);
|
|
275
|
-
var setUpload = react.useCallback(function (file) {
|
|
276
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
277
|
-
|
|
278
|
-
var targetOptions = _objectSpread2(_objectSpread2({}, uploadOptions), options);
|
|
279
|
-
|
|
280
|
-
var onSuccess = function onSuccess() {
|
|
281
|
-
var _targetOptions$onSucc;
|
|
282
|
-
|
|
283
|
-
updateTusState({
|
|
284
|
-
isSuccess: true
|
|
285
|
-
});
|
|
286
|
-
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
var onError = function onError(error) {
|
|
290
|
-
var _targetOptions$onErro;
|
|
291
|
-
|
|
292
|
-
updateTusState({
|
|
293
|
-
error: error
|
|
294
|
-
});
|
|
295
|
-
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
296
|
-
};
|
|
297
|
-
|
|
298
|
-
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
299
|
-
onSuccess: onSuccess,
|
|
300
|
-
onError: onError
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
304
|
-
updateTusState({
|
|
305
|
-
isAborted: isAborted
|
|
306
|
-
});
|
|
307
|
-
};
|
|
308
|
-
|
|
309
|
-
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
310
|
-
upload = _createUpload.upload,
|
|
311
|
-
originalAbort = _createUpload.originalAbort;
|
|
312
|
-
|
|
313
|
-
if (autoStart) {
|
|
314
|
-
startOrResumeUpload(upload);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
updateTusState(_objectSpread2(_objectSpread2({}, initialUseTusState), {}, {
|
|
318
|
-
upload: upload,
|
|
319
|
-
originalAbort: originalAbort
|
|
320
|
-
}));
|
|
321
|
-
}, [autoStart, updateTusState, uploadOptions]);
|
|
322
|
-
var remove = react.useCallback(function () {
|
|
323
|
-
var _tusState$originalAbo;
|
|
324
|
-
|
|
325
|
-
tusState === null || tusState === void 0 ? void 0 : (_tusState$originalAbo = tusState.originalAbort) === null || _tusState$originalAbo === void 0 ? void 0 : _tusState$originalAbo.call(tusState);
|
|
326
|
-
setTusState(initialUseTusState);
|
|
327
|
-
}, [tusState]);
|
|
328
|
-
var tusResult = react.useMemo(function () {
|
|
329
|
-
var _tusState$isSuccess, _tusState$isAborted;
|
|
330
|
-
|
|
331
|
-
return {
|
|
332
|
-
upload: tusState === null || tusState === void 0 ? void 0 : tusState.upload,
|
|
333
|
-
isSuccess: (_tusState$isSuccess = tusState === null || tusState === void 0 ? void 0 : tusState.isSuccess) !== null && _tusState$isSuccess !== void 0 ? _tusState$isSuccess : false,
|
|
334
|
-
error: tusState === null || tusState === void 0 ? void 0 : tusState.error,
|
|
335
|
-
isAborted: (_tusState$isAborted = tusState === null || tusState === void 0 ? void 0 : tusState.isAborted) !== null && _tusState$isAborted !== void 0 ? _tusState$isAborted : false,
|
|
336
|
-
setUpload: setUpload,
|
|
337
|
-
remove: remove
|
|
338
|
-
};
|
|
339
|
-
}, [tusState, setUpload, remove]);
|
|
340
|
-
useAutoAbort(tusResult.upload, tusState.originalAbort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
341
|
-
return tusResult;
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
var ERROR_MESSAGES = {
|
|
345
|
-
tusClientHasNotFounded: "No TusClient set, use TusClientProvider to set one",
|
|
346
|
-
tusIsNotSupported: "This browser does not support uploads. Please use a modern browser instead."
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
var TusClientStateContext = react.createContext(undefined);
|
|
350
|
-
var TusClientDispatchContext = react.createContext(undefined);
|
|
351
|
-
var useTusClientState = function useTusClientState() {
|
|
352
|
-
var tusClientState = react.useContext(TusClientStateContext);
|
|
353
|
-
|
|
354
|
-
if (!tusClientState && process.env.NODE_ENV !== "production") {
|
|
355
|
-
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
return react.useMemo(function () {
|
|
359
|
-
return tusClientState;
|
|
360
|
-
}, [tusClientState]);
|
|
361
|
-
};
|
|
362
|
-
var useTusClientDispatch = function useTusClientDispatch() {
|
|
363
|
-
var tusClientDispatch = react.useContext(TusClientDispatchContext);
|
|
364
|
-
|
|
365
|
-
if (!tusClientDispatch && process.env.NODE_ENV !== "production") {
|
|
366
|
-
throw new Error(ERROR_MESSAGES.tusClientHasNotFounded);
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
return react.useMemo(function () {
|
|
370
|
-
return tusClientDispatch;
|
|
371
|
-
}, [tusClientDispatch]);
|
|
372
|
-
};
|
|
373
|
-
|
|
374
|
-
var insertUploadInstance = function insertUploadInstance(cacheKey, upload) {
|
|
375
|
-
return {
|
|
376
|
-
type: "INSERT_UPLOAD_INSTANCE",
|
|
377
|
-
payload: {
|
|
378
|
-
cacheKey: cacheKey,
|
|
379
|
-
uploadState: {
|
|
380
|
-
upload: upload,
|
|
381
|
-
isSuccess: false,
|
|
382
|
-
isAborted: false
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
};
|
|
386
|
-
};
|
|
387
|
-
var updateSuccessUpload = function updateSuccessUpload(cacheKey) {
|
|
388
|
-
return {
|
|
389
|
-
type: "UPDATE_SUCCESS_UPLOAD",
|
|
390
|
-
payload: {
|
|
391
|
-
cacheKey: cacheKey
|
|
392
|
-
}
|
|
393
|
-
};
|
|
394
|
-
};
|
|
395
|
-
var updateErrorUpload = function updateErrorUpload(cacheKey, error) {
|
|
396
|
-
return {
|
|
397
|
-
type: "UPDATE_ERROR_UPLOAD",
|
|
398
|
-
payload: {
|
|
399
|
-
cacheKey: cacheKey,
|
|
400
|
-
error: error
|
|
401
|
-
}
|
|
402
|
-
};
|
|
403
|
-
};
|
|
404
|
-
var updateIsAbortedUpload = function updateIsAbortedUpload(cacheKey, isAborted) {
|
|
405
|
-
return {
|
|
406
|
-
type: "UPDATE_IS_ABORTED_UPLOAD",
|
|
407
|
-
payload: {
|
|
408
|
-
cacheKey: cacheKey,
|
|
409
|
-
isAborted: isAborted
|
|
410
|
-
}
|
|
411
|
-
};
|
|
412
|
-
};
|
|
413
|
-
var removeUploadInstance = function removeUploadInstance(cacheKey) {
|
|
414
|
-
return {
|
|
415
|
-
type: "REMOVE_UPLOAD_INSTANCE",
|
|
416
|
-
payload: {
|
|
417
|
-
cacheKey: cacheKey
|
|
418
|
-
}
|
|
419
|
-
};
|
|
420
|
-
};
|
|
421
|
-
var updateDefaultOptions = function updateDefaultOptions(defaultOptions) {
|
|
422
|
-
return {
|
|
423
|
-
type: "UPDATE_DEFAULT_OPTIONS",
|
|
424
|
-
payload: {
|
|
425
|
-
defaultOptions: defaultOptions
|
|
426
|
-
}
|
|
427
|
-
};
|
|
428
|
-
};
|
|
429
|
-
|
|
430
|
-
var useTusStore = function useTusStore(cacheKey, baseOption) {
|
|
431
|
-
var _tusResult$upload;
|
|
432
|
-
|
|
433
|
-
var _useMergeTusOptions = useMergeTusOptions(baseOption),
|
|
434
|
-
autoAbort = _useMergeTusOptions.autoAbort,
|
|
435
|
-
autoStart = _useMergeTusOptions.autoStart,
|
|
436
|
-
uploadOptions = _useMergeTusOptions.uploadOptions;
|
|
437
|
-
|
|
438
|
-
var _useTusClientState = useTusClientState(),
|
|
439
|
-
defaultOptions = _useTusClientState.defaultOptions,
|
|
440
|
-
uploads = _useTusClientState.uploads;
|
|
441
|
-
|
|
442
|
-
var tusClientDispatch = useTusClientDispatch();
|
|
443
|
-
var setUpload = react.useCallback(function (file) {
|
|
444
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
445
|
-
|
|
446
|
-
var targetOptions = _objectSpread2(_objectSpread2(_objectSpread2({}, defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions(file)), uploadOptions), options);
|
|
447
|
-
|
|
448
|
-
var onSuccess = function onSuccess() {
|
|
449
|
-
var _targetOptions$onSucc;
|
|
450
|
-
|
|
451
|
-
tusClientDispatch(updateSuccessUpload(cacheKey));
|
|
452
|
-
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onSucc = targetOptions.onSuccess) === null || _targetOptions$onSucc === void 0 ? void 0 : _targetOptions$onSucc.call(targetOptions);
|
|
453
|
-
};
|
|
454
|
-
|
|
455
|
-
var onError = function onError(error) {
|
|
456
|
-
var _targetOptions$onErro;
|
|
457
|
-
|
|
458
|
-
tusClientDispatch(updateErrorUpload(cacheKey, error));
|
|
459
|
-
targetOptions === null || targetOptions === void 0 ? void 0 : (_targetOptions$onErro = targetOptions.onError) === null || _targetOptions$onErro === void 0 ? void 0 : _targetOptions$onErro.call(targetOptions, error);
|
|
460
|
-
};
|
|
461
|
-
|
|
462
|
-
var mergedUploadOptions = _objectSpread2(_objectSpread2({}, targetOptions), {}, {
|
|
463
|
-
onSuccess: onSuccess,
|
|
464
|
-
onError: onError
|
|
465
|
-
});
|
|
466
|
-
|
|
467
|
-
var dispatchIsAborted = function dispatchIsAborted(isAborted) {
|
|
468
|
-
tusClientDispatch(updateIsAbortedUpload(cacheKey, isAborted));
|
|
469
|
-
};
|
|
470
|
-
|
|
471
|
-
var _createUpload = createUpload(file, mergedUploadOptions, dispatchIsAborted),
|
|
472
|
-
upload = _createUpload.upload;
|
|
473
|
-
|
|
474
|
-
if (autoStart) {
|
|
475
|
-
startOrResumeUpload(upload);
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
tusClientDispatch(insertUploadInstance(cacheKey, upload));
|
|
479
|
-
}, [autoStart, cacheKey, defaultOptions, tusClientDispatch, uploadOptions]);
|
|
480
|
-
var targetTusState = react.useMemo(function () {
|
|
481
|
-
return uploads[cacheKey];
|
|
482
|
-
}, [cacheKey, uploads]);
|
|
483
|
-
var remove = react.useCallback(function () {
|
|
484
|
-
var _targetTusState$uploa;
|
|
485
|
-
|
|
486
|
-
targetTusState === null || targetTusState === void 0 ? void 0 : (_targetTusState$uploa = targetTusState.upload) === null || _targetTusState$uploa === void 0 ? void 0 : _targetTusState$uploa.abort();
|
|
487
|
-
tusClientDispatch(removeUploadInstance(cacheKey));
|
|
488
|
-
}, [targetTusState, tusClientDispatch, cacheKey]);
|
|
489
|
-
var tusResult = react.useMemo(function () {
|
|
490
|
-
var _targetTusState$isSuc, _targetTusState$isAbo;
|
|
491
|
-
|
|
492
|
-
return {
|
|
493
|
-
upload: targetTusState === null || targetTusState === void 0 ? void 0 : targetTusState.upload,
|
|
494
|
-
isSuccess: (_targetTusState$isSuc = targetTusState === null || targetTusState === void 0 ? void 0 : targetTusState.isSuccess) !== null && _targetTusState$isSuc !== void 0 ? _targetTusState$isSuc : false,
|
|
495
|
-
error: targetTusState === null || targetTusState === void 0 ? void 0 : targetTusState.error,
|
|
496
|
-
isAborted: (_targetTusState$isAbo = targetTusState === null || targetTusState === void 0 ? void 0 : targetTusState.isAborted) !== null && _targetTusState$isAbo !== void 0 ? _targetTusState$isAbo : false,
|
|
497
|
-
setUpload: setUpload,
|
|
498
|
-
remove: remove
|
|
499
|
-
};
|
|
500
|
-
}, [targetTusState, setUpload, remove]);
|
|
501
|
-
useAutoAbort(tusResult.upload, (_tusResult$upload = tusResult.upload) === null || _tusResult$upload === void 0 ? void 0 : _tusResult$upload.abort, autoAbort !== null && autoAbort !== void 0 ? autoAbort : false);
|
|
502
|
-
return tusResult;
|
|
503
|
-
};
|
|
504
|
-
|
|
505
|
-
var tusClientReducer = function tusClientReducer(state, actions) {
|
|
506
|
-
switch (actions.type) {
|
|
507
|
-
case "INSERT_UPLOAD_INSTANCE":
|
|
508
|
-
{
|
|
509
|
-
var _actions$payload = actions.payload,
|
|
510
|
-
_cacheKey = _actions$payload.cacheKey,
|
|
511
|
-
uploadState = _actions$payload.uploadState;
|
|
512
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
513
|
-
uploads: _objectSpread2(_objectSpread2({}, state.uploads), {}, _defineProperty({}, _cacheKey, uploadState))
|
|
514
|
-
});
|
|
515
|
-
}
|
|
516
|
-
|
|
517
|
-
case "UPDATE_SUCCESS_UPLOAD":
|
|
518
|
-
{
|
|
519
|
-
var _cacheKey2 = actions.payload.cacheKey;
|
|
520
|
-
var target = state.uploads[_cacheKey2];
|
|
521
|
-
|
|
522
|
-
if (!target) {
|
|
523
|
-
return state;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
527
|
-
uploads: _objectSpread2(_objectSpread2({}, state.uploads), {}, _defineProperty({}, _cacheKey2, _objectSpread2(_objectSpread2({}, target || {}), {}, {
|
|
528
|
-
isSuccess: true
|
|
529
|
-
})))
|
|
530
|
-
});
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
case "UPDATE_ERROR_UPLOAD":
|
|
534
|
-
{
|
|
535
|
-
var _actions$payload2 = actions.payload,
|
|
536
|
-
_cacheKey3 = _actions$payload2.cacheKey,
|
|
537
|
-
error = _actions$payload2.error;
|
|
538
|
-
var _target = state.uploads[_cacheKey3];
|
|
539
|
-
|
|
540
|
-
if (!_target) {
|
|
541
|
-
return state;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
545
|
-
uploads: _objectSpread2(_objectSpread2({}, state.uploads), {}, _defineProperty({}, _cacheKey3, _objectSpread2(_objectSpread2({}, _target), {}, {
|
|
546
|
-
error: error
|
|
547
|
-
})))
|
|
548
|
-
});
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
case "UPDATE_IS_ABORTED_UPLOAD":
|
|
552
|
-
{
|
|
553
|
-
var _actions$payload3 = actions.payload,
|
|
554
|
-
_cacheKey4 = _actions$payload3.cacheKey,
|
|
555
|
-
isAborted = _actions$payload3.isAborted;
|
|
556
|
-
var _target2 = state.uploads[_cacheKey4];
|
|
557
|
-
|
|
558
|
-
if (!_target2) {
|
|
559
|
-
return state;
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
563
|
-
uploads: _objectSpread2(_objectSpread2({}, state.uploads), {}, _defineProperty({}, _cacheKey4, _objectSpread2(_objectSpread2({}, _target2), {}, {
|
|
564
|
-
isAborted: isAborted
|
|
565
|
-
})))
|
|
566
|
-
});
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
case "REMOVE_UPLOAD_INSTANCE":
|
|
570
|
-
{
|
|
571
|
-
var _cacheKey5 = actions.payload.cacheKey;
|
|
572
|
-
var newUploads = state.uploads;
|
|
573
|
-
delete newUploads[_cacheKey5];
|
|
574
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
575
|
-
uploads: newUploads
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
case "UPDATE_DEFAULT_OPTIONS":
|
|
580
|
-
{
|
|
581
|
-
var defaultOptions = actions.payload.defaultOptions;
|
|
582
|
-
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
583
|
-
defaultOptions: defaultOptions
|
|
584
|
-
});
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
default:
|
|
588
|
-
return state;
|
|
589
|
-
}
|
|
590
|
-
};
|
|
591
|
-
var tusClientInitialState = {
|
|
592
|
-
uploads: {},
|
|
593
|
-
defaultOptions: undefined
|
|
594
|
-
};
|
|
595
|
-
|
|
596
|
-
var TusClientProvider = function TusClientProvider(_ref) {
|
|
597
|
-
var defaultOptions = _ref.defaultOptions,
|
|
598
|
-
children = _ref.children;
|
|
599
|
-
|
|
600
|
-
var _useReducer = react.useReducer(tusClientReducer, _objectSpread2(_objectSpread2({}, tusClientInitialState), {}, {
|
|
601
|
-
defaultOptions: defaultOptions
|
|
602
|
-
})),
|
|
603
|
-
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
604
|
-
tusClientState = _useReducer2[0],
|
|
605
|
-
tusClientDispatch = _useReducer2[1];
|
|
606
|
-
|
|
607
|
-
react.useEffect(function () {
|
|
608
|
-
if (tusJsClient.isSupported || process.env.NODE_ENV === "production") {
|
|
609
|
-
return;
|
|
610
|
-
}
|
|
611
|
-
|
|
612
|
-
console.error(ERROR_MESSAGES.tusIsNotSupported);
|
|
613
|
-
}, []);
|
|
614
|
-
react.useEffect(function () {
|
|
615
|
-
if (tusClientState.defaultOptions === defaultOptions) {
|
|
616
|
-
return;
|
|
617
|
-
}
|
|
618
|
-
|
|
619
|
-
tusClientDispatch(updateDefaultOptions(defaultOptions));
|
|
620
|
-
}, [defaultOptions, tusClientState.defaultOptions]);
|
|
621
|
-
var tusClientDispatchContextProviderElement = react.createElement(TusClientDispatchContext.Provider, {
|
|
622
|
-
value: tusClientDispatch
|
|
623
|
-
}, children);
|
|
624
|
-
return react.createElement(TusClientStateContext.Provider, {
|
|
625
|
-
value: tusClientState
|
|
626
|
-
}, tusClientDispatchContextProviderElement);
|
|
627
|
-
};
|
|
628
|
-
|
|
629
|
-
exports.TusClientProvider = TusClientProvider;
|
|
630
|
-
exports.useTus = useTus;
|
|
631
|
-
exports.useTusStore = useTusStore;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var a=require("react"),_=require("tus-js-client");const P=(e,s,t)=>{const o=new _.Upload(e,s),r=o.start.bind(o),c=o.abort.bind(o),n=()=>{r(),t(!1)},u=async()=>{c(),t(!0)};return o.start=n,o.abort=u,{upload:o,originalStart:r,originalAbort:c}},D=e=>{e.findPreviousUploads().then(s=>{s.length&&e.resumeFromPreviousUpload(s[0]),e.start()})},f=(e,s,t)=>{a.useEffect(()=>{const o=async()=>{!e||!s||await s()};return()=>{t&&o()}},[t,e])},R=Object.freeze({autoAbort:!0,autoStart:!1}),v=e=>a.useMemo(()=>({...R,...e||{}}),[e]),C=Object.freeze({upload:void 0,isSuccess:!1,isAborted:!1,error:void 0,originalAbort:void 0}),I=e=>{const{autoAbort:s,autoStart:t,uploadOptions:o}=v(e),[r,c]=a.useState(C),n=a.useCallback(i=>{c(l=>({...l,...i}))},[]),u=a.useCallback((i,l={})=>{const A={...o,...l},T={...A,onSuccess:()=>{n({isSuccess:!0}),A?.onSuccess?.()},onError:p=>{n({error:p}),A?.onError?.(p)}},E=p=>{n({isAborted:p})},{upload:O,originalAbort:U}=P(i,T,E);t&&D(O),n({...C,upload:O,originalAbort:U})},[t,n,o]),S=a.useCallback(()=>{r?.originalAbort?.(),c(C)},[r]),d=a.useMemo(()=>({upload:r?.upload,isSuccess:r?.isSuccess??!1,error:r?.error,isAborted:r?.isAborted??!1,setUpload:u,remove:S}),[r,u,S]);return f(d.upload,r.originalAbort,s??!1),d},y={tusClientHasNotFounded:"No TusClient set, use TusClientProvider to set one",tusIsNotSupported:"This browser does not support uploads. Please use a modern browser instead."},N=a.createContext(void 0),h=a.createContext(void 0),m=()=>{const e=a.useContext(N);if(!e&&process.env.NODE_ENV!=="production")throw new Error(y.tusClientHasNotFounded);return a.useMemo(()=>e,[e])},L=()=>{const e=a.useContext(h);if(!e&&process.env.NODE_ENV!=="production")throw new Error(y.tusClientHasNotFounded);return a.useMemo(()=>e,[e])},M=(e,s)=>({type:"INSERT_UPLOAD_INSTANCE",payload:{cacheKey:e,uploadState:{upload:s,isSuccess:!1,isAborted:!1}}}),K=e=>({type:"UPDATE_SUCCESS_UPLOAD",payload:{cacheKey:e}}),g=(e,s)=>({type:"UPDATE_ERROR_UPLOAD",payload:{cacheKey:e,error:s}}),w=(e,s)=>({type:"UPDATE_IS_ABORTED_UPLOAD",payload:{cacheKey:e,isAborted:s}}),x=e=>({type:"REMOVE_UPLOAD_INSTANCE",payload:{cacheKey:e}}),F=e=>({type:"UPDATE_DEFAULT_OPTIONS",payload:{defaultOptions:e}}),k=(e,s)=>{const{autoAbort:t,autoStart:o,uploadOptions:r}=v(s),{defaultOptions:c,uploads:n}=m(),u=L(),S=a.useCallback((A,T={})=>{const E={...c?.(A),...r,...T},O={...E,onSuccess:()=>{u(K(e)),E?.onSuccess?.()},onError:b=>{u(g(e,b)),E?.onError?.(b)}},U=b=>{u(w(e,b))},{upload:p}=P(A,O,U);o&&D(p),u(M(e,p))},[o,e,c,u,r]),d=a.useMemo(()=>n[e],[e,n]),i=a.useCallback(()=>{d?.upload?.abort(),u(x(e))},[d,u,e]),l=a.useMemo(()=>({upload:d?.upload,isSuccess:d?.isSuccess??!1,error:d?.error,isAborted:d?.isAborted??!1,setUpload:S,remove:i}),[d,S,i]);return f(l.upload,l.upload?.abort,t??!1),l},V=(e,s)=>{switch(s.type){case"INSERT_UPLOAD_INSTANCE":{const{cacheKey:t,uploadState:o}=s.payload;return{...e,uploads:{...e.uploads,[t]:o}}}case"UPDATE_SUCCESS_UPLOAD":{const{cacheKey:t}=s.payload,o=e.uploads[t];return o?{...e,uploads:{...e.uploads,[t]:{...o||{},isSuccess:!0}}}:e}case"UPDATE_ERROR_UPLOAD":{const{cacheKey:t,error:o}=s.payload,r=e.uploads[t];return r?{...e,uploads:{...e.uploads,[t]:{...r,error:o}}}:e}case"UPDATE_IS_ABORTED_UPLOAD":{const{cacheKey:t,isAborted:o}=s.payload,r=e.uploads[t];return r?{...e,uploads:{...e.uploads,[t]:{...r,isAborted:o}}}:e}case"REMOVE_UPLOAD_INSTANCE":{const{cacheKey:t}=s.payload,o=e.uploads;return delete o[t],{...e,uploads:o}}case"UPDATE_DEFAULT_OPTIONS":{const{defaultOptions:t}=s.payload;return{...e,defaultOptions:t}}default:return e}},j={uploads:{},defaultOptions:void 0},H=({defaultOptions:e,children:s})=>{const[t,o]=a.useReducer(V,{...j,defaultOptions:e});a.useEffect(()=>{_.isSupported||process.env.NODE_ENV==="production"||console.error(y.tusIsNotSupported)},[]),a.useEffect(()=>{t.defaultOptions!==e&&o(F(e))},[e,t.defaultOptions]);const r=a.createElement(h.Provider,{value:o},s);return a.createElement(N.Provider,{value:t},r)};exports.TusClientProvider=H,exports.useTus=I,exports.useTusStore=k;
|