feat(Wallet): add empty state and redesign wallet page#26406
feat(Wallet): add empty state and redesign wallet page#26406grgia merged 2 commits intoExpensify:mainfrom pac-guerreiro:feature/empty-state-view-and-add-bank-accounts-plus-wallet-tile
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
|
cc @grgia |
grgia
left a comment
There was a problem hiding this comment.
Looking good so far! Let's reuse patterns from WorkspaceListPage
|
Please let me know when this is ready for a design review! |
|
Getting this warning for Native apps. And this warning crashing android @grgia @pac-guerreiro |
|
@narefyev91 Thank you for your feedback, I'm going to apply a fix for that |
|
@narefyev91 fix was applied successfully! |
# Conflicts: # src/components/LottieAnimations.js # src/pages/settings/Wallet/WalletPage/BaseWalletPage.js fix(wallet): item styles not matching designs fix(wallet): PropTypes console errors fix(wallet): popover menu positioning issues fix(wallet): flags used to determine if the empty state should be shown refactor(wallet): code style # Conflicts: # src/pages/settings/Wallet/PaymentMethodList.js fix(wallet): accessing wrong onyx key to look for assigned cards fix(wallet): spanish translations refactor(wallet): apply code style guidelines refactor(wallet): differentiate old wallet from new version using URL # Conflicts: # src/ROUTES.ts # src/libs/Navigation/AppNavigator/ModalStackNavigators.js # src/libs/Navigation/linkingConfig.js add padding top prop to IlustratedHeaderPageLayout # Conflicts: # src/components/IllustratedHeaderPageLayout.js remove header top padding replace hardcoded values with references to SCREENS # Conflicts: # src/SCREENS.ts add scroll to WalletPage, disable scroll in PaymentMethodList lint code # Conflicts: # src/pages/settings/Wallet/PaymentMethodList.js chore: reduce FastMoney animation filesize chore: add wallet backgriound color to light theme refactor: wallet route refactor: remove unused prop refactor(wallet): remove unnecessary wrapper component fix(wallet): linter issue refactor(wallet): remove underscore dependency chore(wallet): use old wallet instead of new one # Conflicts: # src/libs/Navigation/AppNavigator/ModalStackNavigators.js chore: apply prettier # Conflicts: # src/SCREENS.ts chore(wallet): remove card item left padding fix(section): missing subtitle refactor(wallet): use constant screen name for wallet domain cards # Conflicts: # src/libs/Navigation/linkingConfig.js refactor(wallet): use constant screen name for wallet fix(wallet): screen wrapper adding unnecessary vertical padding # Conflicts: # src/pages/settings/Wallet/WalletPage/WalletPage.js fix(wallet): wrong display name type fix(wallet): missing testID for screen wrapper and unnecessary fragment fix(wallet): unused import fix(wallet): status bar background color fix(wallet): revert scrollview removal fix(wallet): wrong section border radius fix(wallet): wrong payment item height fix(wallet): console error with nested Flatlist inside a ScrollView # Conflicts: # src/pages/settings/Wallet/PaymentMethodList.js fix(wallet): section card item styles refactor(wallet): replace direct import from colors with themeColors fix(wallet): popover menu positioning fix(wallet): transfer balance button styles refactor(wallet): remove paypal references fix(wallet): adjust spacings inside wallet section fix(wallet): bank accounts section spacing chore(wallet): fix linter issues refactor: remove unused paypal route # Conflicts: # src/ROUTES.ts chore(wallet): remove old wallet page # Conflicts: # src/pages/settings/Wallet/WalletPage/BaseWalletPage.js chore: rebase with main branch fix(wallet): wrong lineHeight type
|
@pac-guerreiro Hey - maybe something is mixed up - but on your latest branch i see this |
|
@narefyev91 let me check! |
|
@narefyev91 can you retest it again? |
|
@pac-guerreiro i still see the same issue |
|
@narefyev91 thank you! I just applied your suggestion and confirmed that it works! |
narefyev91
left a comment
There was a problem hiding this comment.
All outstanding items were fixed.
LGTM!
🎀 👀 🎀 C+ reviewed
|
🎯 @narefyev91, thanks for reviewing and testing this PR! 🎉 An E/App issue has been created to issue payment here: #29532. |
grgia
left a comment
There was a problem hiding this comment.
Thanks for all your hard work on this one!
|
✋ 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/grgia in version: 1.3.84-0 🚀
|
|
|
||
| cardMenuItem: { | ||
| paddingLeft: 8, | ||
| paddingLeft: 0, |
There was a problem hiding this comment.
@pac-guerreiro any idea why we chnaged this to 0? it is causing design issues in other files
There was a problem hiding this comment.
Discussed 1:1, this should have stayed 8px, fixed
|
🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀
|
|
🚀 Deployed to production by https://github.com/francoisl in version: 1.3.84-10 🚀
|
|
🚀 Deployed to staging by https://github.com/grgia in version: 1.3.85-0 🚀
|
|
🚀 Deployed to production by https://github.com/francoisl in version: 1.3.85-4 🚀
|



Details
This PR adds a new empty state to the wallet, when user has no bank account, assigned card or wallet, and redesigns the wallet page.
Docs: https://docs.google.com/document/d/1rFxJ78vz5On6zSWzYa51B9v-tyLdC5pUsBeLOLig0t4/edit#bookmark=id.659z4lc0lx22
Related issue: #22871
Tests
getComponentforSCREENS.SETTINGS.WALLET, inSettingsModalStackNavigatorto import the component from../../../pages/settings/Wallet/WalletPage/WalletPageOffline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)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
Web
https://github.com/Expensify/App/assets/48553277/f401da4a-2ae8-4e6d-812c-bf043cba2a19
Mobile Web - Chrome
Wallet Page - Empty State
Wallet Page, with bank accounts and expensify wallet section
Wallet Page, with bank accounts section (user has no expensify wallet)
Mobile Web - Safari
Wallet Page - Empty State
Wallet Page, with bank accounts and expensify wallet section
Wallet Page, with bank accounts section (user has no expensify wallet)
Desktop
Wallet Page - Screen Recording
8mb.video-Ahi-I6bvGCa8.mp4
Wallet Page - Empty State
iOS
Android
Wallet Page - Screen Recording
8mb.video-whm-7nEq5Zcc.mp4
Wallet Page - Empty State
Wallet Page, with bank accounts and expensify wallet section
Wallet Page, with bank accounts section (user has no expensify wallet)