Skip to content

Commit e180edc

Browse files
chore(runway): cherry-pick feat: cp-7.64.0 MUSD-279 moved Earn CTAs to be next to asset name (#25600)
- feat: cp-7.64.0 MUSD-279 moved Earn CTAs to be next to asset name (#25545) <!-- 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** Moves the "Earn %" CTA for Ethereum and Tron to be next to the asset name. This fix is needed because large token balances are causing the "Earn %" CTA to clip into the percentage changed text. <!-- 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? --> ## **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: moved the "Earn %" CTA for Ethereum and Tron to be next to the asset name ## **Related issues** Fixes: [MUSD-279: Move the Earn CTAs next to ETH and Tron contextually next to the asset name's](https://consensyssoftware.atlassian.net/browse/MUSD-279) ## **Manual testing steps** ```gherkin Feature: Earn call-to-action placement in token list Scenario: user sees stake call-to-action next to token name When user views ETH and the token in the token list When user has non-zero token balance Then a Stake call-to-action is displayed inline next to the token name ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> Earn CTA collides with the percentage changed text for large token balances. ### **After** <!-- [screenshots/recordings] --> <img width="454" height="81" alt="Screenshot 2026-02-02 at 3 50 50 PM" src="https://github.com/user-attachments/assets/21a1671f-2d66-4017-bc2b-1c78fcfd4e02" /> <img width="454" height="81" alt="Screenshot 2026-02-02 at 3 51 07 PM" src="https://github.com/user-attachments/assets/690691a3-ebf9-43ea-a8a8-5f298c66c3bd" /> ## **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] > **Low Risk** > Low risk UI-only layout change within `TokenListItem`; main risk is minor visual regressions/alignment issues across devices and long names/labels. > > **Overview** > Moves the token-list Earn/Stake call-to-action (`renderEarnCta()`) from the balance/percentage row to sit inline next to the asset name. > > Adds a new `assetNameContainer` row style to keep the name/label and CTA aligned, preventing the CTA from overlapping/clipping with the secondary balance text for large balances. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit cc21dce. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> [ba206df](ba206df) Co-authored-by: Matthew Grainger <46547583+Matt561@users.noreply.github.com>
1 parent 9cbb539 commit e180edc

1 file changed

Lines changed: 15 additions & 6 deletions

File tree

app/components/UI/Tokens/TokenList/TokenListItem/TokenListItem.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ const createStyles = (colors: Colors) =>
7979
badge: {
8080
marginTop: 8,
8181
},
82+
assetNameContainer: {
83+
flexDirection: 'row',
84+
alignItems: 'center',
85+
},
8286
assetName: {
8387
flexDirection: 'row',
8488
gap: 8,
@@ -404,11 +408,17 @@ export const TokenListItem = React.memo(
404408
* The reason for this is that the wallet_watchAsset doesn't return the name
405409
* more info: https://docs.metamask.io/guide/rpc-api.html#wallet-watchasset
406410
*/}
407-
<View style={styles.assetName}>
408-
<Text variant={TextVariant.BodyMDMedium} numberOfLines={1}>
409-
{asset.name || asset.symbol}
410-
</Text>
411-
{label && <Tag label={label} testID={ACCOUNT_TYPE_LABEL_TEST_ID} />}
411+
<View style={styles.assetNameContainer}>
412+
<View style={styles.assetName}>
413+
<Text variant={TextVariant.BodyMDMedium} numberOfLines={1}>
414+
{asset.name || asset.symbol}
415+
</Text>
416+
{label && (
417+
<Tag label={label} testID={ACCOUNT_TYPE_LABEL_TEST_ID} />
418+
)}
419+
</View>
420+
421+
{renderEarnCta()}
412422
</View>
413423
<View style={styles.percentageChange}>
414424
{
@@ -424,7 +434,6 @@ export const TokenListItem = React.memo(
424434
{isStockToken(asset as BridgeToken) && (
425435
<StockBadge style={styles.stockBadgeWrapper} token={asset} />
426436
)}
427-
{renderEarnCta()}
428437
</View>
429438
</View>
430439
<ScamWarningIcon

0 commit comments

Comments
 (0)