From 89da4f82d319242cdb6f4bf4caa62863c952e4f5 Mon Sep 17 00:00:00 2001 From: Geido <60598000+geido@users.noreply.github.com> Date: Tue, 16 Apr 2024 20:03:17 +0200 Subject: [PATCH] fix(Dashboard): Support "Edit chart" click on a new window (#28054) --- .../components/SliceHeaderControls/index.tsx | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx index 3890c596e..e3a5db0ca 100644 --- a/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx +++ b/superset-frontend/src/dashboard/components/SliceHeaderControls/index.tsx @@ -529,6 +529,7 @@ const SliceHeaderControls = (props: SliceHeaderControlsPropsWithRouter) => { const [openScopingModal, scopingModal] = useCrossFiltersScopingModal( props.slice.slice_id, ); + const history = useHistory(); const queryMenuRef: RefObject = useRef(null); const menuRef: RefObject = useRef(null); @@ -590,7 +591,12 @@ const SliceHeaderControls = (props: SliceHeaderControlsPropsWithRouter) => { case MenuKeys.ExploreChart: // eslint-disable-next-line no-unused-expressions props.logExploreChart?.(props.slice.slice_id); - window.open(props.exploreUrl); + if (domEvent.metaKey || domEvent.ctrlKey) { + domEvent.preventDefault(); + window.open(props.exploreUrl, '_blank'); + } else { + history.push(props.exploreUrl); + } break; case MenuKeys.ExportCsv: // eslint-disable-next-line no-unused-expressions @@ -907,16 +913,6 @@ const SliceHeaderControls = (props: SliceHeaderControlsPropsWithRouter) => { placement="bottomRight" visible={dropdownIsOpen} onVisibleChange={status => toggleDropdown({ close: !status })} - onBlur={e => { - // close unless the dropdown menu is clicked - const relatedTarget = e.relatedTarget as HTMLElement; - if ( - dropdownIsOpen && - menuRef?.current?.props.id !== relatedTarget?.id - ) { - toggleDropdown({ close: true }); - } - }} onKeyDown={e => handleDropdownNavigation( e,