fix: navigate to Concierge chat after login from Concierge deep link on web#96387
fix: navigate to Concierge chat after login from Concierge deep link on web#96387x-dev90 wants to merge 4 commits into
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f870138760
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| @@ -0,0 +1,17 @@ | |||
| let hasPendingConciergeDeepLink = false; | |||
There was a problem hiding this comment.
Persist the Concierge intent across page reloads
On web, this module-scoped flag is reset whenever the document reloads. If a user opens /concierge while logged out and refreshes during sign-in or onboarding, the browser is already displaying a sign-in/onboarding route, so openReportFromDeepLink() cannot reconstruct the original Concierge intent; navigateAfterOnboarding() then falls back to Home. Store the tab-scoped intent in persistent state such as sessionStorage or Onyx and clear it through the existing consume/clear paths.
Useful? React with 👍 / 👎.
Explanation of Change
Preserve the
/conciergedeep-link intent when a logged-out user signs up with a new account, then consume that intent after onboarding before falling back to Home.This keeps the existing pre-onboarding deep-link guard intact, avoids reopening stale non-Concierge deep links, and routes the user to the Concierge report when available. If the Concierge report ID is not ready yet, it navigates to
ROUTES.CONCIERGEsoConciergePagecan resolve the chat.Fixed Issues
$ #95365
PROPOSAL: #95365 (comment)
Tests
Case 1: Original Flow
/conciergedirectly in the browserAdditional Cases
/conciergedirectly in the browser/conciergedirectly in the browser////concierge//concierge?test=1/concierge#testOffline tests
Same as tests.
QA Steps
Same as tests.
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
Screen_Recording_20260717_182305_Chrome.mp4
iOS: Native
iOS: mWeb Safari
Screen.Recording.2026-07-17.at.6.33.33.PM.mp4
MacOS: Chrome / Safari
Screen.Recording.2026-07-17.at.5.56.41.PM.mp4