diff --git a/src/app/app.html b/src/app/app.html index 1a64b58..515b2b7 100644 --- a/src/app/app.html +++ b/src/app/app.html @@ -1,2 +1,2 @@ - + \ No newline at end of file diff --git a/src/app/app.ts b/src/app/app.ts index d0ac9e0..4206e4c 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -10,7 +10,7 @@ import { ThemeService } from './services/theme.service'; styleUrl: './app.css' }) export class App implements OnInit { - constructor(private readonly themeService: ThemeService) {} + constructor(private readonly themeService: ThemeService) { } ngOnInit(): void { this.themeService.initTheme(); diff --git a/src/app/components/login-dialog/login-dialog.component.html b/src/app/components/login-dialog/login-dialog.component.html index f115782..185c899 100644 --- a/src/app/components/login-dialog/login-dialog.component.html +++ b/src/app/components/login-dialog/login-dialog.component.html @@ -7,18 +7,18 @@ @if (loginForm.get('username')?.invalid && loginForm.get('username')?.touched) { - Username must be at least 3 characters + Username must be at least 3 characters } @if (loginForm.get('password')?.invalid && loginForm.get('password')?.touched) { - Password must be at least 6 characters + Password must be at least 6 characters } @if (errorMessage) { -
{{ errorMessage }}
+
{{ errorMessage }}
}
@@ -26,11 +26,11 @@
- + \ No newline at end of file diff --git a/src/app/components/register-dialog/register-dialog.component.html b/src/app/components/register-dialog/register-dialog.component.html index a18b688..afda569 100644 --- a/src/app/components/register-dialog/register-dialog.component.html +++ b/src/app/components/register-dialog/register-dialog.component.html @@ -6,26 +6,26 @@ @if (registerForm.get('username')?.invalid && registerForm.get('username')?.touched) { - Username must be at least 3 characters + Username must be at least 3 characters } @if (registerForm.get('email')?.invalid && registerForm.get('email')?.touched) { - Please enter a valid email + Please enter a valid email } @if (registerForm.get('password')?.invalid && registerForm.get('password')?.touched) { - Password must be at least 6 characters + Password must be at least 6 characters } @if (errorMessage) { -
{{ errorMessage }}
+
{{ errorMessage }}
}
@@ -33,11 +33,11 @@
- + \ No newline at end of file diff --git a/src/app/components/toolbar/toolbar.component.html b/src/app/components/toolbar/toolbar.component.html index 9cde9b4..b6de546 100644 --- a/src/app/components/toolbar/toolbar.component.html +++ b/src/app/components/toolbar/toolbar.component.html @@ -7,17 +7,17 @@ {{ isDarkMode ? 'Light mode' : 'Dark mode' }} @if (currentUser; as user) { -
- {{ user.username }} - -
+
+ {{ user.username }} + +
} @else { - - + + } @@ -25,9 +25,9 @@ @if (showLoginDialog) { - + } @if (showRegisterDialog) { - -} + +} \ No newline at end of file diff --git a/src/app/pages/welcome/welcome.component.ts b/src/app/pages/welcome/welcome.component.ts index a5fc29f..749de98 100644 --- a/src/app/pages/welcome/welcome.component.ts +++ b/src/app/pages/welcome/welcome.component.ts @@ -123,7 +123,7 @@ export class WelcomeComponent implements OnInit, OnDestroy { this.generateBackgroundBuildings(); this.generateWindowsForAllBuildings(); this.startWindowFlicker(); - + // Show speech bubble after 5 seconds this.speechBubbleTimeoutId = setTimeout(() => { this.showSpeechBubble = true; @@ -245,7 +245,7 @@ export class WelcomeComponent implements OnInit, OnDestroy { this.showMeatEmoji = true; this.showHappyBubble = false; this.showSecondSpeechBubble = true; - + // Reset meat position this.meatX = window.innerWidth / 2 - 100; this.meatY = window.innerHeight / 2 + 150; @@ -257,7 +257,7 @@ export class WelcomeComponent implements OnInit, OnDestroy { this.showHappyBubble = false; this.showMeatEmoji = false; this.bubbleMessage = 'meow'; - + if (this.zoomTimeoutId) { clearTimeout(this.zoomTimeoutId); } diff --git a/src/app/services/auth-dialog.service.ts b/src/app/services/auth-dialog.service.ts index 9d41dd1..774b4b6 100644 --- a/src/app/services/auth-dialog.service.ts +++ b/src/app/services/auth-dialog.service.ts @@ -5,19 +5,19 @@ export type AuthDialogState = 'login' | 'register' | null; @Injectable({ providedIn: 'root' }) export class AuthDialogService { - private readonly dialogStateSubject = new BehaviorSubject(null); + private readonly dialogStateSubject = new BehaviorSubject(null); - readonly dialogState$ = this.dialogStateSubject.asObservable(); + readonly dialogState$ = this.dialogStateSubject.asObservable(); - openLogin(): void { - this.dialogStateSubject.next('login'); - } + openLogin(): void { + this.dialogStateSubject.next('login'); + } - openRegister(): void { - this.dialogStateSubject.next('register'); - } + openRegister(): void { + this.dialogStateSubject.next('register'); + } - close(): void { - this.dialogStateSubject.next(null); - } + close(): void { + this.dialogStateSubject.next(null); + } } \ No newline at end of file diff --git a/src/app/services/theme.service.ts b/src/app/services/theme.service.ts index 2083c4a..b450ae9 100644 --- a/src/app/services/theme.service.ts +++ b/src/app/services/theme.service.ts @@ -3,32 +3,32 @@ import { BehaviorSubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class ThemeService { - private readonly darkModeSubject = new BehaviorSubject(false); + private readonly darkModeSubject = new BehaviorSubject(false); - readonly darkMode$ = this.darkModeSubject.asObservable(); + readonly darkMode$ = this.darkModeSubject.asObservable(); - initTheme(): void { - const savedTheme = localStorage.getItem('theme'); - this.applyDarkMode(savedTheme === 'dark'); - } - - toggleTheme(): void { - this.applyDarkMode(!this.darkModeSubject.value); - } - - setDarkMode(isDarkMode: boolean): void { - this.applyDarkMode(isDarkMode); - } - - private applyDarkMode(isDarkMode: boolean): void { - if (isDarkMode) { - document.documentElement.setAttribute('data-theme', 'dark'); - localStorage.setItem('theme', 'dark'); - } else { - document.documentElement.removeAttribute('data-theme'); - localStorage.removeItem('theme'); + initTheme(): void { + const savedTheme = localStorage.getItem('theme'); + this.applyDarkMode(savedTheme === 'dark'); } - this.darkModeSubject.next(isDarkMode); - } + toggleTheme(): void { + this.applyDarkMode(!this.darkModeSubject.value); + } + + setDarkMode(isDarkMode: boolean): void { + this.applyDarkMode(isDarkMode); + } + + private applyDarkMode(isDarkMode: boolean): void { + if (isDarkMode) { + document.documentElement.setAttribute('data-theme', 'dark'); + localStorage.setItem('theme', 'dark'); + } else { + document.documentElement.removeAttribute('data-theme'); + localStorage.removeItem('theme'); + } + + this.darkModeSubject.next(isDarkMode); + } } \ No newline at end of file