Refreshing default currency page directs to confirm workspace page#63371
Conversation
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2025-06-04.at.11.38.08.AM.movAndroid: mWeb ChromeScreen.Recording.2025-06-04.at.11.36.57.AM.moviOS: HybridAppScreen.Recording.2025-06-04.at.11.39.31.AM.moviOS: mWeb SafariScreen.Recording.2025-06-04.at.11.38.35.AM.movMacOS: Chrome / SafariScreen.Recording.2025-06-04.at.11.35.37.AM.movMacOS: DesktopScreen.Recording.2025-06-04.at.11.39.58.AM.mov |
inimaga
left a comment
There was a problem hiding this comment.
Looks good overall. But it doesn't handle preserving the selected non-default currency after a page reload.
|
@thelullabyy I'm aware that you mentioned it but don't agree that it is out of scope. As even though its not explicitly mentioned, it is still related to the UX of preserving the state of the page after refresh. And shouldn't be treated separately, when we can handle it here with minimal changes. |
|
@thelullabyy Let's try what @inimaga suggested. Yeah, I also agree we can do the polish together in this PR. I think we can use the parameter to save the current code and pass it to |
|
@eh2077 Okay it will be done today |
|
@eh2077 I updated PR. Please help to check. This is the result: Screen.Recording.2025-06-09.at.14.13.47.mov |
src/components/CurrencyPicker.tsx
Outdated
|
|
||
| const hidePickerModal = () => { | ||
| setIsPickerVisible(false); | ||
| Navigation.setParams({currency: value}); |
There was a problem hiding this comment.
Is it necessary to add a flag to enable this feature?
| const currencyParam = route.params && 'currency' in route.params && !!route.params.currency ? (route.params.currency as string) : userCurrency; | ||
| const [currency] = useState(currencyParam); |
There was a problem hiding this comment.
If the currency value is from route param, I think we need to add extra check to ensure it's valid current code. The currency list is available like
Screen.Recording.2025-06-10.at.2.28.17.PM.mov
Screen.Recording.2025-06-11.at.4.12.44.PM.movScreen.Recording.2025-06-11.at.4.16.25.PM.movScreen.Recording.2025-06-11.at.4.19.05.PM.mov |
eh2077
left a comment
There was a problem hiding this comment.
Code looks good and tested well.
@thelullabyy Thanks for your patience!
@inimaga All yours
inimaga
left a comment
There was a problem hiding this comment.
Looks good to me too. Thanks both!
|
✋ 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/inimaga in version: 9.1.65-0 🚀
|
|
🚀 Deployed to production by https://github.com/Julesssss in version: 9.1.65-1 🚀
|
Explanation of Change
Fixed Issues
$#62357
PROPOSAL:#62357 (comment)
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand 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
android.mov
Android: mWeb Chrome
android_Web.mov
iOS: Native
Screen.Recording.2025-06-03.at.22.57.34.mov
iOS: mWeb Safari
ios_web.mov
MacOS: Chrome / Safari
chorme.mov
MacOS: Desktop
desktop.mov