From 152ea83b193263844197fc67b73d202d4cb0914b Mon Sep 17 00:00:00 2001 From: crisbeto Date: Thu, 2 Mar 2017 22:27:41 +0100 Subject: [PATCH] refactor(focus-origin-monitor): complete stream when stopping monitor Completes the `monitor` stream when an instance is destroyed. This makes it less error-prone and more convenient since we don't have to unsubscribe manually. --- src/lib/core/style/focus-origin-monitor.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/lib/core/style/focus-origin-monitor.ts b/src/lib/core/style/focus-origin-monitor.ts index bbb61f284700..42d83bb012cd 100644 --- a/src/lib/core/style/focus-origin-monitor.ts +++ b/src/lib/core/style/focus-origin-monitor.ts @@ -102,12 +102,15 @@ export class FocusOriginMonitor { * @param element The element to stop monitoring. */ unmonitor(element: Element): void { - if (!this._elementInfo.has(element)) { - return; + let elementInfo = this._elementInfo.get(element); + + if (elementInfo) { + elementInfo.unlisten(); + elementInfo.subject.complete(); + + this._setClasses(element, null); + this._elementInfo.delete(element); } - this._elementInfo.get(element).unlisten(); - this._setClasses(element, null); - this._elementInfo.delete(element); } /**