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 TreeFolders from "../../Article/Body/TreeFolders";
import { import {
setProgressBarData, setProgressBarData,
clearProgressData, itemOperationToFolder
loopFilesOperations,
} from "../../../store/files/actions"; } from "../../../store/files/actions";
import { import {
getFilter, getFilter,
@ -40,11 +39,10 @@ class OperationsPanelComponent extends React.Component {
t, t,
isCopy, isCopy,
selection, selection,
loopFilesOperations,
setProgressBarData, setProgressBarData,
clearProgressData,
currentFolderId, currentFolderId,
onClose onClose,
itemOperationToFolder
} = this.props; } = this.props;
const destFolderId = Number(e); const destFolderId = Number(e);
@ -67,52 +65,12 @@ class OperationsPanelComponent extends React.Component {
} }
} }
onClose(); onClose();
if (isCopy) {
setProgressBarData({ setProgressBarData({
visible: true, visible: true,
percent: 0, percent: 0,
label: t("CopyOperation"), label: isCopy ? t("CopyOperation") : t("MoveToOperation"),
}); });
api.files itemOperationToFolder(destFolderId, folderIds, fileIds, conflictResolveType, deleteAfter, isCopy)
.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();
});
}
} }
}; };
@ -182,6 +140,5 @@ const mapStateToProps = (state) => {
export default connect(mapStateToProps, { export default connect(mapStateToProps, {
setProgressBarData, setProgressBarData,
clearProgressData, itemOperationToFolder
loopFilesOperations,
})(withRouter(OperationsPanel)); })(withRouter(OperationsPanel));

View File

@ -1237,3 +1237,26 @@ export const loopFilesOperations = (id, destFolderId, isCopy) => {
loopOperation(); 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())
})
};
}