- {!searchBarHidden && }
+ {!state.searchBarHidden && }
setMegaMenuOpen(!megaMenuOpen)}
+ onToggleSearchBar={appChromeService.toggleSearchBar}
+ onToggleMegaMenu={appChromeService.toggleMegaMenu}
/>
- {children}
- {megaMenuOpen && setMegaMenuOpen(false)} />}
+ {children}
+ {state.megaMenuOpen && (
+
+ )}
);
}
diff --git a/public/app/core/components/AppChrome/AppChromeService.tsx b/public/app/core/components/AppChrome/AppChromeService.tsx
index 0c113f7701d..bf6c0c031b6 100644
--- a/public/app/core/components/AppChrome/AppChromeService.tsx
+++ b/public/app/core/components/AppChrome/AppChromeService.tsx
@@ -2,6 +2,7 @@ import { useObservable } from 'react-use';
import { BehaviorSubject } from 'rxjs';
import { NavModelItem } from '@grafana/data';
+import store from 'app/core/store';
import { isShallowEqual } from 'app/core/utils/isShallowEqual';
import { RouteDescriptor } from '../../navigation/types';
@@ -11,14 +12,19 @@ export interface AppChromeState {
sectionNav: NavModelItem;
pageNav?: NavModelItem;
actions?: React.ReactNode;
+ searchBarHidden?: boolean;
+ megaMenuOpen?: boolean;
}
const defaultSection: NavModelItem = { text: 'Grafana' };
export class AppChromeService {
+ searchBarStorageKey = 'SearchBar_Hidden';
+
readonly state = new BehaviorSubject