-
Notifications
You must be signed in to change notification settings - Fork 3.2k
[Due for payment 2025-03-27] [$250] Profile - RBR appears in Profile settings after removing second contact method #57870
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
Comments
Triggered auto assignment to @NicMendonca ( |
Job added to Upwork: https://www.upwork.com/jobs/~021897762842116763600 |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @fedirjh ( |
🚨 Edited by proposal-police: This proposal was edited at 2025-03-08 12:09:33 UTC. ProposalPlease re-state the problem that we are trying to solve in this issue.Profile - RBR appears in Profile settings after removing second contact method What is the root cause of that problem?We remove Lines 269 to 270 in add7b6e
After remove contactMethod , we back to the SETTINGS_CONTACT_METHODS page. However, since Onyx updates and navigation asynchronously, As a result, we remain in ContactMethodDetailsPage for a short time, then a useEffect triggers resetContactMethodValidateCodeSentState .App/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx Lines 169 to 174 in add7b6e
This causes the ValidateCodeActionForm to be displayed abit.App/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx Lines 165 to 167 in add7b6e
which then requests the REQUEST_CONTACT_METHOD_VALIDATE_CODE command. Since we just deleted that second contact method, this request fails, leading to an RBR appearing.
![]() ![]() What changes do you think we should make in order to solve the problem?We should not reset the contact method if there is a previously pending delete action App/src/pages/settings/Profile/Contacts/ContactMethodDetailsPage.tsx Lines 169 to 174 in add7b6e
const prevLoginData = usePrevious(loginData);
....
useEffect(() => {
if (loginData?.validatedDate) {
return;
}
if(prevLoginData?.pendingFields?.deletedLogin){ // new
return;
}
resetContactMethodValidateCodeSentState(contactMethod);
}, [contactMethod, loginData?.validatedDate, prevLoginData?.pendingFields?.deletedLogin]); What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?N/A, this is a navigation issue. However, we could simulate Onyx data and assert that the resetContactMethodValidateCodeSentState is not called after deleting a contact. What alternative solutions did you explore? (Optional)
|
|
@fedirjh Uh oh! This issue is overdue by 2 days. Don't forget to update your issues! |
@linhvovan29546 Your proposal makes sense to me. I think we should just early return when we got a delete pending field. 🎀 👀 🎀 C+ reviewed |
Triggered auto assignment to @francoisl, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 @linhvovan29546 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
PR is ready for review! |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.1.15-9 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-03-27. 🎊 For reference, here are some details about the assignees on this issue:
|
@fedirjh @NicMendonca @fedirjh 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 summaryC+: @fedirjh - $250 via NewDot Manual Requests |
@fedirjh just a bump on the checklist before we can close this out! |
@fedirjh Whoops! This issue is 2 days overdue. Let's get this updated quick! |
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:
N/A we have both regression test and we have implemented automated test Regression Test Proposal Template
Regression Test ProposalPrecondition:Test:Do we agree 👍 or 👎 |
Thanks! reposting payment summary - #57870 (comment) |
$250 approved for @fedirjh |
Uh oh!
There was an error while loading. Please reload this page.
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.1.9-2
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/cases/view/2654630
Email or phone of affected tester (no customers): N/A
Issue reported by: Applause Internal Team
Device used: iPhone 15 iOS 18.1.1 Safari, MacBook Air Sonoma 14.1
App Component: User Settings
Action Performed:
Preconditions: gmail account added a second contact method (email)
Expected Result:
Secondary contact method is removed from the list without any error
Actual Result:
Red dot appears in Profile after removing second contact method. The RBR is removed after clearing cache.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug6740286_1739339201560.ScreenRecording_02-11-2025_21-33-18_1.mp4
Bug6740286_1739339201560.Recording__421.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @fedirjhThe text was updated successfully, but these errors were encountered: