@darwish/hooks-core
Version:
28 lines (27 loc) • 905 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
function useHover(hoveredView) {
var _a = (0, react_1.useState)(false), hovered = _a[0], setHovered = _a[1];
var element = typeof hoveredView === 'function' ? hoveredView(hovered) : hoveredView;
var handleMouseEnter = function () {
if (element.props && 'onMouseEnter' in element.props) {
element.props.onMouseEnter();
}
setHovered(true);
};
var handleMouseLeave = function () {
if (element.props && 'onMouseLeave' in element.props) {
element.props.onMouseLeave();
}
setHovered(false);
};
return [
(0, react_1.cloneElement)(element, {
onMouseEnter: handleMouseEnter,
onMouseLeave: handleMouseLeave,
}),
hovered,
];
}
exports.default = useHover;