Removed themeService from templates #70
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
|
||||
import { MenuItem, PrimeNGConfig } from 'primeng/api';
|
||||
@@ -14,8 +14,6 @@ import { ThemeService } from 'src/app/services/theme/theme.service';
|
||||
styleUrls: ['./header.component.scss']
|
||||
})
|
||||
export class HeaderComponent implements OnInit {
|
||||
@Output() isSidebarFullWidth: EventEmitter<boolean> = new EventEmitter<boolean>(this.themeService.isSidebarOpen);
|
||||
|
||||
langList: MenuItem[] = [];
|
||||
themeList: MenuItem[] = [];
|
||||
userMenuList!: MenuItem[];
|
||||
@@ -112,7 +110,6 @@ export class HeaderComponent implements OnInit {
|
||||
|
||||
toggleMenu(): void {
|
||||
this.themeService.setIsMenuOpen(!this.themeService.isSidebarOpen);
|
||||
this.isSidebarFullWidth.emit(this.themeService.isSidebarOpen);
|
||||
}
|
||||
|
||||
changeTheme(name: string): void {
|
||||
|
@@ -3,50 +3,57 @@ import { LangChangeEvent, TranslateService } from '@ngx-translate/core';
|
||||
import { MenuItem } from 'primeng/api';
|
||||
import { AuthRoles } from 'src/app/models/auth/auth-roles.enum';
|
||||
import { AuthService } from 'src/app/services/auth/auth.service';
|
||||
import { ThemeService } from 'src/app/services/theme/theme.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-sidebar',
|
||||
templateUrl: './sidebar.component.html',
|
||||
styleUrls: ['./sidebar.component.scss']
|
||||
})
|
||||
export class SidebarComponent implements OnInit, OnChanges {
|
||||
export class SidebarComponent implements OnInit {
|
||||
|
||||
@Input() isSidebarOpen!: boolean;
|
||||
isSidebarOpen: boolean = true;
|
||||
|
||||
menuItems!: MenuItem[];
|
||||
|
||||
constructor(
|
||||
private authService: AuthService,
|
||||
private translateService: TranslateService
|
||||
private translateService: TranslateService,
|
||||
private themeService: ThemeService
|
||||
) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
this.translateService.onLangChange.subscribe(async (event: LangChangeEvent) => {
|
||||
await this.setMenu(this.isSidebarOpen);
|
||||
this.themeService.isSidebarOpen$.subscribe(value => {
|
||||
this.isSidebarOpen = value;
|
||||
this.setMenu();
|
||||
});
|
||||
|
||||
|
||||
this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {
|
||||
this.setMenu();
|
||||
});
|
||||
this.setMenu();
|
||||
}
|
||||
|
||||
setMenu() {
|
||||
|
||||
this.authService.hasUserPermission(AuthRoles.Admin).then(hasPermission => {
|
||||
this.menuItems = [];
|
||||
this.menuItems = [
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.dashboard') : '', icon: 'pi pi-th-large', routerLink: 'dashboard' },
|
||||
];
|
||||
|
||||
if (!hasPermission) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.menuItems.push(
|
||||
{ separator: true },
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.config') : '', icon: 'pi pi-cog', routerLink: '/admin/settings' },
|
||||
{ label: this.isSidebarOpen ? this.translateService.instant('sidebar.auth_user_list') : '', icon: 'pi pi-user-edit', routerLink: '/admin/users' },
|
||||
);
|
||||
this.menuItems = this.menuItems.slice();
|
||||
});
|
||||
}
|
||||
|
||||
async setMenu(isSidebarOpen: boolean) {
|
||||
this.menuItems = [];
|
||||
this.menuItems = [
|
||||
{ label: isSidebarOpen ? this.translateService.instant('sidebar.dashboard') : '', icon: 'pi pi-th-large', routerLink: 'dashboard' },
|
||||
];
|
||||
|
||||
if (await this.authService.hasUserPermission(AuthRoles.Admin)) {
|
||||
this.menuItems.push(
|
||||
{ separator: true },
|
||||
{ label: isSidebarOpen ? this.translateService.instant('sidebar.config') : '', icon: 'pi pi-cog', routerLink: '/admin/settings' },
|
||||
{ label: isSidebarOpen ? this.translateService.instant('sidebar.auth_user_list') : '', icon: 'pi pi-user-edit', routerLink: '/admin/users' },
|
||||
);
|
||||
this.menuItems = this.menuItems.slice();
|
||||
}
|
||||
}
|
||||
|
||||
async ngOnChanges(changes: SimpleChanges): Promise<void> {
|
||||
if (!changes)
|
||||
return;
|
||||
|
||||
await this.setMenu(changes['isSidebarOpen'].currentValue);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user