mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-11-28 22:43:30 +03:00
a63dbb7da6
closes TryGhost/Ghost#8307 - unloading the store and refreshing the `session.user` attribute after an import was triggering a rendering edge case where the style was re-computed and a re-render was attempted after the sidebar has been destroyed - rather than binding a style attribute directly to a CP in `gh-nav-menu` we pass the menu icon in (using `settings.settledIcon` - see below) and manually set the style attribute via the `didReceiveAttrs` hook so that outside changes don't trigger re-computations when we don't expect them and so we can still react to icons being uploaded or removed - our usage of `settings.icon` is a bit of an odd situation because it's a link to an external resource that will only resolve correctly after a successful save - if we change `settings.icon` in the local store and the nav menu icon style updates before the save has been completed then the server will give us the old icon. To work around this a `settings.settledIcon` attribute has been added that is only updated when we receive data from the store ensuring that our cache-busting technique works correctly
37 lines
1.2 KiB
Handlebars
37 lines
1.2 KiB
Handlebars
{{#gh-app showSettingsMenu=showSettingsMenu}}
|
|
{{#gh-skip-link anchor=".gh-main"}}Skip to main content{{/gh-skip-link}}
|
|
|
|
{{gh-alerts notify="topNotificationChange"}}
|
|
|
|
<div class="gh-viewport {{if autoNav 'gh-autonav'}} {{if showSettingsMenu 'settings-menu-expanded'}} {{if showMobileMenu 'mobile-menu-expanded'}}">
|
|
{{#if showNavMenu}}
|
|
{{gh-nav-menu
|
|
open=autoNavOpen
|
|
icon=settings.settledIcon
|
|
toggleMaximise="toggleAutoNav"
|
|
openAutoNav="openAutoNav"
|
|
showMarkdownHelp="toggleMarkdownHelpModal"
|
|
closeMobileMenu="closeMobileMenu"}}
|
|
{{/if}}
|
|
|
|
{{#gh-main onMouseEnter="closeAutoNav" data-notification-count=topNotificationCount}}
|
|
{{outlet}}
|
|
{{/gh-main}}
|
|
|
|
|
|
{{gh-notifications}}
|
|
|
|
{{gh-content-cover onClick="closeMenus" onMouseEnter="closeAutoNav"}}
|
|
|
|
{{gh-mobile-nav-bar openMobileMenu="openMobileMenu"}}
|
|
</div>{{!gh-viewport}}
|
|
{{/gh-app}}
|
|
|
|
{{#if showMarkdownHelpModal}}
|
|
{{gh-fullscreen-modal "markdown-help"
|
|
close=(route-action "toggleMarkdownHelpModal")
|
|
modifier="wide"}}
|
|
{{/if}}
|
|
|
|
{{ember-load-remover}}
|