From e049148f7be5760ed2866b7742cda8dc9dd5ffcd Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sun, 8 Nov 2026 11:32:43 -0800 Subject: [PATCH] Chore: add a null guard for sidebar hidden items --- src-ui/src/app/services/settings.service.spec.ts | 12 ++++++++++++ src-ui/src/app/services/settings.service.ts | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) 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)