UNPKG

@theoplayer/react-native-engage

Version:
31 lines (30 loc) 867 B
"use strict"; import { arrayRemoveElement } from '../utils/ArrayUtils'; export 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) { arrayRemoveElement(listeners, listener); } } } //# sourceMappingURL=DefaultEventDispatcher.js.map