debounce typing in search field - fixes #7579

This commit is contained in:
Eugene Pankov 2022-12-28 16:08:35 +01:00
parent a4c8aa40b5
commit 145b6447b9
No known key found for this signature in database
GPG key ID: 5896FCBBDD1CF4F4

View file

@ -1,4 +1,5 @@
import { Component, Input, Output, EventEmitter } from '@angular/core'
import { Subject, debounceTime } from 'rxjs'
import { Frontend, SearchOptions, SearchState } from '../frontends/frontend'
import { ConfigService, NotificationsService, TranslateService } from 'tabby-core'
@ -18,6 +19,8 @@ export class SearchPanelComponent {
@Output() close = new EventEmitter()
private queryChanged = new Subject<string>()
icons = {
'case': require('../icons/case.svg'),
regexp: require('../icons/regexp.svg'),
@ -31,11 +34,15 @@ export class SearchPanelComponent {
private notifications: NotificationsService,
private translate: TranslateService,
public config: ConfigService,
) { }
) {
this.queryChanged.pipe(debounceTime(250)).subscribe(() => {
this.findPrevious(true)
})
}
onQueryChange (): void {
this.state = { resultCount: 0 }
this.findPrevious(true)
this.queryChanged.next(this.query)
}
findNext (incremental = false): void {
@ -65,4 +72,8 @@ export class SearchPanelComponent {
this.config.save()
}
ngOnDestroy () {
this.queryChanged.complete()
}
}