@modern-kit/react
Version:
30 lines (26 loc) • 833 B
JavaScript
;
var React = require('react');
var hooksUseEventListener = require('../useEventListener/index.cjs');
require('../usePreservedCallback/index.cjs');
require('../useIsomorphicLayoutEffect/index.cjs');
require('@modern-kit/utils');
function useHover({
onEnter,
onLeave
} = {}) {
const [isHovered, setIsHovered] = React.useState(false);
const targetRef = React.useRef(null);
const enterAction = (event) => {
setIsHovered(true);
onEnter?.(event);
};
const leaveAction = (event) => {
setIsHovered(false);
onLeave?.(event);
};
hooksUseEventListener.useEventListener(targetRef, "mouseenter", enterAction);
hooksUseEventListener.useEventListener(targetRef, "mouseleave", leaveAction);
return { ref: targetRef, isHovered };
}
exports.useHover = useHover;
//# sourceMappingURL=index.cjs.map