diff --git a/src/app/extensions/extension.service.spec.ts b/src/app/extensions/extension.service.spec.ts index 17772038a..7d2b88dac 100644 --- a/src/app/extensions/extension.service.spec.ts +++ b/src/app/extensions/extension.service.spec.ts @@ -682,6 +682,18 @@ describe('AppExtensionService', () => { } ]); }); + + it('should filter out disabled items', () => { + const navigation = service.getApplicationNavigation([ + { items: [{ route: 'route1' }, { route: 'route2', disabled: true }] }, + { items: [{ children: [{ route: 'route3', disabled: true }] }] } + ]); + + expect(navigation).toEqual([ + { items: [{ route: 'route1', url: '/route1' }] }, + { items: [{ children: [] }] } + ]); + }); }); describe('getSharedLinkViewerToolbarActions', () => { diff --git a/src/app/extensions/extension.service.ts b/src/app/extensions/extension.service.ts index 1333b205b..b9d7fd982 100644 --- a/src/app/extensions/extension.service.ts +++ b/src/app/extensions/extension.service.ts @@ -239,11 +239,13 @@ export class AppExtensionService implements AppRuleContext { return { ...group, items: (group.items || []) + .filter(entry => !entry.disabled) .filter(item => this.filterByRules(item)) .sort(sortByOrder) .map(item => { if (item.children && item.children.length > 0) { item.children = item.children + .filter(entry => !entry.disabled) .filter(child => this.filterByRules(child)) .sort(sortByOrder) .map(child => {