@@ -8,7 +8,15 @@ import {
88 ViewChild ,
99 ViewChildren ,
1010} from '@angular/core' ;
11- import { NavigationEnd , Router } from '@angular/router' ;
11+ import {
12+ NavigationStart ,
13+ NavigationEnd ,
14+ NavigationError ,
15+ NavigationCancel ,
16+ Router ,
17+ } from '@angular/router' ;
18+ import { Observable } from 'rxjs' ;
19+ import { map , filter } from 'rxjs/operators' ;
1220import { SearchMeta } from '../search/search-meta.service' ;
1321
1422import { ServiceWorkerService } from './service-worker.service' ;
@@ -31,6 +39,8 @@ export class AppComponent {
3139 @ViewChildren ( AppNavItem )
3240 navItems ! : QueryList < AppNavItem > ;
3341
42+ routeLoading$ : Observable < boolean > ;
43+
3444 constructor (
3545 private swService : ServiceWorkerService ,
3646 searchMeta : SearchMeta ,
@@ -39,6 +49,7 @@ export class AppComponent {
3949 this . swService . launchUpdateCheckingRoutine ( ) ;
4050
4151 router . events . subscribe ( routerEvent => {
52+ console . log ( routerEvent ) ;
4253 if ( routerEvent instanceof NavigationEnd ) {
4354 if ( this . mobileMenuToggle ) {
4455 this . mobileMenuToggle . nativeElement . checked = false ;
@@ -49,6 +60,17 @@ export class AppComponent {
4960 }
5061 }
5162 } ) ;
63+
64+ this . routeLoading$ = router . events . pipe (
65+ filter (
66+ ev =>
67+ ev instanceof NavigationStart ||
68+ ev instanceof NavigationEnd ||
69+ ev instanceof NavigationCancel ||
70+ ev instanceof NavigationError ,
71+ ) ,
72+ map ( ev => ev instanceof NavigationStart ) ,
73+ ) ;
5274 }
5375
5476 @HostListener ( 'window:keydown' , [ '$event' ] )
0 commit comments