UNPKG

@cerberus-design/react

Version:

The Cerberus Design React component library.

21 lines (18 loc) 540 B
'use client'; import { useState, useCallback, useMemo } from 'react'; function useToggle(options) { const [checked, setChecked] = useState(options?.checked ?? ""); const onChange = options?.onChange; const handleChange = useCallback( (e) => { const target = e.currentTarget; setChecked((prev) => { return prev === target.value ? "" : target.value; }); onChange?.(e); }, [onChange] ); return useMemo(() => ({ checked, handleChange }), [checked, handleChange]); } export { useToggle };