You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aConnect-UX/src/app/app.component.ts

68 lines
2.2 KiB
TypeScript

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']);
}
}
}
}