Fixed Bug 62573 - Files.Media. Fixed delete action

This commit is contained in:
Nikita Gopienko 2023-05-15 14:18:42 +03:00
parent 85bce1ba4a
commit 9995eed7bf
2 changed files with 35 additions and 12 deletions

View File

@ -51,6 +51,8 @@ const FilesMediaViewer = (props) => {
getFirstUrl,
firstLoad,
setSelection,
activeFiles,
activeFolders,
} = props;
useEffect(() => {
@ -135,6 +137,12 @@ const FilesMediaViewer = (props) => {
if (files.length > 0) {
let file = files.find((file) => file.id === id);
if (file) {
// try to fix with one check later (see deleteAction)
const isActiveFile = activeFiles.find((id) => id === file.id);
const isActiveFolder = activeFolders.find((id) => id === file.id);
if (isActiveFile || isActiveFolder) return;
setRemoveMediaItem(file);
deleteItemAction(file.id, translations, true, file.providerKey);
}
@ -234,6 +242,8 @@ export default inject(
resetUrl,
setSelection,
setAlreadyFetchingRooms,
activeFiles,
activeFolders,
} = filesStore;
const {
visible,
@ -306,6 +316,8 @@ export default inject(
archiveRoomsId,
setSelection,
getFirstUrl,
activeFiles,
activeFolders,
};
}
)(

View File

@ -257,6 +257,8 @@ class FilesActionStore {
addActiveItems,
getIsEmptyTrash,
bufferSelection,
activeFiles,
activeFolders,
} = this.filesStore;
const {
secondaryProgressDataStore,
@ -279,16 +281,6 @@ class FilesActionStore {
const operationId = uniqueid("operation_");
setSecondaryProgressBarData({
icon: "trash",
visible: true,
percent: 0,
label: translations.deleteOperation,
alert: false,
filesCount: selection.length,
operationId,
});
const deleteAfter = false; //Delete after finished TODO: get from settings
const immediately = isRecycleBinFolder || isPrivacyFolder ? true : false; //Don't move to the Recycle Bin
@ -298,13 +290,32 @@ class FilesActionStore {
let i = 0;
while (selection.length !== i) {
if (selection[i].fileExst || selection[i].contentLength) {
fileIds.push(selection[i].id);
// try to fix with one check later (see onDeleteMediaFile)
const isActiveFile = activeFiles.find((id) => id === selection[i].id);
!isActiveFile && fileIds.push(selection[i].id);
} else {
folderIds.push(selection[i].id);
// try to fix with one check later (see onDeleteMediaFile)
const isActiveFolder = activeFolders.find(
(id) => id === selection[i].id
);
!isActiveFolder && folderIds.push(selection[i].id);
}
i++;
}
if (!folderIds.length && !fileIds.length) return;
const filesCount = folderIds.length + fileIds.length;
setSecondaryProgressBarData({
icon: "trash",
visible: true,
percent: 0,
label: translations.deleteOperation,
alert: false,
filesCount,
operationId,
});
addActiveItems(fileIds);
addActiveItems(null, folderIds);