UNPKG

react-reflex

Version:

Flex layout component for advanced React web applications

55 lines (53 loc) 1.53 kB
/////////////////////////////////////////////////////////// // ReflexEvents // By Philippe Leefsma // December 2016 // /////////////////////////////////////////////////////////// class ReflexEvents { constructor() { this._events = {}; } ///////////////////////////////////////////////////////// // Supports multiple events space-separated // ///////////////////////////////////////////////////////// on(events, fct) { events.split(' ').forEach(event => { this._events[event] = this._events[event] || []; this._events[event].push(fct); }); return this; } ///////////////////////////////////////////////////////// // Supports multiple events space-separated // ///////////////////////////////////////////////////////// off(events, fct) { if (events == undefined) { this._events = {}; return; } events.split(' ').forEach(event => { if (event in this._events === false) return; if (fct) { this._events[event].splice(this._events[event].indexOf(fct), 1); } else { this._events[event] = []; } }); return this; } emit(event /* , args... */) { if (this._events[event] === undefined) return; var tmpArray = this._events[event].slice(); for (var i = 0; i < tmpArray.length; ++i) { var result = tmpArray[i].apply(this, Array.prototype.slice.call(arguments, 1)); if (result !== undefined) { return result; } } return undefined; } } export default ReflexEvents;