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

65 lines
1.6 KiB
JavaScript
Raw Normal View History

2018-08-06 10:29:12 +00:00
import React from 'react';
2018-10-16 10:19:51 +00:00
import PropTypes from 'prop-types';
2018-08-06 10:29:12 +00:00
import TreeNodeView from './tree-node-view';
2018-10-16 10:19:51 +00:00
const propTypes = {
2019-02-20 03:54:25 +00:00
repoPermission: PropTypes.bool,
2019-01-28 08:48:03 +00:00
isNodeMenuShow: PropTypes.bool.isRequired,
2018-10-16 10:19:51 +00:00
treeData: PropTypes.object.isRequired,
2019-01-28 08:48:03 +00:00
currentPath: PropTypes.string.isRequired,
onMenuItemClick: PropTypes.func,
2018-10-16 10:19:51 +00:00
onNodeClick: PropTypes.func.isRequired,
2019-01-28 08:48:03 +00:00
onNodeExpanded: PropTypes.func.isRequired,
onNodeCollapse: PropTypes.func.isRequired,
2018-10-16 10:19:51 +00:00
};
const PADDING_LEFT = 20;
2019-01-28 08:48:03 +00:00
class TreeView extends React.Component {
2018-08-06 10:29:12 +00:00
2019-01-28 08:48:03 +00:00
constructor(props) {
super(props);
this.state = {
isItemFreezed: false,
};
2018-08-06 10:29:12 +00:00
}
2019-01-28 08:48:03 +00:00
onNodeDragStart = (e, node) => {
// todo
2018-08-06 10:29:12 +00:00
}
2019-01-28 08:48:03 +00:00
onFreezedItem = () => {
this.setState({isItemFreezed: true});
}
2019-01-28 08:48:03 +00:00
onUnFreezedItem = () => {
this.setState({isItemFreezed: false});
}
render() {
return (
<div className="tree-view tree">
2019-01-28 08:48:03 +00:00
<TreeNodeView
2019-02-20 03:54:25 +00:00
repoPermission={this.props.repoPermission}
node={this.props.treeData.root}
2018-11-22 03:26:00 +00:00
currentPath={this.props.currentPath}
2019-01-28 08:48:03 +00:00
paddingLeft={PADDING_LEFT}
isNodeMenuShow={this.props.isNodeMenuShow}
isItemFreezed={this.state.isItemFreezed}
onNodeClick={this.props.onNodeClick}
onMenuItemClick={this.props.onMenuItemClick}
onNodeExpanded={this.props.onNodeExpanded}
onNodeCollapse={this.props.onNodeCollapse}
onNodeDragStart={this.onNodeDragStart}
onFreezedItem={this.onFreezedItem}
onUnFreezedItem={this.onUnFreezedItem}
/>
</div>
);
2018-08-06 10:29:12 +00:00
}
}
2018-10-16 10:19:51 +00:00
TreeView.propTypes = propTypes;
2018-08-06 10:29:12 +00:00
export default TreeView;