import {Component, Inject} from '@angular/core'; import {TranslateService} from '@ngx-translate/core'; import {NavigationStart, Router} from '@angular/router'; import {DOCUMENT} from '@angular/common'; import {filter} from 'rxjs/operators'; import {ConfigService} from './services/config.service'; import {environment} from '../environments/environment'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent { step: string; isDevelopmentEnv=false; constructor(private translate: TranslateService, public config: ConfigService, @Inject(DOCUMENT) private document, private route: Router) { this.detectCurrentTabOnRouteChange(); this.findLocalStoragePreferences(); this.isDevelopmentEnv = !environment.production } detectCurrentTabOnRouteChange() { this.route.events.subscribe((event: any) => { }); this.route.events.pipe(filter(event => event instanceof NavigationStart)).subscribe((event: NavigationStart) => { this.scrollGoToTop(); this.updateCurrentTab(event); // only if there is a poll ID this.config.fetchPollFromRoute(event); }) } scrollGoToTop() { this.document.documentElement.scrollTop = 0; } updateCurrentTab(event) { if (event.url) { const tab = event.url.split('/'); if (tab && tab[2]) { this.step = tab[2]; } else { this.step = 'home'; } } } public findLocalStoragePreferences() { const storage = window.localStorage; if ( storage ){ const preferences = storage.getItem('FramadateConfig'); } } }