1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-11 03:41:12 +00:00

optimization code

This commit is contained in:
zxj96
2019-04-24 10:10:28 +08:00
parent 978288eb39
commit 301effa623
7 changed files with 35 additions and 87 deletions

View File

@@ -40,8 +40,6 @@ const propTypes = {
isDirentDetailShow: PropTypes.bool.isRequired,
onGridItemClick: PropTypes.func,
onAddFolder: PropTypes.func.isRequired,
onPageScroll: PropTypes.func.isRequired,
itemShownLimit: PropTypes.bool.isRequired
};
class DirentGridView extends React.Component{
@@ -63,25 +61,10 @@ class DirentGridView extends React.Component{
isMutipleOperation: false,
isGridItemFreezed: false,
activeDirent: null,
itemIdex: 100,
}
this.isRepoOwner = props.currentRepoInfo.owner_email === username;
}
componentDidMount() {
window.addEventListener('scroll', this.gridViewScroll, true);
}
componentWillReceiveProps(nextProps) {
if (this.props.itemShownLimit) {
this.setState({itemIdex: 100});
}
}
componentWillUnmount() {
window.removeEventListener('scroll', this.gridViewScroll, true);
}
onCreateFileToggle = () => {
this.setState({
isCreateFileDialogShow: !this.state.isCreateFileDialogShow,
@@ -92,17 +75,6 @@ class DirentGridView extends React.Component{
this.setState({activeDirent: dirent});
this.props.onGridItemClick(dirent);
}
gridViewScroll = (e) => {
let target = e.target;
let itemIdex = this.state.itemIdex;
if (target.scrollTop + document.documentElement.clientHeight - target.offsetTop >= target.scrollHeight) {
itemIdex += 100
this.setState({itemIdex: itemIdex})
}
this.props.onPageScroll();
}
onMoveToggle = () => {
this.setState({isMoveDialogShow: !this.state.isMoveDialogShow});
@@ -505,19 +477,15 @@ class DirentGridView extends React.Component{
let dirent = this.state.activeDirent ? this.state.activeDirent : '';
let direntPath = Utils.joinPath(path, dirent.name);
let direntItemsList = direntList.filter((item, index) => {
return index < this.state.itemIdex;
})
if (this.props.isDirentListLoading) {
return (<Loading />);
}
return (
<Fragment>
<ul className="grid-view" onClick={this.gridContainerClick} onContextMenu={this.onGridContainerContextMenu} onMouseDown={this.onGridContainerMouseDown} onScroll={this.gridViewScroll}>
<ul className="grid-view" onClick={this.gridContainerClick} onContextMenu={this.onGridContainerContextMenu} onMouseDown={this.onGridContainerMouseDown}>
{
direntItemsList.map((dirent, index) => {
direntList.map((dirent, index) => {
return (
<DirentGridItem
key={index}