taro-hooks
Version:
为 Taro 而设计的 Hooks Library
68 lines (67 loc) • 2.51 kB
JavaScript
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;
;