@nodeject/ui-components
Version:
UI library for non-trivial components
21 lines (20 loc) • 729 B
JavaScript
import { useCallback, useState } from 'react';
export var useToggle = function (args) {
var initialToggleState = (args === null || args === void 0 ? void 0 : args.initialState) !== undefined ? args.initialState : false;
var _a = useState(initialToggleState), active = _a[0], setActive = _a[1];
var toggleOff = useCallback(function () {
setActive(false);
}, []);
var toggleOn = useCallback(function () {
setActive(true);
}, []);
var toggle = useCallback(function () {
setActive(function (active) { return !active; });
}, []);
return {
active: active,
toggle: toggle,
toggleOff: toggleOff,
toggleOn: toggleOn
};
};