Newer
Older
import { Component, OnInit } from '@angular/core';

Hugo SUBTIL
committed
import {
GuardsCheckStart,
NavigationCancel,
NavigationEnd,
NavigationError,
NavigationStart,
Router,
} from '@angular/router';
import { ProfileService } from './profile/services/profile.service';
import { AuthService } from './services/auth.service';
import { RouterListenerService } from './services/routerListener.service';
import { UpdateService } from './services/update.service';
import { PrintService } from './shared/service/print.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
export class AppComponent implements OnInit {
public title = 'resin';
public loading = true;
public printService: PrintService,
private profilService: ProfileService,
private routerListener: RouterListenerService,
private router: Router
) {
if (this.authService.isLoggedIn()) {
this.profilService.getProfile();
}
this.setHeightApp();
window.addEventListener('resize', () => {
this.setHeightApp();
});
this.routerListener.loadRouting();
// handle pwa update
this.updateService.subscribeUpdate();
this.router.events.subscribe((event) => {
switch (true) {
case event instanceof NavigationStart: {
this.loading = true;
break;
}

Hugo SUBTIL
committed
case event instanceof GuardsCheckStart:
case event instanceof NavigationEnd:

Hugo SUBTIL
committed
case event instanceof NavigationCancel: {
this.loading = false;
break;
}
case event instanceof NavigationError: {
setTimeout(() => {
this.loading = false;
}, 100);
break;
}
default: {
break;
}
}
});
ngOnInit(): void {
/**
* Reset scroll to top for article reading
*/
this.router.events.subscribe((evt) => {
if (!(evt instanceof NavigationEnd)) {
return;
}
document.getElementsByClassName('app-body')[0].scrollTo(0, 0);
});
}
private setHeightApp(): void {
const vh = window.innerHeight * 0.01;
document.documentElement.style.setProperty('--vh', `${vh}px`);