aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/rxjs
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-01-23 14:23:19 +0100
committerChocobozzz <me@florianbigard.com>2020-01-23 14:59:44 +0100
commit44d4ee4fcb7cf8beebac73f85693c09919b91e66 (patch)
tree24b9867f2e0a5480cda3653ba00702779913fc88 /client/src/app/shared/rxjs
parent89566f77fd938cf8b0a617d5d2df4ca718242372 (diff)
downloadPeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.tar.gz
PeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.tar.zst
PeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.zip
Fix e2e tests
Diffstat (limited to 'client/src/app/shared/rxjs')
-rw-r--r--client/src/app/shared/rxjs/zone.ts40
1 files changed, 40 insertions, 0 deletions
diff --git a/client/src/app/shared/rxjs/zone.ts b/client/src/app/shared/rxjs/zone.ts
new file mode 100644
index 000000000..74eed7032
--- /dev/null
+++ b/client/src/app/shared/rxjs/zone.ts
@@ -0,0 +1,40 @@
1import { SchedulerLike, Subscription } from 'rxjs'
2import { NgZone } from '@angular/core'
3
4class LeaveZoneScheduler implements SchedulerLike {
5 constructor (private zone: NgZone, private scheduler: SchedulerLike) {
6 }
7
8 schedule (...args: any[]): Subscription {
9 return this.zone.runOutsideAngular(() =>
10 this.scheduler.schedule.apply(this.scheduler, args)
11 )
12 }
13
14 now (): number {
15 return this.scheduler.now()
16 }
17}
18
19class EnterZoneScheduler implements SchedulerLike {
20 constructor (private zone: NgZone, private scheduler: SchedulerLike) {
21 }
22
23 schedule (...args: any[]): Subscription {
24 return this.zone.run(() =>
25 this.scheduler.schedule.apply(this.scheduler, args)
26 )
27 }
28
29 now (): number {
30 return this.scheduler.now()
31 }
32}
33
34export function leaveZone (zone: NgZone, scheduler: SchedulerLike): SchedulerLike {
35 return new LeaveZoneScheduler(zone, scheduler)
36}
37
38export function enterZone (zone: NgZone, scheduler: SchedulerLike): SchedulerLike {
39 return new EnterZoneScheduler(zone, scheduler)
40}