From de7b2f507efca95421abb473d8fa29452ac81669 Mon Sep 17 00:00:00 2001 From: _Bastler <_Bastler@bstly.de> Date: Mon, 29 Mar 2021 14:59:22 +0200 Subject: [PATCH] fix darktheme loading --- src/app/auth/auth.guard.ts | 22 ++++++++++++------- .../profilefields/profilefields.component.ts | 7 +++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/app/auth/auth.guard.ts b/src/app/auth/auth.guard.ts index 15acb53..947383d 100644 --- a/src/app/auth/auth.guard.ts +++ b/src/app/auth/auth.guard.ts @@ -49,22 +49,28 @@ export class AuthenticatedGuard implements CanActivate { } - this.profileService.getAll(["locale", "darkTheme"]).toPromise().then((profileFields: any) => { - let reload = false; + this.profileService.getAll(["locale", "darkTheme"]).subscribe((profileFields: any) => { + let updateLocale = false; + let darktheme = 'false'; + let updateTheme = false; for(let profileField of profileFields) { - if(profileField.name == "darkTheme" && profileField.value != localStorage.getItem("bstly.darkTheme")) { - localStorage.setItem("bstly.darkTheme", profileField.value); - reload = true; + if(profileField.name == "darkTheme") { + darktheme = profileField.value; } else if(profileField.name == "locale" && this.i18nService.locales.indexOf(profileField.value) != -1 && localStorage.getItem("bstly.locale") != profileField.value) { if(this.i18nService.locale != profileField.value) { localStorage.setItem("bstly.locale", profileField.value); - reload = true; + updateLocale = true; } } } - if(reload) { - window.location.reload(); + if(darktheme != localStorage.getItem("bstly.darkTheme")) { + localStorage.setItem("bstly.darkTheme", darktheme); + updateTheme = true; + } + + if(updateLocale || updateTheme) { + window.location.reload(); } }) diff --git a/src/app/ui/profilefields/profilefields.component.ts b/src/app/ui/profilefields/profilefields.component.ts index 804554e..2a3b25b 100644 --- a/src/app/ui/profilefields/profilefields.component.ts +++ b/src/app/ui/profilefields/profilefields.component.ts @@ -150,12 +150,11 @@ export class ProfileFieldDialog { } booleanChange(profileField) { - if(profileField.value == 'false') { - profileField.value = 'true'; - } else { + if(profileField.value == 'true') { profileField.value = 'false'; + } else { + profileField.value = 'true'; } - console.log(profileField); } }