]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/helpers/rxjs.ts
Update translations
[github/Chocobozzz/PeerTube.git] / client / src / app / helpers / rxjs.ts
index eb051f868829ad426257887413f11b74baa31720..2eaf0a055436be938ae2cffee67276401f1dfdd8 100644 (file)
@@ -1,25 +1,23 @@
 import { uniq } from 'lodash-es'
-import { asyncScheduler, Observable } from 'rxjs'
-import { bufferTime, distinctUntilChanged, filter, map, observeOn, share, switchMap } from 'rxjs/operators'
-import { NgZone } from '@angular/core'
-import { enterZone, leaveZone } from './zone'
+import { Observable } from 'rxjs'
+import { bufferTime, distinctUntilChanged, filter, map, share, switchMap } from 'rxjs/operators'
 
-function buildBulkObservable <T extends number | string, R> (options: {
-  ngZone: NgZone
-  notifierObservable: Observable<T>
+function buildBulkObservable <P extends number | string, R> (options: {
+  notifierObservable: Observable<P>
   time: number
-  bulkGet: (params: T[]) => Observable<R>
+  bulkGet: (params: P[]) => Observable<R>
 }) {
-  const { ngZone, notifierObservable, time, bulkGet } = options
+  const { notifierObservable, time, bulkGet } = options
 
   return notifierObservable.pipe(
     distinctUntilChanged(),
-    // We leave Angular zone so Protractor does not get stuck
-    bufferTime(time, leaveZone(ngZone, asyncScheduler)),
+    bufferTime(time),
     filter(params => params.length !== 0),
     map(params => uniq(params)),
-    observeOn(enterZone(ngZone, asyncScheduler)),
-    switchMap(params => bulkGet(params)),
+    switchMap(params => {
+      return bulkGet(params)
+        .pipe(map(response => ({ params, response })))
+    }),
     share()
   )
 }