react-use/src/useToggle.ts
streamich 869f767c9a feat: 🎸 accept any value type in useToggle and cast it to bool
BREAKING CHANGE: now useToggle and useBoolean accept any value type and cast it to
boolean.
2018-10-29 15:33:05 +01:00

24 lines
463 B
TypeScript

import {useState} from './react';
export type UseToggle = (state: boolean) => [
boolean, // state
(nextValue?: boolean) => void // toggle
];
const useToggle: UseToggle = state => {
const [value, setValue] = useState<boolean>(state);
const toggle = (nextValue?: boolean) => {
if (typeof nextValue !== 'undefined') {
setValue(!!nextValue);
return;
}
setValue(!value)
};
return [value, toggle];
};
export default useToggle;