From 15120f00786c1418fb06947a369a47acdffde08b Mon Sep 17 00:00:00 2001 From: Madison Dickson Date: Mon, 10 Aug 2020 11:33:26 -0700 Subject: [PATCH] feat(Synchronizer): Change Scope of Event handlers (#1291) Set fireEvent and onEvent functions from anonymous inner functions to object keys, to allow consumers to monkeypatch the functions of need be. --- src/synchronization/Synchronizer.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/synchronization/Synchronizer.js b/src/synchronization/Synchronizer.js index 9fd199bdc..048a15dad 100644 --- a/src/synchronization/Synchronizer.js +++ b/src/synchronization/Synchronizer.js @@ -156,7 +156,7 @@ function Synchronizer(event, handler) { * @param {Object} eventData - The data object for the source event * @returns {void} */ - function fireEvent(sourceElement, eventData) { + this.fireEvent = function(sourceElement, eventData) { const isDisabled = !that.enabled; const noElements = !sourceElements.length || !targetElements.length; @@ -199,7 +199,7 @@ function Synchronizer(event, handler) { ); }); ignoreFiredEvents = false; - } + }; /** * Call fireEvent if not ignoring events, and pass along event data @@ -208,15 +208,15 @@ function Synchronizer(event, handler) { * @param {Event} e - The source event object * @returns {void} */ - function onEvent(e) { + this.onEvent = function(e) { const eventData = e.detail; if (ignoreFiredEvents === true) { return; } - fireEvent(e.currentTarget, eventData); - } + that.fireEvent(e.currentTarget, eventData); + }; /** * Add a source element to this synchronizer @@ -237,7 +237,7 @@ function Synchronizer(event, handler) { // Subscribe to the event event.split(' ').forEach(oneEvent => { - element.addEventListener(oneEvent, onEvent); + element.addEventListener(oneEvent, that.onEvent); }); // Update the initial distances between elements @@ -302,14 +302,14 @@ function Synchronizer(event, handler) { // Stop listening for the event event.split(' ').forEach(oneEvent => { - element.removeEventListener(oneEvent, onEvent); + element.removeEventListener(oneEvent, that.onEvent); }); // Update the initial distances between elements that.getDistances(); // Update everyone listening for events - fireEvent(element); + that.fireEvent(element); that.updateDisableHandlers(); };