@legion-ui-kit/react-core
Version:
To install the package into your project:
3 lines (2 loc) • 1.17 kB
JavaScript
import{jsxs as t,Fragment as o,jsx as e}from"react/jsx-runtime";import{useRef as r,useState as n,cloneElement as s,useEffect as i}from"react";import{createPortal as p}from"react-dom";import f from"./TooltipDialogue.js";import c from"../../hooks/useMounted.js";import{getTooltipPosition as l}from"./Tooltip.helper.js";import{TOOLTIP_DEFAULT_PROPS as m}from"./Tooltip.constant.js";const u=u=>{const{children:a,className:h,content:d,noArrow:g,position:j=m.position,ref:M,...T}=u,H=r(null),L=M||H,W=r(null),v=c(),[w,x]=n(!0),y=s(a,{...a.props,ref:W,onMouseEnter:t=>{a.props.onMouseEnter?.(t),x(!0)},onMouseLeave:t=>{a.props.onMouseLeave?.(t),x(!1)}}),[A,E]=n(0),[N,b]=n(0);return i(()=>{x(!1)},[]),i(()=>{const{top:t,left:o}=l({position:j,targetHeight:W.current?.offsetHeight||0,targetWidth:W.current?.offsetWidth||0,targetTop:W.current?.offsetTop||0,targetLeft:W.current?.offsetLeft||0,tooltipHeight:L?.current?.offsetHeight||0,tooltipWidth:L?.current?.offsetWidth||0});E(t),b(o)},[W,L,j]),t(o,{children:[v&&p(w&&e(f,{ref:L,className:h,position:j,noArrow:g,style:{top:A,left:N},...T,children:d}),document.body),y]})};export{u as default};
//# sourceMappingURL=Tooltip.js.map