Merge pull request #238 from frappe/fix-event-listener

fix: destroying event listener on window
This commit is contained in:
Shivam Mishra 2019-08-11 22:17:34 +05:30 committed by GitHub
commit 317136eec4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 13 deletions

View File

@ -261,7 +261,7 @@ redirect_to: "https://frappe.io/charts"
chart.export();
// Unbind window-resize events
chart.unbindWindowEvents();
chart.destroy();
</code></pre>
</section>

View File

@ -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));
this.boundDrawFn = () => this.draw(true);
window.addEventListener('resize', this.boundDrawFn);
window.addEventListener('orientationchange', this.boundDrawFn);
}
boundDrawFn() {
this.draw(true);
}
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