mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
|
|
import { DOCUMENT } from '@angular/common';
|
|
import { GENERAL_SETTINGS } from 'src/app/data/storage-keys';
|
|
|
|
@Injectable({
|
|
providedIn: 'root'
|
|
})
|
|
export class AppViewService {
|
|
private renderer: Renderer2;
|
|
|
|
constructor(rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document) {
|
|
this.renderer = rendererFactory.createRenderer(null, null);
|
|
}
|
|
|
|
updateDarkModeSettings() {
|
|
let darkModeUseSystem = JSON.parse(localStorage.getItem(GENERAL_SETTINGS.DARK_MODE_USE_SYSTEM)) && GENERAL_SETTINGS.DARK_MODE_USE_SYSTEM_DEFAULT
|
|
let darkModeEnabled = JSON.parse(localStorage.getItem(GENERAL_SETTINGS.DARK_MODE_ENABLED)) || GENERAL_SETTINGS.DARK_MODE_ENABLED_DEFAULT
|
|
|
|
if (darkModeUseSystem) {
|
|
this.renderer.addClass(this.document.body, 'dark-mode-preferred')
|
|
this.renderer.removeClass(this.document.body, 'dark-mode')
|
|
} else {
|
|
this.renderer.removeClass(this.document.body, 'dark-mode-preferred')
|
|
darkModeEnabled ? this.renderer.addClass(this.document.body, 'dark-mode') : this.renderer.removeClass(this.document.body, 'dark-mode')
|
|
}
|
|
|
|
}
|
|
|
|
}
|