@modern-kit/react
Version:
28 lines (25 loc) • 756 B
JavaScript
import { useState, useRef } from 'react';
import { useEventListener } from '../useEventListener/index.mjs';
import '../usePreservedCallback/index.mjs';
import '../useIsomorphicLayoutEffect/index.mjs';
import '@modern-kit/utils';
function useHover({
onEnter,
onLeave
} = {}) {
const [isHovered, setIsHovered] = useState(false);
const targetRef = useRef(null);
const enterAction = (event) => {
setIsHovered(true);
onEnter?.(event);
};
const leaveAction = (event) => {
setIsHovered(false);
onLeave?.(event);
};
useEventListener(targetRef, "mouseenter", enterAction);
useEventListener(targetRef, "mouseleave", leaveAction);
return { ref: targetRef, isHovered };
}
export { useHover };
//# sourceMappingURL=index.mjs.map