Skip to content

useClickToggle

@hua-labs/hua/motion

bash
npm install @hua-labs/hua
tsx
import { useClickToggle } from "@hua-labs/hua/framework";

tsx
const { isActive, clickHandlers } = useClickToggle();

return (
  <button
    {...clickHandlers}
    className={isActive ? 'bg-primary text-white' : 'bg-secondary'}
  >
    {isActive ? 'Active' : 'Inactive'}
  </button>
);

initialStatebooleanfalseInitial active state
toggleOnClickbooleantrueToggle on click
toggleOnDoubleClickbooleanfalseToggle on double-click
toggleOnEnterbooleantrueToggle on Enter key
toggleOnSpacebooleantrueToggle on Space key
toggleOnRightClickbooleanfalseToggle on right-click (context menu)
autoResetbooleanfalseAuto-deactivate after delay
resetDelaynumber3000Auto-reset delay in milliseconds
preventDefaultbooleanfalsePrevent default event behavior
stopPropagationbooleanfalseStop event propagation
showOnMountbooleanfalseShow initial state on mount (SSR safety)

isActivebooleanCurrent toggle state
mountedbooleanHydration safety flag
clickHandlers{ onClick?, onDoubleClick?, onContextMenu?, onKeyDown? }Event handlers to spread on element
toggle() => voidToggle state manually
activate() => voidActivate (set to true)
deactivate() => voidDeactivate (set to false)
reset() => voidReset to initial state