@theoplayer/react-native-engage
Version:
Engage connector for @theoplayer/react-native
36 lines (35 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DefaultEventDispatcher = void 0;
var _ArrayUtils = require("../utils/ArrayUtils");
class DefaultEventDispatcher {
_eventListeners = new Map();
addEventListener(type, listener) {
if (!this._eventListeners.has(type)) {
// @ts-ignore
this._eventListeners.set(type, [listener]);
} else {
// @ts-ignore
this._eventListeners.get(type)?.push(listener);
}
}
clearEventListeners() {
this._eventListeners.clear();
}
dispatchEvent = event => {
const listeners = (this._eventListeners.get(event.type) ?? []).slice();
for (const listener of listeners) {
listener.call(this, event);
}
};
removeEventListener(type, listener) {
const listeners = this._eventListeners.get(type);
if (listeners) {
(0, _ArrayUtils.arrayRemoveElement)(listeners, listener);
}
}
}
exports.DefaultEventDispatcher = DefaultEventDispatcher;
//# sourceMappingURL=DefaultEventDispatcher.js.map