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

This commit is contained in:
kay delaney 2023-04-13 12:00:59 +01:00 committed by GitHub
parent 2991d4c213
commit 38ee910e39
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 21 deletions

View File

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

View File

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