]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/header/search-typeahead.component.ts
Support search param in URL for video abuses
[github/Chocobozzz/PeerTube.git] / client / src / app / header / search-typeahead.component.ts
index 372601fa82c2c6a5fee8332d73143dc77aacce87..2bf1072f443b1ce9752e80b0e5292e818a5fd56e 100644 (file)
@@ -35,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)
   }
@@ -134,7 +134,7 @@ export class SearchTypeaheadComponent implements OnInit, OnDestroy {
     )
   }
 
-  handleKeyUp (event: KeyboardEvent) {
+  handleKey (event: KeyboardEvent) {
     event.stopImmediatePropagation()
     if (!this.keyboardEventsManager) return
 
@@ -143,17 +143,18 @@ export class SearchTypeaheadComponent implements OnInit, OnDestroy {
       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)
     }