-
-
Notifications
You must be signed in to change notification settings - Fork 532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] The content and activeAnchor arguments in the render cb do not always refer to the same element #1138
Comments
Is this something that's very noticeable from a user perspective? My guess is that's happening only for a few frames, so barely visible. If that's not the case, and it's in fact noticeable, please provide a reproducible sample, since I've been unable to do reproduce it myself. In case my assessment is correct, this is something we can't realistically fix right now, since it's due to a design limitation on how the tooltip handles its internal state, and it doesn't impact user experience. As you've noticed from the logs, there are basically 2 render cycles here: first the active anchor changes, and then the other internal states (such as the content) are updated according to it on the next cycle. I'll leave this open for now, but it should be noted it is closely related to #1010, since the issue there (position and open state synchronization) is also due to how the internal state is handled. We plan to address this design problem in the near future with v6, so hopefully this will also be fixed alongside #1010. Thanks for reporting, and please let us know if you've actually come up with a situation where this issue is noticeable for the user. |
yes, you're right. the error may be related to this topic. This bug occurs for 1-2 frames and is only noticeable if the height of tooltips for elements is different. in my example it is the left and middle element. I made a simple repository that you can use to reproduce this bug. I hope it will be useful to you. node js version 18.17.1. a screenshot of how the user sees it An interesting detail. when I customized the example, I first used react version 17.0.2. it doesn't show this bug visually. I created a separate branch to reproduce it. thank you for your reply |
Yep, definitely noticeable when the height changes. This is something we'll keep in mind when working on the design changes for V6. Though there's something interesting I suggest you try. Does it still happen with the browser dev tools closed? On my computer, with the dev tools closed, I haven't been able to reproduce the bug visually, but if happens every time with it open. My guess is that the dev tools introduce some performance overhead, so it ends up "lagging" the tooltip a bit. It's worth testing if maybe your application won't be affected by this on a production build. Still, this is definitely something we're aiming to fix. |
It's true, the bug is not observed visually with the closed dev tools. On a production build with open dev tools the error is also observed. Very strange behavior... |
If you log the props, you can see that <Tooltip
render={({ activeAnchor }) => activeAnchor && <span>{activeAnchor?.dataset['tooltipContent']}</span>}
....
/>` |
unfortunately, when using the developer tools, the tooltip height bug is noticeable even when using your variant |
Fixed on official release |
Bug description
I render the contents of the tooltip using the render prop of the Tooltip component
when quickly moving the cursor between two elements, situations arise when activeAnchor argument refers to one element and content argument contains data-tooltip-content from another element.
Version of Package
v5.25.0
To Reproduce
I used an example from here: https://github.com/ReactTooltip/react-tooltip/blob/master/docs/docs/examples/render.mdx
I only changed props of the Tooltip component:
Expected behavior
the data-tooltip-content attribute of the activeAnchor prop should be the same as the content prop
Screenshots
Desktop (please complete the following information if possible or delete this section):
The text was updated successfully, but these errors were encountered: