Skip to content

Commit bb906a0

Browse files
authored
feat: add animations for AccountGroupDetails and WalletDetails view transitions (#20525)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> This PR adds transition animation for account details and wallet details views. ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: Added transition animation for account details and wallet details views ## **Related issues** Fixes: Jira ticket: https://consensyssoftware.atlassian.net/browse/MUL-1109 ## **Manual testing steps** ```gherkin Feature: Open wallet details Scenario: user opens wallet details Given multichain accounts are enabled When user navigates to accounts details Then navigates to wallet details Then transitions should be animated for both accounts details and wallet details ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** https://github.com/user-attachments/assets/4ce0f530-e771-4f4d-b3e5-0f1289256d9c <!-- [screenshots/recordings] --> ### **After** https://github.com/user-attachments/assets/ee9fe831-de8f-4dfe-b5b5-3012c1226e4b <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Adds animated transitions for AccountGroupDetails and WalletDetails, inlining WalletDetails into the MultichainAccountDetails stack and removing the separate navigator. > > - **Navigation**: > - **Account Group Details**: Add custom slide-in transition via `cardStyleInterpolator` for `Routes.MULTICHAIN_ACCOUNTS.ACCOUNT_GROUP_DETAILS`. > - **Wallet Details**: > - Inline `Routes.MULTICHAIN_ACCOUNTS.WALLET_DETAILS` into `MultichainAccountDetails` stack with `animationEnabled: true`. > - Remove `MultichainWalletDetails` navigator and its `AppFlow` registration. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit b313801. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent 8c91635 commit bb906a0

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

app/components/Nav/App/App.tsx

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,15 @@ const MultichainAccountGroupDetails = () => {
661661
animationEnabled: true,
662662
}}
663663
/>
664+
<Stack.Screen
665+
name={Routes.MULTICHAIN_ACCOUNTS.WALLET_DETAILS}
666+
component={WalletDetails}
667+
initialParams={route?.params}
668+
options={{
669+
headerShown: false,
670+
animationEnabled: true,
671+
}}
672+
/>
664673
</Stack.Navigator>
665674
);
666675
};
@@ -742,25 +751,6 @@ const MultichainAccountDetailsActions = () => {
742751
);
743752
};
744753

745-
const MultichainWalletDetails = () => {
746-
const route = useRoute();
747-
748-
return (
749-
<Stack.Navigator
750-
screenOptions={{
751-
headerShown: false,
752-
animationEnabled: false,
753-
}}
754-
>
755-
<Stack.Screen
756-
name={Routes.MULTICHAIN_ACCOUNTS.WALLET_DETAILS}
757-
component={WalletDetails}
758-
initialParams={route?.params}
759-
/>
760-
</Stack.Navigator>
761-
);
762-
};
763-
764754
const MultichainAddressList = () => {
765755
const route = useRoute();
766756

@@ -924,6 +914,21 @@ const AppFlow = () => {
924914
<Stack.Screen
925915
name={Routes.MULTICHAIN_ACCOUNTS.ACCOUNT_GROUP_DETAILS}
926916
component={MultichainAccountGroupDetails}
917+
options={{
918+
animationEnabled: true,
919+
cardStyleInterpolator: ({ current, layouts }) => ({
920+
cardStyle: {
921+
transform: [
922+
{
923+
translateX: current.progress.interpolate({
924+
inputRange: [0, 1],
925+
outputRange: [layouts.screen.width, 0],
926+
}),
927+
},
928+
],
929+
},
930+
}),
931+
}}
927932
/>
928933
<Stack.Screen
929934
name={Routes.MULTICHAIN_ACCOUNTS.ACCOUNT_CELL_ACTIONS}
@@ -933,10 +938,6 @@ const AppFlow = () => {
933938
name={Routes.MODAL.MULTICHAIN_ACCOUNT_DETAIL_ACTIONS}
934939
component={MultichainAccountDetailsActions}
935940
/>
936-
<Stack.Screen
937-
name={Routes.MULTICHAIN_ACCOUNTS.WALLET_DETAILS}
938-
component={MultichainWalletDetails}
939-
/>
940941
<Stack.Screen
941942
name={Routes.MULTICHAIN_ACCOUNTS.ADDRESS_LIST}
942943
component={MultichainAddressList}

0 commit comments

Comments
 (0)