27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.useBoolean = void 0;
|
||
|
var React = require("react");
|
||
|
var useConst_1 = require("./useConst");
|
||
|
/**
|
||
|
* Hook to store a value and generate callbacks for setting the value to true or false.
|
||
|
* The identity of the callbacks will always stay the same.
|
||
|
*
|
||
|
* @param initialState - Initial value
|
||
|
* @returns Array with the current value and an object containing the updater callbacks.
|
||
|
*/
|
||
|
function useBoolean(initialState) {
|
||
|
var _a = React.useState(initialState), value = _a[0], setValue = _a[1];
|
||
|
var setTrue = (0, useConst_1.useConst)(function () { return function () {
|
||
|
setValue(true);
|
||
|
}; });
|
||
|
var setFalse = (0, useConst_1.useConst)(function () { return function () {
|
||
|
setValue(false);
|
||
|
}; });
|
||
|
var toggle = (0, useConst_1.useConst)(function () { return function () {
|
||
|
setValue(function (currentValue) { return !currentValue; });
|
||
|
}; });
|
||
|
return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];
|
||
|
}
|
||
|
exports.useBoolean = useBoolean;
|
||
|
//# sourceMappingURL=useBoolean.js.map
|