Skip to content
This repository was archived by the owner on Oct 1, 2018. It is now read-only.

Commit ef051de

Browse files
committed
fix(operators): clean up menu subscription onDestroy
1 parent c86061f commit ef051de

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/app/operators/operators.component.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
Inject,
44
InjectionToken,
55
OnInit,
6+
OnDestroy,
67
AfterContentInit,
78
ChangeDetectionStrategy,
89
ViewChild
@@ -18,8 +19,9 @@ import { Router, ActivatedRoute } from '@angular/router';
1819
import { BreakpointObserver } from '@angular/cdk/layout';
1920
import { MatSidenav } from '@angular/material';
2021
import { Subscription } from 'rxjs/Subscription';
22+
import { Subject } from 'rxjs/Subject';
2123
import { Observable } from 'rxjs/Observable';
22-
import { filter } from 'rxjs/operators';
24+
import { filter, takeUntil } from 'rxjs/operators';
2325
import { OperatorDoc } from '../../operator-docs/operator.model';
2426
import { OperatorMenuService } from '../core/services/operator-menu.service';
2527

@@ -58,10 +60,11 @@ interface OperatorDocMap {
5860
])
5961
]
6062
})
61-
export class OperatorsComponent implements OnInit, AfterContentInit {
63+
export class OperatorsComponent implements OnInit, AfterContentInit, OnDestroy {
6264
@ViewChild(MatSidenav) _sidenav: MatSidenav;
6365
public groupedOperators: OperatorDocMap;
6466
public categories: string[];
67+
private _onDestroy = new Subject();
6568

6669
constructor(
6770
private _breakpointObserver: BreakpointObserver,
@@ -77,7 +80,7 @@ export class OperatorsComponent implements OnInit, AfterContentInit {
7780
ngAfterContentInit() {
7881
this._operatorMenuService
7982
.menuStatus()
80-
.pipe(filter(s => !!s))
83+
.pipe(filter(s => !!s), takeUntil(this._onDestroy))
8184
.subscribe(_ => this._sidenav.open());
8285
}
8386

@@ -98,6 +101,10 @@ export class OperatorsComponent implements OnInit, AfterContentInit {
98101
get sidenavMode() {
99102
return this.smallScreen ? 'over' : 'side';
100103
}
104+
105+
ngOnDestroy() {
106+
this._onDestroy.next();
107+
}
101108
}
102109

103110
export function groupOperatorsByType(operators: OperatorDoc[]): OperatorDocMap {

0 commit comments

Comments
 (0)