From e90286fc6814f5c40af3e297be42f23128b991be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Thu, 23 Mar 2023 11:35:53 +0100 Subject: [PATCH] fix: autofocus searchbar only when no default data is displayed --- src/app/modules/data/list/search-page.html | 2 +- src/app/util/searchbar-autofocus.directive.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app/modules/data/list/search-page.html b/src/app/modules/data/list/search-page.html index 93c7362c..61793278 100644 --- a/src/app/modules/data/list/search-page.html +++ b/src/app/modules/data/list/search-page.html @@ -33,7 +33,7 @@ type="search" enterkeyhint="search" class="filterable" - autofocus + [autofocus]="!showDefaultData" > diff --git a/src/app/util/searchbar-autofocus.directive.ts b/src/app/util/searchbar-autofocus.directive.ts index f896948f..39ddae79 100644 --- a/src/app/util/searchbar-autofocus.directive.ts +++ b/src/app/util/searchbar-autofocus.directive.ts @@ -13,24 +13,24 @@ * this program. If not, see . */ -import {AfterViewInit, Directive, ElementRef} from '@angular/core'; +import {AfterViewInit, Directive, ElementRef, Input} from '@angular/core'; import {IonSearchbar} from '@ionic/angular'; @Directive({ selector: 'ion-searchbar[autofocus]', }) export class SearchbarAutofocusDirective implements AfterViewInit { + @Input() autofocus = true; + constructor(private element: ElementRef) {} ngAfterViewInit() { - const label = `focus`; - console.time(label); + if (!this.autofocus) return; const interval = setInterval(() => { const searchbar = this.element.nativeElement as IonSearchbar; - searchbar.setFocus(); + void searchbar.setFocus(); }); const onFocus = () => { - console.timeEnd(label); clearInterval(interval); this.element.nativeElement.removeEventListener('ionFocus', onFocus); };