Web: Files: added loader for delete operation

This commit is contained in:
Nikita Gopienko 2021-11-16 14:46:22 +03:00
parent 8a4a625609
commit 79c06534d5
2 changed files with 39 additions and 12 deletions

View File

@ -69,6 +69,7 @@ class FilesActionStore {
deleteAction = async (translations, newSelection = null) => {
const { isRecycleBinFolder, isPrivacyFolder } = this.treeFoldersStore;
const { setActiveFiles, setActiveFolders } = this.filesStore;
const selection = newSelection ? newSelection : this.filesStore.selection;
@ -101,6 +102,9 @@ class FilesActionStore {
i++;
}
setActiveFiles(fileIds);
setActiveFolders(folderIds);
if (folderIds.length || fileIds.length) {
this.isMediaOpen();
@ -112,7 +116,12 @@ class FilesActionStore {
icon: "trash",
label: translations.deleteOperation,
};
await this.uploadDataStore.loopFilesOperations(data, pbData);
await this.uploadDataStore.loopFilesOperations(
data,
pbData,
fileIds,
folderIds
);
this.updateCurrentFolder();
}
);
@ -327,25 +336,33 @@ class FilesActionStore {
};
deleteItemOperation = (isFile, itemId, translations) => {
const { setActiveFiles, setActiveFolders } = this.filesStore;
const pbData = {
icon: "trash",
label: translations.deleteOperation,
};
if (isFile) {
setActiveFiles([itemId]);
this.isMediaOpen();
return deleteFile(itemId)
.then(async (res) => {
const data = res[0] ? res[0] : null;
await this.uploadDataStore.loopFilesOperations(data, pbData);
await this.uploadDataStore.loopFilesOperations(data, pbData, [
itemId,
]);
this.updateCurrentFolder();
})
.then(() => toastr.success(translations.successRemoveFile));
} else {
setActiveFolders([itemId]);
return deleteFolder(itemId)
.then(async (res) => {
const data = res[0] ? res[0] : null;
await this.uploadDataStore.loopFilesOperations(data, pbData);
await this.uploadDataStore.loopFilesOperations(data, pbData, null, [
itemId,
]);
this.updateCurrentFolder();
})
.then(() => toastr.success(translations.successRemoveFolder));

View File

@ -853,7 +853,7 @@ class UploadDataStore {
);
};
loopFilesOperations = async (data, pbData) => {
loopFilesOperations = async (data, pbData, fileIds, folderIds) => {
const label = this.secondaryProgressDataStore.label;
const {
@ -892,16 +892,26 @@ class UploadDataStore {
});
}
const newActiveFiles = activeFiles.filter(
(x) => !operationItem.files.find((y) => y.id === x)
);
if (operationItem.files || operationItem.folders) {
const newActiveFiles = activeFiles.filter(
(x) => !operationItem.files.find((y) => y.id === x)
);
const newActiveFolders = activeFolders.filter(
(x) => !operationItem.folders.find((y) => y.id === x)
);
const newActiveFolders = activeFolders.filter(
(x) => !operationItem.folders.find((y) => y.id === x)
);
setActiveFiles(newActiveFiles);
setActiveFolders(newActiveFolders);
setActiveFiles(newActiveFiles);
setActiveFolders(newActiveFolders);
} else if (fileIds || folderIds) {
const newActiveFiles = activeFiles.filter((el) => !fileIds.includes(el));
const newActiveFolders = activeFolders.filter(
(el) => !folderIds.includes(el)
);
setActiveFiles(newActiveFiles);
setActiveFolders(newActiveFolders);
}
// setTimeout(() => {
// setActiveFiles(newActiveFiles);