Skip to content

Commit 8437111

Browse files
authored
fix(module:core): remove resize listener when the app is destroyed (#7125)
1 parent 1ceaf70 commit 8437111

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

components/core/services/breakpoint.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
*/
55

66
import { MediaMatcher } from '@angular/cdk/layout';
7-
import { Injectable } from '@angular/core';
8-
import { Observable } from 'rxjs';
9-
import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
7+
import { Injectable, OnDestroy } from '@angular/core';
8+
import { Observable, Subject } from 'rxjs';
9+
import { distinctUntilChanged, map, startWith, takeUntil } from 'rxjs/operators';
1010

1111
import { NzResizeService } from './resize';
1212

@@ -44,9 +44,18 @@ export const siderResponsiveMap: BreakpointMap = {
4444
@Injectable({
4545
providedIn: 'root'
4646
})
47-
export class NzBreakpointService {
47+
export class NzBreakpointService implements OnDestroy {
48+
private destroy$ = new Subject<void>();
49+
4850
constructor(private resizeService: NzResizeService, private mediaMatcher: MediaMatcher) {
49-
this.resizeService.subscribe().subscribe(() => {});
51+
this.resizeService
52+
.subscribe()
53+
.pipe(takeUntil(this.destroy$))
54+
.subscribe(() => {});
55+
}
56+
57+
ngOnDestroy(): void {
58+
this.destroy$.next();
5059
}
5160

5261
subscribe(breakpointMap: BreakpointMap): Observable<NzBreakpointEnum>;

0 commit comments

Comments
 (0)