@taro-hooks/ahooks
Version:
36 lines • 1.05 kB
JavaScript
import { useMemo, useState } from '@taro-hooks/core';
function useToggle(defaultValue, reverseValue) {
if (defaultValue === void 0) {
defaultValue = false;
}
var _useState = useState(defaultValue),
state = _useState[0],
setState = _useState[1];
var actions = useMemo(function () {
var reverseValueOrigin = reverseValue === undefined ? !defaultValue : reverseValue;
var toggle = function toggle() {
return setState(function (s) {
return s === defaultValue ? reverseValueOrigin : defaultValue;
});
};
var set = function set(value) {
return setState(value);
};
var setLeft = function setLeft() {
return setState(defaultValue);
};
var setRight = function setRight() {
return setState(reverseValueOrigin);
};
return {
toggle: toggle,
set: set,
setLeft: setLeft,
setRight: setRight
};
// useToggle ignore value change
// }, [defaultValue, reverseValue]);
}, []);
return [state, actions];
}
export default useToggle;