diff --git a/apps/browser/src/vault/popup/components/fido2/fido2.component.html b/apps/browser/src/vault/popup/components/fido2/fido2.component.html index 7233fa7636..fa49192c72 100644 --- a/apps/browser/src/vault/popup/components/fido2/fido2.component.html +++ b/apps/browser/src/vault/popup/components/fido2/fido2.component.html @@ -20,7 +20,7 @@ placeholder="{{ 'searchVault' | i18n }}" id="search" [(ngModel)]="searchText" - (input)="search(200)" + (input)="search()" autocomplete="off" appAutofocus /> diff --git a/apps/browser/src/vault/popup/components/fido2/fido2.component.ts b/apps/browser/src/vault/popup/components/fido2/fido2.component.ts index 03ae926859..b4ad5e5a52 100644 --- a/apps/browser/src/vault/popup/components/fido2/fido2.component.ts +++ b/apps/browser/src/vault/popup/components/fido2/fido2.component.ts @@ -319,46 +319,23 @@ export class Fido2Component implements OnInit, OnDestroy { }); } - async loadLoginCiphers() { - this.ciphers = (await this.cipherService.getAllDecrypted()).filter( - (cipher) => cipher.type === CipherType.Login && !cipher.isDeleted - ); - if (!this.hasLoadedAllCiphers) { - this.hasLoadedAllCiphers = !this.searchService.isSearchable(this.searchText); - } - await this.search(null); - } - - async search(timeout: number = null) { - this.searchPending = false; - if (this.searchTimeout != null) { - clearTimeout(this.searchTimeout); - } - - if (timeout == null) { - this.hasSearched = this.searchService.isSearchable(this.searchText); + protected async search() { + this.hasSearched = this.searchService.isSearchable(this.searchText); + this.searchPending = true; + if (this.hasSearched) { this.displayedCiphers = await this.searchService.searchCiphers( this.searchText, null, this.ciphers ); - return; + } else { + const equivalentDomains = this.settingsService.getEquivalentDomains(this.url); + this.displayedCiphers = this.ciphers.filter((cipher) => + cipher.login.matchesUri(this.url, equivalentDomains) + ); } - this.searchPending = true; - this.searchTimeout = setTimeout(async () => { - this.hasSearched = this.searchService.isSearchable(this.searchText); - if (!this.hasLoadedAllCiphers && !this.hasSearched) { - await this.loadLoginCiphers(); - } else { - this.displayedCiphers = await this.searchService.searchCiphers( - this.searchText, - null, - this.ciphers - ); - } - this.searchPending = false; - this.selectedPasskey(this.displayedCiphers[0]); - }, timeout); + this.searchPending = false; + this.selectedPasskey(this.displayedCiphers[0]); } abort(fallback: boolean) {