@mirawision/reactive-hooks
Version:
A comprehensive collection of 50+ React hooks for state management, UI interactions, device APIs, async operations, drag & drop, audio/speech, and more. Full TypeScript support with SSR safety.
33 lines (32 loc) • 905 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useToggle = useToggle;
const react_1 = require("react");
/**
* Hook that manages boolean state with toggle functionality
*
* @param initialValue - Initial boolean value
* @returns Tuple with current state and actions
*/
function useToggle(initialValue) {
const [value, setValue] = (0, react_1.useState)(initialValue);
const set = (newValue) => {
setValue(newValue);
};
const enable = () => setValue(true);
const disable = () => setValue(false);
const toggle = () => setValue(!value);
const pulse = (time) => {
const currentValue = value;
setValue(!currentValue);
setTimeout(() => setValue(currentValue), time);
};
const actions = {
set,
enable,
disable,
toggle,
pulse,
};
return [value, actions];
}