From c03bf7d8ad8d046abdfe266c4e2871624c0f1411 Mon Sep 17 00:00:00 2001
From: Alexa V <239999+axelavargas@users.noreply.github.com>
Date: Fri, 31 Mar 2023 16:35:34 +0200
Subject: [PATCH] New Panel Header: Fix when clicking submenu item the parent
menu item onClick get's triggered (#65691)
---
.betterer.results | 2 +-
.../dashgrid/PanelHeader/PanelHeaderMenuItem.tsx | 2 +-
public/app/features/dashboard/utils/getPanelMenu.ts | 10 +++++++++-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/.betterer.results b/.betterer.results
index d91d8349bbe..2ef9780c95a 100644
--- a/.betterer.results
+++ b/.betterer.results
@@ -2658,7 +2658,7 @@ exports[`better eslint`] = {
[0, 0, 0, "Unexpected any. Specify a different type.", "12"],
[0, 0, 0, "Unexpected any. Specify a different type.", "13"],
[0, 0, 0, "Unexpected any. Specify a different type.", "14"],
- [0, 0, 0, "Unexpected any. Specify a different type.", "15"]
+ [0, 0, 0, "Do not use any type assertions.", "15"]
],
"public/app/features/dashboard/utils/panelMerge.ts:5381": [
[0, 0, 0, "Do not use any type assertions.", "0"],
diff --git a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuItem.tsx b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuItem.tsx
index 279aef64f50..12d589bb68c 100644
--- a/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuItem.tsx
+++ b/public/app/features/dashboard/dashgrid/PanelHeader/PanelHeaderMenuItem.tsx
@@ -25,7 +25,7 @@ export const PanelHeaderMenuItem = (props: Props & PanelMenuItem) => {
ref={setRef}
data-testid={selectors.components.Panels.Panel.menuItems(props.text)}
>
-
+
{icon && }
{props.text}
diff --git a/public/app/features/dashboard/utils/getPanelMenu.ts b/public/app/features/dashboard/utils/getPanelMenu.ts
index d2bbaee17d2..c808182b1f9 100644
--- a/public/app/features/dashboard/utils/getPanelMenu.ts
+++ b/public/app/features/dashboard/utils/getPanelMenu.ts
@@ -180,7 +180,15 @@ export function getPanelMenu(
type: 'submenu',
text: t('panel.header-menu.inspect', `Inspect`),
iconClassName: 'info-circle',
- onClick: (e: React.MouseEvent) => onInspectPanel(),
+ onClick: (e: React.MouseEvent) => {
+ const currentTarget = e.currentTarget;
+ const target = e.target as HTMLElement;
+ const closestMenuItem = target.closest('[role="menuitem"]');
+
+ if (target === currentTarget || closestMenuItem === currentTarget) {
+ onInspectPanel();
+ }
+ },
shortcut: 'i',
subMenu: inspectMenu,
});