UNPKG

react-use-hover

Version:

State hook to determine whether a React element is being hovered

24 lines (23 loc) 952 B
"use strict"; 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;