17 lines
474 B
TypeScript
17 lines
474 B
TypeScript
import { useCallback, useState } from 'react';
|
|
|
|
export function useToggle(initialValue: boolean | (() => boolean) = false) {
|
|
const [value, setValue] = useState(initialValue);
|
|
const onTrue = useCallback(() => {
|
|
setValue(true);
|
|
}, []);
|
|
const onFalse = useCallback(() => {
|
|
setValue(false);
|
|
}, []);
|
|
const onToggle = useCallback(() => {
|
|
setValue((prevValue) => !prevValue);
|
|
}, []);
|
|
|
|
return [value, { setValue, onTrue, onFalse, onToggle }] as const;
|
|
}
|