/** * Created by stefania on 7/17/17. */ import { Component, Input, OnInit } from '@angular/core'; import { ActivatedRoute, NavigationStart, Router } from '@angular/router'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../core/common/base/base.component'; import { PageHelpContent } from '../../models/help-content/page-help-content'; import { HelpContentService } from '../../services/help-content/help-content.service'; @Component({ selector: 'app-help-content', template: `
`, }) export class HelpContentComponent extends BaseComponent implements OnInit { @Input() position: string; contents: any[]; errorMessage: string = null; constructor(private _helpContentService: HelpContentService, private route: ActivatedRoute, private router: Router) { super(); } ngOnInit() { this.errorMessage = null; this.router.events .pipe(takeUntil(this._destroyed)) .subscribe(event => { if (event instanceof NavigationStart) { this._helpContentService.getActivePageContent(event['url']) .pipe(takeUntil(this._destroyed)) .subscribe( pageContent => this.shiftThroughContent(pageContent), error => this.handleError(error)); } }); } shiftThroughContent(pageContent: PageHelpContent) { this.contents = pageContent.content[this.position]; } isPresent() { return (this.contents && this.contents.length > 0); } handleError(error) { this.contents = []; this.errorMessage = 'System error retrieving page content (Server responded: ' + error + ')'; } } @Component({ selector: 'app-aside-help-content', template: `
`, }) export class AsideHelpContentComponent extends HelpContentComponent { }