Dashboards: Prevent template variables from resolving twice (#66372)

pull/66453/head
kay delaney 2 years ago committed by GitHub
parent 2991d4c213
commit 38ee910e39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 43
      public/app/core/components/AppChrome/AppChrome.tsx
  2. 1
      public/app/core/components/AppChrome/AppChromeService.tsx

@ -47,31 +47,32 @@ export function AppChrome({ children }: Props) {
});
// Chromeless routes are without topNav, mega menu, search & command palette
if (state.chromeless) {
return (
<main className="main-view">
<div className={contentClass}>{children}</div>
</main>
);
}
// We check chromeless twice here instead of having a separate path so {children}
// doesn't get re-mounted when chromeless goes from true to false.
return (
<main className="main-view">
<div className={cx(styles.topNav)}>
{!searchBarHidden && <TopSearchBar />}
<NavToolbar
searchBarHidden={searchBarHidden}
sectionNav={state.sectionNav}
pageNav={state.pageNav}
actions={state.actions}
onToggleSearchBar={chrome.onToggleSearchBar}
onToggleMegaMenu={chrome.onToggleMegaMenu}
onToggleKioskMode={chrome.onToggleKioskMode}
/>
</div>
{!state.chromeless && (
<div className={cx(styles.topNav)}>
{!searchBarHidden && <TopSearchBar />}
<NavToolbar
searchBarHidden={searchBarHidden}
sectionNav={state.sectionNav}
pageNav={state.pageNav}
actions={state.actions}
onToggleSearchBar={chrome.onToggleSearchBar}
onToggleMegaMenu={chrome.onToggleMegaMenu}
onToggleKioskMode={chrome.onToggleKioskMode}
/>
</div>
)}
<div className={contentClass}>{children}</div>
<MegaMenu searchBarHidden={searchBarHidden} onClose={() => chrome.setMegaMenu(false)} />
<CommandPalette />
{!state.chromeless && (
<>
<MegaMenu searchBarHidden={searchBarHidden} onClose={() => chrome.setMegaMenu(false)} />
<CommandPalette />
</>
)}
</main>
);
}

@ -73,6 +73,7 @@ export class AppChromeService {
// Some updates can have new instance of sectionNav or pageNav but with same values
if (newState.sectionNav !== current.sectionNav || newState.pageNav !== current.pageNav) {
if (
newState.actions === current.actions &&
navItemsAreTheSame(newState.sectionNav, current.sectionNav) &&
navItemsAreTheSame(newState.pageNav, current.pageNav)
) {

Loading…
Cancel
Save