ahooks
Version:
react hooks library
44 lines (43 loc) • 1.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
function useToggle() {
var defaultValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var reverseValue = arguments.length > 1 ? arguments[1] : undefined;
var _useState = (0, _react.useState)(defaultValue),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var actions = (0, _react.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];
}
var _default = exports["default"] = useToggle;