]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-search/find-in-bulk.service.ts
Filter videos by live in custom markup
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-search / find-in-bulk.service.ts
index 0383d864805474461fda182c772e5b23dcee76e6..61dd2cbc56a3d6adafc0192735b4d635c877d36b 100644 (file)
@@ -1,6 +1,6 @@
 import * as debug from 'debug'
-import { Observable, Subject } from 'rxjs'
-import { map } from 'rxjs/operators'
+import { Observable, Subject, throwError } from 'rxjs'
+import { first, map } from 'rxjs/operators'
 import { Injectable, NgZone } from '@angular/core'
 import { buildBulkObservable } from '@app/helpers'
 import { ResultList } from '@shared/models/common'
@@ -71,12 +71,17 @@ export class FindInBulkService {
     return new Observable<R>(obs => {
       observableObject.result
         .pipe(
+          first(),
           map(({ data }) => data),
           map(data => data.find(finder))
         )
         .subscribe(result => {
-          obs.next(result)
-          obs.complete()
+          if (!result) {
+            obs.error(new Error($localize`Element ${param} not found`))
+          } else {
+            obs.next(result)
+            obs.complete()
+          }
         })
 
       observableObject.notifier.next(param)