|
|
|
|
import { Component, Inject, PLATFORM_ID } from '@angular/core';
|
|
|
|
|
import { Router, RouterOutlet } from '@angular/router';
|
|
|
|
|
import { TranslateService } from '@ngx-translate/core';
|
|
|
|
|
import { StorageService } from './shared/services/storage.service';
|
|
|
|
|
import { isPlatformBrowser } from '@angular/common';
|
|
|
|
|
import { directions, supportedLanguages } from './utils/enums';
|
|
|
|
|
import { LoaderComponent } from './shared/components/loader/loader.component';
|
|
|
|
|
import { NotificationsComponent } from './shared/components/notifications/notifications.component';
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'app-root',
|
|
|
|
|
imports: [RouterOutlet, LoaderComponent, NotificationsComponent],
|
|
|
|
|
templateUrl: './app.component.html',
|
|
|
|
|
styleUrl: './app.component.scss'
|
|
|
|
|
})
|
|
|
|
|
export class AppComponent {
|
|
|
|
|
direction: any;
|
|
|
|
|
title = 'aConnect';
|
|
|
|
|
|
|
|
|
|
constructor(
|
|
|
|
|
private translateService: TranslateService,
|
|
|
|
|
private storageService: StorageService,
|
|
|
|
|
private router: Router,
|
|
|
|
|
@Inject(PLATFORM_ID) private platformId: object
|
|
|
|
|
) { }
|
|
|
|
|
|
|
|
|
|
ngOnInit() {
|
|
|
|
|
if (!isPlatformBrowser(this.platformId)) return;
|
|
|
|
|
|
|
|
|
|
const currentLanguage = this.storageService.getItem('language') || supportedLanguages.ENGLISH;
|
|
|
|
|
this.storageService.setItem('language', currentLanguage);
|
|
|
|
|
this.translateService.setDefaultLang(currentLanguage);
|
|
|
|
|
this.translateService.use(currentLanguage);
|
|
|
|
|
|
|
|
|
|
this.direction = this.storageService.getItem('direction') || directions.LTR;
|
|
|
|
|
this.storageService.setItem('direction', this.direction);
|
|
|
|
|
|
|
|
|
|
if (typeof document !== 'undefined') {
|
|
|
|
|
document.documentElement.setAttribute('dir', this.direction);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const userStr = this.storageService.getItem('user');
|
|
|
|
|
if (userStr) {
|
|
|
|
|
try {
|
|
|
|
|
const data = JSON.parse(userStr);
|
|
|
|
|
if (data?.token) {
|
|
|
|
|
if (this.router.url === '/' || this.router.url === '/login') {
|
|
|
|
|
this.router.navigate(['/home/dashboard']);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (this.router.url === '/') {
|
|
|
|
|
this.router.navigate(['/login']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch {
|
|
|
|
|
this.storageService.removeItem('user');
|
|
|
|
|
if (this.router.url === '/') {
|
|
|
|
|
this.router.navigate(['/login']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (this.router.url === '/') {
|
|
|
|
|
this.router.navigate(['/login']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|