X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fheader%2Fsearch-typeahead.component.ts;h=2bf1072f443b1ce9752e80b0e5292e818a5fd56e;hb=140ea386dea49220f4cdd5b67027e8d30eee1b06;hp=210a1474cbfa5aca191ece43a9e825bac437e20b;hpb=8a979d73c3343ecf07b4e6411fa2a6783cd0a3b0;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/header/search-typeahead.component.ts b/client/src/app/header/search-typeahead.component.ts index 210a1474c..2bf1072f4 100644 --- a/client/src/app/header/search-typeahead.component.ts +++ b/client/src/app/header/search-typeahead.component.ts @@ -1,17 +1,9 @@ -import { - Component, - OnInit, - OnDestroy, - QueryList, - ViewChild, - ElementRef -} from '@angular/core' -import { Router, Params, ActivatedRoute } from '@angular/router' +import { Component, ElementRef, OnDestroy, OnInit, QueryList, ViewChild } from '@angular/core' +import { ActivatedRoute, Params, Router } from '@angular/router' import { AuthService, ServerService } from '@app/core' import { first, tap } from 'rxjs/operators' import { ListKeyManager } from '@angular/cdk/a11y' -import { UP_ARROW, DOWN_ARROW, ENTER } from '@angular/cdk/keycodes' -import { SuggestionComponent, Result } from './suggestion.component' +import { Result, SuggestionComponent } from './suggestion.component' import { of } from 'rxjs' import { ServerConfig } from '@shared/models' @@ -43,9 +35,9 @@ export class SearchTypeaheadComponent implements OnInit, OnDestroy { ) {} ngOnInit () { - const query = this.route.snapshot.queryParams - if (query['search']) this.search = query['search'] - + this.route.queryParams + .pipe(first(params => this.isOnSearch() && params.search !== undefined && params.search !== null)) + .subscribe(params => this.search = params.search) this.serverService.getConfig() .subscribe(config => this.serverConfig = config) } @@ -142,26 +134,27 @@ export class SearchTypeaheadComponent implements OnInit, OnDestroy { ) } - handleKeyUp (event: KeyboardEvent) { + handleKey (event: KeyboardEvent) { event.stopImmediatePropagation() if (!this.keyboardEventsManager) return - + switch (event.key) { - case "ArrowDown": - case "ArrowUp": + case 'ArrowDown': + case 'ArrowUp': this.keyboardEventsManager.onKeydown(event) break - case "Enter": - this.newSearch = false - this.doSearch() - break } } + isOnSearch () { + return window.location.pathname === '/search' + } + doSearch () { + this.newSearch = false const queryParams: Params = {} - if (window.location.pathname === '/search' && this.route.snapshot.queryParams) { + if (this.isOnSearch() && this.route.snapshot.queryParams) { Object.assign(queryParams, this.route.snapshot.queryParams) }