]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/eg2/src/app/share/toast/toast.component.ts
Docs: merge 3.2 release notes
[Evergreen.git] / Open-ILS / src / eg2 / src / app / share / toast / toast.component.ts
1 import {Component, Input, OnInit, ViewChild} from '@angular/core';
2 import {ToastService, ToastMessage} from '@eg/share/toast/toast.service';
3
4 const EG_TOAST_TIMEOUT = 3000;
5
6 @Component({
7   selector: 'eg-toast',
8   templateUrl: './toast.component.html',
9   styleUrls: ['./toast.component.css']
10 })
11 export class ToastComponent implements OnInit {
12
13     message: ToastMessage;
14
15     // track the most recent timeout event
16     timeout: any;
17
18     constructor(private toast: ToastService) {
19     }
20
21     ngOnInit() {
22         this.toast.messages$.subscribe(msg => this.show(msg));
23     }
24
25     show(msg: ToastMessage) {
26         this.dismiss(this.message);
27         this.message = msg;
28         this.timeout = setTimeout(
29             () => this.dismiss(this.message),
30             EG_TOAST_TIMEOUT
31         );
32     }
33
34     dismiss(msg: ToastMessage) {
35         this.message = null;
36         if (this.timeout) {
37             clearTimeout(this.timeout);
38             this.timeout = null;
39         }
40     }
41 }
42
43