Merge "Policy-agent skeleton"
[nonrtric.git] / dashboard / webapp-frontend / src / app / rd.component.ts
index 1673280..a6078a0 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,6 +19,7 @@
  */
 import { Component, OnInit } from '@angular/core';
 import { UiService } from './services/ui/ui.service';
+import { CookieService } from 'ngx-cookie';
 
 @Component({
   selector: 'rd-root',
@@ -26,15 +27,21 @@ import { UiService } from './services/ui/ui.service';
   styleUrls: ['./rd.component.scss']
 })
 export class RdComponent implements OnInit {
-  showMenu = false;
-  darkModeActive: boolean;
+  private showMenu = false;
+  private darkMode: boolean;
+  private 'DARK_MODE_COOKIE' = 'darkMode';
 
-  constructor(public ui: UiService) {
+  constructor(private cookieService: CookieService, private ui: UiService) {
   }
 
   ngOnInit() {
+    const dark = this.cookieService.get(this.DARK_MODE_COOKIE);
+    if (dark) {
+      this.ui.darkModeState.next(dark === 'yes');
+    }
+
     this.ui.darkModeState.subscribe((value) => {
-      this.darkModeActive = value;
+      this.darkMode = value;
     });
   }
 
@@ -43,7 +50,8 @@ export class RdComponent implements OnInit {
   }
 
   modeToggleSwitch() {
-    this.ui.darkModeState.next(!this.darkModeActive);
+    this.ui.darkModeState.next(!this.darkMode);
+    this.cookieService.put(this.DARK_MODE_COOKIE, this.darkMode ? 'yes' : 'no');
   }
 
 }