Implement upgrade to collect when booking travel#53753
Implement upgrade to collect when booking travel#53753cristipaval merged 14 commits intoExpensify:mainfrom
Conversation
| travel: { | ||
| title: 'Viajes', | ||
| description: | ||
| 'Expensify Travel es una nueva plataforma corporativa de reserva y gestión de viajes que permite a los miembros reservar alojamientos, vuelos, transporte y mucho más.', | ||
| onlyAvailableOnPlan: 'Travel solo está disponible en el plan Controlar, a partir de ', | ||
| }, |
There was a problem hiding this comment.
@cristipaval Can you please get the translation confirmation?
Screen.Recording.2024-12-09.at.6.50.15.PM.mov@Expensify/design Is this flow correct? |
|
@ryanschaffer @stitesExpensify is this correct? I don't think Travel is only available on Control, but rather, it just requires at least a workspace. So if anything, that modal should say "Only available on Collect and Control" |
|
That's my understanding too. It should be a prompt to create a workspace for those with none. Rather than a prompt to upgrade a collect workspace to control. |
|
@shawnborton What should be the button text? |
|
Rather than use this upgrade screen, what if we use the workspace confirmation step that we just merged? Maybe we can update the text to include something about travel? cc @jamesdeanexpensify we current say this:
Maybe we could say this:
|
|
I like that too. |
I thought we had decided to use the upgrade modal similar to categories in this situation? It's not an upgrade from Collect to Control, but it's still an upgrade from no workspace to a Collect workspace. Right? Or am I missing something? |
|
Yeah, that is what we'd landed on. I think Shawn just meant that we also now have this new page for confirming to create a workspace that might apply too. Not sure of the context of the new page though or the pattern of where we use one vs the other. |
|
What about for the copy (it felt a bit too long as suggested, so removing the reference to
|
|
Ah yeah that's a good point Danny. So here are my thoughts then:
Does that sound like a plan? |
|
Yeah that sounds good! |
That is correct. I think we settled on something like "Only available on paid workspaces" |
|
Aren't all workspaces paid? Or they will be soon with Ryan's project. Workspace creation will kick off the free trial. |
|
I haven't looked at that project yet, but the idea was that we need to prevent users who only have a personal policy on OldDot |
|
Ah, got it. Thank you! |
@shawnborton Can you please let me know the correct text here? |
|
cc @jamesdeanexpensify for thoughts but maybe we can do:
|
|
Quick clarifying question - have they (1) upgraded their existing workspace to the Collect plan or (2) upgraded to a (new) workspace on the Collect plan? That might determine my copy feedback (and then maybe we should revisit the categories copy based on this, too). |
|
I think we show this because the user didn't have any workspace period, so we ask them to at least make a workspace first (much like we do when someone tries to categorize something without a workspace). I think we just start them off on a Collect workspace. |
|
Ok, cool! Would you be down with:
|
|
Love it, let's do it |
|
@shubham1206agra Is this ready for review? |
|
Hold on #53845 as we require workspace confirmation screen. |
|
@shubham1206agra, the PR is merged and it's been in staging for more than 1 day. I hope it will survive and won't get reverted and will end up in production. I think you can continue on this one, given that the deadline for travel is at the end of next week when we want this deployed. |
|
@mananjadhav Can you start the review now? Since this is a bit urgent. |
|
I can definitely start this but I am not sure if I'll be able to finish it immediately. Let me prioritize and try this. |
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
|
@mananjadhav Please continue with the review. |
src/pages/Travel/TravelUpgrade.tsx
Outdated
| createDraftWorkspace('', false, params.name, params.policyID, params.currency, params.avatarFile as File); | ||
| setShouldShowConfirmation(false); | ||
| setIsUpgraded(true); | ||
| createWorkspace('', false, params.name, params.policyID, '', params.currency, params.avatarFile as File); |
There was a problem hiding this comment.
@mananjadhav What should the onboarding intent be here?
|
@mananjadhav Bump here |
mananjadhav
left a comment
There was a problem hiding this comment.
Reviewed the code, will work on the checklist and QA.
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb Chromemweb-chrome-book-travel.moviOS: Nativeios-book-travel.moviOS: mWeb Safarimweb-safari-book-travel.movMacOS: Chrome / Safariweb-book-travel.movMacOS: Desktopdesktop-book-travel_f0HkfWeP.mp4 |
mananjadhav
left a comment
There was a problem hiding this comment.
I have issues with Android build, hence skipping that.
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/cristipaval in version: 9.0.95-0 🚀
|
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.0.95-6 🚀
|
| </ScreenWrapper> | ||
| </Modal> | ||
| {isUpgraded ? ( | ||
| <UpgradeConfirmation |
There was a problem hiding this comment.
This PR caused a bug - #58182
We should wrap it in a scroll view


Explanation of Change
Fixed Issues
$ #48305
Tests
Pre-requisite - Have a new account with
spotnanaTravelbeta enabled and no workspace created.Offline tests
Same as Tests
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))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
Android: Native
Screen.Recording.2025-01-29.at.12.13.58.PM.mov
Android: mWeb Chrome
Screen.Recording.2025-01-29.at.11.58.52.AM.mov
iOS: Native
Screen.Recording.2025-01-29.at.12.09.22.PM.mov
iOS: mWeb Safari
Screen.Recording.2025-01-29.at.11.56.30.AM.mov
MacOS: Chrome / Safari
Screen.Recording.2025-01-29.at.12.22.05.AM.mov
MacOS: Desktop
Screen.Recording.2025-01-29.at.12.02.17.PM.mov