@@ -3,7 +3,7 @@ import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild} from '@angular/
3
3
import { select , Store } from '@ngrx/store' ;
4
4
import { DataTableDirective } from 'angular-datatables' ;
5
5
import * as moment from 'moment' ;
6
- import { Observable , Subject } from 'rxjs' ;
6
+ import { Observable , Subject , Subscription } from 'rxjs' ;
7
7
import { Entry } from 'src/app/modules/shared/models' ;
8
8
import { DataSource } from 'src/app/modules/shared/models/data-source.model' ;
9
9
import { EntryState } from '../../../time-clock/store/entry.reducer' ;
@@ -60,13 +60,14 @@ export class TimeEntriesTableComponent implements OnInit, OnDestroy, AfterViewIn
60
60
dtElement : DataTableDirective ;
61
61
isLoading$ : Observable < boolean > ;
62
62
reportDataSource$ : Observable < DataSource < Entry > > ;
63
+ rerenderTableSubscription : Subscription ;
63
64
64
65
constructor ( private store : Store < EntryState > ) {
65
66
this . reportDataSource$ = this . store . pipe ( select ( getReportDataSource ) ) ;
66
67
}
67
68
68
69
ngOnInit ( ) : void {
69
- this . reportDataSource$ . subscribe ( ( ds ) => {
70
+ this . rerenderTableSubscription = this . reportDataSource$ . subscribe ( ( ds ) => {
70
71
this . rerenderDataTable ( ) ;
71
72
} ) ;
72
73
}
@@ -76,17 +77,18 @@ export class TimeEntriesTableComponent implements OnInit, OnDestroy, AfterViewIn
76
77
}
77
78
78
79
ngOnDestroy ( ) : void {
80
+ this . rerenderTableSubscription . unsubscribe ( ) ;
79
81
this . dtTrigger . unsubscribe ( ) ;
80
82
}
81
83
82
84
private rerenderDataTable ( ) : void {
83
85
if ( this . dtElement && this . dtElement . dtInstance ) {
84
86
this . dtElement . dtInstance . then ( ( dtInstance : DataTables . Api ) => {
85
- dtInstance . destroy ( ) ;
86
- this . dtTrigger . next ( ) ;
87
+ dtInstance . destroy ( ) ;
88
+ this . dtTrigger . next ( ) ;
87
89
} ) ;
88
90
} else {
89
- this . dtTrigger . next ( ) ;
91
+ this . dtTrigger . next ( ) ;
90
92
}
91
93
}
92
94
0 commit comments