| import { inject } from '@angular/core'; | |
| import { ActivatedRouteSnapshot, CanActivateFn, Router, RouterStateSnapshot } from '@angular/router'; | |
| import { AuthService } from './auth.service'; | |
| import { map, catchError, of } from 'rxjs'; | |
| export const rootRedirectGuard: CanActivateFn = ( | |
| route: ActivatedRouteSnapshot, | |
| state: RouterStateSnapshot | |
| ) => { | |
| const authService = inject(AuthService); | |
| const router = inject(Router); | |
| return authService.checkSession().pipe( | |
| map(() => { | |
| if (authService.isLoggedIn()) { | |
| router.navigate(['/home']); | |
| } else { | |
| router.navigate(['/auth']); | |
| } | |
| return false; | |
| }), | |
| catchError(() => { | |
| router.navigate(['/auth']); | |
| return of(false); | |
| }) | |
| ); | |
| }; | |