fix(activity-redesign): render non-EVM swap/bridge rows with the redesigned row style#33376
fix(activity-redesign): render non-EVM swap/bridge rows with the redesigned row style#33376vinnyhoward wants to merge 1 commit into
Conversation
Non-EVM (e.g. Solana) swaps and bridges submitted from the device carry a local bridge-history entry, which routed them to the legacy MultichainBridgeTransactionListItem — larger typography, per-row status and timestamp — while identical remote-history rows used the redesigned compact ActivityListItemRow. Remove the legacy branch so all rows render through ActivityListItemRow, and move the tap routing into the shared press handler: cross-chain bridges keep their dedicated bridge-status screen (mirroring local EVM bridges), same-chain swaps fall through to the shared detail flows.
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
PR template — items to address before "Ready for review"Warnings — informational, address before merging:
See docs/readme/ready-for-review.md for the full Definition of Ready for Review. |
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
SmokeWalletPlatform: Directly covers transaction history display (incoming/outgoing transactions, token transfer details). The ActivityList is the core component for this feature area. SmokeSwap: The changes affect how bridge/swap transactions are routed when tapped in the activity list. Cross-chain bridge history items now use SmokeConfirmations: Required as a dependent tag when selecting SmokeSwap per tag description. SmokeNetworkExpansion: The changes specifically handle Performance Test Selection: |
|



Description
Non-EVM (e.g. Solana) swaps and bridges submitted from the device carry a local
BridgeStatusControllerhistory entry. The Activity list'srenderItemused that entry to route those rows to the legacyMultichainBridgeTransactionListItem— largerBodyLGMediumtitle, circular swap icon, per-row "Confirmed" status line and timestamp — while identical transactions fetched from remote history rendered through the redesigned compactActivityListItemRow. The result was a visibly inconsistent list mixing two row styles for the same kind of transaction (see screenshots).This PR removes the legacy render branch so every row goes through the redesigned
ActivityListItemRow(which already consumesbridgeHistoryItemfor the title, avatars, and quote-token amounts), and ports the legacy row's tap behavior into the shared press handler: keyring transactions whose bridge-history entry is a cross-chain bridge keep their dedicated bridge-status screen (mirroringhasDedicatedDetailScreenfor local EVM bridges), while same-chain swaps fall through to the shared detail flows. The now-deadlocationprop (only consumed by the legacy row's analytics) is removed; no caller passed it.Notes for reviewers:
LIST_ITEM_CLICKED(monetized_primitive: Swaps) on tap. No redesigned row fires that event today (EVM swap/bridge rows already dropped it), so this PR follows the redesign convention rather than special-casing non-EVM rows.MultichainBridgeTransactionListItemitself is untouched — it is still used by the legacyMultichainTransactionsView/UnifiedTransactionsView.Changelog
CHANGELOG entry: Fixed non-EVM swap and bridge rows in the Activity list rendering with a larger legacy row style instead of the redesigned compact style
Related issues
Fixes: https://consensyssoftware.atlassian.net/browse/TMCU-1067
Manual testing steps
Screenshots/Recordings
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-07-15.at.12.26.28.mov
Before
After
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Low Risk
UI consistency and navigation branching in Activity list only; behavior is aligned with existing EVM bridge handling and covered by new unit tests.
Overview
Non-EVM swap and bridge rows in the Activity list no longer use the legacy
MultichainBridgeTransactionListItembranch. Every row renders through the compactActivityListItemRow, with swap/bridge titles still derived from bridge history viagetSwapBridgeTxActivityTitle.Tap routing for device-submitted non-EVM keyring transactions with bridge history is centralized in
handleActivityItemPress: cross-chain entries (isBridgeTxHistoryItemBridge) open the unified bridge status flow viahandleUnifiedSwapsTxHistoryItemClick; same-chain swaps continue into the existing multichain details sheet. The unusedlocationprop (legacy analytics only) is removed fromActivityList.Tests drop the legacy row mock and add coverage for redesigned row rendering, cross-chain bridge taps, and same-chain swap navigation.
Reviewed by Cursor Bugbot for commit bab7242. Bugbot is set up for automated code reviews on this repo. Configure here.