forgeplus-react/node_modules/ahooks/lib/useToggle/index.js

79 lines
1.6 KiB
JavaScript

"use strict";
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;