diff --git a/ui/app/components/list-accordion.js b/ui/app/components/list-accordion.js index 9e004645d..a7b0ccc41 100644 --- a/ui/app/components/list-accordion.js +++ b/ui/app/components/list-accordion.js @@ -7,16 +7,20 @@ export default Component.extend({ key: 'id', source: computed(() => []), + onToggle(/* item, isOpen */) {}, + startExpanded: false, + decoratedSource: computed('source.[]', function() { const stateCache = this.get('stateCache'); const key = this.get('key'); const deepKey = `item.${key}`; + const startExpanded = this.get('startExpanded'); const decoratedSource = this.get('source').map(item => { const cacheItem = stateCache.findBy(deepKey, get(item, key)); return { item, - isOpen: cacheItem ? !!cacheItem.isOpen : false, + isOpen: cacheItem ? !!cacheItem.isOpen : startExpanded, }; }); diff --git a/ui/app/templates/components/list-accordion.hbs b/ui/app/templates/components/list-accordion.hbs index 67678cef2..5f24cdbad 100644 --- a/ui/app/templates/components/list-accordion.hbs +++ b/ui/app/templates/components/list-accordion.hbs @@ -2,9 +2,17 @@ {{yield (hash head=(component "list-accordion/accordion-head" isOpen=item.isOpen - onOpen=(action (mut item.isOpen) true) - onClose=(action (mut item.isOpen) false)) + onOpen=(action (queue + (action (mut item.isOpen) true) + (action onToggle item.item item.isOpen) + )) + onClose=(action (queue + (action (mut item.isOpen) false) + (action onToggle item.item item.isOpen) + )) + ) body=(component "list-accordion/accordion-body" isOpen=item.isOpen) item=item.item + isOpen=item.isOpen )}} {{/each}}