RED-4161: use null chaining operator
This commit is contained in:
parent
dbd1da8f16
commit
baa701aa6d
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user