react-custom-hooks-utils
Version:
This library contains a collection of reusable React custom hooks to simplify state management, side effects, and user interactions.
29 lines (22 loc) • 711 B
JavaScript
import { useState, useRef, useEffect } from 'react';
function useHover() {
const [isHovered, setIsHovered] = useState(false);
const ref = useRef(null);
const handleMouseEnter = () => setIsHovered(true);
const handleMouseLeave = () => setIsHovered(false);
useEffect(() => {
const node = ref.current;
if (node) {
node.addEventListener('mouseenter', handleMouseEnter);
node.addEventListener('mouseleave', handleMouseLeave);
}
return () => {
if (node) {
node.removeEventListener('mouseenter', handleMouseEnter);
node.removeEventListener('mouseleave', handleMouseLeave);
}
};
}, []);
return [ref, isHovered];
}
export default useHover;