@vergiss/chooks
Version:
React hooks library
44 lines (34 loc) • 1.07 kB
JavaScript
;
import "core-js/modules/es.object.define-property";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useHover = void 0;
var react_1 = require("react");
function useHover(ref) {
var _a = react_1.useState(false),
isHovering = _a[0],
setIsHovering = _a[1];
react_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;
}
exports.useHover = useHover;