import { Component , OnDestroy } from '@angular/core' ; import { NbThemeService } from '@nebular/theme' ; import { takeWhile } from 'rxjs/operators' ; import { UserActivityData , UserActive } from '../../../@core/data/user-activity' ; @ Component ( { selector : 'ngx-user-activity' , styleUrls : [ './user-activity.component.scss' ] , templateUrl : './user-activity.component.html' , } ) export class ECommerceUserActivityComponent implements OnDestroy { private alive = true ; userActivity : UserActive [ ] = [ ] ; type = 'month' ; types = [ 'week' , 'month' , 'year' ] ; currentTheme : string ; constructor ( private themeService , private userActivityService ) { this . themeService . getJsTheme ( ) . pipe ( takeWhile ( ( ) => this . alive ) ) . subscribe ( theme => { this . currentTheme = theme . name ; } ) ; this . getUserActivity ( this . type ) ; } getUserActivity ( period ) { this . userActivityService . getUserActivityData ( period ) . pipe ( takeWhile ( ( ) => this . alive ) ) . subscribe ( userActivityData => { this . userActivity = userActivityData ; } ) ; } ngOnDestroy ( ) { this . alive = false ; } }