UNPKG

@vergiss/chooks

Version:
36 lines (28 loc) 895 B
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 };