import { Component, OnInit, OnDestroy } from '@angular/core'; import { KeycloakService } from '../../utils/keycloak.service'; import { UserConfigService } from '../../utils/user-config.service'; import { Router } from '@angular/router'; import { split, lowerCase } from 'lodash'; import { Subscription } from 'rxjs'; @Component({ selector: 'login', template: '', styles: [], }) export class LoginComponent implements OnInit, OnDestroy { private appConfig; keyCloakSubscription: Subscription; userConfigDFSubscription: Subscription; userConfigDPOSubscription: Subscription; userConfigCPSubscription: Subscription; userConfigSubscription: Subscription; constructor(private userConfig: UserConfigService, private router: Router, private keycloak: KeycloakService) {} ngOnInit() { this.keyCloakSubscription = this.keycloak.cast.subscribe(isKeycloakInitialised => { if (isKeycloakInitialised) { this.initLogin(); } }); } initLogin(): void { if (localStorage.espToken || this.keycloak.getToken()) { this.router.navigate(['landing']); } else { this.keycloak.login(); } } navigateToDefaultApp() { const i18n = this.appConfig['i18n']['translations']; let routeName = [split(lowerCase(i18n['header']), ' ', 2).join('-')]; const queryParams = {}; if (localStorage.currentLocation) { routeName = [localStorage.currentLocation]; const searchQuery = localStorage.search; if (searchQuery && searchQuery !== '') { searchQuery .substr(1) .split('&') .forEach(item => { queryParams[item.split('=')[0]] = item.split('=')[1]; }); } localStorage.removeItem('currentLocation'); localStorage.removeItem('search'); } // this.router.navigate(routeName, { queryParams }); this.router.navigate(["/predictive-ordering"], { queryParams }); } ngOnDestroy() { this.userConfigDFSubscription?.unsubscribe(); this.userConfigDPOSubscription?.unsubscribe(); this.keyCloakSubscription?.unsubscribe(); this.userConfigCPSubscription?.unsubscribe(); } }