Skip to content

Commit 52f9ea7

Browse files
Pass around setDarkColorMode as a bool and store in local storage
1 parent 30fc30e commit 52f9ea7

File tree

3 files changed

+27
-8
lines changed

3 files changed

+27
-8
lines changed

apps/fretonator-web/src/app/app.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div class="app__wrapper"
22
[attr.color-mode]="colorMode">
3-
<app-header (toggleColorMode)="toggleColorMode()"></app-header>
3+
<app-header (setDarkColorMode)="setDarkColorMode($event)"></app-header>
44
<main #globalScrollTarget role="main">
55
<router-outlet></router-outlet>
66
</main>

apps/fretonator-web/src/app/app.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ export class AppComponent implements AfterViewInit {
2222
this.globalService.setGlobalScrollTarget(this.globalScrollTarget.nativeElement);
2323
}
2424

25-
toggleColorMode() {
26-
if (this.colorMode === ColorModes.dark) {
27-
this.colorMode = ColorModes.light;
28-
} else {
25+
setDarkColorMode(dark: Boolean) {
26+
if (dark) {
2927
this.colorMode = ColorModes.dark;
28+
} else {
29+
this.colorMode = ColorModes.light;
3030
}
3131
}
3232
}
Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,38 @@
11
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
22
import { ColorModes } from '../../app.component';
3+
import { AbstractDataService } from '../abstract-data/abstract-data.service';
4+
5+
const StorageKeys = {
6+
darkColorMode: 'fretonator_darkColorMode',
7+
}
38

49
@Component({
510
selector: 'app-header',
611
templateUrl: './header.component.html',
712
styleUrls: ['./header.component.scss']
813
})
914
export class HeaderComponent implements OnInit {
10-
@Output() toggleColorMode = new EventEmitter<any>();
15+
@Output() setDarkColorMode = new EventEmitter<any>();
1116
isMenuVisible = false;
1217
darkColorMode = true;
1318

14-
constructor() {
19+
constructor(private localStorage: AbstractDataService) {
1520
}
1621

1722
ngOnInit(): void {
23+
const _darkColorMode = this.localStorage.getItem(StorageKeys.darkColorMode);
24+
switch (_darkColorMode) {
25+
case false:
26+
this.darkColorMode = false;
27+
break;
28+
case true:
29+
this.darkColorMode = true;
30+
break;
31+
default:
32+
this.darkColorMode = true;
33+
}
34+
35+
this.setDarkColorMode.emit(this.darkColorMode);
1836
}
1937

2038
toggleMenu() {
@@ -23,6 +41,7 @@ export class HeaderComponent implements OnInit {
2341

2442
toggleTheme() {
2543
this.darkColorMode = !this.darkColorMode;
26-
this.toggleColorMode.emit();
44+
this.setDarkColorMode.emit(this.darkColorMode);
45+
this.localStorage.setItem(StorageKeys.darkColorMode, this.darkColorMode);
2746
}
2847
}

0 commit comments

Comments
 (0)