#1799 #1814 Filter Focus im Suchfeld

This commit is contained in:
Lorenz Hilpert
2021-05-19 15:04:01 +02:00
parent f67bfce710
commit 955dcf11c7
5 changed files with 23 additions and 12 deletions

View File

@@ -23,8 +23,7 @@
uiSearchboxInput
placeholder="Titel, Autor, Verlag, Schlagwort, ..."
(keydown.enter)="startSearch(); autocomplete.close()"
uiIsInViewport
(viewportEntered)="focus($event)"
autofocus
/>
<ui-searchbox-warning *ngIf="isEmpty$ | async">
<button class="no-results-button" (click)="resetSearchState()">

View File

@@ -35,8 +35,6 @@ export class ArticleSearchboxComponent implements OnInit, OnDestroy, AfterViewIn
autocomplete: UiSearchboxAutocompleteComponent;
autocompleteResult$: Observable<AutocompleteDTO[]>;
@ViewChild('input', { static: true }) searchbar: ElementRef<HTMLInputElement>;
readonly filterChips$ = this.articleSearchStore.selectPrimaryFilter$;
readonly query$ = this.articleSearchStore.selectQuery$.pipe(
map((query) => query.query),
@@ -195,9 +193,5 @@ export class ArticleSearchboxComponent implements OnInit, OnDestroy, AfterViewIn
}, 1000);
}
ngAfterViewInit() {
setTimeout(() => {
this.searchbar.nativeElement.focus();
}, 1000);
}
ngAfterViewInit() {}
}

View File

@@ -9,8 +9,7 @@
placeholder="Name, E-Mail, Kundenkartennummer, ..."
(inputChange)="search.inputChange$.next($event)"
(keydown.enter)="startSearch(); autocomplete.close()"
uiIsInViewport
(viewportEntered)="focus($event)"
autofocus
/>
<ui-searchbox-warning *ngIf="searchState === 'empty'">
Keine Suchergebnisse

View File

@@ -0,0 +1,18 @@
import { Directive, ElementRef, OnInit, Self } from '@angular/core';
@Directive({ selector: '[autofocus]' })
export class UiAutofocusDirective implements OnInit {
get nativeElement() {
return this.elementRef.nativeElement as HTMLElement;
}
constructor(@Self() private elementRef: ElementRef) {}
ngOnInit() {
this.focus();
}
focus() {
this.nativeElement.focus();
}
}

View File

@@ -1,4 +1,5 @@
import { NgModule } from '@angular/core';
import { UiAutofocusDirective } from './autofocus.directive';
import { BlobImageDirective } from './blob-image.directive';
import { UiClickOutsideDirective } from './click-outside.directive';
import { IsInViewportDirective } from './is-in-viewport.directive';
@@ -8,7 +9,7 @@ import { ScrollContainerDirective } from './scroll-container.directive';
import { SkeletonLoaderComponent } from './skeleton-loader';
const components = [SkeletonLoaderComponent];
const directives = [UiClickOutsideDirective, IsInViewportDirective, ScrollContainerDirective, BlobImageDirective];
const directives = [UiClickOutsideDirective, IsInViewportDirective, ScrollContainerDirective, BlobImageDirective, UiAutofocusDirective];
const pipes = [StripHtmlTagsPipe, SubstrPipe];
@NgModule({
imports: [],