Remove dossiers service getter from file preview state service

This commit is contained in:
Adina Țeudan 2022-03-17 01:34:36 +02:00
parent d3c297e29d
commit 8b9dd584d8
2 changed files with 6 additions and 7 deletions

View File

@ -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),

View File

@ -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>(ActivatedRoute);
while (route.firstChild) {