From d8665a4e78d32e69021e72701a897f6c4ebbf054 Mon Sep 17 00:00:00 2001 From: Jason Quense Date: Wed, 19 May 2021 10:19:16 -0400 Subject: [PATCH 1/2] feat(useToggleState): add useToggleState hook --- src/useToggleState.ts | 31 +++++++++++++++++++++++++++++++ test/useToggleState.test.tsx | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/useToggleState.ts create mode 100644 test/useToggleState.test.tsx diff --git a/src/useToggleState.ts b/src/useToggleState.ts new file mode 100644 index 0000000..097fb8d --- /dev/null +++ b/src/useToggleState.ts @@ -0,0 +1,31 @@ +import { useReducer, Reducer } from 'react' + +/** + * Create a state setter pair for a boolean value that can be "switched" + * Unlike `useState(false)`, `useToggleState` will automatically flip the state + * value when it's setter is called with no argument. + * + * @param initialState THe initial boolean value + * @returns A tuple of the current state and a setter + * + * ```jsx + * const [show, toggleShow] = useToggleState(false) + * + * return ( + * <> + *