From b1e81615b08ea622c7842f22c0530af54bfcacd7 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 7 Jul 2026 16:59:46 -0700 Subject: [PATCH] signals for settings display fields --- src-ui/src/app/services/settings.service.ts | 88 ++++++++++----------- 1 file changed, 43 insertions(+), 45 deletions(-) diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index bbfeba739..4bd96a3e7 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -350,10 +350,11 @@ export class SettingsService { this.organizingSidebarSavedViewsSignal.set(value) } - private _allDisplayFields: Array<{ id: DisplayField; name: string }> = - DEFAULT_DISPLAY_FIELDS + private allDisplayFieldsSignal = signal< + Array<{ id: DisplayField; name: string }> + >(DEFAULT_DISPLAY_FIELDS) public get allDisplayFields(): Array<{ id: DisplayField; name: string }> { - return this._allDisplayFields + return this.allDisplayFieldsSignal() } public displayFieldsInit: EventEmitter = new EventEmitter() @@ -420,44 +421,39 @@ export class SettingsService { } public initializeDisplayFields() { - this._allDisplayFields = DEFAULT_DISPLAY_FIELDS + const displayFields = DEFAULT_DISPLAY_FIELDS?.map((field) => { + if ( + field.id === DisplayField.NOTES && + !this.get(SETTINGS_KEYS.NOTES_ENABLED) + ) { + return null + } - this._allDisplayFields = this._allDisplayFields - ?.map((field) => { - if ( - field.id === DisplayField.NOTES && - !this.get(SETTINGS_KEYS.NOTES_ENABLED) - ) { - return null - } + if ( + [ + DisplayField.TITLE, + DisplayField.CREATED, + DisplayField.ADDED, + DisplayField.ASN, + DisplayField.PAGE_COUNT, + DisplayField.SHARED, + ].includes(field.id) + ) { + return field + } - if ( - [ - DisplayField.TITLE, - DisplayField.CREATED, - DisplayField.ADDED, - DisplayField.ASN, - DisplayField.PAGE_COUNT, - DisplayField.SHARED, - ].includes(field.id) - ) { - return field - } + let type: PermissionType = Object.values(PermissionType).find((t) => + t.includes(field.id) + ) + if (field.id === DisplayField.OWNER) { + type = PermissionType.User + } + return this.permissionsService.currentUserCan(PermissionAction.View, type) + ? field + : null + }).filter((f) => f) - let type: PermissionType = Object.values(PermissionType).find((t) => - t.includes(field.id) - ) - if (field.id === DisplayField.OWNER) { - type = PermissionType.User - } - return this.permissionsService.currentUserCan( - PermissionAction.View, - type - ) - ? field - : null - }) - .filter((f) => f) + this.allDisplayFieldsSignal.set(displayFields) if ( this.permissionsService.currentUserCan( @@ -466,13 +462,15 @@ export class SettingsService { ) ) { this.customFieldsService.listAll().subscribe((r) => { - this._allDisplayFields = this._allDisplayFields.concat( - r.results.map((field) => { - return { - id: `${DisplayField.CUSTOM_FIELD}${field.id}` as any, - name: field.name, - } - }) + this.allDisplayFieldsSignal.set( + displayFields.concat( + r.results.map((field) => { + return { + id: `${DisplayField.CUSTOM_FIELD}${field.id}` as any, + name: field.name, + } + }) + ) ) this.displayFieldsInit.emit(true) })