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);
}
}