use-hover
shadcn-hooks/use-hoverFreeHook
A hook to check if the mouse is hovering over an element
Install it
npx shadcn@latest add https://shadcn-hooks.com/r/use-hover.jsonSource
1import { useBoolean } from '@/registry/hooks/use-boolean'2import { useEventListener } from '@/registry/hooks/use-event-listener'3import type { BasicTarget } from '@/registry/lib/create-effect-with-target'45export interface UseHoverOptions {6 onEnter?: () => void7 onLeave?: () => void8 onChange?: (isHovering: boolean) => void9}1011export function useHover(12 target: BasicTarget,13 options?: UseHoverOptions,14): boolean {15 const { onEnter, onLeave, onChange } = options || {}1617 const [state, { setTrue, setFalse }] = useBoolean(false)1819 useEventListener(20 'mouseenter',21 () => {22 onEnter?.()23 setTrue()24 onChange?.(true)25 },26 {27 target,28 },29 )3031 useEventListener(32 'mouseleave',33 () => {34 onLeave?.()35 setFalse()36 onChange?.(false)37 },38 {39 target,40 },41 )4243 return state44}
What it pulls in
Other registry items
Files it writes
More from shadcn-hooks
All 58 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| use-active-elementuse-active-element | shadcn-hooks | Hooks | Free | no deps | |
| use-batteryuse-battery | shadcn-hooks | Hooks | Free | no deps | |
| use-booleanuse-boolean | shadcn-hooks | Hooks | Free | no deps | |
| use-click-any-whereuse-click-any-where | shadcn-hooks | Hooks | Free | no deps | |
| use-click-awayuse-click-away | shadcn-hooks | Hooks | Free | no deps | |
| use-clipboarduse-clipboard | shadcn-hooks | Hooks | Free | no deps | |
| use-controllable-valueuse-controllable-value | shadcn-hooks | Hooks | Free | 1 dep | |
| use-counteruse-counter | shadcn-hooks | Hooks | Free | no deps |
