UNPKG

react-native-theoplayer

Version:

A THEOplayer video component for react-native.

47 lines (46 loc) 1.39 kB
"use strict"; import { arrayRemoveElement } from '../../utils/arrayUtil'; export class DefaultEventDispatcher { _eventListeners = new Map(); addEventListener(type, listener) { if (typeof listener !== 'function') { return; } else if (Array.isArray(type)) { type.forEach(t => this.addSingleEventListener(t, listener)); } else { this.addSingleEventListener(type, listener); } } addSingleEventListener(type, listener) { if (!this._eventListeners.has(type)) { this._eventListeners.set(type, [listener]); } else { 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) { if (typeof listener !== 'function') { return; } else if (Array.isArray(type)) { type.forEach(t => this.removeSingleEventListener(t, listener)); } else { this.removeSingleEventListener(type, listener); } } removeSingleEventListener(type, listener) { const listeners = this._eventListeners.get(type); if (listeners) { arrayRemoveElement(listeners, listener); } } } //# sourceMappingURL=DefaultEventDispatcher.js.map