RED-4161: use null chaining operator

This commit is contained in:
Dan Percic 2022-06-03 15:24:11 +03:00
parent dbd1da8f16
commit baa701aa6d

View File

@ -20,25 +20,29 @@ export class DossiersGuard implements CanActivate {
async canActivate(route: ActivatedRouteSnapshot): Promise<boolean> {
const token: ProviderToken<DossiersService> = route.data.dossiersService;
if (token) {
const dossiersService: DossiersService = this._injector.get<DossiersService>(token);
const isArchive = dossiersService.routerPath === ARCHIVE_ROUTE;
const dossierTemplateId = route.paramMap.get(DOSSIER_TEMPLATE_ID);
const dossierTemplateStats = this._dashboardStatsService.find(dossierTemplateId);
if (isArchive && dossierTemplateStats.numberOfArchivedDossiers === 0) {
await this._router.navigate(['main', dossierTemplateId, 'dossiers']);
return false;
}
if (!isArchive && dossierTemplateStats.numberOfActiveDossiers === 0) {
await this._router.navigate(['main', dossierTemplateId, 'archive']);
return false;
}
await firstValueFrom(dossiersService.loadAll());
} else {
if (!token) {
const services = [this._archivedDossiersService, this._activeDossiersService];
const loading$ = forkJoin(services.map(service => service.loadAll().pipe(take(1))));
await firstValueFrom(loading$);
return true;
}
const dossiersService: DossiersService = this._injector.get<DossiersService>(token);
const isArchive = dossiersService.routerPath === ARCHIVE_ROUTE;
const dossierTemplateId = route.paramMap.get(DOSSIER_TEMPLATE_ID);
const dossierTemplateStats = this._dashboardStatsService.find(dossierTemplateId);
if (isArchive && dossierTemplateStats?.numberOfArchivedDossiers === 0) {
await this._router.navigate(['main', dossierTemplateId, 'dossiers']);
return false;
}
if (!isArchive && dossierTemplateStats?.numberOfActiveDossiers === 0) {
await this._router.navigate(['main', dossierTemplateId, 'archive']);
return false;
}
await firstValueFrom(dossiersService.loadAll());
return true;
}
}