Merge pull request #640 from ntedgi/accordion-does-not-support-dynamic-tabs-622

Fix issue : Accordion does not support dynamic tabs #622
pull/682/head
Cagatay Civici 2020-11-25 16:01:23 +03:00 committed by GitHub
commit d81c42ed9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 2 deletions

View File

@ -98,11 +98,24 @@ export default {
getHeaderIcon(i) { getHeaderIcon(i) {
const active = this.isTabActive(i); const active = this.isTabActive(i);
return ['p-accordion-toggle-icon pi', {'pi-chevron-right': !active, 'pi-chevron-down': active}]; return ['p-accordion-toggle-icon pi', {'pi-chevron-right': !active, 'pi-chevron-down': active}];
},
childIsAccordionTab(child) {
return child.type.name === 'accordiontab'
} }
}, },
computed: { computed: {
tabs() { tabs() {
return this.$slots.default().filter(child => child.type.name === 'accordiontab'); const tabs = []
this.$slots.default().forEach(child => {
if (this.childIsAccordionTab(child)) tabs.push(child)
else if (child.children.length > 0)
child.children.forEach(nestedChild => {
if (this.childIsAccordionTab(nestedChild)) tabs.push(nestedChild)
})
}
)
return tabs
}, },
ariaId() { ariaId() {
return UniqueComponentId(); return UniqueComponentId();