react-use
Version:
Collection of React Hooks
27 lines (26 loc) • 963 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var useState = React.useState;
var noop = function () { };
var useHover = function (element) {
var _a = useState(false), state = _a[0], setState = _a[1];
var onMouseEnter = function (originalOnMouseEnter) { return function (event) {
(originalOnMouseEnter || noop)(event);
setState(true);
}; };
var onMouseLeave = function (originalOnMouseLeave) { return function (event) {
(originalOnMouseLeave || noop)(event);
setState(false);
}; };
if (typeof element === 'function') {
element = element(state);
}
var el = React.cloneElement(element, {
onMouseEnter: onMouseEnter(element.props.onMouseEnter),
onMouseLeave: onMouseLeave(element.props.onMouseLeave),
});
return [el, state];
};
exports.default = useHover;