From fea12cbb3e5648480ebb23a21762339dddb61e5d Mon Sep 17 00:00:00 2001 From: Michael An <1822852997@qq.com> Date: Thu, 18 Apr 2019 13:39:42 +0800 Subject: [PATCH] handle delete item details panel bug --- .../lib-content-view/lib-content-container.js | 14 +++++++++++--- .../src/pages/lib-content-view/lib-content-view.js | 3 +++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/lib-content-view/lib-content-container.js b/frontend/src/pages/lib-content-view/lib-content-container.js index 463be21e6b..086990126d 100644 --- a/frontend/src/pages/lib-content-view/lib-content-container.js +++ b/frontend/src/pages/lib-content-view/lib-content-container.js @@ -84,6 +84,7 @@ const propTypes = { closeDirentDetail: PropTypes.func.isRequired, showDirentDetail: PropTypes.func.isRequired, onDeleteRepoTag: PropTypes.func.isRequired, + updateDetail: PropTypes.bool.isRequired, }; class LibContentContainer extends React.Component { @@ -98,7 +99,7 @@ class LibContentContainer extends React.Component { } componentWillReceiveProps(nextProps) { - if (nextProps.path !== this.props.path) { + if (nextProps.path !== this.props.path || nextProps.updateDetail !== this.props.updateDetail) { this.setState({currentDirent: null}); } } @@ -124,6 +125,13 @@ class LibContentContainer extends React.Component { this.props.onItemSelected(dirent); } + onItemDelete = (dirent) => { + if (dirent.name === this.state.currentDirent.name) { + this.setState({currentDirent: null}); + } + this.props.onItemDelete(dirent); + } + render() { let { path, repoID, usedRepoTags, readmeMarkdown, draftCounts } = this.props; let isRepoInfoBarShow = false; @@ -177,7 +185,7 @@ class LibContentContainer extends React.Component { onAddFile={this.props.onAddFile} onItemClick={this.onItemClick} onItemSelected={this.onItemSelected} - onItemDelete={this.props.onItemDelete} + onItemDelete={this.onItemDelete} onItemRename={this.props.onItemRename} onItemMove={this.props.onItemMove} onItemCopy={this.props.onItemCopy} @@ -241,7 +249,7 @@ class LibContentContainer extends React.Component { onAddFile={this.props.onAddFile} onItemClick={this.onItemClick} onItemSelected={this.onItemSelected} - onItemDelete={this.props.onItemDelete} + onItemDelete={this.onItemDelete} onItemRename={this.props.onItemRename} onItemMove={this.props.onItemMove} onItemCopy={this.props.onItemCopy} diff --git a/frontend/src/pages/lib-content-view/lib-content-view.js b/frontend/src/pages/lib-content-view/lib-content-view.js index c2d5310ec9..f745832446 100644 --- a/frontend/src/pages/lib-content-view/lib-content-view.js +++ b/frontend/src/pages/lib-content-view/lib-content-view.js @@ -70,6 +70,7 @@ class LibContentView extends React.Component { dirID: '', // for update dir list errorMsg: '', isDirentDetailShow: false, + updateDetail: false, }; window.onpopstate = this.onpopstate; @@ -491,6 +492,7 @@ class LibContentView extends React.Component { let direntPaths = this.getSelectedDirentPaths(); let dirNames = this.getSelectedDirentNames(); + this.setState({updateDetail: !this.state.updateDetail}); seafileAPI.deleteMutipleDirents(repoID, this.state.path, dirNames).then(res => { direntPaths.forEach(direntPath => { if (this.state.currentMode === 'column') { @@ -1448,6 +1450,7 @@ class LibContentView extends React.Component { showDirentDetail={this.showDirentDetail} onDeleteRepoTag={this.onDeleteRepoTag} onToolbarFileTagChanged={this.onToolbarFileTagChanged} + updateDetail={this.state.updateDetail} /> {this.state.pathExist && !this.state.isViewFile && (