-
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
Remove the blink_input_opacity_to_prevent_scrolling_when_focus hack #18266
Conversation
...as it shouldn't be needed anymore.
@puneetlath @s77rt One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
As I mentioned before, tomorrow evening I'm going OOO / offline for a few days. So it would be awesome if we manage to merge this in around 24 hours, assuming nothing unexpected happens. I'm finishing the checklist (especially the videos), but everything is ready for review/testing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. @s77rt if you're able to go through the checklist today, and everything seems good to you, then I think we should be able to get it merged.
Also, there was a mistake in the list of pages using |
web/index.html
Outdated
<!-- | ||
Note: interactive-widget=resizes-content is ignored on iOS Safari. Working around that has proven to be | ||
problematic and causing bugs. At the moment of writing, we don't really need to work around this. If we attempt | ||
to do that again, we should do that carefully and minding the potential side effects. | ||
|
||
Some context can be found in https://github.com/Expensify/App/issues/16082 | ||
--> | ||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, interactive-widget=resizes-content"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we even need interactive-widget=resizes-content
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's respected on iOS Chrome, if I recall correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but do we even need it? This was also added to prevent auto scroll, and auto scroll is not our enemy 😅 so maybe we should remove that code too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The interactive-widget
property doesn't affect auto-scroll. This affects viewport behavior when the virtual keyboard is shown.
https://developer.chrome.com/blog/viewport-resize-behavior/
resizes-content
is what we want. It's supported mainly (or only?) by Chrome, but it's present in CSS Viewport Module Level 1 Editor’s Draft, so one day maybe even iOS Safari will support it.
So it's unrelated and there's no need to change it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please remove the comment then, I don't think we need explain anything here, it may be just confusing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We're removing a hack that was a workaround for the fact that Safari doesn't support that property. So that's why I left a comment. But I'll remove it if you think it's confusing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I dunno, I think the comment is fine. This is a file we don't touch much, so I don't mind leaving it there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@s77rt Done
@cubuspl42 Please make the tests clearer, just mention exactly what should be done (in steps) and remove the no regression tests part. |
@s77rt I removed the regression tests (as you asked) and clarified the test which verifies that the flickering is gone. Please let me know if that's what you meant. |
@cubuspl42 Please make sure the tests are always in a numbered list. Please update to: Tests(Web only)
The screenshots/videos are too confusing. Please remove them and just keep the Web one. |
@s77rt Done |
Reviewer Checklist
Screenshots/VideosWebweb.mp4Mobile Web - ChromeMobile Web - SafariDesktopiOSAndroid |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! 🚀
cc @puneetlath
Congrats, that’s your 5th PR merged! 🎉 Do you know about the ContributorPlus role? It’s an opportunity to earn more in the Expensify Open Source community. Keep up the great work - thanks! |
Thank you @puneetlath & @cubuspl42! That was quick! 🚀 |
🚀 Deployed to staging by https://github.com/puneetlath in version: 1.3.9-12 🚀
|
🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.12-0 🚀
|
...as it shouldn't be needed anymore.
Details
The hack is removed, as after a detailed investigation we found out that it's not really necessary anymore, while it caused harm (flickering).
Fixed Issues
$ #16082
PROPOSAL: #16082 (comment)
Tests
(Web only)
Offline tests
QA Steps
See Tests
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Web
mac-chrome-date-picker.mp4
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android