From ce6de24e2fee1fb1f11ee9cb5e15c688b73e6068 Mon Sep 17 00:00:00 2001 From: streamich Date: Mon, 29 Oct 2018 15:27:51 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20useBoolean=20hook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- docs/useToggle.md | 4 +++- src/__stories__/useBoolean.story.tsx | 23 +++++++++++++++++++++++ src/index.ts | 2 ++ src/useBoolean.ts | 3 +++ 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/__stories__/useBoolean.story.tsx create mode 100644 src/useBoolean.ts diff --git a/README.md b/README.md index 7019a6a1ee..d161074d8b 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ - [`useGetSet`](./docs/useGetSet.md) — returns state getter `get()` instead of raw state. - [`useObservable`](./docs/useObservable.md) — tracks latest value of an `Observable`. - [`useSetState`](./docs/useSetState.md) — creates `setState` method which works like `this.setState`. [![][img-demo]](https://codesandbox.io/s/n75zqn1xp0) - - [`useToggle`](./docs/useToggle.md) — tracks state of a boolean. + - [`useToggle` and `useBoolean`](./docs/useToggle.md) — tracks state of a boolean. - [`useCounter`](./docs/useCounter.md) — tracks state of a number. - [`useList`](./docs/useList.md) — tracks state of an array. - [`useMap`](./docs/useMap.md) — tracks state of an object. diff --git a/docs/useToggle.md b/docs/useToggle.md index 3ad79ec821..93a4e4ec3b 100644 --- a/docs/useToggle.md +++ b/docs/useToggle.md @@ -2,11 +2,13 @@ React state hook that tracks value of a boolean. +`useBoolean` is an alias for `useToggle`. + ## Usage ```jsx -import {useToggle} from 'react-use'; +import {useToggle, useBoolean} from 'react-use'; const Demo = () => { const [on, toggle] = useToggle(true); diff --git a/src/__stories__/useBoolean.story.tsx b/src/__stories__/useBoolean.story.tsx new file mode 100644 index 0000000000..5d137a0633 --- /dev/null +++ b/src/__stories__/useBoolean.story.tsx @@ -0,0 +1,23 @@ +import * as React from 'react'; +import {storiesOf} from '@storybook/react'; +import {useBoolean} from '..'; +import ShowDocs from '../util/ShowDocs'; + +const Demo = () => { + const [on, toggle] = useBoolean(true); + + return ( +
+
{on ? 'ON' : 'OFF'}
+ + + +
+ ); +}; + +storiesOf('useBoolean', module) + .add('Docs', () => ) + .add('Demo', () => + + ) diff --git a/src/index.ts b/src/index.ts index 974acbcb25..00a5e59738 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,7 @@ import useAsync from './useAsync'; import useAudio from './useAudio'; import useBattery from './useBattery'; +import useBoolean from './useBoolean'; import useCounter from './useCounter'; import useCss from './useCss'; import useFavicon from './useFavicon'; @@ -38,6 +39,7 @@ export { useAsync, useAudio, useBattery, + useBoolean, useCounter, useCss, useFavicon, diff --git a/src/useBoolean.ts b/src/useBoolean.ts new file mode 100644 index 0000000000..39edec07e5 --- /dev/null +++ b/src/useBoolean.ts @@ -0,0 +1,3 @@ +import useBoolean from './useToggle'; + +export default useBoolean;