-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'
) {}
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)
}
)
}
- 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)
}