diff --git a/src/app/admin-panel/admin-panel.component.html b/src/app/admin-panel/admin-panel.component.html new file mode 100644 index 0000000..aa306d4 --- /dev/null +++ b/src/app/admin-panel/admin-panel.component.html @@ -0,0 +1,4 @@ +
+

Painel Administrativo

+ +
\ No newline at end of file diff --git a/src/app/admin-panel/admin-panel.component.ts b/src/app/admin-panel/admin-panel.component.ts new file mode 100644 index 0000000..01537b9 --- /dev/null +++ b/src/app/admin-panel/admin-panel.component.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { AuthService } from '../services/auth.service'; + +@Component({ + selector: 'app-admin-panel', + templateUrl: './admin-panel.component.html', + styleUrls: ['./admin-panel.component.css'] +}) +export class AdminPanelComponent { + constructor(private authService: AuthService) {} + + logout() { + this.authService.logout(); + } +} diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html new file mode 100644 index 0000000..d7d9794 --- /dev/null +++ b/src/app/login/login.component.html @@ -0,0 +1,8 @@ +
+

Login

+ + + +

{{ errorMessage }}

+
+ \ No newline at end of file diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts new file mode 100644 index 0000000..db5693b --- /dev/null +++ b/src/app/login/login.component.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { Router } from '@angular/router'; +import { AuthService } from '../services/auth.service'; + +@Component({ + selector: 'app-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.css'] +}) +export class LoginComponent { + username: string = ''; + password: string = ''; + errorMessage: string = ''; + + constructor(private authService: AuthService, private router: Router) {} + + login() { + if (this.authService.login(this.username, this.password)) { + this.router.navigate(['/admin']); + } else { + this.errorMessage = 'Usuário ou senha inválidos!'; + } + } +} diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts new file mode 100644 index 0000000..7cb3927 --- /dev/null +++ b/src/app/services/auth.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + private isAuthenticated = false; + + login(username: string, password: string): boolean { + if (username === 'admin' && password === 'admin123') { + this.isAuthenticated = true; + localStorage.setItem('user', JSON.stringify({ username })); + return true; + } + return false; + } + + logout(): void { + this.isAuthenticated = false; + localStorage.removeItem('user'); + } + + isLoggedIn(): boolean { + return localStorage.getItem('user') !== null; + } +} diff --git a/src/app/services/theme.service.ts b/src/app/services/theme.service.ts new file mode 100644 index 0000000..22f638d --- /dev/null +++ b/src/app/services/theme.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class ThemeService { + private darkTheme = false; + + toggleTheme(): void { + this.darkTheme = !this.darkTheme; + document.body.classList.toggle('dark-mode', this.darkTheme); + } + + isDarkTheme(): boolean { + return this.darkTheme; + } +} diff --git a/src/styles.css b/src/styles.css index 5cd27d9..130f011 100644 --- a/src/styles.css +++ b/src/styles.css @@ -10,3 +10,8 @@ body{ background-color: #1F1147; } + +.dark-mode { + background-color: #121212; + color: white; +} \ No newline at end of file