import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterLink, RouterLinkActive, RouterOutlet } from '@angular/router';
import { MatToolbarModule } from '@angular/material/toolbar';
import { MatTabsModule } from '@angular/material/tabs';
import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatBadgeModule } from '@angular/material/badge';
import { MatDividerModule } from '@angular/material/divider';
import { AuthService } from '../../services/auth.service';
import { ActivityLogComponent } from '../activity-log/activity-log.component';
@Component({
selector: 'app-main',
standalone: true,
imports: [
CommonModule,
RouterLink,
RouterLinkActive,
RouterOutlet,
MatToolbarModule,
MatTabsModule,
MatButtonModule,
MatIconModule,
MatMenuModule,
MatBadgeModule,
MatDividerModule,
ActivityLogComponent
],
template: `
`,
styles: [`
.main-layout {
height: 100vh;
display: flex;
flex-direction: column;
background-color: #fafafa;
}
.header-toolbar {
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
z-index: 100;
position: relative;
.logo {
display: flex;
align-items: center;
gap: 8px;
font-size: 20px;
font-weight: 500;
mat-icon {
font-size: 28px;
width: 28px;
height: 28px;
}
}
.spacer {
flex: 1 1 auto;
}
.header-actions {
display: flex;
align-items: center;
gap: 8px;
position: relative;
.username {
display: flex;
align-items: center;
gap: 4px;
margin-right: 16px;
mat-icon {
font-size: 20px;
width: 20px;
height: 20px;
}
}
.activity-log-wrapper {
position: absolute;
top: 56px;
right: 0;
z-index: 1000;
}
}
}
.nav-tabs {
background-color: white;
box-shadow: 0 2px 4px rgba(0,0,0,0.08);
::ng-deep {
.mat-mdc-tab-link {
min-width: 120px;
opacity: 0.8;
mat-icon {
margin-right: 8px;
}
&.mdc-tab--active {
opacity: 1;
}
}
}
}
.content {
flex: 1;
overflow-y: auto;
padding: 24px;
}
`]
})
export class MainComponent {
private authService = inject(AuthService);
username = this.authService.getUsername() || '';
showActivityLog = false;
logout() {
this.authService.logout();
}
toggleActivityLog() {
this.showActivityLog = !this.showActivityLog;
}
}