Revert "Sage Intacct BT dynamic routes, part 1" (#87554) — fixes #88434#88490
Conversation
|
@bernhardoj Please 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] |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f74be48d1c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| '/workspaces/*/connections/netsuite/export/invoice-item-preference/invoice-item/select': '/workspaces/$1/connections/netsuite/export/invoice-item-preference/select/invoice-item/select', | ||
| '/workspaces/*/accounting/sage-intacct/export/preferred-exporter': '/workspaces/$1/accounting/sage-intacct/export/sage-preferred-exporter', | ||
| '/workspaces/*/accounting/sage-intacct/export/reimbursable/destination': '/workspaces/$1/accounting/sage-intacct/export/reimbursable-expenses', | ||
| '/workspaces/*/connections/quickbooks-online/advanced/autosync/accounting-method': |
There was a problem hiding this comment.
Restore redirects for reverted Sage Intacct URLs
Removing the Sage Intacct entries from oldRoutes drops compatibility for URLs that were generated by the prior release (.../export/sage-preferred-exporter and .../export/reimbursable-expenses). After this revert, those paths are no longer present in either ROUTES or DYNAMIC_ROUTES, so reopening a bookmarked tab or refreshing on one of those URLs will route to Not Found instead of the restored screens. Keep legacy redirects in OldRoutes from the removed paths to the current routes (.../preferred-exporter and .../reimbursable/destination).
Useful? React with 👍 / 👎.
|
🚧 @neil-marcellini has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
…752440269-1 🍒 Cherry pick PR #88490 to staging 🍒
|
🚀 Cherry-picked to staging by https://github.com/neil-marcellini in version: 9.3.61-2 🚀
Bundle Size Analysis (Sentry): |
|
No help site changes are required for this PR. This is a pure code-level revert of internal navigation routing for Sage Intacct export pages. It doesn't change any user-facing features, UI labels, settings, or functionality — it only reverts how dynamic route paths were registered internally to fix a navigation bug. The existing Sage Intacct help articles remain accurate. |
|
🚀 Deployed to production by https://github.com/marcaaron in version: 9.3.61-4 🚀
|
|
🚀 Cherry-picked to staging by https://github.com/neil-marcellini in version: 9.3.62-0 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Cherry-picked to staging by https://github.com/neil-marcellini in version: 9.3.64-0 🚀
Bundle Size Analysis (Sentry): |
|
No help site changes are required for this PR. This is a pure revert of internal navigation routing code (dynamic route paths and screen names for Sage Intacct export pages). It fixes a navigation bug but does not change any user-facing features, UI labels, settings, or functionality documented in |
|
🚀 Deployed to production by https://github.com/arosiclair in version: 9.3.64-31 🚀
|
(Neil's AI agent)
Explanation of Change
Revert of #87554, identified via
git bisect --first-parentas the first-bad commit that causes issue #88434 ("Split: 'Not here' page displayed when selecting split dates") on staging and main.Root cause (sneaky cross-cutting bug):
#87554 added three new entries to
DYNAMIC_ROUTES(insrc/ROUTES.ts) with overly-genericpathvalues:src/libs/Navigation/helpers/dynamicRoutesUtils/findMatchingDynamicSuffix.tsmatches dynamic suffixes against a globaldynamicRoutePathsSet, without consultingentryScreens. So'date'is now globally registered as a dynamic suffix, and any URL whose tail segment isdategets matched.The split-expense Date tab URL is
/create/split-expense/overview/<reportID>/<transactionID>/<draftID>/date. WhenSplitExpenseCreateDateRagePagecallsNavigation.goBack(backTo), the matcher seesdateat the end and treats the URL as a Sage Intacct Export Date dynamic route, misrouting back-navigation.SplitExpensePagethen falls through to itsFullPageNotFoundView.The same landmine exists for
reimbursableandnonreimbursable— no known current collisions, but they're footguns.Proper forward fix (for a follow-up PR by the original author): either make
findMatchingDynamicSuffixscope toentryScreens, or enforce specific, globally-uniquepathvalues inDYNAMIC_ROUTES(e.g.sage-intacct-export-date). This revert is the short-term unblock.Conflict: one merge conflict on
src/libs/Navigation/linkingConfig/OldRoutes.ts; resolved by keeping a NetSuite redirect from a later unrelated PR and dropping only the two Sage Intacct redirects #87554 added.Fixed Issues
$ #88434
Tests
2026-04-21_16-19-09.mp4
Offline tests
N/A — pure revert.
QA Steps
Same as Tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
N/A see above