import React from 'react'; import { useLocation } from 'react-router-dom'; import { cloneDeep } from 'lodash'; import { css } from '@emotion/css'; import { GrafanaTheme2, NavModelItem } from '@grafana/data'; import { locationService } from '@grafana/runtime'; import { Icon, IconName, useTheme2 } from '@grafana/ui'; import config from '../../config'; import { isLinkActive, isSearchActive } from './utils'; import NavBarItem from './NavBarItem'; const TopSection = () => { const location = useLocation(); const theme = useTheme2(); const styles = getStyles(theme); const navTree: NavModelItem[] = cloneDeep(config.bootData.navTree); const mainLinks = navTree.filter((item) => !item.hideFromMenu); const activeItemId = mainLinks.find((item) => isLinkActive(location.pathname, item))?.id; const onOpenSearch = () => { locationService.partial({ search: 'open' }); }; return (
{mainLinks.map((link, index) => { return ( {link.icon && } {link.img && {`${link.text}} ); })}
); }; export default TopSection; const getStyles = (theme: GrafanaTheme2) => ({ container: css` display: none; flex-grow: 1; ${theme.breakpoints.up('md')} { display: block; margin-top: ${theme.spacing(5)}; } .sidemenu-open--xs & { display: block; } `, });