From fc7d5dc94e7a2d9181c3c938c37ddaa74727553a Mon Sep 17 00:00:00 2001 From: Johannes Eder Date: Tue, 3 Aug 2021 17:35:10 +0200 Subject: [PATCH] chore(alert): removing the interceptor when destroying the util --- frontend/src/utils/alerts/alerts.js | 5 ++++- frontend/src/utils/alerts/alerts.spec.js | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/src/utils/alerts/alerts.js b/frontend/src/utils/alerts/alerts.js index fd9681f89..bf29445eb 100644 --- a/frontend/src/utils/alerts/alerts.js +++ b/frontend/src/utils/alerts/alerts.js @@ -34,6 +34,7 @@ export class Alerts { _app; _eventManager; + _boundResponseInterceptor; constructor(element, app) { if (!element) { @@ -44,6 +45,7 @@ export class Alerts { this._app = app; this._eventManager = new EventManager(); + this._boundResponseInterceptor = this._responseInterceptor.bind(this); if (this._element.classList.contains(ALERTS_INITIALIZED_CLASS)) { return false; @@ -68,6 +70,7 @@ export class Alerts { destroy() { this._eventManager.removeAllEventListenersFromUtil(); + this._app.httpClient.removeResponseInterceptor(this._boundResponseInterceptor); if(this._alertElements) { this._alertElements.forEach(element => element.remove()); @@ -135,7 +138,7 @@ export class Alerts { } _setupHttpInterceptor() { - this._app.httpClient.addResponseInterceptor(this._responseInterceptor.bind(this)); + this._app.httpClient.addResponseInterceptor(this._boundResponseInterceptor); } _elevateAlerts() { diff --git a/frontend/src/utils/alerts/alerts.spec.js b/frontend/src/utils/alerts/alerts.spec.js index 889229f7c..db14c7361 100644 --- a/frontend/src/utils/alerts/alerts.spec.js +++ b/frontend/src/utils/alerts/alerts.spec.js @@ -3,6 +3,7 @@ import { Alerts, ALERTS_INITIALIZED_CLASS } from './alerts'; const MOCK_APP = { httpClient: { addResponseInterceptor: () => {}, + removeResponseInterceptor: () => {}, }, };