From 45de0cebcc812365bc8be862d79699a69b43b4fe Mon Sep 17 00:00:00 2001
From: Nessar
Date: Thu, 16 Jul 2026 19:12:56 +0200
Subject: [PATCH] feat: update theme preference handling in ThemeService and
index.html
---
.../src/app/services/theme.service.spec.ts | 19 +++++++++-
frontend/src/app/services/theme.service.ts | 2 +-
frontend/src/index.html | 38 ++++++++++++-------
3 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/frontend/src/app/services/theme.service.spec.ts b/frontend/src/app/services/theme.service.spec.ts
index d4c8915..56b6b07 100644
--- a/frontend/src/app/services/theme.service.spec.ts
+++ b/frontend/src/app/services/theme.service.spec.ts
@@ -3,9 +3,26 @@ import { vi } from 'vitest';
import { ThemeService } from './theme.service';
describe('ThemeService', () => {
+ beforeEach(() => localStorage.clear());
+
+ it('defaults to the operating-system preference', () => {
+ vi.stubGlobal(
+ 'matchMedia',
+ vi.fn(() => ({ matches: true, addEventListener: vi.fn() })),
+ );
+ const service = TestBed.inject(ThemeService);
+ TestBed.tick();
+
+ expect(service.preference()).toBe('system');
+ expect(document.documentElement.dataset['theme']).toBe('dark');
+ });
+
it('persists explicit and system preferences', () => {
const listener = vi.fn();
- vi.stubGlobal('matchMedia', vi.fn(() => ({ matches: true, addEventListener: listener })));
+ vi.stubGlobal(
+ 'matchMedia',
+ vi.fn(() => ({ matches: true, addEventListener: listener })),
+ );
localStorage.setItem('lmnp-theme', 'system');
const service = TestBed.inject(ThemeService);
TestBed.tick();
diff --git a/frontend/src/app/services/theme.service.ts b/frontend/src/app/services/theme.service.ts
index fa2ef6f..3674ff7 100644
--- a/frontend/src/app/services/theme.service.ts
+++ b/frontend/src/app/services/theme.service.ts
@@ -40,6 +40,6 @@ export class ThemeService {
const storedPreference = localStorage.getItem(THEME_STORAGE_KEY);
return storedPreference === 'dark' || storedPreference === 'system'
? storedPreference
- : 'light';
+ : 'system';
}
}
diff --git a/frontend/src/index.html b/frontend/src/index.html
index 00ff979..2cec810 100644
--- a/frontend/src/index.html
+++ b/frontend/src/index.html
@@ -1,16 +1,28 @@
+
+
+ LmnpFrontend
+
+
+
+
+
-
-
- LmnpFrontend
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+