- {}} />
+
diff --git a/public/app/core/components/TopNav/TopNavPage.tsx b/public/app/core/components/TopNav/TopNavPage.tsx
index 5924ad69485..9b8220ecfab 100644
--- a/public/app/core/components/TopNav/TopNavPage.tsx
+++ b/public/app/core/components/TopNav/TopNavPage.tsx
@@ -1,5 +1,5 @@
import { css, cx } from '@emotion/css';
-import React, { PropsWithChildren } from 'react';
+import React, { PropsWithChildren, useState } from 'react';
import { useSelector } from 'react-redux';
import { useObservable, useToggle } from 'react-use';
import { createSelector } from 'reselect';
@@ -9,6 +9,8 @@ import { useStyles2 } from '@grafana/ui';
import { getNavModel } from 'app/core/selectors/navModel';
import { StoreState } from 'app/types';
+import { MegaMenu } from '../MegaMenu/MegaMenu';
+
import { NavToolbar } from './NavToolbar';
import { topNavDefaultProps, topNavUpdates } from './TopNavUpdate';
import { TopSearchBar } from './TopSearchBar';
@@ -26,6 +28,7 @@ export function TopNavPage({ children, navId }: Props) {
const [searchBarHidden, toggleSearchBar] = useToggle(false); // repace with local storage
const props = useObservable(topNavUpdates, topNavDefaultProps);
const navModel = useSelector(createSelector(getNavIndex, (navIndex) => getNavModel(navIndex, navId ?? 'home')));
+ const [megaMenuOpen, setMegaMenuOpen] = useState(false);
return (
@@ -35,10 +38,12 @@ export function TopNavPage({ children, navId }: Props) {
{...props}
searchBarHidden={searchBarHidden}
onToggleSearchBar={toggleSearchBar}
+ onToggleMegaMenu={() => setMegaMenuOpen(!megaMenuOpen)}
sectionNav={navModel.node}
/>
{children}
+ {megaMenuOpen &&
setMegaMenuOpen(false)} />}
);
}
diff --git a/public/app/core/reducers/navBarTree.ts b/public/app/core/reducers/navBarTree.ts
index b05979ac042..6907d7af6b9 100644
--- a/public/app/core/reducers/navBarTree.ts
+++ b/public/app/core/reducers/navBarTree.ts
@@ -1,7 +1,7 @@
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
import { NavModelItem } from '@grafana/data';
-import config from 'app/core/config';
+import { config } from '@grafana/runtime';
export const initialState: NavModelItem[] = config.bootData?.navTree ?? [];