feat(navbar): implement login/logout buttons based on state

This commit is contained in:
Jan-Marlon Leibl 2025-02-12 12:51:55 +01:00
parent 325bc118ee
commit e5bd173be9
No known key found for this signature in database
GPG key ID: E7B6F77BF5EDB6F7
5 changed files with 57 additions and 16 deletions

View file

@ -1,15 +1,33 @@
import { Component } from '@angular/core';
import { AsyncPipe } from '@angular/common';
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { KeycloakService } from 'keycloak-angular';
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
standalone: true,
imports: [CommonModule, RouterModule],
imports: [RouterModule, AsyncPipe],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class NavbarComponent {
isMenuOpen = false;
private keycloakService: KeycloakService = inject(KeycloakService);
isLoggedIn = this.keycloakService.isLoggedIn();
login() {
try {
const baseUrl = window.location.origin;
this.keycloakService.login({ redirectUri: `${baseUrl}/home` });
} catch (error) {
console.error('Login failed:', error);
}
}
logout() {
this.keycloakService.logout();
}
toggleMenu() {
this.isMenuOpen = !this.isMenuOpen;