UNPKG

state-hooks

Version:

Essential set of React Hooks for convenient state management.

30 lines (29 loc) 870 B
import { useCallback } from 'react'; /* eslint-disable jsdoc/valid-types */ /** * Wraps a state hook to add boolean toggle functionality. * * @param useStateResult Return value of a state hook. * @param useStateResult.0 Current state. * @param useStateResult.1 State updater function. * @returns State hook result extended with a `toggle` function. * * @example * function Component() { * const [isPressed, setPressed, togglePressed] = useToggle( * useState<boolean>(false), * ); * // ... * return ( * <button type="button" aria-pressed={isPressed} onClick={togglePressed}> * Toggle state * </button> * ); * } */ export default function useToggle([value, setValue]) { const toggleValue = useCallback(() => { setValue((prevValue) => !prevValue); }, [setValue]); return [value, setValue, toggleValue]; }