Skip to content

useHover

Tracks the hover state of an element.

Installation

npx rabbithook@latest add use-hover

Usage

App.tsx
import useHover from "@/hooks/use-hover";
function Component() {
const ref = useRef<HTMLDivElement>(null);
const isHovered = useHover(ref);
return (
<div ref={ref}>isHovered: { isHovered }</div>
)
}

Code

use-hover.ts
import { useState } from "react";
import useEventListener from "../use-event-listener";
function useHover(ref: Element) {
const [hovered, setHovered] = useState(false);
useEventListener("mouseover", () => setHovered(true), ref);
useEventListener("mouseout", () => setHovered(false), ref);
return hovered;
}
export default useHover;