@darwish/hooks-core
Version:
25 lines (24 loc) • 805 B
JavaScript
import { cloneElement, useState } from 'react';
export default function useHover(hoveredView) {
var _a = 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 [
cloneElement(element, {
onMouseEnter: handleMouseEnter,
onMouseLeave: handleMouseLeave,
}),
hovered,
];
}