-
Notifications
You must be signed in to change notification settings - Fork 3k
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 2025-01-07] [$250] Android - Expense - Submit button jumps when proceeding to confirmation page #53182
Comments
Triggered auto assignment to @techievivek ( |
Triggered auto assignment to @sonialiap ( |
💬 A slack conversation has been started in #expensify-open-source |
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
|
Not a blocker, demoting it and sending to to external |
Job added to Upwork: https://www.upwork.com/jobs/~021861729998144839111 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @suneox ( |
cc @kirillzyusko @c3024 This is something to look into/ follow up on later |
Edited by proposal-police: This proposal was edited at 2024-11-27 15:03:55 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Submit button jumps when proceeding to confirmation page What is the root cause of that problem?We use KeyboardAvoidingView in the ScreenWrapper to adjust its height, position, or bottom padding based on the keyboard height, ensuring it remains visible while the virtual keyboard is displayed.
App/src/components/ScreenWrapper.tsx Line 278 in aa31378
When we navigate to That's why we don't encounter this issue when the keyboard is not open. What changes do you think we should make in order to solve the problem?To resolve this issue, dismissing the keyboard before navigation ensures that KeyboardAvoidingView works correctly // src/pages/iou/request/step/IOURequestStepParticipants.tsx#L110
const goToNextStep = useCallback(() => {
+ Keyboard.dismiss();
...
} Or // src/pages/iou/request/step/IOURequestStepParticipants.tsx#L110
const goToNextStep = useCallback(() => {
...
if (isCategorizing) {
Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(action, iouType, transactionID, selectedReportID.current || reportID, iouConfirmationPageRoute));
} else {
+ KeyboardUtils.dismiss().then(() => {
Navigation.navigate(iouConfirmationPageRoute);
+ });
} Or if (isCategorizing) {
+ KeyboardUtils.dismiss().then(() => {
Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(action, iouType, transactionID, selectedReportID.current || reportID, iouConfirmationPageRoute));
+ });
} else {
+ KeyboardUtils.dismiss().then(() => {
Navigation.navigate(iouConfirmationPageRoute);
+ });
} POCScreen.Recording.2024-11-27.at.21.51.38.movWhat alternative solutions did you explore? (Optional)We use shouldEnableKeyboardAvoidingView props of ScreenWrapper to disable KeyboardAvoidingView
//src/pages/iou/request/step/IOURequestStepConfirmation.tsx#L604
<ScreenWrapper
includeSafeAreaPaddingBottom={false}
shouldEnableMaxHeight={DeviceCapabilities.canUseTouchScreen()}
testID={IOURequestStepConfirmation.displayName}
+ shouldEnableKeyboardAvoidingView={false}
> |
Proposal updated
|
@huult Your main solution doesn’t seem to work consistently Screen.Recording.2024-12-01.at.00.16.47.mp4Could you please provide more details about the RCA for your alternative solution? |
Edited by proposal-police: This proposal was edited at 2024-12-02 13:19:46 UTC. ProposalPlease re-state the problem that we are trying to solve in this issueSubmit button jumps when proceeding to confirmation page. What is the root cause of that problem?The issue seems to be caused by the recent implementation of android specific
from this PR: which make it such that The same PR brought about changes related to how the keyboard / layout interactions behave and are being handled / animated / transitioned on Android: Native, which I think is also related to causing our glitch / delay when transitioning from one page to another where the keyboard is not needed and we have a button which is supposed to be fixed at the bottom. What changes do you think we should make in order to solve the problem?Note I also tried to play around with props like TLDR: Prevent displaying the To do this we need to apply some changes to the
For this proposal's sake I'm going with the first option (if selected we can further discuss the best way):
function FixedFooter({style, children, onlyShowWhenKeyboardIsHidden = false}: FixedFooterProps) {
const styles = useThemeStyles();
const isKeyboardVisible = Keyboard.isVisible();
const shouldHide = onlyShowWhenKeyboardIsHidden ? isKeyboardVisible : false;
if (!children || shouldHide) {
return null;
}
return <View style={[styles.ph5, styles.pb5, styles.flexShrink0, style]}>{children}</View>;
}
Alternative solutionWe should use A similar fix was already implemented in our Result video (before / after)Android: Native (OnePlus 7T - Android 14 - Real device)
|
I'm OOO Dec 16-20, adding a leave buddy next steps:
|
@suneox, @sonialiap, @huult, @techievivek, @MitchExpensify Eep! 4 days overdue now. Issues have feelings too... |
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results. If a regression has occurred and you are the assigned CM follow the instructions here. If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.79-5 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 2025-01-07. 🎊 For reference, here are some details about the assignees on this issue:
|
@suneox @sonialiap / @MitchExpensify @suneox The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button] |
Payment summary:
|
BugZero Checklist:
Bug classificationSource of bug:
Where bug was reported:
Who reported the bug:
Regression Test Proposal Template
Regression Test ProposalPrecondition:Test:Do we agree 👍 or 👎 |
BugZero Checklist:
Bug classificationSource of bug:
Where bug was reported:
Who reported the bug:
|
I’ve completed the checklist, and the PR for this issue has introduced this regression |
@MitchExpensify Looks like there was a regression from this PR so that summary is wrong #53182 (comment) cc: @sonialiap |
@suneox, @sonialiap, @huult, @techievivek, @MitchExpensify Huh... This is 4 days overdue. Who can take care of this? |
@sonialiap I’ve quickly created a pull request to fix the regression test without needing to pick or rent out anything else. Could you please consider issuing a refund? Thank you. |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 9.0.67-1
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y
Email or phone of affected tester (no customers): [email protected]
Issue reported by: Applause Internal Team
Action Performed:
Expected Result:
Submit button will not jump when proceeding to confirmation page.
Actual Result:
Submit button jumps when proceeding to confirmation page.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug6677445_1732656649279.Screen_Recording_20241127_052722.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @sonialiap / @MitchExpensifyThe text was updated successfully, but these errors were encountered: