import { DOCUMENT } from '@angular/common'; import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { Title } from '@angular/platform-browser'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { environment } from '@msfa-environment'; import { filter, map, switchMap } from 'rxjs/operators'; @Component({ selector: 'msfa-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) export class AppComponent { constructor( @Inject(DOCUMENT) private document: Document, private router: Router, private activatedRoute: ActivatedRoute, private titleService: Title ) { this.document.body.dataset.version = environment.version; this.router.events .pipe( filter(event => event instanceof NavigationEnd), map(() => traverseUntilNoChildRoute(this.activatedRoute)), switchMap((route: ActivatedRoute) => route.data) ) .subscribe((routeData: { [title: string]: string }) => { const pageTitle = routeData.title; this.titleService.setTitle(`${pageTitle ? `${pageTitle} - ` : ''}Mina sidor för fristående aktörer`); }); } } function traverseUntilNoChildRoute(route: ActivatedRoute): ActivatedRoute { while (route.firstChild) { route = route.firstChild; } return route; }