UNPKG

@darwish/hooks-core

Version:

25 lines (24 loc) 805 B
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, ]; }