@@ -3,7 +3,7 @@ import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/
33import { select , Store } from '@ngrx/store' ;
44import { DataTableDirective } from 'angular-datatables' ;
55import * as moment from 'moment' ;
6- import { Observable , Subject } from 'rxjs' ;
6+ import { Observable , Subject , Subscription } from 'rxjs' ;
77import { Entry } from 'src/app/modules/shared/models' ;
88import { DataSource } from 'src/app/modules/shared/models/data-source.model' ;
99import { EntryState } from '../../../time-clock/store/entry.reducer' ;
@@ -60,13 +60,14 @@ export class TimeEntriesTableComponent implements OnInit, OnDestroy, AfterViewIn
6060 dtElement : DataTableDirective ;
6161 isLoading$ : Observable < boolean > ;
6262 reportDataSource$ : Observable < DataSource < Entry > > ;
63+ rerenderTableSubscription : Subscription ;
6364
6465 constructor ( private store : Store < EntryState > ) {
6566 this . reportDataSource$ = this . store . pipe ( select ( getReportDataSource ) ) ;
6667 }
6768
6869 ngOnInit ( ) : void {
69- this . reportDataSource$ . subscribe ( ( ds ) => {
70+ this . rerenderTableSubscription = this . reportDataSource$ . subscribe ( ( ds ) => {
7071 this . rerenderDataTable ( ) ;
7172 } ) ;
7273 }
@@ -76,17 +77,18 @@ export class TimeEntriesTableComponent implements OnInit, OnDestroy, AfterViewIn
7677 }
7778
7879 ngOnDestroy ( ) : void {
80+ this . rerenderTableSubscription . unsubscribe ( ) ;
7981 this . dtTrigger . unsubscribe ( ) ;
8082 }
8183
8284 private rerenderDataTable ( ) : void {
8385 if ( this . dtElement && this . dtElement . dtInstance ) {
8486 this . dtElement . dtInstance . then ( ( dtInstance : DataTables . Api ) => {
85- dtInstance . destroy ( ) ;
86- this . dtTrigger . next ( ) ;
87+ dtInstance . destroy ( ) ;
88+ this . dtTrigger . next ( ) ;
8789 } ) ;
8890 } else {
89- this . dtTrigger . next ( ) ;
91+ this . dtTrigger . next ( ) ;
9092 }
9193 }
9294
0 commit comments