remember theme in localStorage
authorRigel Kent <sendmemail@rigelk.eu>
Tue, 11 Sep 2018 09:41:10 +0000 (11:41 +0200)
committerRigel Kent <sendmemail@rigelk.eu>
Tue, 11 Sep 2018 09:41:18 +0000 (11:41 +0200)
client/src/app/core/theme/theme.service.ts

index d8e02e2e5747fc0937d7b9caf1e6e2164f753588..17d33b4e50aea9ed31302629575d2e64a9e11950 100644 (file)
@@ -1,8 +1,10 @@
 import { Injectable } from '@angular/core'
+import { peertubeLocalStorage } from '@app/shared/misc/peertube-local-storage'
 
 @Injectable()
 export class ThemeService {
   private theme = document.querySelector('body')
+  private darkTheme = false
   private previousTheme = {}
 
   constructor () {
@@ -12,15 +14,24 @@ export class ThemeService {
     this.previousTheme['submenuColor'] = 'rgb(32,32,32)'
     this.previousTheme['inputColor'] = 'gray'
     this.previousTheme['inputPlaceholderColor'] = '#fff'
+
+    this.darkTheme = (peertubeLocalStorage.getItem('theme') === 'dark')
+    console.log(this.darkTheme)
+    if (this.darkTheme) this.toggleDarkTheme(false)
   }
 
-  toggleDarkTheme () {
+  toggleDarkTheme (setLocalStorage = true) {
     // switch properties
     this.switchProperty('mainBackgroundColor')
     this.switchProperty('mainForegroundColor')
     this.switchProperty('submenuColor')
     this.switchProperty('inputColor')
     this.switchProperty('inputPlaceholderColor')
+
+    if (setLocalStorage) {
+      this.darkTheme = !this.darkTheme
+      peertubeLocalStorage.setItem('theme', (this.darkTheme) ? 'dark' : 'default')
+    }
   }
 
   private switchProperty (property, newValue?) {