Skip to content

Commit 75b788d

Browse files
authored
adding ngOnDestroy for dealing with unsubscribe
1 parent c7eae92 commit 75b788d

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

src/app/shared/object-collection/shared/badges/access-status-badge/access-status-badge.component.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, Input } from '@angular/core';
22
import { catchError, map } from 'rxjs/operators';
3-
import { Observable, of as observableOf } from 'rxjs';
3+
import { Observable, of as observableOf, Subscription } from 'rxjs';
44
import { AccessStatusObject } from './access-status.model';
55
import { hasValue } from '../../../../empty.util';
66
import { environment } from 'src/environments/environment';
@@ -32,6 +32,11 @@ export class AccessStatusBadgeComponent {
3232
*/
3333
accessStatusClass: string;
3434

35+
/**
36+
* List of subscriptions
37+
*/
38+
subs: Subscription[] = [];
39+
3540
/**
3641
* Initialize instance variables
3742
*
@@ -65,10 +70,16 @@ export class AccessStatusBadgeComponent {
6570
);
6671

6772
// 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());
7384
}
7485
}

0 commit comments

Comments
 (0)