From 05e8c385e4069d43831234d25cb2e9d16d88581c Mon Sep 17 00:00:00 2001 From: bendtherules Date: Tue, 31 Dec 2019 15:07:10 +0530 Subject: [PATCH] useBoolean, useStateWithReset - Add hooks --- src/useBoolean.ts | 14 ++++++++++++++ src/useStateWithReset.ts | 12 ++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 src/useBoolean.ts create mode 100644 src/useStateWithReset.ts 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;