From a34da3e2482b7a9914eedab8bcba1ad194e81ae0 Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Fri, 22 Apr 2022 11:04:04 +0100 Subject: [PATCH] Navigation: Implement scrolling navbar + fix clickable area of grafana logo (#48045) * Attach nav item menus to a portal that's a sibling of the chevron to prevent incorrect stacking * add scrollbar to navbar * Make clickable area of grafana logo full size * hide vertical track as well * prettier... --- .../components/NavBar/Next/NavBarMenu.tsx | 2 +- .../components/NavBar/Next/NavBarNext.tsx | 64 ++++++++++++------- public/app/core/components/NavBar/utils.ts | 3 + 3 files changed, 46 insertions(+), 23 deletions(-) diff --git a/public/app/core/components/NavBar/Next/NavBarMenu.tsx b/public/app/core/components/NavBar/Next/NavBarMenu.tsx index 00e40a6e5f1..2a6cebd020e 100644 --- a/public/app/core/components/NavBar/Next/NavBarMenu.tsx +++ b/public/app/core/components/NavBar/Next/NavBarMenu.tsx @@ -391,7 +391,7 @@ const getCollapsibleStyles = (theme: GrafanaTheme2) => ({ position: 'relative', display: 'grid', gridAutoFlow: 'column', - gridTemplateColumns: '56px auto', + gridTemplateColumns: `${theme.spacing(7)} auto`, }), collapsibleMenuItem: css({ height: theme.spacing(6), diff --git a/public/app/core/components/NavBar/Next/NavBarNext.tsx b/public/app/core/components/NavBar/Next/NavBarNext.tsx index 0612dc02d13..11961c6d8eb 100644 --- a/public/app/core/components/NavBar/Next/NavBarNext.tsx +++ b/public/app/core/components/NavBar/Next/NavBarNext.tsx @@ -3,7 +3,7 @@ import { useLocation } from 'react-router-dom'; import { css, cx } from '@emotion/css'; import { cloneDeep } from 'lodash'; import { GrafanaTheme2, NavModelItem, NavSection } from '@grafana/data'; -import { Icon, IconName, useTheme2 } from '@grafana/ui'; +import { CustomScrollbar, Icon, IconName, useTheme2 } from '@grafana/ui'; import { config, locationService } from '@grafana/runtime'; import { getKioskMode } from 'app/core/navigation/kiosk'; import { KioskMode, StoreState } from 'app/types'; @@ -13,10 +13,10 @@ import { NavBarMenu } from './NavBarMenu'; import NavBarItem from './NavBarItem'; import { useSelector } from 'react-redux'; import { NavBarItemWithoutMenu } from './NavBarItemWithoutMenu'; -import { FocusScope } from '@react-aria/focus'; import { NavBarContext } from '../context'; import { NavBarToggle } from './NavBarToggle'; import { NavBarMenuPortalContainer } from './NavBarMenuPortalContainer'; +import { FocusScope } from '@react-aria/focus'; const onOpenSearch = () => { locationService.partial({ search: 'open' }); @@ -90,6 +90,7 @@ export const NavBarNext = React.memo(() => {