From 92674f94f19e4c784d501125f7c454e246f9d1b9 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Sun, 11 Aug 2019 21:55:02 +0530 Subject: [PATCH] fix: destroying event listener on window --- docs/index.html | 2 +- src/js/charts/BaseChart.js | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/docs/index.html b/docs/index.html index dc11660..1f5ba76 100644 --- a/docs/index.html +++ b/docs/index.html @@ -261,7 +261,7 @@ redirect_to: "https://frappe.io/charts" chart.export(); // Unbind window-resize events - chart.unbindWindowEvents(); + chart.destroy(); diff --git a/src/js/charts/BaseChart.js b/src/js/charts/BaseChart.js index ebe12fe..e17c9e3 100644 --- a/src/js/charts/BaseChart.js +++ b/src/js/charts/BaseChart.js @@ -7,8 +7,6 @@ import { getColor, isValidColor } from '../utils/colors'; import { runSMILAnimation } from '../utils/animation'; import { downloadFile, prepareForExport } from '../utils/export'; -let BOUND_DRAW_FN; - export default class BaseChart { constructor(parent, options) { @@ -90,18 +88,14 @@ export default class BaseChart { this.height = height - getExtraHeight(this.measures); // Bind window events - BOUND_DRAW_FN = this.boundDrawFn.bind(this); - window.addEventListener('resize', BOUND_DRAW_FN); - window.addEventListener('orientationchange', this.boundDrawFn.bind(this)); - } - - boundDrawFn() { - this.draw(true); + this.boundDrawFn = () => this.draw(true); + window.addEventListener('resize', this.boundDrawFn); + window.addEventListener('orientationchange', this.boundDrawFn); } - unbindWindowEvents() { - window.removeEventListener('resize', BOUND_DRAW_FN); - window.removeEventListener('orientationchange', this.boundDrawFn.bind(this)); + destroy() { + window.removeEventListener('resize', this.boundDrawFn); + window.removeEventListener('orientationchange', this.boundDrawFn); } // Has to be called manually