60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
import { Direction } from '@angular/cdk/bidi';
|
|
import { Component, Inject, Renderer2 } from '@angular/core';
|
|
import { InConfiguration } from 'src/app/core/models/config.interface';
|
|
import { DirectionService } from 'src/app/core/service/direction.service';
|
|
import { ConfigService } from 'src/app/config/config.service';
|
|
import { DOCUMENT } from '@angular/common';
|
|
|
|
@Component({
|
|
selector: 'app-auth-layout',
|
|
templateUrl: './auth-layout.component.html',
|
|
styleUrls: [],
|
|
})
|
|
export class AuthLayoutComponent {
|
|
direction!: Direction;
|
|
config!: InConfiguration;
|
|
|
|
constructor(
|
|
@Inject(DOCUMENT) private document: Document,
|
|
private directoryService: DirectionService,
|
|
private configService: ConfigService,
|
|
private renderer: Renderer2
|
|
) {
|
|
this.config = this.configService.configData;
|
|
this.directoryService.currentData.subscribe((currentData) => {
|
|
if (currentData) {
|
|
this.direction = currentData === 'ltr' ? 'ltr' : 'rtl';
|
|
} else {
|
|
if (localStorage.getItem('isRtl')) {
|
|
if (localStorage.getItem('isRtl') === 'true') {
|
|
this.direction = 'rtl';
|
|
} else if (localStorage.getItem('isRtl') === 'false') {
|
|
this.direction = 'ltr';
|
|
}
|
|
} else {
|
|
if (this.config) {
|
|
if (this.config.layout.rtl === true) {
|
|
this.direction = 'rtl';
|
|
localStorage.setItem('isRtl', 'true');
|
|
} else {
|
|
this.direction = 'ltr';
|
|
localStorage.setItem('isRtl', 'false');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
// set theme on startup
|
|
if (localStorage.getItem('theme')) {
|
|
this.renderer.removeClass(this.document.body, this.config.layout.variant);
|
|
this.renderer.addClass(
|
|
this.document.body,
|
|
localStorage.getItem('theme') as string
|
|
);
|
|
} else {
|
|
this.renderer.addClass(this.document.body, this.config.layout.variant);
|
|
}
|
|
}
|
|
}
|