UNPKG

refun

Version:

A collection of React Hook-enabled functions that compose harmoniously with each other. Similar to `recompose`, but:

57 lines (44 loc) 1.76 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.mapHovered = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _tsfn = require("tsfn"); var mapHovered = function mapHovered(props) { var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2.default)(_useState, 2), isHovered = _useState2[0], setIsHovered = _useState2[1]; var origOnPointerEnterRef = (0, _react.useRef)(); var origOnPointerLeaveRef = (0, _react.useRef)(); var onPointerEnterRef = (0, _react.useRef)(_tsfn.NOOP); var onPointerLeaveRef = (0, _react.useRef)(_tsfn.NOOP); origOnPointerEnterRef.current = props.onPointerEnter; origOnPointerLeaveRef.current = props.onPointerLeave; if (onPointerEnterRef.current === _tsfn.NOOP) { onPointerEnterRef.current = function () { setIsHovered(true); if ((0, _tsfn.isFunction)(origOnPointerEnterRef.current)) { origOnPointerEnterRef.current(); } }; } if (onPointerLeaveRef.current === _tsfn.NOOP) { onPointerLeaveRef.current = function () { setIsHovered(false); if ((0, _tsfn.isFunction)(origOnPointerLeaveRef.current)) { origOnPointerLeaveRef.current(); } }; } return (0, _extends2.default)({}, props, { isHovered: isHovered || Boolean(props.isHovered), onPointerEnter: onPointerEnterRef.current, onPointerLeave: onPointerLeaveRef.current }); }; exports.mapHovered = mapHovered; //# sourceMappingURL=map-hovered.js.map