|
1 | 1 | import { Component, Input } from '@angular/core'; |
2 | 2 | import { catchError, map } from 'rxjs/operators'; |
3 | | -import { Observable, of as observableOf } from 'rxjs'; |
| 3 | +import { Observable, of as observableOf, Subscription } from 'rxjs'; |
4 | 4 | import { AccessStatusObject } from './access-status.model'; |
5 | 5 | import { hasValue } from '../../../../empty.util'; |
6 | 6 | import { environment } from 'src/environments/environment'; |
@@ -32,6 +32,11 @@ export class AccessStatusBadgeComponent { |
32 | 32 | */ |
33 | 33 | accessStatusClass: string; |
34 | 34 |
|
| 35 | + /** |
| 36 | + * List of subscriptions |
| 37 | + */ |
| 38 | + subs: Subscription[] = []; |
| 39 | + |
35 | 40 | /** |
36 | 41 | * Initialize instance variables |
37 | 42 | * |
@@ -65,10 +70,16 @@ export class AccessStatusBadgeComponent { |
65 | 70 | ); |
66 | 71 |
|
67 | 72 | // stylesheet based on the access status value |
68 | | - this.accessStatus$.pipe( |
69 | | - map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-')) |
70 | | - ).subscribe((accessStatusClass: string) => { |
71 | | - this.accessStatusClass = accessStatusClass; |
72 | | - }); |
| 73 | + this.subs.push( |
| 74 | + this.accessStatus$.pipe( |
| 75 | + map((accessStatusClass: string) => accessStatusClass.replace(/\./g, '-')) |
| 76 | + ).subscribe((accessStatusClass: string) => { |
| 77 | + this.accessStatusClass = accessStatusClass; |
| 78 | + }) |
| 79 | + ); |
| 80 | + } |
| 81 | + |
| 82 | + ngOnDestroy(): void { |
| 83 | + this.subs.filter((sub) => hasValue(sub)).forEach((sub) => sub.unsubscribe()); |
73 | 84 | } |
74 | 85 | } |
0 commit comments