From ca342afb255271491fb454973164d38a94e83fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 9 Dec 2025 09:59:40 +0100 Subject: [PATCH] AppChrome: Add proper menu icon for menu, logo icon becomes home (#114713) * AppChrome: Add proper menu icon for menu, logo icon becomes home * Update * Update * fix merge issue * Aligning icons * Simplify styling and fix issues * fixes * style fix * Fixed unit test * review updates * update * Update * Remove feature highlight * fix lint * remove unused parts --- .../prometheus-variable-editor.spec.ts | 2 +- .../ToolbarButton/ToolbarButton.tsx | 2 +- .../components/AppChrome/AppChromeService.tsx | 2 +- .../AppChrome/MegaMenu/FeatureHighlight.tsx | 34 ----------- .../AppChrome/MegaMenu/MegaMenu.tsx | 8 +-- .../AppChrome/MegaMenu/MegaMenuHeader.tsx | 39 ++++--------- .../AppChrome/MegaMenu/MegaMenuItem.tsx | 26 +++------ .../AppChrome/MegaMenu/MegaMenuItemText.tsx | 10 ++-- .../AppChrome/TopBar/SingleTopBar.tsx | 6 +- .../app/core/components/Branding/Branding.tsx | 56 ++++++++++++++++++- .../core/components/Breadcrumbs/utils.test.ts | 10 +--- .../app/core/components/Breadcrumbs/utils.ts | 10 +--- public/app/core/components/Page/Page.test.tsx | 1 + .../app/core/components/Page/usePageTitle.ts | 10 +++- .../containers/DashboardPage.test.tsx | 6 +- 15 files changed, 100 insertions(+), 122 deletions(-) delete mode 100644 public/app/core/components/AppChrome/MegaMenu/FeatureHighlight.tsx diff --git a/e2e-playwright/various-suite/prometheus-variable-editor.spec.ts b/e2e-playwright/various-suite/prometheus-variable-editor.spec.ts index 16a722854aa..82b293da581 100644 --- a/e2e-playwright/various-suite/prometheus-variable-editor.spec.ts +++ b/e2e-playwright/various-suite/prometheus-variable-editor.spec.ts @@ -95,7 +95,7 @@ test.describe( await createNewPanelButton.click(); // Close the data source picker modal - const closeButton = page.getByRole('button', { name: 'Close menu' }); + const closeButton = page.getByRole('button', { name: 'Close', exact: true }); await closeButton.click({ force: true }); // Select prom data source from the data source list diff --git a/packages/grafana-ui/src/components/ToolbarButton/ToolbarButton.tsx b/packages/grafana-ui/src/components/ToolbarButton/ToolbarButton.tsx index c1f99b0db93..2193103a90f 100644 --- a/packages/grafana-ui/src/components/ToolbarButton/ToolbarButton.tsx +++ b/packages/grafana-ui/src/components/ToolbarButton/ToolbarButton.tsx @@ -206,7 +206,7 @@ const getStyles = (theme: GrafanaTheme2) => { background: 'transparent', border: `1px solid transparent`, - '&:hover, &:focus': { + '&:hover': { color: theme.colors.text.primary, background: theme.colors.action.hover, }, diff --git a/public/app/core/components/AppChrome/AppChromeService.tsx b/public/app/core/components/AppChrome/AppChromeService.tsx index f3ab1b63c1b..e340e8276b8 100644 --- a/public/app/core/components/AppChrome/AppChromeService.tsx +++ b/public/app/core/components/AppChrome/AppChromeService.tsx @@ -119,7 +119,7 @@ export class AppChromeService { }; private getUpdatedHistory(newState: AppChromeState): HistoryEntry[] { - const breadcrumbs = buildBreadcrumbs(newState.sectionNav.node, newState.pageNav, { text: 'Home', url: '/' }, true); + const breadcrumbs = buildBreadcrumbs(newState.sectionNav.node, newState.pageNav, { text: 'Home', url: '/' }); const newPageNav = newState.pageNav || newState.sectionNav.node; let entries = store.getObject(HISTORY_LOCAL_STORAGE_KEY, []); diff --git a/public/app/core/components/AppChrome/MegaMenu/FeatureHighlight.tsx b/public/app/core/components/AppChrome/MegaMenu/FeatureHighlight.tsx deleted file mode 100644 index ca660e8750c..00000000000 --- a/public/app/core/components/AppChrome/MegaMenu/FeatureHighlight.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { css } from '@emotion/css'; -import type { JSX } from 'react'; - -import { GrafanaTheme2 } from '@grafana/data'; -import { useStyles2 } from '@grafana/ui'; - -export interface Props { - children: JSX.Element; -} - -export const FeatureHighlight = ({ children }: Props): JSX.Element => { - const styles = useStyles2(getStyles); - return ( - <> - {children} - - - ); -}; - -const getStyles = (theme: GrafanaTheme2) => { - return { - highlight: css({ - backgroundColor: theme.colors.success.main, - borderRadius: theme.shape.radius.circle, - width: '6px', - height: '6px', - display: 'inline-block;', - position: 'absolute', - top: '50%', - transform: 'translateY(-50%)', - }), - }; -}; diff --git a/public/app/core/components/AppChrome/MegaMenu/MegaMenu.tsx b/public/app/core/components/AppChrome/MegaMenu/MegaMenu.tsx index dead4bd810e..f4ec7598fa2 100644 --- a/public/app/core/components/AppChrome/MegaMenu/MegaMenu.tsx +++ b/public/app/core/components/AppChrome/MegaMenu/MegaMenu.tsx @@ -62,10 +62,6 @@ export const MegaMenu = memo( const activeItem = getActiveItem(navItems, state.sectionNav.node, location.pathname); - const handleMegaMenu = () => { - chrome.setMegaMenuOpen(!state.megaMenuOpen); - }; - const handleDockedMenu = () => { chrome.setMegaMenuDocked(!state.megaMenuDocked); if (state.megaMenuDocked) { @@ -108,7 +104,7 @@ export const MegaMenu = memo( return (
- +