Files
angular-challenges/apps/testing-router-outlet/src/app/book.guard.ts

21 lines
574 B
TypeScript

import { inject } from '@angular/core';
import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { availableBooks } from './book.model';
export const bookGuard = (
route: ActivatedRouteSnapshot,
router = inject(Router)
) => {
const searchParam = route.queryParams?.['book'].toLowerCase();
const isBookAvailable =
!!searchParam &&
availableBooks.some(
(b) =>
b.author.toLowerCase().includes(searchParam) ||
b.name.toLowerCase().includes(searchParam)
);
return isBookAvailable || router.parseUrl('no-result');
};