UNPKG

taro-hooks

Version:
62 lines 2.24 kB
import { eventCenter } from '@tarojs/taro'; import { generateGeneralFail } from '../utils/tool'; import { isSafeEvent, prefixClsEvent, generateCheck } from './utils'; function useEvent(namespace) { var set = function set(eventName) { for (var _len = arguments.length, handlers = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { handlers[_key - 1] = arguments[_key]; } if (generateCheck(eventName, handlers)) { handlers.forEach(function (handler) { eventCenter.on(prefixClsEvent(namespace, eventName), handler); }); } }; var setOnce = function setOnce(eventName) { for (var _len2 = arguments.length, handlers = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { handlers[_key2 - 1] = arguments[_key2]; } if (generateCheck(eventName, handlers)) { handlers.forEach(function (handler) { eventCenter.once(prefixClsEvent(namespace, eventName), handler); }); } }; var off = function off(eventName) { if (!isSafeEvent(eventName)) { generateGeneralFail('EVENT CHANEL', eventName + " is not valid"); return; } for (var _len3 = arguments.length, handlers = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { handlers[_key3 - 1] = arguments[_key3]; } if (!(handlers != null && handlers.length)) { eventCenter.off(prefixClsEvent(namespace, eventName)); } else { handlers.forEach(function (handler) { eventCenter.off(prefixClsEvent(namespace, eventName), handler); }); } }; var clear = function clear() { eventCenter.off(); }; var trigger = function trigger(eventName) { if (!isSafeEvent(eventName)) { generateGeneralFail('EVENT CHANEL', eventName + " is not valid"); return; } for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { params[_key4 - 1] = arguments[_key4]; } eventCenter.trigger.apply(eventCenter, [prefixClsEvent(namespace, eventName)].concat(params)); }; return { set: set, setOnce: setOnce, off: off, clear: clear, trigger: trigger }; } export default useEvent;