mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
21 lines
481 B
TypeScript
21 lines
481 B
TypeScript
import { useCallback, useState } from 'react';
|
|
|
|
const useToggle = (initialValue: boolean): [boolean, (nextValue?: any) => void] => {
|
|
const [value, setValue] = useState<boolean>(initialValue);
|
|
|
|
const toggle = useCallback(
|
|
(nextValue?: any) => {
|
|
if (typeof nextValue === 'boolean') {
|
|
setValue(nextValue);
|
|
} else {
|
|
setValue(currentValue => !currentValue);
|
|
}
|
|
},
|
|
[setValue]
|
|
);
|
|
|
|
return [value, toggle];
|
|
};
|
|
|
|
export default useToggle;
|