import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; import { HelpCenterService } from 'app/modules/admin/apps/help-center/help-center.service'; import { FaqCategory } from 'app/modules/admin/apps/help-center/help-center.type'; @Component({ selector : 'help-center', templateUrl : './help-center.component.html', encapsulation: ViewEncapsulation.None }) export class HelpCenterComponent implements OnInit, OnDestroy { faqCategory: FaqCategory; private _unsubscribeAll: Subject = new Subject(); /** * Constructor */ constructor(private _helpCenterService: HelpCenterService) { } // ----------------------------------------------------------------------------------------------------- // @ Lifecycle hooks // ----------------------------------------------------------------------------------------------------- /** * On init */ ngOnInit(): void { // Get the FAQs this._helpCenterService.faqs$ .pipe(takeUntil(this._unsubscribeAll)) .subscribe((faqCategories) => { this.faqCategory = faqCategories[0]; }); } /** * On destroy */ ngOnDestroy(): void { // Unsubscribe from all subscriptions this._unsubscribeAll.next(null); this._unsubscribeAll.complete(); } // ----------------------------------------------------------------------------------------------------- // @ Public methods // ----------------------------------------------------------------------------------------------------- /** * Track by function for ngFor loops * * @param index * @param item */ trackByFn(index: number, item: any): any { return item.id || index; } }