UNPKG

ahooks

Version:
22 lines (21 loc) 816 B
import { useMemo, useState } from 'react'; function useToggle(defaultValue = false, reverseValue) { const [state, setState] = useState(defaultValue); const actions = useMemo(() => { const reverseValueOrigin = (reverseValue === undefined ? !defaultValue : reverseValue); const toggle = () => setState((s) => (s === defaultValue ? reverseValueOrigin : defaultValue)); const set = (value) => setState(value); const setLeft = () => setState(defaultValue); const setRight = () => setState(reverseValueOrigin); return { toggle, set, setLeft, setRight, }; // useToggle ignore value change // }, [defaultValue, reverseValue]); }, []); return [state, actions]; } export default useToggle;