RED-9437: fixed watermarks not available on creating first dossier.

This commit is contained in:
Nicoleta Panaghiu 2024-06-26 15:37:33 +03:00
parent eeca03ae61
commit 9c5a66b80e

View File

@ -9,8 +9,9 @@ import { FormFieldComponent } from '@common-ui/inputs/form-field/form-field-comp
import { shareLast } from '@iqser/common-ui/lib/utils';
import { Watermark } from '@red/domain';
import { WatermarksMapService } from '@services/entity-services/watermarks-map.service';
import { BehaviorSubject, Observable } from 'rxjs';
import { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';
import { filter, map, tap } from 'rxjs/operators';
import { WatermarkService } from '@services/entity-services/watermark.service';
@Component({
selector: 'redaction-watermark-selector [dossierTemplateId] [label]',
@ -41,7 +42,10 @@ export class WatermarkSelectorComponent extends FormFieldComponent<number> imple
readonly watermarks$: Observable<Watermark[]>;
watermarksMap = new Map<number, Watermark>();
constructor(private readonly _watermarksMapService: WatermarksMapService) {
constructor(
private readonly _watermarksMapService: WatermarksMapService,
private readonly _watermarksService: WatermarkService,
) {
super();
this.watermarks$ = this.#dossierTemplateId$.pipe(
filter(dossierTemplateId => !!dossierTemplateId),
@ -81,8 +85,11 @@ export class WatermarkSelectorComponent extends FormFieldComponent<number> imple
this.onChange(this._value);
}
ngOnChanges(changes: SimpleChanges) {
async ngOnChanges(changes: SimpleChanges) {
if (changes.dossierTemplateId) {
if (!this._watermarksMapService.get(changes.dossierTemplateId.currentValue).length) {
await firstValueFrom(this._watermarksService.loadForDossierTemplate(changes.dossierTemplateId.currentValue));
}
this.#dossierTemplateId$.next(this.dossierTemplateId);
}
}