Merged PR 943: #2342 #2358 Autocomplete Adjust DebounceTime Values based on current Section

#2342 #2358 Autocomplete Adjust DebounceTime Values based on current Section
This commit is contained in:
Nino Righi
2021-11-08 12:56:27 +00:00
committed by Andreas Schickinger
parent 9078c57909
commit e7eef7f169
5 changed files with 29 additions and 6 deletions

View File

@@ -6,7 +6,7 @@ import { catchError, map } from 'rxjs/operators';
@Injectable()
export class ArticleSearchMainAutocompleteProvider extends UiFilterAutocompleteProvider {
for = 'main';
for = 'catalog';
constructor(private domainCatalogSearch: DomainCatalogService) {
super();

View File

@@ -168,7 +168,7 @@ export abstract class CustomerSearch implements OnInit, OnDestroy {
private initAutocomplete() {
this.autocompleteResult$ = this.inputChange$.pipe(
takeUntil(this.destroy$),
debounceTime(350),
debounceTime(300),
distinctUntilChanged(),
switchMap((queryString) => {
if (queryString.length >= 3) {

View File

@@ -6,7 +6,7 @@ import { catchError, map } from 'rxjs/operators';
@Injectable()
export class GoodsInSearchMainAutocompleteProvider extends UiFilterAutocompleteProvider {
for = 'main';
for = 'goods-in';
constructor(private domainGoodsInService: DomainGoodsService) {
super();

View File

@@ -6,7 +6,7 @@ import { catchError, map } from 'rxjs/operators';
@Injectable()
export class GoodsOutSearchMainAutocompleteProvider extends UiFilterAutocompleteProvider {
for = 'main';
for = 'goods-out';
constructor(private domainGoodsInService: DomainGoodsService) {
super();

View File

@@ -80,7 +80,7 @@ export class UiFilterInputGroupMainComponent implements OnInit, OnDestroy, After
) {}
ngOnInit() {
this._autocompleteProvider = this.autocompleteProviders?.find((provider) => provider.for === 'main');
this._autocompleteProvider = this.autocompleteProviders.find((provider) => !!provider);
this._scanProvider = this.scanProviders?.find((provider) => provider.for === 'main');
}
@@ -109,7 +109,7 @@ export class UiFilterInputGroupMainComponent implements OnInit, OnDestroy, After
initAutocomplete() {
this.autocompleteResults$ = this.complete.asObservable().pipe(
debounceTime(350),
debounceTime(this._debounceTimeAutocompleteMilliseconds()),
distinctUntilChanged(),
switchMap(() => this.autocompleteProvider.complete(this.uiInput)),
tap((complete) => {
@@ -125,4 +125,27 @@ export class UiFilterInputGroupMainComponent implements OnInit, OnDestroy, After
setAutocompleteProvider(provider: UiFilterAutocompleteProvider) {
this._autocompleteProvider = provider;
}
private _debounceTimeAutocompleteMilliseconds(): number {
if (!this.autocompleteProvider) {
return;
}
let debounceTimeMilliseconds: number;
switch (this.autocompleteProvider.for) {
case 'catalog':
debounceTimeMilliseconds = 250;
break;
case 'goods-in':
debounceTimeMilliseconds = 300;
break;
case 'goods-out':
debounceTimeMilliseconds = 300;
break;
default:
debounceTimeMilliseconds = 300;
break;
}
return debounceTimeMilliseconds;
}
}