From eebff25281cfb4248e239cc85433d01536fc947d Mon Sep 17 00:00:00 2001 From: PianoNic <79938743+PianoNic@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:02:25 +0200 Subject: [PATCH] Removed the unused theme system --- .../components/theme-toggle/theme-toggle.html | 3 - .../components/theme-toggle/theme-toggle.scss | 26 -------- .../theme-toggle/theme-toggle.spec.ts | 23 ------- .../components/theme-toggle/theme-toggle.ts | 35 ---------- src/app/services/theme.spec.ts | 16 ----- src/app/services/theme.ts | 66 ------------------- 6 files changed, 169 deletions(-) delete mode 100644 src/app/components/theme-toggle/theme-toggle.html delete mode 100644 src/app/components/theme-toggle/theme-toggle.scss delete mode 100644 src/app/components/theme-toggle/theme-toggle.spec.ts delete mode 100644 src/app/components/theme-toggle/theme-toggle.ts delete mode 100644 src/app/services/theme.spec.ts delete mode 100644 src/app/services/theme.ts diff --git a/src/app/components/theme-toggle/theme-toggle.html b/src/app/components/theme-toggle/theme-toggle.html deleted file mode 100644 index 7c4a4a6..0000000 --- a/src/app/components/theme-toggle/theme-toggle.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/src/app/components/theme-toggle/theme-toggle.scss b/src/app/components/theme-toggle/theme-toggle.scss deleted file mode 100644 index 1aa2fef..0000000 --- a/src/app/components/theme-toggle/theme-toggle.scss +++ /dev/null @@ -1,26 +0,0 @@ -.theme-toggle { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; - border: none; - background: transparent; - color: var(--text-secondary); - border-radius: 0.5rem; - cursor: pointer; - transition: all 0.25s ease; - - &:hover { - background: var(--bg-tertiary); - color: var(--primary); - } - - fa-icon { - transition: transform 0.25s ease; - } - - &:active fa-icon { - transform: rotate(20deg); - } -} diff --git a/src/app/components/theme-toggle/theme-toggle.spec.ts b/src/app/components/theme-toggle/theme-toggle.spec.ts deleted file mode 100644 index 30b401d..0000000 --- a/src/app/components/theme-toggle/theme-toggle.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ThemeToggle } from './theme-toggle'; - -describe('ThemeToggle', () => { - let component: ThemeToggle; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [ThemeToggle] - }) - .compileComponents(); - - fixture = TestBed.createComponent(ThemeToggle); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/components/theme-toggle/theme-toggle.ts b/src/app/components/theme-toggle/theme-toggle.ts deleted file mode 100644 index 45af37f..0000000 --- a/src/app/components/theme-toggle/theme-toggle.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Component, inject } from '@angular/core'; -import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; -import { faSun, faMoon, faCircleHalfStroke } from '@fortawesome/free-solid-svg-icons'; -import { ThemeService } from '../../services/theme'; - -@Component({ - selector: 'app-theme-toggle', - imports: [FontAwesomeModule], - templateUrl: './theme-toggle.html', - styleUrl: './theme-toggle.scss' -}) -export class ThemeToggle { - private themeService = inject(ThemeService); - - protected readonly faSun = faSun; - protected readonly faMoon = faMoon; - protected readonly faCircleHalfStroke = faCircleHalfStroke; - - theme = this.themeService.theme; - - toggleTheme() { - this.themeService.toggleTheme(); - } - - getIcon() { - switch (this.theme()) { - case 'light': - return this.faSun; - case 'dark': - return this.faMoon; - case 'system': - return this.faCircleHalfStroke; - } - } -} diff --git a/src/app/services/theme.spec.ts b/src/app/services/theme.spec.ts deleted file mode 100644 index e78dc3d..0000000 --- a/src/app/services/theme.spec.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { Theme } from './theme'; - -describe('Theme', () => { - let service: Theme; - - beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(Theme); - }); - - it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); diff --git a/src/app/services/theme.ts b/src/app/services/theme.ts deleted file mode 100644 index 7616e70..0000000 --- a/src/app/services/theme.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Injectable, signal, effect } from '@angular/core'; - -export type Theme = 'light' | 'dark' | 'system'; - -@Injectable({ - providedIn: 'root' -}) -export class ThemeService { - private readonly THEME_KEY = 'schuly-theme'; - theme = signal('system'); - isDark = signal(false); - - constructor() { - // Load saved theme or default to system - const savedTheme = localStorage.getItem(this.THEME_KEY) as Theme; - if (savedTheme) { - this.theme.set(savedTheme); - } - - // Update isDark based on theme - effect(() => { - const theme = this.theme(); - const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; - - if (theme === 'system') { - this.isDark.set(systemPrefersDark); - } else { - this.isDark.set(theme === 'dark'); - } - - this.applyTheme(); - }); - - // Listen for system theme changes - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { - if (this.theme() === 'system') { - this.isDark.set(e.matches); - this.applyTheme(); - } - }); - } - - setTheme(theme: Theme) { - this.theme.set(theme); - localStorage.setItem(this.THEME_KEY, theme); - } - - toggleTheme() { - const currentTheme = this.theme(); - if (currentTheme === 'light') { - this.setTheme('dark'); - } else if (currentTheme === 'dark') { - this.setTheme('system'); - } else { - this.setTheme('light'); - } - } - - private applyTheme() { - if (this.isDark()) { - document.documentElement.classList.add('dark'); - } else { - document.documentElement.classList.remove('dark'); - } - } -}