feat(web): determine duplication of upload on client (#8825)

* web upload duplicate verification on client

* _

* fix formating

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
TruongSinh Tran-Nguyen 2024-05-02 14:26:13 -07:00 committed by GitHub
parent 7961d00e56
commit ec4e6a143e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 97 additions and 62 deletions

View file

@ -1,4 +1,4 @@
import { derived, writable } from 'svelte/store';
import { derived, get, writable } from 'svelte/store';
import { UploadState, type UploadAsset } from '../models/upload-asset';
function createUploadStore() {
@ -22,17 +22,23 @@ function createUploadStore() {
);
const addNewUploadAsset = (newAsset: UploadAsset) => {
totalUploadCounter.update((c) => c + 1);
uploadAssets.update((assets) => [
...assets,
{
...newAsset,
speed: 0,
state: UploadState.PENDING,
progress: 0,
eta: 0,
},
]);
const assets = get(uploadAssets);
const duplicate = assets.find((asset) => asset.id === newAsset.id);
if (duplicate) {
uploadAssets.update((assets) => assets.map((asset) => (asset.id === newAsset.id ? newAsset : asset)));
} else {
totalUploadCounter.update((c) => c + 1);
uploadAssets.update((assets) => [
...assets,
{
...newAsset,
speed: 0,
state: UploadState.PENDING,
progress: 0,
eta: 0,
},
]);
}
};
const updateProgress = (id: string, loaded: number, total: number) => {