Cleanup file upload behavior

This commit is contained in:
DaneEveritt 2022-07-24 18:50:47 -04:00
parent 1cfa4100ad
commit 4458822c60
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
2 changed files with 47 additions and 42 deletions

View file

@ -17,6 +17,7 @@ export interface ServerFileStore {
appendSelectedFile: Action<ServerFileStore, string>;
removeSelectedFile: Action<ServerFileStore, string>;
clearFileUploads: Action<ServerFileStore>;
appendFileUpload: Action<ServerFileStore, FileUpload>;
removeFileUpload: Action<ServerFileStore, string>;
}
@ -42,12 +43,20 @@ const files: ServerFileStore = {
state.selectedFiles = state.selectedFiles.filter((f) => f !== payload);
}),
clearFileUploads: action((state) => {
state.uploads = [];
}),
appendFileUpload: action((state, payload) => {
state.uploads = state.uploads.filter((f) => f.name !== payload.name).concat(payload);
if (!state.uploads.some(({ name }) => name === payload.name)) {
state.uploads = [...state.uploads, payload];
} else {
state.uploads = state.uploads.map((file) => (file.name === payload.name ? payload : file));
}
}),
removeFileUpload: action((state, payload) => {
state.uploads = state.uploads.filter((f) => f.name !== payload);
state.uploads = state.uploads.filter(({ name }) => name !== payload);
}),
};