From e3ac63d73bc806f0813640f4d4278860a78a1274 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Fri, 11 Dec 2020 17:04:24 +0300 Subject: [PATCH] fix: change subscription logic to query stream --- .../directives/ngx-datatable-list.directive.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts index 7dc81ab6b9..38ebee5352 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts @@ -68,22 +68,22 @@ export class NgxDatatableListDirective implements OnChanges, OnDestroy, OnInit { } private subscribeToQuery() { - this.querySubscription.add( - this.list.query$.subscribe(() => { - if (this.list.page !== this.table.offset) this.table.offset = this.list.page; - }), - ); + if (!this.querySubscription.closed) this.querySubscription.unsubscribe(); + + this.querySubscription = this.list.query$.subscribe(() => { + const offset = this.list.page; + if (this.table.offset !== offset) this.table.offset = offset; + }); } ngOnChanges({ list }: SimpleChanges) { + this.subscribeToQuery(); + if (!list.firstChange) return; const { maxResultCount, page } = list.currentValue; this.table.limit = maxResultCount; this.table.offset = page; - - this.querySubscription.unsubscribe(); - this.subscribeToQuery(); } ngOnDestroy() {