useBoolean()
A simple abstraction to play with a boolean, don't repeat yourself.
Related hooks:
The Hook
1import { Dispatch, SetStateAction, useCallback, useState } from 'react'23interface UseBooleanOutput {4 value: boolean5 setValue: Dispatch<SetStateAction<boolean>>6 setTrue: () => void7 setFalse: () => void8 toggle: () => void9}1011function useBoolean(defaultValue?: boolean): UseBooleanOutput {12 const [value, setValue] = useState(!!defaultValue)1314 const setTrue = useCallback(() => setValue(true), [])15 const setFalse = useCallback(() => setValue(false), [])16 const toggle = useCallback(() => setValue(x => !x), [])1718 return { value, setValue, setTrue, setFalse, toggle }19}2021export default useBoolean
Usage
1import { useBoolean } from 'usehooks-ts'23export default function Component() {4 const { value, setValue, setTrue, setFalse, toggle } = useBoolean(false)56 // Just an example to use "setValue"7 const customToggle = () => setValue((x: boolean) => !x)89 return (10 <>11 <p>12 Value is <code>{value.toString()}</code>13 </p>14 <button onClick={setTrue}>set true</button>15 <button onClick={setFalse}>set false</button>16 <button onClick={toggle}>toggle</button>17 <button onClick={customToggle}>custom toggle</button>18 </>19 )20}
See a way to make this page better?
Edit there »