UNPKG

taro-hooks

Version:
68 lines (67 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var taro_1 = require("@tarojs/taro"); var tool_1 = require("../utils/tool"); var utils_1 = require("./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 ((0, utils_1.generateCheck)(eventName, handlers)) { handlers.forEach(function (handler) { taro_1.eventCenter.on((0, utils_1.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 ((0, utils_1.generateCheck)(eventName, handlers)) { handlers.forEach(function (handler) { taro_1.eventCenter.once((0, utils_1.prefixClsEvent)(namespace, eventName), handler); }); } }; var off = function off(eventName) { if (!(0, utils_1.isSafeEvent)(eventName)) { (0, tool_1.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)) { taro_1.eventCenter.off((0, utils_1.prefixClsEvent)(namespace, eventName)); } else { handlers.forEach(function (handler) { taro_1.eventCenter.off((0, utils_1.prefixClsEvent)(namespace, eventName), handler); }); } }; var clear = function clear() { taro_1.eventCenter.off(); }; var trigger = function trigger(eventName) { var _taro_1$eventCenter; if (!(0, utils_1.isSafeEvent)(eventName)) { (0, tool_1.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]; } (_taro_1$eventCenter = taro_1.eventCenter).trigger.apply(_taro_1$eventCenter, [(0, utils_1.prefixClsEvent)(namespace, eventName)].concat(params)); }; return { set: set, setOnce: setOnce, off: off, clear: clear, trigger: trigger }; } exports["default"] = useEvent;