diff --git a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.html b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.html index dabeb1420..4ad1e42b9 100644 --- a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.html +++ b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.html @@ -12,10 +12,10 @@ -
+
- - {{ primaryAttribute }} + + {{ ctx.primaryAttribute }}
diff --git a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts index 921389b32..797059be8 100644 --- a/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/file-name-column/file-name-column.component.ts @@ -1,10 +1,9 @@ -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; +import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core'; import { PrimaryFileAttributeService } from '@services/primary-file-attribute.service'; import { FileAttributes } from '@red/domain'; -import { ContextComponent, ScrollableParentView, ScrollableParentViews } from '@iqser/common-ui'; -import { FileAttributesConfigMap, FileAttributesService } from '@services/entity-services/file-attributes.service'; -import { tap } from 'rxjs/operators'; -import { BehaviorSubject, combineLatestWith, map } from 'rxjs'; +import { ContextComponent } from '@iqser/common-ui'; +import { FileAttributesService } from '@services/entity-services/file-attributes.service'; +import { combineLatest, map, ReplaySubject } from 'rxjs'; interface PartialFile { readonly isError: boolean; @@ -18,7 +17,7 @@ interface PartialFile { } interface FileNameColumnContext { - fileAttributesConfig: FileAttributesConfigMap; + primaryAttribute: string; } @Component({ @@ -30,35 +29,27 @@ interface FileNameColumnContext { export class FileNameColumnComponent extends ContextComponent implements OnInit, OnChanges { @Input() file: PartialFile; @Input() dossierTemplateId: string; - primaryAttribute: string; - readonly #reloadAttribute = new BehaviorSubject(null); + readonly #reloadAttribute = new ReplaySubject(1); constructor( private readonly _fileAttributeService: FileAttributesService, private readonly _primaryFileAttributeService: PrimaryFileAttributeService, - private readonly _changeDetectorRef: ChangeDetectorRef, ) { super(); } ngOnInit(): void { - const fileAttributesConfig$ = this._fileAttributeService.fileAttributesConfig$.pipe( - combineLatestWith(this.#reloadAttribute), - tap(() => { - this.primaryAttribute = this._primaryFileAttributeService.getPrimaryFileAttributeValue(this.file, this.dossierTemplateId); - this._changeDetectorRef.detectChanges(); - }), - map(([attributes]) => attributes), + const primaryAttribute$ = combineLatest([this._fileAttributeService.fileAttributesConfig$, this.#reloadAttribute]).pipe( + map(() => this._primaryFileAttributeService.getPrimaryFileAttributeValue(this.file, this.dossierTemplateId)), ); super._initContext({ - fileAttributesConfig: fileAttributesConfig$, + primaryAttribute: primaryAttribute$, }); } ngOnChanges(changes: SimpleChanges): void { - if (!changes.file) { - return; + if (changes.file) { + this.#reloadAttribute.next(); } - this.#reloadAttribute.next(null); } }