Fix initial sidebar view on route change
parent
478dfef4de
commit
e548d6821c
|
@ -97,7 +97,7 @@
|
|||
<div>
|
||||
<button mat-icon-button
|
||||
(click)="toggleSidebar()"
|
||||
*ngIf="router.url.includes('/stats')"
|
||||
*ngIf="showSidebarToggleBtn"
|
||||
style="background: linear-gradient(-90deg, #e8e5e5,#ffffff);margin-left: -12px;">
|
||||
<mat-icon svgIcon="chevron-left" *ngIf="sidebarOpen">
|
||||
</mat-icon>
|
||||
|
|
|
@ -23,10 +23,22 @@ export class AppComponent implements OnInit {
|
|||
|
||||
sidebarOpen = true;
|
||||
|
||||
showSidebarToggleBtn = false;
|
||||
|
||||
scrollTopVisible = false;
|
||||
|
||||
scrollBtnVisibleVal = 100;
|
||||
|
||||
svgIcons = {
|
||||
'add': 'outline-add_box-24px',
|
||||
'add-user': 'twotone-person_add-24px',
|
||||
'edit': 'twotone-edit-24px',
|
||||
'delete': 'twotone-delete-24px',
|
||||
'stats-detail': 'round-assessment-24px',
|
||||
'chevron-left': 'baseline-chevron_left-24px',
|
||||
'chevron-right': 'baseline-chevron_right-24px'
|
||||
};
|
||||
|
||||
version = 'v'.concat(require('./../../../package.json').version);
|
||||
|
||||
constructor(public loginService: LoginService,
|
||||
|
@ -36,20 +48,7 @@ export class AppComponent implements OnInit {
|
|||
private iconRegistry: MatIconRegistry,
|
||||
private sanitizer: DomSanitizer,
|
||||
@Inject(DOCUMENT) private document) {
|
||||
this.iconRegistry.addSvgIcon('add',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/outline-add_box-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('add-user',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/twotone-person_add-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('edit',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/twotone-edit-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('delete',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/twotone-delete-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('stats-detail',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/round-assessment-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('chevron-left',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/baseline-chevron_left-24px.svg'));
|
||||
this.iconRegistry.addSvgIcon('chevron-right',
|
||||
sanitizer.bypassSecurityTrustResourceUrl('../assets/icon/baseline-chevron_right-24px.svg'));
|
||||
this.initMaterialSvgIcons();
|
||||
|
||||
router.events.subscribe(event => {
|
||||
if (event instanceof NavigationStart) {
|
||||
|
@ -58,13 +57,27 @@ export class AppComponent implements OnInit {
|
|||
if (event instanceof NavigationEnd) {
|
||||
this.loading = false;
|
||||
// scroll to top on route from army overview to user detail and back
|
||||
if (router.url.includes('overview')) {
|
||||
if (router.url.includes('/overview')) {
|
||||
this.scrollToTop();
|
||||
}
|
||||
// show sidebar menu on initial stats page access
|
||||
if (router.url.includes('/stats')) {
|
||||
this.showSidebarToggleBtn = true;
|
||||
this.sidebarOpen = true;
|
||||
} else {
|
||||
this.showSidebarToggleBtn = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
initMaterialSvgIcons() {
|
||||
Object.keys(this.svgIcons).forEach(key => {
|
||||
const fileUri = '../assets/icon/' + this.svgIcons[key] + '.svg';
|
||||
this.iconRegistry.addSvgIcon(key, this.sanitizer.bypassSecurityTrustResourceUrl(fileUri));
|
||||
});
|
||||
}
|
||||
|
||||
@HostListener('window:scroll', [])
|
||||
onWindowScroll() {
|
||||
this.scrollTopVisible = document.body.scrollTop > this.scrollBtnVisibleVal
|
||||
|
|
Loading…
Reference in New Issue