UNPKG

@byndyusoft-ui/use-toggle

Version:
9 lines (8 loc) 538 B
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 }]; }