ngx-admin/src/app/pages/pages.component.ts
Maksim Karatkevich 1ce8848130 feat: update title
2020-05-20 16:51:18 +03:00

51 lines
1.7 KiB
TypeScript

import {Component, OnDestroy, OnInit} from '@angular/core';
import {MENU_ITEMS} from './pages-menu';
import {NbMenuItem, NbMenuService} from '@nebular/theme';
import {takeUntil} from 'rxjs/operators';
import {Subject} from 'rxjs';
import {MetadataService} from '../@core/utils/metadata.service';
@Component({
selector: 'ngx-pages',
styleUrls: ['pages.component.scss'],
template: `
<ngx-sample-layout>
<nb-menu [items]="menu"></nb-menu>
<router-outlet></router-outlet>
</ngx-sample-layout>
`,
})
export class PagesComponent implements OnInit, OnDestroy {
destroy$: Subject<boolean> = new Subject<boolean>();
constructor(private menuService: NbMenuService,
private metaDataService: MetadataService) {
}
menu = MENU_ITEMS;
ngOnInit() {
if (window['dataLayer']) {
window['dataLayer'].push({'event': 'optimize.activate'});
}
this.menuService
.onItemSelect()
.pipe(takeUntil(this.destroy$))
.subscribe((data: { tag: string; item: NbMenuItem }) => {
if (data.item.title !== 'E-commerce' && data.item.title !== 'IoT Dashboard')
this.metaDataService.updateTitle(`Ngx-admin dashboard by Akveo | ${data.item.title}`);
this.metaDataService.updateDescription('Ngx-admin is Angular 9+ Bootstrap 4+ admin dashboard template.' +
' Over 40+ Angular Components, 60+ Usage Examples and UI features.');
this.metaDataService.updateKeywords('ngx-admin, ngx admin dashboard features, ngx admin forms,' +
' ngx-admin maps, ngx-admin UI features, ngx-admin tables, ngx admin overlays, ngx-admin extra components');
});
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
}