fix: perf(accessibility): fix iOS accessibility in Bridge token selector c…#29128
fix: perf(accessibility): fix iOS accessibility in Bridge token selector c…#29128javiergarciavera wants to merge 8 commits into
Conversation
|
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. |
19ce599 to
aba8226
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #29128 +/- ##
==========================================
- Coverage 82.21% 82.21% -0.01%
==========================================
Files 5079 5079
Lines 133881 133889 +8
Branches 30031 30032 +1
==========================================
+ Hits 110071 110076 +5
- Misses 16332 16334 +2
- Partials 7478 7479 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
9ca4da0 to
7e4f08f
Compare
…omponents - BridgeTokenSelector, TokenButton, TokenSelectorItem: Pressable → TouchableOpacity Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ge token selector - TokenSelectorItem: fix BOTTOM_ROW_BALANCE_TEXT_STYLE to use BodySM (was accidentally changed to BodyMD when extracting the inline constant), restoring visual alignment with the BodySM token name on the same row - BridgeTokenSelector: remove getItemLayout since items have variable heights due to conditional badges and labels — fixed offsets cause scroll position jumps with non-uniform items Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The custom comparator omitted children, networkImageSource, and several token sub-properties. When children (e.g. the info ButtonIcon) gets a new reference due to a parent re-render, the memo would block the re-render leaving a stale closure. Use default shallow comparison instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7e4f08f to
b7fd64e
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 61ddee3. Configure here.
…lanceView When inlining the balance text style logic, tokenBalanceTextProps overrides were incorrectly applied to FiatBalanceView instances too. Only TokenBalanceView should receive the caller-supplied text overrides (variant/color/style); fiat balance views must always use the plain base constants. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
All changes are in the Bridge token selector UI. The SmokeSwap tag covers swap and bridge trading flows including token selection, which directly exercises these components. No other tags are affected since:
Per SmokeSwap tag description: "When selecting SmokeSwap, also select SmokeConfirmations (transaction confirmations are part of the flow)." However, since the changes are purely in the token selector UI (pre-confirmation step) and don't touch confirmation logic, the risk to confirmation flows is minimal. Still, to be safe and follow the tag guidance, SmokeConfirmations should be included. Performance Test Selection: |




…omponents
Description
Changelog
CHANGELOG entry:
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
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
Low risk UI-only changes that tune FlatList rendering and adjust touch/accessibility props; main risk is minor layout/scroll behavior regressions in the token selector.
Overview
Improves Bridge token selector performance by tuning
FlatListvirtualization (e.g.,initialNumToRender, batching/window size,removeClippedSubviews) and updating the estimated row height used for auto-pagination.Refactors
TokenButtonandTokenSelectorItemto useTouchableOpacitystyling/layout directly (removing theBoxwrapper) and tweaks accessibility by marking non-interactive layout containers asaccessible={false}.Cleans up
TokenSelectorItembalance rendering by hoisting balance formatting and default text styles, applyingtokenBalanceTextPropsmore explicitly, and memoizing the row component withReact.memo.Reviewed by Cursor Bugbot for commit e74d6ff. Bugbot is set up for automated code reviews on this repo. Configure here.