diff --git a/apps/red-ui/src/app/guards/dossiers.guard.ts b/apps/red-ui/src/app/guards/dossiers.guard.ts index b54c1b87b..1476110b7 100644 --- a/apps/red-ui/src/app/guards/dossiers.guard.ts +++ b/apps/red-ui/src/app/guards/dossiers.guard.ts @@ -20,25 +20,29 @@ export class DossiersGuard implements CanActivate { async canActivate(route: ActivatedRouteSnapshot): Promise { const token: ProviderToken = route.data.dossiersService; - if (token) { - const dossiersService: DossiersService = this._injector.get(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(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; } }