react-native-navigation-bottom-sheet
Version:
A performant customizable bottom sheet component made on top of wix react-native-navigation library.
41 lines (38 loc) • 957 B
JavaScript
/**
* @author Luke Brandon Farrell
* @description Event dispatcher for comunication between components.
*/
/**
* @description events
* @private
*/
var _events = {};
/**
* @description add listener
* @public
* @param {string} name name listener
* @param {function} func function for call
* @returns {function} unsubscribe function
*/
export function listen(name, func) {
if (!_events[name]) _events[name] = {
count: 0,
funcs: {}
};
const key = _events[name].count++;
_events[name].funcs[key] = func;
return function () {
delete _events[name].funcs[key];
};
}
/**
* @description dispatch to listener
* @public
* @param {string} name name listener
* @param {any} arg argument for send to listen(...)
* @returns {void}
*/
export function dispatch(name, arg) {
if (_events[name]) for (var func in _events[name].funcs) _events[name].funcs[func] && _events[name].funcs[func](arg);
}
//# sourceMappingURL=events.js.map