-
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 2024-02-07] [$500] Theme - Input in Merchant field isn't visible in light mode when select item from suggest list #33318
Comments
Job added to Upwork: https://www.upwork.com/jobs/~01704ce5a9ef62e618 |
Triggered auto assignment to @bfitzexpensify ( |
Bug0 Triage Checklist (Main S/O)
|
Triggered auto assignment to Contributor-plus team member for initial proposal review - @aimane-chnaif ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Theme - Input in Merchant field isn't visible in light mode when select item from suggest list What is the root cause of that problem?For text from suggested list we use custom styles Lines 93 to 97 in df98114
I also think that the problem is also relevant for the caret What changes do you think we should make in order to solve the problem?We have several ways
Similar to what we do for a splash screen App/src/libs/BootSplash/index.ts Lines 12 to 15 in df98114
But these are all just suggestions What alternative solutions did you explore? (Optional)NA Update So that there are no disputes in the future that someone spied on someone Screen.Recording.2023-12-20.at.00.18.53.mov |
ProposalPlease re-state the problem that we are trying to solve in this issue.Theme - Input in Merchant field isn't visible in light mode when select item from suggest list What is the root cause of that problem?We have custom autofill color. Line 95 in aa1d87c
What changes do you think we should make in order to solve the problem?We need to variable for this.
and need to set
Screen.Recording.2023-12-20.at.1.28.26.PM.movWhat alternative solutions did you explore? (Optional) |
ProposalPlease re-state the problem that we are trying to solve in this issue.Selected Merchant is not visible in input field. Letters are light just like the theme. What is the root cause of that problem?In here, we're setting the white color to autofilled inputs, this is to fix a bug where sometimes browsers add special styles to text inputs if those inputs are autofilled, for example Chrome on iOS will add yellow color. This will work fine for the default dark theme we have earlier, but since now light theme is supported, the white color on light theme will cause UI problem. In fact we should not set it as Also the reason why we have to put it in CSS is because there's no native way in React to target the What changes do you think we should make in order to solve the problem?We need to use different CSS with correct theme colors. To do that we can (the below changes are only needed for web platform):
The above are reusable for any case where we need to use theme-specific CSS. What alternative solutions did you explore? (Optional)NA |
@tienifr thanks for the proposal. Can you share your branch for testing? |
@aimane-chnaif sure thing! here you go https://github.com/Expensify/App/compare/main...tienifr:fix/33318?expand=1 It's working fine below Screen.Recording.2023-12-20.at.2.31.22.PM.mov |
ProposalPlease re-state the problem that we are trying to solve in this issue.The merchant input text is not visible if we auto-fill it (light mode) What is the root cause of that problem?We hard-coded a style for the auto-fill input to have a white color. Lines 76 to 97 in 52ecad4
So, when we auto-fill it in light mode, we won't be able to see it. To solve this issue, we need to understand first the history of the above style. On most browsers, they have a default auto-fill style that is not overridable. On the Chromium browser, the The default However, at the time we applied a dark theme to the app for the first time, we didn't have a But we now have the What changes do you think we should make in order to solve the problem?The simplest solution is to remove the hard-coded auto-fill style, but it will have a 100% white and black color which is not the same as So, what we can do instead is to move the style from
With this change, we will set all those 3 styles whether the input is auto-filled or manually filled. We already have 2 uses of those styles here: Lines 799 to 806 in 52ecad4
Lines 2647 to 2657 in 52ecad4
|
Thanks. It works well |
Triggered auto assignment to @thienlnam, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
@aimane-chnaif can you review mine, please? |
@bernhardoj just reviewed. I am fine with global approach and if more web css styles (not only input) are needed in the future, we can just use same util. |
I think we won't be allowed anymore to add more theme styles directly to the index.html (except it's unavoidable) and I'm just thinking that it's better if we could have the style set on the react js code, just like we did with Also, we want to have the same text color for both auto and manual fill, so I think the auto-fill selector is actually not needed. (that's just my opinion) |
yes, I meant unavoidable styles. i.e. #13328 |
Hi @aimane-chnaif Could you check my updated Proposal |
Agreed with @aimane-chnaif, basically all pseudo-element style targeting based on theme will have to use a variation of my solution, better add it now 😄 |
Assigning you since this is a theme related bug and you have more context on it |
📣 @aimane-chnaif 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app! |
📣 @tienifr 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
Thank you for the proposal @tienifr, all yours! |
PR ready for review #33484. |
This issue has not been updated in over 15 days. @grgia, @bfitzexpensify, @aimane-chnaif, @tienifr eroding to Monthly issue. P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do! |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.34-1 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 2024-02-07. 🎊 For reference, here are some details about the assignees on this 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:
|
This minor bug came from theme-switching live. |
Agreed @aimane-chnaif. Contracts paid out, we're all done here - thanks everyone! |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 1.4.14-0
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
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:
Precondition: App is setup on Light theme
Expected Result:
Selected Merchant should be visible in input field
Actual Result:
Selected Merchant is not visible in input field. Letters are light just like the theme
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6320244_1703017103807.Recording__1596.1.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: