Repository URL to install this package:
|
Version:
1.1.5 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.useToggleable = void 0;
var react_1 = require("react");
var useToggleable = function (_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.defaultValue, defaultValue = _c === void 0 ? false : _c, onEnable = _b.onEnable, onDisable = _b.onDisable;
var _d = react_1.useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : false), value = _d[0], setValue = _d[1];
var enable = react_1.useCallback(function () {
setValue(true);
onEnable === null || onEnable === void 0 ? void 0 : onEnable();
}, [onEnable]);
var disable = react_1.useCallback(function () {
setValue(false);
onDisable === null || onDisable === void 0 ? void 0 : onDisable();
}, [onDisable]);
var toggle = react_1.useCallback(function () {
if (value) {
disable();
}
else {
enable();
}
}, [value, enable, disable]);
var result = react_1.useMemo(function () { return ({ value: value, setValue: setValue, toggle: toggle, enable: enable, disable: disable }); }, [value, setValue, enable, disable, toggle]);
return result;
};
exports.useToggleable = useToggleable;