-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathadmin-layout.component.ts
More file actions
52 lines (44 loc) · 1.56 KB
/
admin-layout.component.ts
File metadata and controls
52 lines (44 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Angular import
import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
// Project import
import { SharedModule } from '../../shared/shared.module';
import { NavBarComponent } from './nav-bar/nav-bar.component';
import { NavigationComponent } from './navigation/navigation.component';
import { BreadcrumbComponent } from '../../shared/components/breadcrumb/breadcrumb.component';
import { LayoutStateService } from '../../shared/service/layout-state.service';
@Component({
selector: 'app-admin',
imports: [CommonModule, SharedModule, NavigationComponent, NavBarComponent, RouterModule, BreadcrumbComponent],
templateUrl: './admin-layout.component.html',
styleUrls: ['./admin-layout.component.scss']
})
export class AdminLayout {
private layoutState = inject(LayoutStateService);
// public props
navCollapsed: boolean;
windowWidth: number;
// Constructor
constructor() {
this.windowWidth = window.innerWidth;
}
get navCollapsedMob(): boolean {
return this.layoutState.navCollapsedMob();
}
// public method
navMobClick() {
this.layoutState.toggleNavCollapsedMob();
if (document.querySelector('app-navigation.pc-sidebar')?.classList.contains('navbar-collapsed')) {
document.querySelector('app-navigation.pc-sidebar')?.classList.remove('navbar-collapsed');
}
}
handleKeyDown(event: KeyboardEvent): void {
if (event.key === 'Escape') {
this.closeMenu();
}
}
closeMenu() {
this.layoutState.closeNavCollapsedMob();
}
}