You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2025-06-09] [$125] Contact methods - The modal with the remove option appears with an empty space at the top #61449
Version Number: 9.1.40-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: n/a Email or phone of affected tester (no customers): n/a Issue reported by: Applause Internal Team Device used: iPhone 13 iOS 18.4.1/Safari App Component: User Settings
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
None
What alternative solutions did you explore? (Optional)
NA
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.
🚨 Edited by proposal-police: This proposal was edited at 2025-05-19 22:15:05 UTC.
Proposal
Please re-state the problem that we are trying to solve in this issue.
In contact method page, when we open the 3-dots menu while a keyboard is shown, there are lot of empty spaces above the delete option.
What is the root cause of that problem?
The empty space is not the popover menu container height. The empty space is caused by the modal backdrop doesn't cover all the screen height. The height is taken from either the deviceHeight prop or the state.
So, when a keyboard is shown, the height is reduced. And when the keyboard hides, the height returns to the initial height, but the resize doesn't happen immediately, which is also why the button doesn't move down immediately. Even if we remove the props, the deviceHeight state gets the value from the window height too.
What changes do you think we should make in order to solve the problem?
We can set the backdrop height to the screen height instead of window height.
changed the title [-]Contact methods - The modal with the remove option appears with an empty space at the top[/-][+][$250] Contact methods - The modal with the remove option appears with an empty space at the top[/+]on May 13, 2025
@ikevin127@johncschuster / @sonialiap@ikevin127 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]
1a. Result of the original design (eg. a case wasn't considered)
1b. Mistake during implementation
1c. Backend bug
1z. Other:
Where bug was reported:
2a. Reported on production (eg. bug slipped through the normal regression and PR testing process on staging)
2b. Reported on staging (eg. found during regression or PR testing)
2d. Reported on a PR
2z. Other:
Who reported the bug:
3a. Expensify user
3b. Expensify employee
3c. Contributor
3d. QA
3z. Other:
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion:
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:
Regression Test Proposal
Open account settings > Profile.
Press "Contact Method".
Press "New Contact method".
Enter an email with a correct format (no access required).
Press the button "Add".
Press the added contact method (make sure the input is focused and keyboard is shown, if not, press the input).
Press the three dot icon in the top right corner.
Verify the modal doesn't show extra empty space on top when opening.
Activity
melvin-bot commentedon May 6, 2025
Triggered auto assignment to @sonialiap (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.nkdengineer commentedon May 6, 2025
Proposal
Please re-state the problem that we are trying to solve in this issue.
The modal with the remove option appears with an empty space at the top, which disappears after a while.
What is the root cause of that problem?
We are using
themeStyles.threeDotsPopoverOffset(windowWidth)to getthreeDotsAnchorPositionApp/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx
Line 316 in 0601503
What changes do you think we should make in order to solve the problem?
We should use
useThreeDotsAnchorPositionto consistent with other three dots in header with back buttonApp/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx
Line 316 in 0601503
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
None
What alternative solutions did you explore? (Optional)
NA
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.
bernhardoj commentedon May 6, 2025
🚨 Edited by proposal-police: This proposal was edited at 2025-05-19 22:15:05 UTC.
Proposal
Please re-state the problem that we are trying to solve in this issue.
In contact method page, when we open the 3-dots menu while a keyboard is shown, there are lot of empty spaces above the delete option.
What is the root cause of that problem?
The empty space is not the popover menu container height. The empty space is caused by the modal backdrop doesn't cover all the screen height. The height is taken from either the deviceHeight prop or the state.
App/src/components/Modal/BottomDockedModal/index.tsx
Lines 133 to 136 in 9f726e1
We set the
deviceHeightto the window height.App/src/components/Modal/BottomDockedModal/index.tsx
Line 43 in 9f726e1
So, when a keyboard is shown, the height is reduced. And when the keyboard hides, the height returns to the initial height, but the resize doesn't happen immediately, which is also why the button doesn't move down immediately. Even if we remove the props, the deviceHeight state gets the value from the window height too.
What changes do you think we should make in order to solve the problem?
We can set the backdrop height to the screen height instead of window height.
App/src/components/Modal/BottomDockedModal/index.tsx
Lines 133 to 136 in 9f726e1
We can then remove the
deviceHeightstate and prop. We can do the same fordeviceWidth, so we can removehandleDimensionsUpdate.App/src/components/Modal/BottomDockedModal/index.tsx
Lines 49 to 61 in 9f726e1
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
N/A
melvin-bot commentedon May 9, 2025
@sonialiap Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
melvin-bot commentedon May 13, 2025
@sonialiap 6 days overdue. This is scarier than being forced to listen to Vogon poetry!
[-]Contact methods - The modal with the remove option appears with an empty space at the top[/-][+][$250] Contact methods - The modal with the remove option appears with an empty space at the top[/+]melvin-bot commentedon May 13, 2025
Job added to Upwork: https://www.upwork.com/jobs/~021922234123383552798
melvin-bot commentedon May 13, 2025
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 (
External)46 remaining items
melvin-bot commentedon Jun 2, 2025
@ikevin127 @johncschuster / @sonialiap @ikevin127 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]
johncschuster commentedon Jun 3, 2025
BugZero Checklist:
Bug classification
Source of bug:
Where bug was reported:
Who reported the bug:
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion:
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
Regression Test Proposal Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:
Regression Test Proposal
Precondition:
Test:
Do we agree 👍 or 👎
ikevin127 commentedon Jun 6, 2025
BugZero Checklist:
Bug classification
Source of bug:
Where bug was reported:
Who reported the bug:
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: https://github.com/Expensify/App/pull/55157/files#r2131094904.
[Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A
[Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:
Regression Test Proposal
Do we agree 👍 or 👎.
ikevin127 commentedon Jun 9, 2025
@johncschuster Please discard this, I will be requesting payment through NewDot Manual Requests as well ✅
A payment summary would help though 🙌
johncschuster commentedon Jun 9, 2025
Payment Summary (to be issued after regression window has passed)
Contributor: @bernhardoj owed $125 via NewDot
Contributor+: @ikevin127 owed $125 via NewDot
johncschuster commentedon Jun 9, 2025
Please request payment via NewDot!
bernhardoj commentedon Jun 9, 2025
Requested in ND.
JmillsExpensify commentedon Jun 9, 2025
$125 approved for @ikevin127
JmillsExpensify commentedon Jun 9, 2025
$125 approved for @bernhardoj