EMS/src/app/header/header.component.ts
Dominik Säume c060acc7db
All checks were successful
Quality Check / Linting (push) Successful in 28s
Quality Check / Linting (pull_request) Successful in 26s
Authorization with Keycloak
2025-01-08 11:41:52 +01:00

47 lines
1.3 KiB
TypeScript

import {AsyncPipe, Location, TitleCasePipe} from '@angular/common';
import {Component, OnInit} from '@angular/core';
import {MatAnchor, MatButton, MatIconButton} from '@angular/material/button';
import {MatIcon} from '@angular/material/icon';
import {MatToolbar} from '@angular/material/toolbar';
import {Router, RouterLink} from '@angular/router';
import {AuthService} from '@core/auth/auth.service';
@Component({
selector: 'app-header',
imports: [
MatToolbar,
MatAnchor,
RouterLink,
MatIcon,
MatButton,
MatIconButton,
AsyncPipe,
TitleCasePipe,
],
templateUrl: './header.component.html',
styleUrl: './header.component.scss'
})
export class HeaderComponent implements OnInit {
routes: Array<{ path: string, title: string, class: string }> = [];
constructor(
private router: Router,
private location: Location,
protected auth: AuthService
) {
}
ngOnInit(): void {
this.routes = this.router.config
.filter(route => !route.path?.includes(':'))
.filter(route => !route.path?.includes('/'))
.map(route => ({
path: `/${route.path}`,
title: route.title as string,
class: `/${route.path}` == (this.location.path() || '/') ? 'active' : ''
}));
}
}