Navigation: Hide Undock menu button when docked (#76965)

* small dock menu exploration

* fix e2e tests

* revert back to web-section-alt
This commit is contained in:
Ashley Harrison
2023-11-03 17:07:15 +00:00
committed by GitHub
parent bf363b3234
commit d68d31c63c
9 changed files with 30 additions and 26 deletions

View File

@@ -257,7 +257,7 @@ export const Components = {
button: 'Configuration', button: 'Configuration',
}, },
Toggle: { Toggle: {
button: 'Toggle menu', button: 'data-testid Toggle menu',
}, },
Reporting: { Reporting: {
button: 'Reporting', button: 'Reporting',

View File

@@ -60,14 +60,10 @@ export const MegaMenu = React.memo(
onClick={state.megaMenu === 'open' ? onClose : undefined} onClick={state.megaMenu === 'open' ? onClose : undefined}
activeItem={activeItem} activeItem={activeItem}
/> />
{index === 0 && ( {index === 0 && Boolean(state.megaMenu === 'open') && (
<IconButton <IconButton
className={styles.dockMenuButton} className={styles.dockMenuButton}
tooltip={ tooltip={t('navigation.megamenu.dock', 'Dock menu')}
state.megaMenu === 'docked'
? t('navigation.megamenu.undock', 'Undock menu')
: t('navigation.megamenu.dock', 'Dock menu')
}
name="web-section-alt" name="web-section-alt"
onClick={handleDockedMenu} onClick={handleDockedMenu}
variant="secondary" variant="secondary"

View File

@@ -4,6 +4,7 @@ import React from 'react';
import { GrafanaTheme2, NavModelItem } from '@grafana/data'; import { GrafanaTheme2, NavModelItem } from '@grafana/data';
import { Components } from '@grafana/e2e-selectors'; import { Components } from '@grafana/e2e-selectors';
import { Icon, IconButton, ToolbarButton, useStyles2 } from '@grafana/ui'; import { Icon, IconButton, ToolbarButton, useStyles2 } from '@grafana/ui';
import { useGrafana } from 'app/core/context/GrafanaContext';
import { t } from 'app/core/internationalization'; import { t } from 'app/core/internationalization';
import { HOME_NAV_ID } from 'app/core/reducers/navModel'; import { HOME_NAV_ID } from 'app/core/reducers/navModel';
import { useSelector } from 'app/types'; import { useSelector } from 'app/types';
@@ -35,6 +36,8 @@ export function NavToolbar({
onToggleSearchBar, onToggleSearchBar,
onToggleKioskMode, onToggleKioskMode,
}: Props) { }: Props) {
const { chrome } = useGrafana();
const state = chrome.useState();
const homeNav = useSelector((state) => state.navIndex)[HOME_NAV_ID]; const homeNav = useSelector((state) => state.navIndex)[HOME_NAV_ID];
const styles = useStyles2(getStyles); const styles = useStyles2(getStyles);
const breadcrumbs = buildBreadcrumbs(sectionNav, pageNav, homeNav); const breadcrumbs = buildBreadcrumbs(sectionNav, pageNav, homeNav);
@@ -45,10 +48,15 @@ export function NavToolbar({
<IconButton <IconButton
id={TOGGLE_BUTTON_ID} id={TOGGLE_BUTTON_ID}
name="bars" name="bars"
tooltip={t('navigation.toolbar.toggle-menu', 'Toggle menu')} tooltip={
state.megaMenu === 'closed'
? t('navigation.toolbar.open-menu', 'Open menu')
: t('navigation.toolbar.close-menu', 'Close menu')
}
tooltipPlacement="bottom" tooltipPlacement="bottom"
size="xl" size="xl"
onClick={onToggleMegaMenu} onClick={onToggleMegaMenu}
data-testid={Components.NavBar.Toggle.button}
/> />
</div> </div>
<Breadcrumbs breadcrumbs={breadcrumbs} className={styles.breadcrumbsWrapper} /> <Breadcrumbs breadcrumbs={breadcrumbs} className={styles.breadcrumbsWrapper} />

View File

@@ -863,12 +863,12 @@
}, },
"megamenu": { "megamenu": {
"close": "", "close": "",
"dock": "", "dock": ""
"undock": ""
}, },
"toolbar": { "toolbar": {
"close-menu": "",
"enable-kiosk": "Kiosk-Modus aktivieren", "enable-kiosk": "Kiosk-Modus aktivieren",
"toggle-menu": "Menü umschalten", "open-menu": "",
"toggle-search-bar": "Obere Suchleiste umschalten" "toggle-search-bar": "Obere Suchleiste umschalten"
} }
}, },

View File

@@ -863,12 +863,12 @@
}, },
"megamenu": { "megamenu": {
"close": "Close menu", "close": "Close menu",
"dock": "Dock menu", "dock": "Dock menu"
"undock": "Undock menu"
}, },
"toolbar": { "toolbar": {
"close-menu": "Close menu",
"enable-kiosk": "Enable kiosk mode", "enable-kiosk": "Enable kiosk mode",
"toggle-menu": "Toggle menu", "open-menu": "Open menu",
"toggle-search-bar": "Toggle top search bar" "toggle-search-bar": "Toggle top search bar"
} }
}, },

View File

@@ -869,12 +869,12 @@
}, },
"megamenu": { "megamenu": {
"close": "", "close": "",
"dock": "", "dock": ""
"undock": ""
}, },
"toolbar": { "toolbar": {
"close-menu": "",
"enable-kiosk": "Activar el modo de quiosco", "enable-kiosk": "Activar el modo de quiosco",
"toggle-menu": "Activar o desactivar menú", "open-menu": "",
"toggle-search-bar": "Activar o desactivar la barra de búsqueda superior" "toggle-search-bar": "Activar o desactivar la barra de búsqueda superior"
} }
}, },

