UNPKG

@supunlakmal/hooks

Version:

A collection of reusable React hooks

25 lines 1.02 kB
import { useState, useCallback } from 'react'; /** * @name useBoolean * @description - Hook that manages a boolean state, providing explicit setTrue, setFalse, and toggle functions. * * @param {boolean} [initialValue=false] The initial value of the boolean state. * @returns {[boolean, { setTrue: () => void; setFalse: () => void; toggle: () => void; }]} A tuple containing the current boolean value and an object with functions to manipulate it. * * @example * const [isVisible, { setTrue: openModal, setFalse: closeModal, toggle: toggleModal }] = useBoolean(false); */ export const useBoolean = (initialValue = false) => { const [value, setValue] = useState(initialValue); const setTrue = useCallback(() => { setValue(true); }, []); const setFalse = useCallback(() => { setValue(false); }, []); const toggle = useCallback(() => { setValue((prev) => !prev); }, []); return [value, { setTrue, setFalse, toggle }]; }; //# sourceMappingURL=useBoolean.js.map