hooks-belt
Version:
A comprehensive collection of useful React hooks for common use cases
36 lines • 1.07 kB
JavaScript
import { useState, useCallback } from 'react';
/**
* A hook that provides a boolean state with toggle functionality.
* Useful for managing boolean states like modals, dropdowns, etc.
*
* @param initialValue - The initial boolean value (default: false)
* @returns A tuple with the current value and toggle functions
*
* @example
* ```tsx
* const [isOpen, toggle, setOpen, setClosed] = useToggle(false)
*
* return (
* <div>
* <button onClick={toggle}>Toggle</button>
* <button onClick={setOpen}>Open</button>
* <button onClick={setClosed}>Close</button>
* {isOpen && <Modal />}
* </div>
* )
* ```
*/
export function useToggle(initialValue = false) {
const [value, setValue] = useState(initialValue);
const toggle = useCallback(() => {
setValue(prev => !prev);
}, []);
const setTrue = useCallback(() => {
setValue(true);
}, []);
const setFalse = useCallback(() => {
setValue(false);
}, []);
return [value, toggle, setTrue, setFalse];
}
//# sourceMappingURL=useToggle.js.map