Refactor move operations with actions.

This commit is contained in:
Vladislav Makhov 2020-10-28 14:03:58 +03:00
parent 01e25257b5
commit 89a102ee17
2 changed files with 35 additions and 55 deletions

View File

@ -9,8 +9,7 @@ import { StyledAsidePanel } from "../StyledPanels";
import TreeFolders from "../../Article/Body/TreeFolders";
import {
setProgressBarData,
clearProgressData,
loopFilesOperations,
itemOperationToFolder
} from "../../../store/files/actions";
import {
getFilter,
@ -40,11 +39,10 @@ class OperationsPanelComponent extends React.Component {
t,
isCopy,
selection,
loopFilesOperations,
setProgressBarData,
clearProgressData,
currentFolderId,
onClose
onClose,
itemOperationToFolder
} = this.props;
const destFolderId = Number(e);
@ -67,52 +65,12 @@ class OperationsPanelComponent extends React.Component {
}
}
onClose();
if (isCopy) {
setProgressBarData({
visible: true,
percent: 0,
label: t("CopyOperation"),
});
api.files
.copyToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
)
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
loopFilesOperations(id, destFolderId, isCopy);
})
.catch((err) => {
toastr.error(err);
clearProgressData();
});
} else {
setProgressBarData({
visible: true,
percent: 0,
label: t("MoveToOperation"),
});
api.files
.moveToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
)
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
loopFilesOperations(id, destFolderId, false);
})
.catch((err) => {
toastr.error(err);
clearProgressData();
});
}
setProgressBarData({
visible: true,
percent: 0,
label: isCopy ? t("CopyOperation") : t("MoveToOperation"),
});
itemOperationToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter, isCopy)
}
};
@ -182,6 +140,5 @@ const mapStateToProps = (state) => {
export default connect(mapStateToProps, {
setProgressBarData,
clearProgressData,
loopFilesOperations,
itemOperationToFolder
})(withRouter(OperationsPanel));

View File

@ -741,8 +741,8 @@ const startSessionFunc = (indexOfFile, t, dispatch, getState) => {
const relativePath = file.path
? file.path.slice(1, -file.name.length)
: file.webkitRelativePath
? file.webkitRelativePath.slice(0, -file.name.length)
: "";
? file.webkitRelativePath.slice(0, -file.name.length)
: "";
let location;
const requestsDataArray = [];
@ -1237,3 +1237,26 @@ export const loopFilesOperations = (id, destFolderId, isCopy) => {
loopOperation();
};
};
export function selectItemOperation(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter, isCopy) {
return (dispatch) => {
return isCopy ?
files.copyToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter)
:
files.moveToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter)
}
}
export function itemOperationToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter, isCopy) {
return (dispatch) => {
return dispatch(selectItemOperation(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter, isCopy))
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
dispatch(loopFilesOperations(id, destFolderId, isCopy))
})
.catch((err) => {
toastr.error(err);
dispatch(clearProgressData())
})
};
}