@byndyusoft-ui/use-toggle
Version:
Byndyusoft UI React Hook
9 lines (8 loc) • 538 B
JavaScript
import { useCallback, useState } from 'react';
export default function useToggle(leftValue, rightValue, initialValue) {
const [value, setValue] = useState(initialValue);
const toLeftValue = useCallback(() => setValue(leftValue), [leftValue]);
const toRightValue = useCallback(() => setValue(rightValue), [rightValue]);
const toggle = useCallback(() => setValue(previousValue => (previousValue === leftValue ? rightValue : leftValue)), [leftValue, rightValue]);
return [value, { toLeftValue, toRightValue, toggle }];
}