diff --git a/public/app/core/components/NavBar/NavBarItemMenu.tsx b/public/app/core/components/NavBar/NavBarItemMenu.tsx index 8ccd35eebf2..7b3e9659247 100644 --- a/public/app/core/components/NavBar/NavBarItemMenu.tsx +++ b/public/app/core/components/NavBar/NavBarItemMenu.tsx @@ -51,13 +51,7 @@ export function NavBarItemMenu(props: NavBarItemMenuProps): ReactElement | null const menuSubTitle = section.value.subTitle; const sectionComponent = ( - + ); const subTitleComponent = ( @@ -131,8 +125,5 @@ function getStyles( padding: ${theme.spacing(1)} ${theme.spacing(2)} ${theme.spacing(1)}; white-space: nowrap; `, - section: css` - background-color: ${theme.colors.background.secondary}; - `, }; } diff --git a/public/app/core/components/NavBar/NavBarItemMenuItem.tsx b/public/app/core/components/NavBar/NavBarItemMenuItem.tsx index 3677505a1aa..8384388c478 100644 --- a/public/app/core/components/NavBar/NavBarItemMenuItem.tsx +++ b/public/app/core/components/NavBar/NavBarItemMenuItem.tsx @@ -7,18 +7,16 @@ import { useFocus, useKeyboard } from '@react-aria/interactions'; import { TreeState } from '@react-stately/tree'; import { mergeProps } from '@react-aria/utils'; import { Node } from '@react-types/shared'; -import classNames from 'classnames'; import { useNavBarItemMenuContext } from './context'; export interface NavBarItemMenuItemProps { - className?: string; item: Node; state: TreeState; onNavigate: (item: NavModelItem) => void; } -export function NavBarItemMenuItem({ className, item, state, onNavigate }: NavBarItemMenuItemProps): ReactElement { +export function NavBarItemMenuItem({ item, state, onNavigate }: NavBarItemMenuItemProps): ReactElement { const { onClose, onLeft } = useNavBarItemMenuContext(); const { key, rendered } = item; const ref = useRef(null); @@ -28,7 +26,8 @@ export function NavBarItemMenuItem({ className, item, state, onNavigate }: NavBa const [isFocused, setFocused] = useState(false); const { focusProps } = useFocus({ onFocusChange: setFocused, isDisabled }); const theme = useTheme2(); - const styles = getStyles(theme, isFocused); + const isSection = item.value.menuItemType === 'section'; + const styles = getStyles(theme, isFocused, isSection); const onAction = () => { onNavigate(item.value); onClose(); @@ -57,20 +56,22 @@ export function NavBarItemMenuItem({ className, item, state, onNavigate }: NavBa }); return ( -
  • +
  • {rendered}
  • ); } -function getStyles(theme: GrafanaTheme2, isFocused: boolean) { +function getStyles(theme: GrafanaTheme2, isFocused: boolean, isSection: boolean) { + let backgroundColor = 'transparent'; + if (isFocused) { + backgroundColor = theme.colors.action.hover; + } else if (isSection) { + backgroundColor = theme.colors.background.secondary; + } return { menuItem: css` - background-color: ${isFocused ? theme.colors.action.hover : 'transparent'}; + background-color: ${backgroundColor}; color: ${isFocused ? 'white' : theme.colors.text.primary}; &:focus-visible { @@ -78,8 +79,7 @@ function getStyles(theme: GrafanaTheme2, isFocused: boolean) { box-shadow: none; color: ${theme.colors.text.primary}; outline: 2px solid ${theme.colors.primary.main}; - // Need to add condition, header is 0, otherwise -2 - outline-offset: -0px; + outline-offset: -2px; transition: none; } `,