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 1/4] 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() { From 907eed48135815aca075ee891d13019e257e6385 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 21 Jun 2019 15:20:34 +0800 Subject: [PATCH 2/4] Modify variable name --- .../components/dirent-list-view/dirent-list-view.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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 c7495f2e49..e50f095797 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -71,7 +71,7 @@ class DirentListView extends React.Component { isListDropTipShow: false, }; - this.enterChildAmount = 0; + this.dragEnterContainerAmount = 0; this.isRepoOwner = props.currentRepoInfo.owner_email === username; this.isAdmin = props.currentRepoInfo.is_admin; this.repoEncrypted = props.currentRepoInfo.encrypted; @@ -541,8 +541,8 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - this.enterChildAmount++; - if (this.enterChildAmount !== 0) { + this.dragEnterContainerAmount++; + if (this.dragEnterContainerAmount !== 0) { this.setState({isListDropTipShow: true}); } } @@ -559,8 +559,9 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - this.enterChildAmount--; - if (this.enterChildAmount === 0) { + this.dragEnterContainerAmount--; + if (this.dragEnterContainerAmount === 0) { + // if (e.target.className === 'table-container table-drop-active') { this.setState({isListDropTipShow: false}); } } @@ -570,7 +571,7 @@ class DirentListView extends React.Component { return false; } e.persist(); - this.enterChildAmount = 0; + this.dragEnterContainerAmount = 0; this.setState({isListDropTipShow: false}); if (e.dataTransfer.files.length) { // uploaded files return; From 049c74010b5a0d7c59c7dc029df9a61ad61234b3 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 21 Jun 2019 15:22:22 +0800 Subject: [PATCH 3/4] Modify variable name --- frontend/src/components/dirent-list-view/dirent-list-view.js | 1 - 1 file changed, 1 deletion(-) 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 e50f095797..39f9b14ad3 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -561,7 +561,6 @@ class DirentListView extends React.Component { } this.dragEnterContainerAmount--; if (this.dragEnterContainerAmount === 0) { - // if (e.target.className === 'table-container table-drop-active') { this.setState({isListDropTipShow: false}); } } From ad3cb6bca7668c43d887329c8056a3e3ad90456d Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 21 Jun 2019 18:03:54 +0800 Subject: [PATCH 4/4] enteredCounter replace dragEnterContainerAmount --- .../components/dirent-list-view/dirent-list-view.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 39f9b14ad3..6770f11ce2 100644 --- a/frontend/src/components/dirent-list-view/dirent-list-view.js +++ b/frontend/src/components/dirent-list-view/dirent-list-view.js @@ -71,7 +71,7 @@ class DirentListView extends React.Component { isListDropTipShow: false, }; - this.dragEnterContainerAmount = 0; + this.enteredCounter = 0; this.isRepoOwner = props.currentRepoInfo.owner_email === username; this.isAdmin = props.currentRepoInfo.is_admin; this.repoEncrypted = props.currentRepoInfo.encrypted; @@ -541,8 +541,8 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - this.dragEnterContainerAmount++; - if (this.dragEnterContainerAmount !== 0) { + this.enteredCounter++; + if (this.enteredCounter !== 0) { this.setState({isListDropTipShow: true}); } } @@ -559,8 +559,8 @@ class DirentListView extends React.Component { if (Utils.isIEBrower()) { return false; } - this.dragEnterContainerAmount--; - if (this.dragEnterContainerAmount === 0) { + this.enteredCounter--; + if (this.enteredCounter === 0) { this.setState({isListDropTipShow: false}); } } @@ -570,7 +570,7 @@ class DirentListView extends React.Component { return false; } e.persist(); - this.dragEnterContainerAmount = 0; + this.enteredCounter = 0; this.setState({isListDropTipShow: false}); if (e.dataTransfer.files.length) { // uploaded files return;