-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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-10-18] [$1000] Web - Request money - No hover indicator for top tab options #26648
Comments
Triggered auto assignment to @garrettmknight ( |
Bug0 Triage Checklist (Main S/O)
|
ProposalPlease re-state the problem that we are trying to solve in this issue.No hover indicator for top tab options. What is the root cause of that problem?We have not added hover styles on tabSelectorItem.js. Summarizing the changes mentioned in the Slack Discussion:
What changes do you think we should make in order to solve the problem?We will wrap the <Hoverable>
{(isHovered) => (
...
)}
</Hoverable> We will also add a new
Result:This works perfectly. top.tab.hover.rec.webmtop.tab.hover.webmWhat alternative solutions did you explore? (Optional)xx |
Confirming whether this is expected or not in thread. |
This isn't working as designed - @neonbhai (and anyone else who wants to work on this) please review this slack discussion and incorporate the design framework from there. |
Job added to Upwork: https://www.upwork.com/jobs/~011fec984afd4c346b |
Current assignee @garrettmknight is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @Ollyws ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Web - Request money - No hover indicator for top tab options What is the root cause of that problem?hover is not defined in the What changes do you think we should make in order to solve the problem?We can add Change this line: App/src/components/TabSelector/TabSelectorItem.js Lines 45 to 61 in 33b3c88
To:
The hovered background color is different from the active tab color, so we can pass the color from
Where To make strong text in all condition we can change
Branch draft for this solution What alternative solutions did you explore? (Optional)Alternative 1This logic is adopted from To achieve this we can change the
To make the icon color green by default, we can change
To make the text always strong in all states, then we can remove conditional logic for fontFamily and fontWeight. it will be:
We can also customize e.g. [{CONST.BUTTON_STATES.DEFAULT, green},{CONST.BUTTON_STATES.PRESSED, red}...] Branch draft for this solution. Alternative 2This is what was suggested in this comment but wrapped with a view and remove flex1 in the pressable wrapper to handle iOS native issue. this is what happened without wrapping
Branch draft for this solution. |
Discussion in slack still ongoing. |
Convo is still going on tool tips/hover. |
📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸 |
@garrettmknight, @Ollyws Whoops! This issue is 2 days overdue. Let's get this updated quick! |
Refer to this thread for more info on fixing this: https://expensify.slack.com/archives/C049HHMV9SM/p1694605007634609?thread_ts=1693396751.536049&cid=C049HHMV9SM |
📣 @Nathan-Mulugeta 🎉 An offer has been automatically sent to your Upwork account for the Reporter role 🎉 Thanks for contributing to the Expensify app! |
I would like to point out that the selected solution adds a redundant view and takes mouse status from an Animating Component, which will edge case on the exact glitch we want to avoid. ExplanationWhy the glitch will occur?
This is wrong. Hoverable is as decoupled from AnimatedPressableWithFeedback as it can get. The right statement is: AnimatedPressableWithFeedbacks's hover styles does not update reliably when it is animating. The glitch wildan-m mentions will occur if you use the Why?Because mouse events don't work correctly for modified and animating components. as the animation runs on the UI thread and styles are precalculated. We need to decouple state for minimum latency. As hover effects are instant and non-animating, we want the styles to be applied instantly (not join the animated event loops where other interpolating CSS styles will cause it to lag. Or update and then be reset by the precalculated style)
This is a more elegant and bulletproof way to achieve hover styles. This is important as these tabs are the main service area of interaction for the App. Demo:Here's Stress tested videos of Hoverable's interactiontop.tab.hover.rec.webmtop.tab.hover.webmShows instant updates Do we need a new view?We shouldn't. This is non standard code. Which means we need to change CSS styles on the element we mean to style. This Keeps It Simple and easy to understand for anyone else who will contribute to this. Current proposal stacks the CSS, by updating a new view's background color. This will get refactored away in the future. This is bad code. It makes things complicated and is a workaround from applying styles where it should be: on the button. Passing
|
@neonbhai do you have any source? |
In case @neonbhai statements are accurate and the solution to this issue is quite straightforward, I hope the first one who can complete the issue without a bug will be selected. This is what was suggested in #26648 (comment) wrapped with a view and remove flex1 in the pressable wrapper to handle iOS native issue. |
These are complex nested views. Removing flex1 will set the components display to block, which is non-standard for react native. |
@wildan-m has been assigned and the PR is underway. @neonbhai Generally when we pick a proposal we're looking for the first general solution that fits the bill, all these small details are then much easier to iron out the in the PR itself. Looking back at the edit history it did seem that @wildan-m was very active in the slack thread and was the first to really come up with a cohesive proposal, and along with a couple of other reasons this is why I went ahead with them. I appreciate you've put alot of effort into your proposal and I hope we can work together on some PR's in the future! |
Based on my calculations, the pull request did not get merged within 3 working days of assignment. Please, check out my computations here:
On to the next one 🚀 |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.80-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-10-18. 🎊 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.
For reference, here are some details about the assignees on this issue:
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:
|
Summary of payments
@Ollyws can you complete the checklist and I'll pay you out? |
BugZero Checklist: |
@garrettmknight, @Ollyws, @wildan-m, @MariaHCD Whoops! This issue is 2 days overdue. Let's get this updated quick! |
Cool, paid and closing! |
Please read: Please review this slack discussion and incorporate the design framework being discussed there in any proposals.
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:
There should be a hover indicator
Actual Result:
No hover state indicator is present
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.62.0
Reproducible in staging?: yes
Reproducible in production?: yes
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
2023-08-30.14.59.27.1.mp4
Recording.4232.mp4
Expensify/Expensify Issue URL:
Issue reported by: @Nathan-Mulugeta
Slack conversation https://expensify.slack.com/archives/C049HHMV9SM/p1693396751536049
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: