1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-07-19 17:39:39 +00:00
seahub/frontend/src/components/tree-view/tree-view.js

66 lines
1.4 KiB
JavaScript
Raw Normal View History

2018-08-06 10:29:12 +00:00
import React from 'react';
import TreeNodeView from './tree-node-view';
class TreeView extends React.PureComponent {
change = (tree) => {
/*
this._updated = true;
if (this.props.onChange) this.props.onChange(tree.obj);
*/
}
toggleCollapse = (node) => {
const tree = this.props.treeData;
2018-08-06 10:29:12 +00:00
node.isExpanded = !node.isExpanded;
// copy the tree to make PureComponent work
this.setState({
tree: tree.copy()
});
this.change(tree);
}
onDragStart = (e, node) => {
const url = this.props.editorUtilities.getFileURL(node);
e.dataTransfer.setData("text/uri-list", url);
e.dataTransfer.setData("text/plain", url);
}
onNodeClick = (e, node) => {
2018-08-06 10:29:12 +00:00
if (node.isDir()) {
this.toggleCollapse(node);
return;
}
this.props.onNodeClick(e, node);
}
onShowContextMenu = (e, node) => {
this.props.onShowContextMenu(e, node);
}
render() {
if (!this.props.treeData.root) {
return <div>Loading...</div>
}
return (
<div className="tree-view tree">
<TreeNodeView
paddingLeft={20}
treeView={this}
node={this.props.treeData.root}
isNodeItemFrezee={this.props.isNodeItemFrezee}
permission={this.props.permission}
currentFilePath={this.props.currentFilePath}
onShowContextMenu={this.props.onShowContextMenu}
/>
</div>
);
2018-08-06 10:29:12 +00:00
}
}
export default TreeView;