From 136edf5debf361b621e46f0ff234a32070bc4923 Mon Sep 17 00:00:00 2001 From: masum-ulu Date: Wed, 18 Sep 2024 15:11:16 +0300 Subject: [PATCH] track request status for set data empty and improve spinner component --- .../extensible-table.component.ts | 15 +++++++++++---- .../lib/components/spinner/spinner.component.ts | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts index 19841dd838..9d4a7be83f 100644 --- a/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts +++ b/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-table/extensible-table.component.ts @@ -1,4 +1,5 @@ import { + AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, @@ -15,7 +16,7 @@ import { } from '@angular/core'; import { AsyncPipe, formatDate, NgComponentOutlet, NgTemplateOutlet } from '@angular/common'; -import { Observable, map } from 'rxjs'; +import { Observable, filter, map } from 'rxjs'; import { NgbTooltip } from '@ng-bootstrap/ng-bootstrap'; import { NgxDatatableModule } from '@swimlane/ngx-datatable'; @@ -30,8 +31,6 @@ import { LocalizationModule, PermissionDirective, PermissionService, - RouterWaitService, - SubscriptionService, } from '@abp/ng.core'; import { AbpVisibleDirective, @@ -73,9 +72,10 @@ const DEFAULT_ACTIONS_COLUMN_WIDTH = 150; templateUrl: './extensible-table.component.html', changeDetection: ChangeDetectionStrategy.OnPush, }) -export class ExtensibleTableComponent implements OnChanges { +export class ExtensibleTableComponent implements OnChanges, AfterViewInit { readonly #injector = inject(Injector); readonly getInjected = this.#injector.get.bind(this.#injector); + protected readonly cdr = inject(ChangeDetectorRef); protected readonly locale = inject(LOCALE_ID); protected readonly config = inject(ConfigStateService); protected readonly entityPropTypeClasses = inject(ENTITY_PROP_TYPE_CLASSES); @@ -229,4 +229,11 @@ export class ExtensibleTableComponent implements OnChanges { return visibleActions.length > 0; } + + ngAfterViewInit(): void { + this.list?.requestStatus$?.pipe(filter(status => status === 'loading')).subscribe(() => { + this.data = []; + this.cdr.markForCheck(); + }); + } } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/spinner/spinner.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/spinner/spinner.component.ts index abb692ed60..e1d3493261 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/spinner/spinner.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/spinner/spinner.component.ts @@ -4,7 +4,7 @@ import { Component } from '@angular/core'; selector: 'abp-spinner', standalone: true, template: ` -
+
Loading...