Ghost/ghost/admin/app/templates/application.hbs
Kevin Ansfield a63dbb7da6 🐛 fix broken sidebar after successful import (#658)
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
2017-04-19 18:57:56 +02:00

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}}