web-apps/apps/common/mobile/utils/notifications.js

26 lines
670 B
JavaScript
Raw Normal View History

export default class Notifications {
constructor() {
this._events = {};
}
on(event, callback) {
!this._events[event] && (this._events[event] = []);
this._events[event].push(callback);
}
off(event, callback) {
if ( this._events[event] && this._events[event].includes(callback) ) {
this._events[event].splice(this._events[event].indexOf(callback), 1);
}
}
trigger(event/*, args*/) {
if ( this._events[event] ) {
this._events[event].forEach(callback => {
callback.apply(this, Array.prototype.slice.call(arguments, 1));
});
}
}
}