import {Component, OnInit, Inject, ViewContainerRef} from '@angular/core'; import {BehaviorSubject} from 'rxjs'; import {DOCUMENT, Location} from '@angular/common'; import {AuthService} from './services/auth.service'; import {ToastsService} from './services/toasts.service'; import {User, userType} from './models/User'; import {Router} from '@angular/router'; import {ModalService} from './services/modal.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', standalone: false, styleUrl: './app.component.css' }) export class AppComponent implements OnInit { // title = 'ufund-ui'; currentUser?: BehaviorSubject; constructor( private authService: AuthService, private router: Router, protected toastService: ToastsService, private viewContainerRef: ViewContainerRef, protected modalService: ModalService, protected location: Location, @Inject(DOCUMENT) private document: Document ) {} reloadPage() { this.document.defaultView?.location.reload(); } ngOnInit() { this.toastService.setRootViewContainerRef(this.viewContainerRef) this.currentUser = this.authService.getCurrentUserSubject() let data = localStorage.getItem("credential"); if (data) { let dataParsed = JSON.parse(data) this.authService.restoreLogin(dataParsed.username, dataParsed.key) console.log("Key found", dataParsed.key) } if (this.location.path() == '/cupboard') { console.log("work") } else { console.log(this.location.path()) } let theme = localStorage.getItem("theme") if(!theme) { // if no color scheme is set, get the system settings let preferredTheme = this.document.defaultView?.matchMedia('(prefers-color-scheme: light)').matches ? "light" : "dark"; localStorage.setItem("theme",preferredTheme); theme = preferredTheme; } this.document.body.parentElement!.setAttribute("theme",theme); } login() { this.router.navigate(['/login'], {queryParams: {redir: this.router.url}}); } logout() { localStorage.removeItem("credential") location.reload() } toggleColorScheme() { let theme = localStorage.getItem("theme"); // fallback if (!theme) { theme = "light"; } let newTheme = theme == "light" ? "dark" : "light"; this.document.body.parentElement!.setAttribute("theme",newTheme); localStorage.setItem("theme", newTheme); console.log(newTheme, this.document.body.parentElement); } protected readonly userType = userType; }