Browse Source

fix: destroying event listener on window

tags/1.3.0
Shivam Mishra 5 years ago
parent
commit
92674f94f1
2 changed files with 7 additions and 13 deletions
  1. +1
    -1
      docs/index.html
  2. +6
    -12
      src/js/charts/BaseChart.js

+ 1
- 1
docs/index.html View File

@@ -261,7 +261,7 @@ redirect_to: "https://frappe.io/charts"
chart.export(); chart.export();


// Unbind window-resize events // Unbind window-resize events
chart.unbindWindowEvents();
chart.destroy();


</code></pre> </code></pre>
</section> </section>


+ 6
- 12
src/js/charts/BaseChart.js View File

@@ -7,8 +7,6 @@ import { getColor, isValidColor } from '../utils/colors';
import { runSMILAnimation } from '../utils/animation'; import { runSMILAnimation } from '../utils/animation';
import { downloadFile, prepareForExport } from '../utils/export'; import { downloadFile, prepareForExport } from '../utils/export';


let BOUND_DRAW_FN;

export default class BaseChart { export default class BaseChart {
constructor(parent, options) { constructor(parent, options) {


@@ -90,18 +88,14 @@ export default class BaseChart {
this.height = height - getExtraHeight(this.measures); this.height = height - getExtraHeight(this.measures);


// Bind window events // 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 // Has to be called manually


Loading…
Cancel
Save