123456789101112131415161718192021 |
- import { Dispatch, SetStateAction, useCallback, useState } from "react";
- export interface UseBooleanReturn {
- value: boolean;
- setValue: Dispatch<SetStateAction<boolean>>;
- 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;
|