-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[HOLD for payment 2023-06-30] [$1000] Jittery transition of tooltip when the inner content changes #17555
Comments
Triggered auto assignment to @michaelhaxhiu ( |
Bug0 Triage Checklist (Main S/O)
|
@michaelhaxhiu Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
@michaelhaxhiu 6 days overdue. This is scarier than being forced to listen to Vogon poetry! |
Job added to Upwork: https://www.upwork.com/jobs/~01b7a7c818708f281d |
Current assignee @michaelhaxhiu is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav ( |
Triggered auto assignment to @amyevans ( |
Going external, this one is reproducible & valid! |
Might be helpful
When tooltip content changes we let the width be determined itself by setting width to |
ProposalPlease re-state the problem that we are trying to solve in this issue.Tooltip flickers when the content of the tooltip changes. What is the root cause of that problem?If we slow down the video, we can see that when the tooltip content changes, the position of the tooltip is late to update. Currently, we position the tooltip based on the component width and the tooltip width itself. When the tooltip content changes, the App/src/components/Tooltip/TooltipRenderedOnPageBody.js Lines 177 to 178 in 6fb0969
App/src/components/Tooltip/TooltipRenderedOnPageBody.js Lines 119 to 124 in 6fb0969
As we can see, we will update the state inside content updated -> rendered -> onLayout -> width/height updated -> rendered What changes do you think we should make in order to solve the problem?To calculate the size earlier, we can use useLayoutEffect (even the doc example uses tooltip as an example 🤣) which means we need to migrate the component to functional. Here is what we need to do:
here is how it looks in functional component
What alternative solutions did you explore? (Optional)Previously the main proposal Instead of relying on a fixed unit (tooltip width), we can use a percentage value to position the tooltip.
Screen.Recording.2023-04-27.at.14.20.45.mov |
I think @bernhardoj proposal looks good. We'll just have to check any regression absolute tooltips. @amyevans all youts. |
Just tested that my proposal won't cover the case when the tooltip is at the edge of the screen. That is because we still use Screen.Recording.2023-04-27.at.18.32.43.mov |
Updated my proposal to cover all cases with |
Niiiice one @bernhardoj thanks for being proactive on that. Let's get final 👍 from @amyevans and I'll proceed with assigning you. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.31-3 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-06-30. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Paid @mananjadhav on New Dot |
Current assignee @michaelhaxhiu is eligible for the External assigner, not assigning anyone new. |
Current assignee @mananjadhav is eligible for the External assigner, not assigning anyone new. |
@dukenv0307 can you share your upwork profile, or apply to the upword job directly? |
I invite @bernhardoj to the job just now. |
@michaelhaxhiu My Upwork profile: https://www.upwork.com/freelancers/~01f5cbe690701118a2. |
Closest I could find the PR was #8494 but I am not confident, hence I am not posting it on the PR. This is because I am not sure if we had Copy to Clipboard and we also made multiple changes in the component while fixing #13146 I don't think this specific issue required a regression, but I think it makes sense to have a regression suite for Tooltip atleast? I have mentioned some cases here and we've got two additional cases here and here. @michaelhaxhiu Could you help with this? I am not sure if adding regression suite would be considered and what would be the steps here? |
Re: the regression, I already made the regression test and linked it (yesterday). All set there. |
Thanks @michaelhaxhiu. Is everyone paid out here? If yes, then we are good to close here? |
@dukenv0307 lmk when you accept the job offer. Just need to pay you & this can be closed. |
@michaelhaxhiu I accepted, thank you! |
@mananjadhav, @amyevans, @michaelhaxhiu, @bernhardoj Eep! 4 days overdue now. Issues have feelings too... |
@michaelhaxhiu are we done with the payout? Can we close this one out? |
paid now |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Action Performed:
Expected Result:
The tooltip transition is Jittery when the tooltip text changes.
Actual Result:
You shouldn't see any shaking/jitter in the transition.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Recording.259.mp4
231447362-8279e374-dd33-46fc-86d7-43d2cd6a6895.mov
Expensify/Expensify Issue URL:
Issue reported by: @dukenv0307
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1681726366513289
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: