From 8b9dd584d8ed9596f299a30250def8e9864fc9c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 17 Mar 2022 01:34:36 +0200 Subject: [PATCH] Remove dossiers service getter from file preview state service --- .../services/file-preview-state.service.ts | 11 ++++------- .../entity-services/dossiers.service.provider.ts | 2 ++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts index 683bc06a9..bd3b5846f 100644 --- a/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts +++ b/apps/red-ui/src/app/modules/file-preview/services/file-preview-state.service.ts @@ -8,7 +8,6 @@ import { boolFactory } from '@iqser/common-ui'; import { filter, startWith } from 'rxjs/operators'; import { FileManagementService } from '@services/entity-services/file-management.service'; import { DOSSIER_ID, FILE_ID } from '@utils/constants'; -import { DossiersService } from '@services/dossiers/dossiers.service'; import { dossiersServiceResolver } from '@services/entity-services/dossiers.service.provider'; import { wipeFilesCache } from '@red/cache'; @@ -31,11 +30,13 @@ export class FilePreviewStateService { private readonly _filesMapService: FilesMapService, private readonly _permissionsService: PermissionsService, ) { + const dossiersService = dossiersServiceResolver(this._injector); + this.fileId = _route.snapshot.paramMap.get(FILE_ID); this.dossierId = _route.snapshot.paramMap.get(DOSSIER_ID); - this.dossierTemplateId = this._dossiersService.find(this.dossierId).dossierTemplateId; + this.dossierTemplateId = dossiersService.find(this.dossierId).dossierTemplateId; - this.dossier$ = this._dossiersService.getEntityChanged$(this.dossierId); + this.dossier$ = dossiersService.getEntityChanged$(this.dossierId); this.file$ = _filesMapService.watch$(this.dossierId, this.fileId); [this.isReadonly$, this.isWritable$] = boolFactory( combineLatest([this.file$, this.dossier$]), @@ -57,10 +58,6 @@ export class FilePreviewStateService { return firstValueFrom(this.blob$); } - private get _dossiersService(): DossiersService { - return dossiersServiceResolver(this._injector); - } - get #blob$() { return this.file$.pipe( startWith(undefined), diff --git a/apps/red-ui/src/app/services/entity-services/dossiers.service.provider.ts b/apps/red-ui/src/app/services/entity-services/dossiers.service.provider.ts index 0acf1c071..42b0de04a 100644 --- a/apps/red-ui/src/app/services/entity-services/dossiers.service.provider.ts +++ b/apps/red-ui/src/app/services/entity-services/dossiers.service.provider.ts @@ -2,6 +2,8 @@ import { ActivatedRoute } from '@angular/router'; import { Injector, ProviderToken } from '@angular/core'; import { DossiersService } from '../dossiers/dossiers.service'; +/** Usage in components or services is only allowed in guards or in constructors. + * Otherwise, it causes errors on navigation to other screens if the component is reused. */ export const dossiersServiceResolver = (injector: Injector) => { let route: ActivatedRoute = injector.get(ActivatedRoute); while (route.firstChild) {