From 9a8da1ac19f48b9ef4c38844579948ee9bd0f42d Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 21 Jun 2019 14:07:52 +0800 Subject: [PATCH] Putting the file out is the same as putting it in a blank space --- .../dirent-list-view/dirent-list-item.js | 12 +++++-- .../dirent-list-view/dirent-list-view.js | 35 ++++++++++--------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/frontend/src/components/dirent-list-view/dirent-list-item.js b/frontend/src/components/dirent-list-view/dirent-list-item.js index 81822b790f..f98280af4d 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-item.js +++ b/frontend/src/components/dirent-list-view/dirent-list-item.js @@ -375,11 +375,12 @@ class DirentListItem extends React.Component { e.dataTransfer.setData('applicaiton/drag-item-info', dragStartItemData); } - onItemDragEnter = () => { + onItemDragEnter = (e) => { if (Utils.isIEBrower()) { return false; } if (this.props.dirent.type === 'dir') { + e.stopPropagation(); this.setState({isDropTipshow: true}); } } @@ -392,10 +393,14 @@ class DirentListItem extends React.Component { e.dataTransfer.dropEffect = 'move'; } - onItemDragLeave = () => { + onItemDragLeave = (e) => { if (Utils.isIEBrower()) { return false; } + + if (this.props.dirent.type === 'dir') { + e.stopPropagation(); + } this.setState({isDropTipshow: false}); } @@ -407,6 +412,9 @@ class DirentListItem extends React.Component { if (e.dataTransfer.files.length) { // uploaded files return; } + if (this.props.dirent.type === 'dir') { + e.stopPropagation(); + } let dragStartItemData = e.dataTransfer.getData('applicaiton/drag-item-info'); dragStartItemData = JSON.parse(dragStartItemData); if (Array.isArray(dragStartItemData)) { //move items diff --git a/frontend/src/components/dirent-list-view/dirent-list-view.js b/frontend/src/components/dirent-list-view/dirent-list-view.js index 84d2107539..c7495f2e49 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -71,6 +71,7 @@ class DirentListView extends React.Component { isListDropTipShow: false, }; + this.enterChildAmount = 0; this.isRepoOwner = props.currentRepoInfo.owner_email === username; this.isAdmin = props.currentRepoInfo.is_admin; this.repoEncrypted = props.currentRepoInfo.encrypted; @@ -540,7 +541,8 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - if (e.target.className === 'table-container ') { + this.enterChildAmount++; + if (this.enterChildAmount !== 0) { this.setState({isListDropTipShow: true}); } } @@ -557,7 +559,8 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - if (e.target.className === 'table-container table-drop-active') { + this.enterChildAmount--; + if (this.enterChildAmount === 0) { this.setState({isListDropTipShow: false}); } } @@ -567,6 +570,7 @@ class DirentListView extends React.Component { return false; } e.persist(); + this.enterChildAmount = 0; this.setState({isListDropTipShow: false}); if (e.dataTransfer.files.length) { // uploaded files return; @@ -576,22 +580,19 @@ class DirentListView extends React.Component { let {nodeDirent, nodeParentPath, nodeRootPath} = dragStartItemData; - if (e.target.className === 'table-container table-drop-active') { - - if (Array.isArray(dragStartItemData)) { //selected items - return; - } - - if (nodeRootPath === this.props.path || nodeParentPath === this.props.path) { - return; - } - - if (this.props.path.indexOf(nodeRootPath) !== -1) { - return; - } - - this.props.onItemMove(this.props.currentRepoInfo, nodeDirent, this.props.path, nodeParentPath); + if (Array.isArray(dragStartItemData)) { //selected items + return; } + + if (nodeRootPath === this.props.path || nodeParentPath === this.props.path) { + return; + } + + if (this.props.path.indexOf(nodeRootPath) !== -1) { + return; + } + + this.props.onItemMove(this.props.currentRepoInfo, nodeDirent, this.props.path, nodeParentPath); } render() {