Config-editor-ui: small search optimisation (#539)

This commit is contained in:
Celie Valentiny
2022-02-17 15:08:02 +00:00
committed by GitHub
parent d9210c7371
commit d88e94e833
3 changed files with 22 additions and 14 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
{
"name": "rule-editor.ui",
"version": "2.3.1-dev",
"version": "2.3.2-dev",
"license": "MIT",
"scripts": {
"ng": "ng",
@@ -22,7 +22,7 @@
"dependencies": {
"@angular-devkit/build-angular": "^13.2.3",
"@angular/animations": "^13.2.2",
"@angular/cdk": "^13.2.2",
"@angular/cdk": "^13.2.3",
"@angular/common": "^13.2.2",
"@angular/compiler": "^13.2.2",
"@angular/core": "^13.2.2",
@@ -88,7 +88,7 @@
"rimraf": "^3.0.2",
"ts-node": "^10.5.0",
"typescript": "~4.5.4",
"webpack": "^5.68.0"
"webpack": "^5.69.0"
},
"peerDependencies": {}
}

View File

@@ -1,4 +1,6 @@
import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { Subject } from 'rxjs';
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -13,35 +15,41 @@ export class SearchComponent implements OnInit {
@Input() filterMyConfigs: boolean;
@Input() filterUndeployed: boolean;
@Input() filterUpgradable: boolean;
@Output() searchTermChange: EventEmitter<string> = new EventEmitter<string>();
@Output() myConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@Output() undeployedConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@Output() updatedConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@Output() readonly searchTermChange: EventEmitter<string> = new EventEmitter<string>();
@Output() readonly myConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@Output() readonly undeployedConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@Output() readonly updatedConfigsChange: EventEmitter<boolean> = new EventEmitter<boolean>();
debouncer: Subject<string> = new Subject<string>();
myConfigs = true;
ngOnInit(): void {
this.searchBox.nativeElement.focus();
this.debouncer
.pipe(debounceTime(300), distinctUntilChanged())
.subscribe(
(searchTerm: string) => this.searchTermChange.emit(searchTerm)
);
}
public onSearch(searchTerm: string) {
this.searchTermChange.emit(searchTerm);
onSearch(searchTerm: string) {
this.debouncer.next(searchTerm);
}
public onClearSearch() {
onClearSearch() {
this.onSearch('');
this.searchTerm = '';
}
public clickMyConfigs($event: boolean) {
clickMyConfigs($event: boolean) {
this.myConfigsChange.emit($event);
}
public clickNotDeployed($event: boolean) {
clickNotDeployed($event: boolean) {
this.undeployedConfigsChange.emit($event);
}
public clickUpdatedConfigs($event: boolean) {
clickUpdatedConfigs($event: boolean) {
this.updatedConfigsChange.emit($event);
}
}