Skip to content

Commit 4fb2db1

Browse files
feat: effect float POC
1 parent 49fc47d commit 4fb2db1

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/components/Tooltip/Tooltip.tsx

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,42 @@ const Tooltip = ({
108108
}
109109
}
110110

111+
const handleMouseMove = (event?: MouseEvent) => {
112+
if (!event) {
113+
return
114+
}
115+
const virtualElement = {
116+
getBoundingClientRect() {
117+
return {
118+
x: event.clientX,
119+
y: event.clientY,
120+
width: 0,
121+
height: 0,
122+
top: event.clientY,
123+
left: event.clientX,
124+
right: event.clientX,
125+
bottom: event.clientY,
126+
}
127+
},
128+
} as Element
129+
computeTooltipPosition({
130+
place,
131+
offset,
132+
elementReference: virtualElement,
133+
tooltipReference: tooltipRef.current,
134+
tooltipArrowReference: tooltipArrowRef.current,
135+
strategy: positionStrategy,
136+
}).then((computedStylesData) => {
137+
setCalculatingPosition(false)
138+
if (Object.keys(computedStylesData.tooltipStyles).length) {
139+
setInlineStyles(computedStylesData.tooltipStyles)
140+
}
141+
if (Object.keys(computedStylesData.tooltipArrowStyles).length) {
142+
setInlineArrowStyles(computedStylesData.tooltipArrowStyles)
143+
}
144+
})
145+
}
146+
111147
// debounce handler to prevent call twice when
112148
// mouse enter and focus events being triggered toggether
113149
const debouncedHandleShowTooltip = debounce(handleShowTooltip, 50)
@@ -139,6 +175,7 @@ const Tooltip = ({
139175
enabledEvents.push(
140176
{ event: 'mouseenter', listener: debouncedHandleShowTooltip },
141177
{ event: 'mouseleave', listener: debouncedHandleHideTooltip },
178+
{ event: 'mousemove', listener: (e) => handleMouseMove(e as MouseEvent) },
142179
{ event: 'focus', listener: debouncedHandleShowTooltip },
143180
{ event: 'blur', listener: debouncedHandleHideTooltip },
144181
)

0 commit comments

Comments
 (0)