Refactor move operations with actions.
This commit is contained in:
parent
01e25257b5
commit
89a102ee17
@ -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));
|
||||
|
@ -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())
|
||||
})
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user