From bc794d49ffe1f60afa448e57943fc2a9b476a535 Mon Sep 17 00:00:00 2001 From: Erwin Smit Date: Wed, 2 Mar 2022 12:12:13 +0100 Subject: [PATCH] add support for configurable wrapper --- src/ReactHoverObserver.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ReactHoverObserver.js b/src/ReactHoverObserver.js index 04198c0..9616fe3 100644 --- a/src/ReactHoverObserver.js +++ b/src/ReactHoverObserver.js @@ -34,7 +34,8 @@ export default class extends React.Component { onMouseLeave: ({ unsetIsHovering }) => unsetIsHovering(), onMouseOver: noop, onMouseOut: noop, - shouldDecorateChildren: true + shouldDecorateChildren: true, + wrapper: ({children, ...props}) =>
{children}
}; static propTypes = { @@ -46,7 +47,8 @@ export default class extends React.Component { onMouseLeave: PropTypes.func, onMouseOver: PropTypes.func, onMouseOut: PropTypes.func, - shouldDecorateChildren: PropTypes.bool + shouldDecorateChildren: PropTypes.bool, + wrapper: PropTypes.element }; onMouseEnter(e) { @@ -145,7 +147,7 @@ export default class extends React.Component { } render() { - const { children, className } = this.props; + const { children, className, wrapper: Wrapper } = this.props; const childProps = assign( {}, { isHovering: this.state.isHovering }, @@ -164,7 +166,7 @@ export default class extends React.Component { ); return ( -
{ this.renderChildrenWithProps(children, childProps) } -
+ ); } };