@vergiss/chooks
Version:
React hooks library
36 lines (28 loc) • 895 B
JavaScript
import { useState, useEffect } from 'react';
function useHover(ref) {
var _a = useState(false),
isHovering = _a[0],
setIsHovering = _a[1];
useEffect(function () {
if (!ref.current) {
return;
}
var setHoveringTrue = function setHoveringTrue() {
return setIsHovering(true);
};
var setHoveringFalse = function setHoveringFalse() {
return setIsHovering(false);
};
ref.current.addEventListener('mouseenter', setHoveringTrue);
ref.current.addEventListener('mouseleave', setHoveringFalse); // Remove event listeners while unmounting.
return function () {
if (!ref.current) {
return;
}
ref.current.removeEventListener('mouseenter', setHoveringTrue);
ref.current.removeEventListener('mouseleave', setHoveringFalse);
};
}, [ref, setIsHovering]);
return isHovering;
}
export { useHover };