From 2832e89c00a3dbe947651d46bf08b7f703ab84c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Jasikowski=20=28via=20MelvinBot=29?= Date: Mon, 27 Apr 2026 19:11:08 +0000 Subject: [PATCH 1/5] Add Settings_Profile to exit survey entryScreens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The "Switch to Expensify Classic" button on InitialSettingsPage navigates to EXIT_SURVEY_REASON using createDynamicRoute, which builds the URL relative to the current central pane. On wide screens the default central pane is Settings_Profile, but that screen was not in entryScreens, causing getStateFromPath to reject the route and show a 404. Add SCREENS.SETTINGS.PROFILE.ROOT to both EXIT_SURVEY_REASON and EXIT_SURVEY_CONFIRM entryScreens so the exit survey is reachable from the default settings central pane. Co-authored-by: mjasikowski Co-authored-by: Michał Jasikowski --- src/ROUTES.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 5452f3973804..b16133c287ad 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -345,11 +345,11 @@ const DYNAMIC_ROUTES = { }, EXIT_SURVEY_REASON: { path: 'exit-survey/reason', - entryScreens: [SCREENS.SETTINGS.TROUBLESHOOT], + entryScreens: [SCREENS.SETTINGS.TROUBLESHOOT, SCREENS.SETTINGS.PROFILE.ROOT], }, EXIT_SURVEY_CONFIRM: { path: 'exit-survey/confirm', - entryScreens: [SCREENS.SETTINGS.DYNAMIC_EXIT_SURVEY_REASON, SCREENS.SETTINGS.TROUBLESHOOT], + entryScreens: [SCREENS.SETTINGS.DYNAMIC_EXIT_SURVEY_REASON, SCREENS.SETTINGS.TROUBLESHOOT, SCREENS.SETTINGS.PROFILE.ROOT], }, REPORT_CHANGE_APPROVER: { path: 'change-approver', From c0c12a0943c184ed283cf262556f623a06b1c084 Mon Sep 17 00:00:00 2001 From: Youssef Lourayad Date: Mon, 27 Apr 2026 22:00:26 +0000 Subject: [PATCH 2/5] Apply suggestions from code review Co-authored-by: Youssef Lourayad --- src/ROUTES.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ROUTES.ts b/src/ROUTES.ts index b16133c287ad..c28702707d84 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -345,11 +345,11 @@ const DYNAMIC_ROUTES = { }, EXIT_SURVEY_REASON: { path: 'exit-survey/reason', - entryScreens: [SCREENS.SETTINGS.TROUBLESHOOT, SCREENS.SETTINGS.PROFILE.ROOT], + entryScreens: ['*'], }, EXIT_SURVEY_CONFIRM: { path: 'exit-survey/confirm', - entryScreens: [SCREENS.SETTINGS.DYNAMIC_EXIT_SURVEY_REASON, SCREENS.SETTINGS.TROUBLESHOOT, SCREENS.SETTINGS.PROFILE.ROOT], + entryScreens: ['*'], }, REPORT_CHANGE_APPROVER: { path: 'change-approver', From 615390af2f8859029f61e078d357f5ae83fbafa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Jasikowski=20=28via=20MelvinBot=29?= Date: Mon, 27 Apr 2026 22:19:45 +0000 Subject: [PATCH 3/5] Fix: pass missing policyTagList to changeTransactionsReport in IOURequestStepUpgrade MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Jasikowski --- src/pages/iou/request/step/IOURequestStepUpgrade.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx index 0f7782d7fdac..44d75ee92adc 100644 --- a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx +++ b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx @@ -83,6 +83,7 @@ function IOURequestStepUpgrade({ const [allPolicyCategories] = useOnyx(ONYXKEYS.COLLECTION.POLICY_CATEGORIES); const [allReportNextSteps] = useOnyx(ONYXKEYS.COLLECTION.NEXT_STEP); const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY); + const [allPolicyTags] = useOnyx(ONYXKEYS.COLLECTION.POLICY_TAGS); const [session] = useOnyx(ONYXKEYS.SESSION); // Build transactions map from selectedTransactions (search results) instead of Onyx TRANSACTION collection @@ -143,6 +144,7 @@ function IOURequestStepUpgrade({ policy: newPolicy, reportNextStep, policyCategories: allPolicyCategories?.[`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`], + policyTagList: allPolicyTags?.[`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`], allTransactions, }); From c83f18d2f993c3aacc5c1193bde2ec0caaa1b243 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Jasikowski=20=28via=20MelvinBot=29?= Date: Mon, 27 Apr 2026 22:20:34 +0000 Subject: [PATCH 4/5] Fix: remove duplicate policyTagList hook and property after merge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Michał Jasikowski --- src/pages/iou/request/step/IOURequestStepUpgrade.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx index 880c0da24d52..49c090d9fbd7 100644 --- a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx +++ b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx @@ -85,7 +85,6 @@ function IOURequestStepUpgrade({ const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY); const [allPolicyTags] = useOnyx(ONYXKEYS.COLLECTION.POLICY_TAGS); const [session] = useOnyx(ONYXKEYS.SESSION); - const [allPolicyTags] = useOnyx(ONYXKEYS.COLLECTION.POLICY_TAGS); // Build transactions map from selectedTransactions (search results) instead of Onyx TRANSACTION collection // This ensures that transactions selected from search are properly included in the map passed to changeTransactionsReport @@ -146,7 +145,6 @@ function IOURequestStepUpgrade({ policy: newPolicy, reportNextStep, policyCategories: allPolicyCategories?.[`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`], - policyTagList: allPolicyTags?.[`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`], allTransactions, policyTagList, }); From 9d2bdd656b0ea9ff9b43c41aa12ebdbfda122bff Mon Sep 17 00:00:00 2001 From: Youssef Lourayad Date: Mon, 27 Apr 2026 22:27:17 +0000 Subject: [PATCH 5/5] Cleanup --- src/pages/iou/request/step/IOURequestStepUpgrade.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx index 49c090d9fbd7..0c088346daf1 100644 --- a/src/pages/iou/request/step/IOURequestStepUpgrade.tsx +++ b/src/pages/iou/request/step/IOURequestStepUpgrade.tsx @@ -83,8 +83,8 @@ function IOURequestStepUpgrade({ const [allPolicyCategories] = useOnyx(ONYXKEYS.COLLECTION.POLICY_CATEGORIES); const [allReportNextSteps] = useOnyx(ONYXKEYS.COLLECTION.NEXT_STEP); const [allPolicies] = useOnyx(ONYXKEYS.COLLECTION.POLICY); - const [allPolicyTags] = useOnyx(ONYXKEYS.COLLECTION.POLICY_TAGS); const [session] = useOnyx(ONYXKEYS.SESSION); + const [allPolicyTags] = useOnyx(ONYXKEYS.COLLECTION.POLICY_TAGS); // Build transactions map from selectedTransactions (search results) instead of Onyx TRANSACTION collection // This ensures that transactions selected from search are properly included in the map passed to changeTransactionsReport