From 999eb1426ceec2bb1603ca75fdb169e4f799307c Mon Sep 17 00:00:00 2001 From: itskovacs Date: Wed, 6 Aug 2025 20:04:11 +0200 Subject: [PATCH] :zap: Improve service --- src/src/app/services/auth.guard.ts | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/src/app/services/auth.guard.ts b/src/src/app/services/auth.guard.ts index 2d0b605..d3d7f76 100644 --- a/src/src/app/services/auth.guard.ts +++ b/src/src/app/services/auth.guard.ts @@ -1,22 +1,27 @@ -import { inject } from '@angular/core'; -import { CanActivateChildFn, CanActivateFn, Router } from '@angular/router'; -import { UtilsService } from './utils.service'; -import { AuthService } from './auth.service'; -import { of, switchMap } from 'rxjs'; +import { inject } from "@angular/core"; +import { CanActivateFn, Router } from "@angular/router"; +import { UtilsService } from "./utils.service"; +import { AuthService } from "./auth.service"; +import { of, switchMap, take } from "rxjs"; -export const AuthGuard: CanActivateFn | CanActivateChildFn = (_, state) => { +export const AuthGuard: CanActivateFn = (_, state) => { const router: Router = inject(Router); const utilsService = inject(UtilsService); return inject(AuthService) .isLoggedIn() .pipe( + take(1), switchMap((authenticated) => { if (!authenticated) { const redirectURL = - state.url === '/auth' ? '' : `redirectURL=${state.url}`; + state.url === "/auth" ? "" : `redirectURL=${state.url}`; const urlTree = router.parseUrl(`auth?${redirectURL}`); - utilsService.toast('error', 'Error', 'You must be authenticated'); + utilsService.toast( + "warn", + "Authentication required", + "You must be authenticated", + ); return of(urlTree); }