Repository navigation
[Search Router] Surface Book Travel in Create suggestions - #99516
carlosmiceli merged 6 commits into
Conversation
|
@marufsharifi 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] |
|
@nabi-ebrahimi, could you please check the above ai feedback. thanks. |
Done, thanks! |
marufsharifi
left a comment
There was a problem hiding this comment.
Looks good, just tow minor suggestions.
|
@marufsharifi I addressed all the comments can you please review again, Thanks. |
|
@marufsharifi thanks for the detailed review. All applicable comments have been addressed, and I added the missing focused coverage. The remaining non-blocking suggestions were clarified with the current scope and existing Travel behavior in mind. Could you please take another look? |
|
@marufsharifi kindly bump, thanks. |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-08-31.at.10.52.31.PM.movAndroid: mWeb ChromeScreen.Recording.2026-08-31.at.11.53.42.PM.moviOS: HybridAppScreen.Recording.2026-08-31.at.11.21.16.PM.moviOS: mWeb SafariScreen.Recording.2026-08-31.at.11.27.35.PM.movMacOS: Chrome / SafariScreen.Recording.2026-08-31.at.5.12.21.PM.movScreen.Recording.2026-08-31.at.5.13.53.PM.movScreen.Recording.2026-08-31.at.5.15.03.PM.mov |
trjExpensify
left a comment
There was a problem hiding this comment.
Core PR for the navigational search rollout. 👍
|
🚧 carlosmiceli has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.4.66-0 🚀
|
|
Yes — help site changes are required. Draft PR: #100107 Before this PR, the only documented way to reach Book travel was the ➕ Create button. Adding it to the Search Router's Create suggestions creates a second entry point that no help article mentions. What changed in the docs PR (7 articles)
I also corrected the "If you don't see Book travel" caveat in those 6 articles. It said Travel must be enabled on "the workspace"; both the FAB item and your new Search item gate on the active workspace ( How labels were verified, and two things you should checkLabel verification. I tried to verify against the live UI on web, but the test session went blank (0 DOM nodes) before it could open Search, and a second attempt could not recover it. So labels come from Intentionally out of scope. About 24 other Could not assign the PR. @nabi-ebrahimi, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to staging by https://github.com/carlosmiceli in version: 9.4.68-0 🚀
|
|
Yes — help site changes are required. Draft PR: #100223 This PR adds a second way to start Book travel, but every travel article on the help site documents only one entry point: the ➕ Create button. It also introduces a rule that was never written down — Book travel only appears when Expensify Travel is enabled on the active workspace. What the docs PR changes (7 files,
Scope note: the same boilerplate appears in ~25 other travel articles (travel policy, company setup, managing trips, analytics). I limited the PR to the booking articles to keep it reviewable — tell me if you want the sentence rolled out everywhere. How the copy was verifiedWritten against Labels checked against dev NewDot on web: the entry point's accessible name is exactly Search (magnifying glass icon), and the action rows read Create expense, Create report, Track distance, Start chat, New workspace. Book travel could not be observed directly — the test account has no Travel-enabled workspace, so it appears in neither Search nor the ➕ Create menu, which is exactly what the eligibility rule predicts. Its label comes from One thing worth a second look: on The draft PR is labelled @nabi-ebrahimi, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to production by https://github.com/francoisl in version: 9.4.68-1 🚀
Bundle Size Analysis (Sentry): |
Explanation of Change
Adds
Book travelto the Search Router’s existing Create suggestions.The action follows the same eligibility and navigation rules as the existing FAB travel item:
Book travellabel and Suitcase icon.This reuses the existing Travel eligibility utilities and does not introduce new routes, translations, ranking rules, or navigation item types.
Fixed Issues
$ #92752
PROPOSAL: #92752 (comment)
Book Travel search matching
book travel.BOOK TRAVEL,go to book travel, andgo to book travel.Book travelaction appears for every query.Go toprefix.Active workspace eligibility
book travel.Book travelis not shown.Book travelis shown.RHP replacement
Book travel.Offline tests
book travel.QA Steps
Same as the Tests and Offline tests above.
// 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
Screen.Recording.2026-08-26.at.2.29.14.PM.mov
Screen.Recording.2026-08-26.at.2.31.26.PM.mov
Android: mWeb Chrome
Screen_Recording_20260826_135540_Chrome.mp4
Screen_Recording_20260826_135717_Chrome.mp4
iOS: Native
Screen.Recording.2026-08-26.at.3.27.44.PM.mov
Screen.Recording.2026-08-26.at.3.29.25.PM.mov
iOS: mWeb Safari
Screen.Recording.2026-08-26.at.3.32.43.PM.mov
Screen.Recording.2026-08-26.at.3.34.08.PM.mov
MacOS: Chrome / Safari
Screen.Recording.2026-08-26.at.11.54.07.AM.mov
Screen.Recording.2026-08-26.at.12.03.59.PM.mov
Screen.Recording.2026-08-26.at.11.59.45.AM.mov