30 lines
1016 B
JavaScript
30 lines
1016 B
JavaScript
/* eslint-disable no-param-reassign */
|
|
|
|
((gl) => {
|
|
gl.VueRealtimeListener = (removeIntervals, startIntervals) => {
|
|
const removeAll = () => {
|
|
removeIntervals();
|
|
window.removeEventListener('beforeunload', removeIntervals);
|
|
window.removeEventListener('focus', startIntervals);
|
|
window.removeEventListener('blur', removeIntervals);
|
|
document.removeEventListener('beforeunload', removeAll);
|
|
};
|
|
|
|
window.addEventListener('beforeunload', removeIntervals);
|
|
window.addEventListener('focus', startIntervals);
|
|
window.addEventListener('blur', removeIntervals);
|
|
document.addEventListener('beforeunload', removeAll);
|
|
|
|
// add removeAll methods to stack
|
|
const stack = gl.VueRealtimeListener.reset;
|
|
gl.VueRealtimeListener.reset = () => {
|
|
gl.VueRealtimeListener.reset = stack;
|
|
removeAll();
|
|
stack();
|
|
};
|
|
};
|
|
|
|
// remove all event listeners and intervals
|
|
gl.VueRealtimeListener.reset = () => undefined; // noop
|
|
})(window.gl || (window.gl = {}));
|