Ghost/ghost/admin/app/templates/components/gh-publishmenu.hbs
Kevin Ansfield 6c5f359628 Fixed publishmenu re-rending side-effects breaking tests
no issue
- we currently rely on a side-effect of the individual publish menu components calling `setSaveType` when they are rendered
- in tests sometimes the timing was not what we expected and the menu would swap components mid-save which then updated the save type and caused further problems
- added a guard so that we never swap the publish menu components whilst a save is in progress
2018-03-27 18:50:52 +01:00

43 lines
1.6 KiB
Handlebars

{{#basic-dropdown verticalPosition="below" onOpen=(action "open") onClose=(action "close") as |dd|}}
{{#dd.trigger class="gh-btn gh-btn-outline gh-publishmenu-trigger"}}
<span data-test-publishmenu-trigger>{{triggerText}} {{svg-jar "arrow-down"}}</span>
{{/dd.trigger}}
{{#dd.content class="gh-publishmenu-dropdown"}}
{{#if (eq displayState "published")}}
{{gh-publishmenu-published
saveType=saveType
setSaveType=(action "setSaveType")}}
{{else if (eq displayState "scheduled")}}
{{gh-publishmenu-scheduled
post=post
saveType=saveType
isClosing=isClosing
setSaveType=(action "setSaveType")}}
{{else}}
{{gh-publishmenu-draft
post=post
saveType=saveType
setSaveType=(action "setSaveType")}}
{{/if}}
{{!--
save button needs to be outside of menu components so it doesn't lose state
or cancel the task when the post status updates and switches components
--}}
<footer class="gh-publishmenu-footer">
<button class="gh-btn gh-btn-outline gh-btn-link" {{action dd.actions.close}} data-test-publishmenu-cancel>
<span>Cancel</span>
</button>
{{gh-task-button buttonText
task=save
successText=successText
runningText=runningText
class="gh-btn gh-btn-blue gh-publishmenu-button gh-btn-icon"
data-test-publishmenu-save=true}}
</footer>
{{/dd.content}}
{{/basic-dropdown}}