Skip to content

fix: cp-7.51.0 remove InteractionManager blocking account selection callbacks in certain flows#17002

Merged
vinnyhoward merged 1 commit into
mainfrom
fix-16942-account-picker-not-selecting-in-certain-flows
Jul 9, 2025
Merged

fix: cp-7.51.0 remove InteractionManager blocking account selection callbacks in certain flows#17002
vinnyhoward merged 1 commit into
mainfrom
fix-16942-account-picker-not-selecting-in-certain-flows

Conversation

@vinnyhoward

@vinnyhoward vinnyhoward commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

Description

Problem

The account picker was failing to select accounts in certain UI flows due to InteractionManager.runAfterInteractions() blocking critical selection callbacks. When the UI was busy with animations or interactions, the callback queue would be deferred indefinitely, leaving users unable to switch accounts.

Root Cause

The issue only occurred when AccountSelector was rendered inline within active screens (such as BuildQuote or SwapsAmountView) rather than as a modal (like the NavBar). In complex UI contexts with ongoing animations (keypad interactions, focus effects, loading states, etc), the interaction queue never clears, causing runAfterInteractions() callbacks to wait indefinitely.

Works: Navbar → Modal AccountSelector (interaction queue clears on navigation)
Broken: BuildQuote, SwapsAmountView inline AccountSelector (perpetual interaction queue from parent animations, not sure the EXACT animations causing the blockage)

Solution

Removed the InteractionManager wrapper around the account selection logic in EvmAccountSelectorList

Impact

  • Account selection now works reliably across all UI states
  • Maintains existing functionality while fixing the blocking behavior
  • The InteractionManager was originally added for performance optimization unintentionally blocked user experience

Changelog

CHANGELOG entry: null

Related issues

Fixes: #16942

Manual testing steps

  1. Go to this Swaps or Deposit screens
  2. Constantly switch accounts and observe that account selection is no longer blocked
  3. The app MAY crash when quickly switching account but that is due to another issue logged here

Screenshots/Recordings

interaction-manager.mov

Before

NA

After

NA

Pre-merge author checklist

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.

@vinnyhoward vinnyhoward requested a review from a team as a code owner July 8, 2025 21:39
@vinnyhoward vinnyhoward added Run Smoke E2E team-core-extension-ux Core Extension UX team no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed labels Jul 8, 2025
@github-actions

github-actions Bot commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

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.

@github-actions

github-actions Bot commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

https://bitrise.io/ Bitrise

✅✅✅ pr_smoke_e2e_pipeline passed on Bitrise! ✅✅✅

Commit hash: 6669a35
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/76040b1b-c59f-4d56-be5a-cc0047aea756

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

@vinnyhoward vinnyhoward added the No QA Needed Apply this label when your PR does not need any QA effort. label Jul 8, 2025
@vinnyhoward vinnyhoward changed the title fix: remove InteractionManager blocking account selection callbacks in certain flows fix: cp-7.51.0 remove InteractionManager blocking account selection callbacks in certain flows Jul 8, 2025
@sonarqubecloud

sonarqubecloud Bot commented Jul 8, 2025

Copy link
Copy Markdown

@Cal-L Cal-L left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Would be good to know why the parent animation isn't resolving itself though. https://consensys.slack.com/archives/C02U025CVU4/p1752011324805149

@EtherWizard33 EtherWizard33 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vinnyhoward vinnyhoward added this pull request to the merge queue Jul 9, 2025
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 9, 2025
@vinnyhoward vinnyhoward added this pull request to the merge queue Jul 9, 2025
Merged via the queue into main with commit 75f4426 Jul 9, 2025
79 of 88 checks passed
@vinnyhoward vinnyhoward deleted the fix-16942-account-picker-not-selecting-in-certain-flows branch July 9, 2025 15:24
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 9, 2025
@metamaskbot metamaskbot added the release-7.52.0 Issue or pull request that will be included in release 7.52.0 label Jul 9, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

No QA Needed Apply this label when your PR does not need any QA effort. no-changelog no-changelog Indicates no external facing user changes, therefore no changelog documentation needed release-7.52.0 Issue or pull request that will be included in release 7.52.0 team-core-extension-ux Core Extension UX team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Account Switcher switches only in home screen

4 participants