Web: Files: fixed opening treeFolders nodes for action panels

This commit is contained in:
Nikita Gopienko 2021-04-14 11:38:26 +03:00
parent 80aeb705ce
commit 4a94cca3c8
3 changed files with 26 additions and 10 deletions

View File

@ -364,8 +364,7 @@ class TreeFolders extends React.Component {
const treeData = [...this.props.treeFolders];
this.getNewTreeData(treeData, listIds, data.folders, 10);
this.props.needUpdate && this.props.setTreeFolders(treeData);
//this.setState({ treeData });
/* this.props.needUpdate && */ this.props.setTreeFolders(treeData);
})
.catch((err) => toastr.error(err))
.finally(() => {
@ -374,15 +373,16 @@ class TreeFolders extends React.Component {
});
};
onExpand = (data, treeNode) => {
onExpand = (expandedKeys, treeNode) => {
if (treeNode.node && !treeNode.node.props.children) {
if (treeNode.expanded) {
this.onLoadData(treeNode.node, true);
}
}
if (this.props.needUpdate) {
const expandedKeys = data;
this.props.setExpandedKeys(expandedKeys);
} else {
this.props.setExpandedPanelKeys(expandedKeys);
}
};
@ -431,9 +431,9 @@ class TreeFolders extends React.Component {
onSelect,
dragging,
expandedKeys,
expandedPanelKeys,
treeFolders,
} = this.props;
//const loadProp = needUpdate ? { loadData: this.onLoadData } : {};
return (
<StyledTreeMenu
@ -446,9 +446,8 @@ class TreeFolders extends React.Component {
switcherIcon={this.switcherIcon}
onSelect={onSelect}
selectedKeys={selectedKeys}
//{...loadProp}
loadData={this.onLoadData}
expandedKeys={expandedKeys}
expandedKeys={expandedPanelKeys ? expandedPanelKeys : expandedKeys}
onExpand={this.onExpand}
onDragOver={this.onDragOver}
onDragLeave={this.onDragLeave}
@ -488,6 +487,7 @@ export default inject(
isPrivacyFolder,
expandedKeys,
setExpandedKeys,
setExpandedPanelKeys,
} = treeFoldersStore;
const { id /* rootFolderType */ } = selectedFolderStore;
@ -510,6 +510,7 @@ export default inject(
setTreeFolders,
setFilter,
setExpandedKeys,
setExpandedPanelKeys,
};
}
)(observer(TreeFolders));

View File

@ -19,6 +19,7 @@ const OperationsPanelComponent = (props) => {
currentFolderId,
operationsFolders,
setCopyPanelVisible,
setExpandedPanelKeys,
itemOperationToFolder,
setMoveToPanelVisible,
setThirdPartyMoveDialogVisible,
@ -32,6 +33,7 @@ const OperationsPanelComponent = (props) => {
const onClose = () => {
isCopy ? setCopyPanelVisible(false) : setMoveToPanelVisible(false);
setExpandedPanelKeys(null);
};
const onSelect = (folder, treeNode) => {
@ -102,7 +104,7 @@ const OperationsPanelComponent = (props) => {
</ModalDialog.Header>
<ModalDialog.Body>
<TreeFolders
expandedKeys={expandedKeys}
expandedPanelKeys={expandedKeys}
data={operationsFolders}
filter={filter}
onSelect={onSelect}
@ -127,7 +129,12 @@ export default inject(
uploadDataStore,
}) => {
const { filter, selection } = filesStore;
const { isRecycleBinFolder, operationsFolders } = treeFoldersStore;
const {
isRecycleBinFolder,
operationsFolders,
setExpandedPanelKeys,
expandedPanelKeys,
} = treeFoldersStore;
const { itemOperationToFolder } = uploadDataStore;
const {
@ -142,7 +149,9 @@ export default inject(
const provider = selection.find((x) => x.providerKey);
return {
expandedKeys: selectedFolderStore.pathParts,
expandedKeys: expandedPanelKeys
? expandedPanelKeys
: selectedFolderStore.pathParts,
currentFolderId: selectedFolderStore.id,
isRecycleBin: isRecycleBinFolder,
filter,
@ -156,6 +165,7 @@ export default inject(
setDestFolderId,
setThirdPartyMoveDialogVisible,
itemOperationToFolder,
setExpandedPanelKeys,
};
}
)(withRouter(observer(OperationsPanel)));

View File

@ -8,6 +8,7 @@ class TreeFoldersStore {
treeFolders = [];
selectedTreeNode = [];
expandedKeys = [];
expandedPanelKeys = null;
constructor(selectedFolderStore) {
makeAutoObservable(this);
@ -34,6 +35,10 @@ class TreeFoldersStore {
this.expandedKeys = expandedKeys;
};
setExpandedPanelKeys = (expandedPanelKeys) => {
this.expandedPanelKeys = expandedPanelKeys;
};
addExpandedKeys = (item) => {
this.expandedKeys.push(item);
};