npm i use-hover-state
A React hook for tracking user interaction with the DOM elements, combining 🖱mouse events and ⌨️ keyboard focus
import * as React from 'react';
import { useHoverState } from 'use-hover-state';
const Component = (props) => {
const [isHovering, hoverState] = useHoverState();
return <div {...hoverState}>{isHovering ? 'Hovering' : 'Not hovering'}</div>;
};This hook returns a tuple with the:
- boolean
isHoveredstate, representing current active state of an element - object
spreadProps, which one should spread on the given element - object
realState, which one can use to distinguish mouse and keyboard activity
| Property | Type | Description |
|---|---|---|
| enterDelay | number | Delays setting isHovering to true for this amount in ms |
| leaveDelay | number | Delays setting isHovering to false for htis amount in ms |
You almost certainty need to set leaveDelay to a non zero value
A hover feature detector
import { supportsHover } from 'react-hover-state';
switch (supportsHover()) {
case true:
'yes';
case false:
'no';
default:
'this is server';
}- @react-hook/hover similar package without keyboard functionality
MIT