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