View File

@@ -869,12 +869,12 @@
}, },
"megamenu": { "megamenu": {
"close": "", "close": "",
"dock": "", "dock": ""
"undock": ""
}, },
"toolbar": { "toolbar": {
"close-menu": "",
"enable-kiosk": "Activer le mode kiosque", "enable-kiosk": "Activer le mode kiosque",
"toggle-menu": "Afficher/Masquer le menu", "open-menu": "",
"toggle-search-bar": "Afficher/Masquer la barre de recherche" "toggle-search-bar": "Afficher/Masquer la barre de recherche"
} }
}, },

View File

@@ -863,12 +863,12 @@
}, },
"megamenu": { "megamenu": {
"close": "Cľőşę męʼnū", "close": "Cľőşę męʼnū",
"dock": "Đőčĸ męʼnū", "dock": "Đőčĸ męʼnū"
"undock": "Ůʼnđőčĸ męʼnū"
}, },
"toolbar": { "toolbar": {
"close-menu": "Cľőşę męʼnū",
"enable-kiosk": "Ēʼnäþľę ĸįőşĸ mőđę", "enable-kiosk": "Ēʼnäþľę ĸįőşĸ mőđę",
"toggle-menu": "Ŧőģģľę męʼnū", "open-menu": "Øpęʼn męʼnū",
"toggle-search-bar": "Ŧőģģľę ŧőp şęäřčĥ þäř" "toggle-search-bar": "Ŧőģģľę ŧőp şęäřčĥ þäř"
} }
}, },

View File

@@ -857,12 +857,12 @@
}, },
"megamenu": { "megamenu": {
"close": "", "close": "",
"dock": "", "dock": ""
"undock": ""
}, },
"toolbar": { "toolbar": {
"close-menu": "",
"enable-kiosk": "启用 kiosk 模式", "enable-kiosk": "启用 kiosk 模式",
"toggle-menu": "切换菜单", "open-menu": "",
"toggle-search-bar": "切换顶部搜索栏" "toggle-search-bar": "切换顶部搜索栏"
} }
}, },