react-use-hover
Version:
State hook to determine whether a React element is being hovered
24 lines (23 loc) • 952 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
function useHover(_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.mouseEnterDelayMS, mouseEnterDelayMS = _c === void 0 ? 0 : _c, _d = _b.mouseLeaveDelayMS, mouseLeaveDelayMS = _d === void 0 ? 0 : _d;
var _e = react_1.useState(false), isHovering = _e[0], setIsHovering = _e[1];
var mouseEnterTimer;
var mouseOutTimer;
return [
isHovering,
{
onMouseEnter: function () {
clearTimeout(mouseOutTimer);
mouseEnterTimer = setTimeout(function () { return setIsHovering(true); }, mouseEnterDelayMS);
},
onMouseLeave: function () {
clearTimeout(mouseEnterTimer);
mouseOutTimer = setTimeout(function () { return setIsHovering(false); }, mouseLeaveDelayMS);
}
}
];
}
exports.default = useHover;