blob: 8c77e205efbe2e2a457c4d268a5f88d25caaafd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import { Injectable } from '@angular/core';
import { NotificationSettings } from '../utilities/notification.config'
import { Subject } from 'rxjs/Subject';
import { Subscription } from 'rxjs/Subscription';
@Injectable()
export class NotificationsService {
notifs: NotificationSettings[] = [];
notifQueue: Subject<any> = new Subject<any>();
constructor() {}
public push(notif: NotificationSettings): void {
if ( this.notifQueue.observers.length > 0 ) {
this.notifQueue.next(notif);
} else {
this.notifs.push(notif);
}
}
public getNotifications(): NotificationSettings[] {
return this.notifs;
}
public subscribe(observer): Subscription {
const s: Subscription = this.notifQueue.subscribe(observer);
this.notifs.forEach(notif => this.notifQueue.next(notif));
this.notifs = [];
return s;
}
}
|