Browse Source

Add injection token for loader delay

http wait service addFilter and removeFilter methods can accept array payload
pull/7001/head
muhammedaltug 6 years ago
parent
commit
a3ceb85e8a
  1. 14
      npm/ng-packs/packages/core/src/lib/services/http-wait.service.ts
  2. 6
      npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts
  3. 1
      npm/ng-packs/packages/theme-shared/src/lib/models/common.ts
  4. 9
      npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts
  5. 1
      npm/ng-packs/packages/theme-shared/src/lib/tokens/index.ts
  6. 3
      npm/ng-packs/packages/theme-shared/src/lib/tokens/lodaer-delay.token.ts

14
npm/ng-packs/packages/core/src/lib/services/http-wait.service.ts

@ -54,17 +54,21 @@ export class HttpWaitService {
this.store.patch({ requests }); this.store.patch({ requests });
} }
addFilter(request: HttpRequestInfo) { addFilter(request: HttpRequestInfo | HttpRequestInfo[]) {
const requests = Array.isArray(request) ? request : [request];
const filteredRequests = [ const filteredRequests = [
...this.store.state.filteredRequests.filter(f => !this.isSameRequest(f, request)), ...this.store.state.filteredRequests.filter(
request, f => !requests.some(r => this.isSameRequest(f, r)),
),
...requests,
]; ];
this.store.patch({ filteredRequests }); this.store.patch({ filteredRequests });
} }
removeFilter(request: HttpRequestInfo) { removeFilter(request: HttpRequestInfo | HttpRequestInfo[]) {
const requests = Array.isArray(request) ? request : [request];
const filteredRequests = this.store.state.filteredRequests.filter( const filteredRequests = this.store.state.filteredRequests.filter(
f => !this.isSameRequest(f, request), f => !requests.some(r => this.isSameRequest(f, r)),
); );
this.store.patch({ filteredRequests }); this.store.patch({ filteredRequests });
} }

6
npm/ng-packs/packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts

@ -1,7 +1,8 @@
import { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core'; import { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core';
import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core'; import { ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { combineLatest, Subscription, timer } from 'rxjs'; import { combineLatest, Subscription, timer } from 'rxjs';
import { LOADER_DELAY } from '../../tokens/lodaer-delay.token';
@Component({ @Component({
selector: 'abp-loader-bar', selector: 'abp-loader-bar',
@ -77,8 +78,9 @@ export class LoaderBarComponent implements OnDestroy, OnInit {
private subscription: SubscriptionService, private subscription: SubscriptionService,
private httpWaitService: HttpWaitService, private httpWaitService: HttpWaitService,
private routerWaiterService: RouterWaitService, private routerWaiterService: RouterWaitService,
@Inject(LOADER_DELAY) delay: number,
) { ) {
this.httpWaitService.setDelay(500); this.httpWaitService.setDelay(delay);
} }
ngOnInit() { ngOnInit() {

1
npm/ng-packs/packages/theme-shared/src/lib/models/common.ts

@ -4,6 +4,7 @@ import { Validation } from '@ngx-validate/core';
export interface RootParams { export interface RootParams {
httpErrorConfig: HttpErrorConfig; httpErrorConfig: HttpErrorConfig;
validation?: Partial<Validation.Config>; validation?: Partial<Validation.Config>;
loaderDelay?: number;
} }
export type ErrorScreenErrorCodes = 401 | 403 | 404 | 500; export type ErrorScreenErrorCodes = 401 | 403 | 404 | 500;

9
npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts

@ -34,8 +34,9 @@ import { initLazyStyleHandler } from './handlers/lazy-style.handler';
import { RootParams } from './models/common'; import { RootParams } from './models/common';
import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider'; import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';
import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token'; import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';
import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token'; import { HTTP_ERROR_CONFIG, httpErrorConfigFactory } from './tokens/http-error.token';
import { DateParserFormatter } from './utils/date-parser-formatter'; import { DateParserFormatter } from './utils/date-parser-formatter';
import { LOADER_DELAY } from './tokens/lodaer-delay.token';
const declarationsWithExports = [ const declarationsWithExports = [
BreadcrumbComponent, BreadcrumbComponent,
@ -77,7 +78,7 @@ export class BaseThemeSharedModule {}
}) })
export class ThemeSharedModule { export class ThemeSharedModule {
static forRoot( static forRoot(
{ httpErrorConfig, validation = {} } = {} as RootParams, { httpErrorConfig, validation = {}, loaderDelay = 500 } = {} as RootParams,
): ModuleWithProviders<ThemeSharedModule> { ): ModuleWithProviders<ThemeSharedModule> {
return { return {
ngModule: ThemeSharedModule, ngModule: ThemeSharedModule,
@ -123,6 +124,10 @@ export class ThemeSharedModule {
provide: VALIDATION_VALIDATE_ON_SUBMIT, provide: VALIDATION_VALIDATE_ON_SUBMIT,
useValue: validation.validateOnSubmit, useValue: validation.validateOnSubmit,
}, },
{
provide: LOADER_DELAY,
useValue: loaderDelay,
},
], ],
}; };
} }

1
npm/ng-packs/packages/theme-shared/src/lib/tokens/index.ts

@ -1,4 +1,5 @@
export * from './append-content.token'; export * from './append-content.token';
export * from './http-error.token'; export * from './http-error.token';
export * from './lazy-styles.token'; export * from './lazy-styles.token';
export * from './lodaer-delay.token';
export * from './suppress-unsaved-changes-warning.token'; export * from './suppress-unsaved-changes-warning.token';

3
npm/ng-packs/packages/theme-shared/src/lib/tokens/lodaer-delay.token.ts

@ -0,0 +1,3 @@
import { InjectionToken } from '@angular/core';
export const LOADER_DELAY = new InjectionToken<number>('LOADER_DELAY');
Loading…
Cancel
Save