diff --git a/src/useBoolean.ts b/src/useBoolean.ts new file mode 100644 index 0000000..90fe9db --- /dev/null +++ b/src/useBoolean.ts @@ -0,0 +1,14 @@ +import { useState, useCallback } from "react"; + +const useBoolean = (initial: boolean) => { + const [value, setValue] = useState(initial); + return { + value, + setValue, + toggle: useCallback(() => setValue(v => !v), []), + setTrue: useCallback(() => setValue(true), []), + setFalse: useCallback(() => setValue(false), []) + }; +}; + +export default useBoolean; diff --git a/src/useStateWithReset.ts b/src/useStateWithReset.ts new file mode 100644 index 0000000..5512cf9 --- /dev/null +++ b/src/useStateWithReset.ts @@ -0,0 +1,12 @@ +import { useState, useCallback } from "react"; + +const useStateWithReset = (initial: TValue) => { + const [value, setValue] = useState(initial); + return { + value, + setValue, + reset: useCallback(() => setValue(initial), []) + }; +}; + +export default useStateWithReset;