ahooks-v2
Version:
react hooks library
79 lines (63 loc) • 1.69 kB
JavaScript
;
var __read = this && this.__read || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o),
r,
ar = [],
e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {
ar.push(r.value);
}
} catch (error) {
e = {
error: error
};
} finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
} finally {
if (e) throw e.error;
}
}
return ar;
};
Object.defineProperty(exports, "__esModule", {
value: true
});
var react_1 = require("react");
function useToggle(defaultValue, reverseValue) {
if (defaultValue === void 0) {
defaultValue = false;
}
var _a = __read(react_1.useState(defaultValue), 2),
state = _a[0],
setState = _a[1];
var actions = react_1.useMemo(function () {
var reverseValueOrigin = reverseValue === undefined ? !defaultValue : reverseValue; // 切换返回值
var toggle = function toggle(value) {
// 强制返回状态值,适用于点击操作
if (value !== undefined) {
setState(value);
return;
}
setState(function (s) {
return s === defaultValue ? reverseValueOrigin : defaultValue;
});
}; // 设置默认值
var setLeft = function setLeft() {
return setState(defaultValue);
}; // 设置取反值
var setRight = function setRight() {
return setState(reverseValueOrigin);
};
return {
toggle: toggle,
setLeft: setLeft,
setRight: setRight
};
}, [defaultValue, reverseValue]);
return [state, actions];
}
exports["default"] = useToggle;