import { Dispatch, SetStateAction, useCallback, useState } from "react"; export interface UseBooleanReturn { value: boolean; setValue: Dispatch>; setTrue: () => void; setFalse: () => void; toggle: () => void; } function useBoolean(defaultValue?: boolean): UseBooleanReturn { const [value, setValue] = useState(Boolean(defaultValue)); const setTrue = useCallback(() => setValue(true), []); const setFalse = useCallback(() => setValue(false), []); const toggle = useCallback(() => setValue((prev) => !prev), []); return { value, setValue, setTrue, setFalse, toggle }; } export default useBoolean;