diff --git a/src-ui/src/app/services/settings.service.spec.ts b/src-ui/src/app/services/settings.service.spec.ts index 804d78b175..20ce773958 100644 --- a/src-ui/src/app/services/settings.service.spec.ts +++ b/src-ui/src/app/services/settings.service.spec.ts @@ -260,6 +260,18 @@ describe('SettingsService', () => { ).toBe(false) }) + it('handles null values for sidebar hidden items', () => { + httpTestingController + .expectOne(`${environment.apiBaseUrl}ui_settings/`) + .flush(ui_settings) + + settingsService.set(SETTINGS_KEYS.SIDEBAR_HIDDEN_ITEMS, null) + + expect( + settingsService.sidebarItemIsHidden(HideableSidebarItemID.Workflows) + ).toBe(false) + }) + it('updates setting signals when settings are reinitialized', () => { let req = httpTestingController.expectOne( `${environment.apiBaseUrl}ui_settings/` diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index 005c706676..b3a7d9d48c 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -765,7 +765,9 @@ export class SettingsService { sidebarItemIsHidden(item: HideableSidebarItemID): boolean { return ( - this.sidebarHiddenItemsEditing() ?? this.hiddenSidebarItems() + this.sidebarHiddenItemsEditing() ?? + this.hiddenSidebarItems() ?? + [] ).includes(item) } @@ -774,7 +776,7 @@ export class SettingsService { visible: boolean ): void { const hiddenItems = new Set( - this.sidebarHiddenItemsEditing() ?? this.hiddenSidebarItems() + this.sidebarHiddenItemsEditing() ?? this.hiddenSidebarItems() ?? [] ) if (visible) { hiddenItems.delete(item)