From 0a7da60e4f88f11fcadef29a71be73b63ba986dc Mon Sep 17 00:00:00 2001 From: SrGooglo Date: Wed, 10 May 2023 03:09:23 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20sidebar=20closing=20regard?= =?UTF-8?q?less=20if=20dropdown=20is=20open?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/app/src/components/Layout/sidebar/index.jsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/app/src/components/Layout/sidebar/index.jsx b/packages/app/src/components/Layout/sidebar/index.jsx index f71f0083..3acac870 100755 --- a/packages/app/src/components/Layout/sidebar/index.jsx +++ b/packages/app/src/components/Layout/sidebar/index.jsx @@ -315,7 +315,7 @@ export default class Sidebar extends React.Component { return window.app.setLocation(`/${e.key}`, 150) } - toggleExpanded = (to) => { + toggleExpanded = (to, force) => { to = to ?? !this.state.expanded if (this.collapseDebounce) { @@ -323,12 +323,11 @@ export default class Sidebar extends React.Component { this.collapseDebounce = null } - if (!to & this.state.dropdownOpen && !this.state._shouldCollapse) { + if (!to & this.state.dropdownOpen && !force) { // FIXME: This is a walkaround for a bug in antd, causing when dropdown set to close, item click event is not fired // The desing defines when sidebar should be collapsed, dropdown should be closed, but in this case, gonna to keep it open untils dropdown is closed //this.setState({ dropdownOpen: false }) - this.setState({ _shouldCollapse: true }) return false } @@ -369,9 +368,8 @@ export default class Sidebar extends React.Component { onDropdownOpenChange = (to) => { // this is another walkaround for a bug in antd, causing when dropdown set to close, item click event is not fired - if (this.state._shouldCollapse) { - this.setState({ _shouldCollapse: false }) - this.toggleExpanded(false) + if (!to && this.state.expanded) { + this.toggleExpanded(false, true) } this.setState({ dropdownOpen: to })