-
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-14] [$500] Long pressing "Go to Expensify Classic" option in Settings Crashes the App #35310
Comments
Triggered auto assignment to @sonialiap ( |
Job added to Upwork: https://www.upwork.com/jobs/~017b2c107d082607ce |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav ( |
ProposalProblem StatementUsers are experiencing app crashes when performing a long press on the "Go to Expensify Classic" option in Settings. Root CauseWe are not using App/src/pages/settings/InitialSettingsPage.js Line 274 in c5ca9a8
Proposed SolutionTo address the problem, we should handle the link properly similar to what we have done for MenuItemList: App/src/pages/settings/InitialSettingsPage.js Line 274 in c5ca9a8
to:
App/src/components/MenuItemList.tsx Lines 34 to 40 in c5ca9a8
// src/pages/settings/InitialSettingsPage.js
const onSecondaryInteraction = (link, event) => {
if (typeof link === 'function') {
console.debug('InitialSettingsPage: secondaryInteraction: link is a function, executing it');
link().then((url) => ReportActionContextMenu.showContextMenu(CONST.CONTEXT_MENU_TYPES.LINK, event, url, popoverAnchor.current));
} else if (link) {
ReportActionContextMenu.showContextMenu(CONST.CONTEXT_MENU_TYPES.LINK, event, link, popoverAnchor.current);
}
};
<MenuItem
// rest of props
onSecondaryInteraction={item.link !== undefined ? (e) => onSecondaryInteraction(item.link, e) : undefined}
/> |
ProposalPlease re-state the problem that we are trying to solve in this issue.Secondary action for button "Go to Expensify Classic" in Settings Crashes the App What is the root cause of that problem?We are using buildOldDotURL method as secondary action, but this return an promise-string and we are expecting just a string, this cause that our ReportActionContextMenu.showContextMenu rise the error. What changes do you think we should make in order to solve the problem?We should make the same as our main action and call the openOldDotLink method. Something like:
Result: long.pressing.crashes.the.app.test.mp4 |
@ishpaul777's proposal looks good. 🎀 👀 🎀 C+ reviewed. |
Triggered auto assignment to @nkuoch, see https://stackoverflow.com/c/expensify/questions/7972 for more details. |
📣 @ishpaul777 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app! Offer link |
Not overdue, contributer has just been assigned 🎉 |
PR is open for review. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.37-7 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-14. 🎊 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:
|
I tried finding the root PR, the best one where we refactored the links in I don't think we need a regression test for this one. |
@mananjadhav $500 - please request via ND |
$500 approved for @mananjadhav based on summary above. |
could be because i reported the bug also, maybe there is still bug report bounty automation in place for these messages? |
sorry missed this earlier, will look into this |
This PR https://github.com/Expensify/App/pull/32947/files added a new menu item in settings page and this one is the offending PR #33863 to be specific |
@mananjadhav @ishpaul777 could you please complete the checklist :) |
|
not overdue, we can close this now |
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: 1.4.32-2
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: @ishpaul777
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1706307323470669
Action Performed:
Go to expensify classic
Expected Result:
App should not crash
Actual Result:
App crashed
Workaround:
unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
RPReplay_Final1706302579.MP4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: