Skip to content

fix: make WalletConnect network selection list scrollable#12169

Merged
gomesalexandre merged 5 commits intodevelopfrom
fix/wc-network-selection-scroll
Mar 16, 2026
Merged

fix: make WalletConnect network selection list scrollable#12169
gomesalexandre merged 5 commits intodevelopfrom
fix/wc-network-selection-scroll

Conversation

@premiumjibles
Copy link
Collaborator

@premiumjibles premiumjibles commented Mar 15, 2026

Description

The network list in the WalletConnect "Choose Network" modal was overflowing without scrollability when many chains were available (e.g. 15+ networks). Added overflowY='auto' and minH={0} to the list container so it scrolls within the modal bounds instead of clipping.

Risk

Low — CSS-only change to a single component. No logic, transaction, or wallet interaction changes.

No protocols, transaction types, wallets or contract interactions are affected.

Testing

Engineering

  1. Connect a WalletConnect dApp that requests many chains
  2. Observe the "Choose Network" modal now scrolls instead of overflowing
  3. Verify the "Done" button remains visible and sticky at the bottom

Operations

  • 🏁 My feature is behind a flag and doesn't require operations testing (yet)

Connect any WalletConnect dApp and verify the network selection list scrolls properly when there are many networks.

Screenshots (if applicable)

image

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Fixed layout issues in the network selection modal including improved container sizing and vertical scrolling functionality, enabling smoother navigation through network options and enhancing overall usability when managing multiple networks.

The network list in the "Choose Network" modal was overflowing without
scrollability when many chains were available. Add overflowY and minH
to the list container so it scrolls within the modal bounds.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 15, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4726b167-cd67-4562-b1b3-c1a7de2ca0e1

📥 Commits

Reviewing files that changed from the base of the PR and between 71777c4 and 4ab583a.

📒 Files selected for processing (1)
  • src/plugins/walletConnectToDapps/components/modals/NetworkSelection.tsx

📝 Walkthrough

Walkthrough

A layout refinement to the NetworkSelection modal component adjusts flex container behavior and enables vertical scrolling for the network list by adding minH={0} and overflow properties to container elements.

Changes

Cohort / File(s) Summary
Layout & Scroll Enhancements
src/plugins/walletConnectToDapps/components/modals/NetworkSelection.tsx
Added flex={1} and minH={0} to outer vertical stack for proper flex growth; added minH={0} and overflowY='auto' to inner vertical stack to enable vertical scrolling for network list.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A hop through flex and scroll so fine,
The networks now in columns align,
With minH zero and overflow's grace,
The list finds its perfect space!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately reflects the main change: making the WalletConnect network selection list scrollable by adding overflow and flex constraints to layout.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/wc-network-selection-scroll
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Collaborator

@NeOMakinG NeOMakinG left a comment

Choose a reason for hiding this comment

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

QA Approved

Verification:

  • Code reviewed: NetworkSelection.tsx line 251 correctly adds minH={0} and overflowY='auto' to the VStack containing network options
  • This is a CSS-only change that enables scrolling when many networks are available
  • No logic, transaction, or wallet interaction changes

Risk: Low - CSS properties only

Testing notes: The WalletConnect network selection modal with many chains (15+) will now scroll properly instead of overflowing. The "Done" button remains visible at the bottom.

🤖 Automated QA by OpenClaw

premiumjibles and others added 3 commits March 16, 2026 08:56
The previous fix (overflowY/minH on the inner VStack) didn't work because
the parent chain lacked proper height constraints. The real issue was that
NetworkSelection didn't use DialogBody, unlike its sibling components
(AccountSelection, SessionProposalOverview). DialogBody renders ModalBody
on desktop (which gets overflow:auto from scrollBehavior:'inside') and
Box with overflow:auto on mobile.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
…nment

Root cause: the outer VStack used h='full' (height: 100%) which doesn't
resolve against the parent ModalContent's max-height — only against
explicit height. This caused the VStack to size to its content and
overflow. CSS flex items also have implicit min-height: auto which
prevents shrinking below content size.

Fix matches the working WalletConnectSigningModal pattern:
- Outer VStack: flex={1} minH={0} — proper flex participation, can shrink
- DialogBody: flex={1} minHeight={0} — fills remaining space and scrolls

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Remove DialogBody wrapper and import that were unnecessary. The actual
fix is two prop changes:
- Outer VStack: flex={1} minH={0} instead of h='full' so it participates
  in ModalContent's flex layout and can shrink within max-height
- Inner VStack: add minH={0} overflowY='auto' to enable scrolling

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@premiumjibles premiumjibles marked this pull request as ready for review March 16, 2026 02:24
@premiumjibles premiumjibles requested a review from a team as a code owner March 16, 2026 02:24
Copy link
Contributor

@gomesalexandre gomesalexandre left a comment

Choose a reason for hiding this comment

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

CSS fix looks clean and correct ser 👌

The minH={0} is the key move here - flexbox default min-height: auto prevents children from shrinking below content size, which is what causes the overflow. Setting it to 0 lets the container shrink, then overflowY='auto' handles the rest with a scrollbar. "Done" button stays sticky in its own <Box> outside the scroll container.

Two lines, low risk, does what it says on the box.

@gomesalexandre gomesalexandre merged commit 3aa5e6d into develop Mar 16, 2026
4 checks passed
@gomesalexandre gomesalexandre deleted the fix/wc-network-selection-scroll branch March 16, 2026 10:39
This was referenced Mar 17, 2026
0xApotheosis added a commit that referenced this pull request Mar 17, 2026
* feat: affiliate system alignment - public-api, widget, dashboard (#12150)

* feat: add RPC fallback resilience for unchained outages (#12017)

* chore: update near affiliate address (#12156)

* fix: codex config relative path to agents.md (#12152)

fix: codex config relative path to AGENTS.md

Codex resolves model_instructions_file relative to .codex/ dir,
so "AGENTS.md" was looking for .codex/AGENTS.md instead of repo root.

Co-authored-by: gomes-bot <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>

* fix: restore missing transaction history translation keys (#12168)

* fix: bump NativeQrScanner minimum version to 3.7.2 (#12173)

The native QR scanner handler ships in mobile app v3.7.2 (mobile-app
PR #156), but the version gate was set to 3.4.0. This caused mobile
apps v3.4.0–3.7.1 to incorrectly attempt native scanning, resulting
in a 60-second spinner timeout with no way to scan.

Co-authored-by: Claude Opus 4.6 <[email protected]>

* fix: make WalletConnect network selection list scrollable (#12169)

* fix: batch yield balance queries to respect api limit (#12174)

* fix: graceful error message when yield tx fails due to insufficient gas (#12176)

* fix: sync rfox staking asset selection to context for modals (#12175)

* fix: release script squash-merge compat and backmerge automation (#12162)

* fix: prevent duplicate private sync pr in release script

merged_untagged case was creating a private sync PR without checking
if one already existed, unlike tagged_private_stale which had the guard.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix: prevent duplicate private sync pr in release script

tagged_private_stale case was creating a private sync PR even when
private was already content-identical to main (SHA mismatch due to
propagation delay after a sync PR merges). Added a content diff check
to bail early in that case. Same guard applied to the hotfix path.

The merged_untagged case also gets the open-PR guard for belt-and-suspenders.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix: idle prereleaseMerged content diff + tagged_private_stale backmerge auto-merge

- idle case: use git diff content check instead of SHA equality for
  prereleaseMerged - squash merges diverge SHAs even when content matches
- tagged_private_stale (regular + hotfix): set auto-merge with merge
  commit strategy on backmerge PR so it lands without manual intervention

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix: coderabbitai review - prereleaseMerged ahead-check + no early break in tagged_private_stale

- idle: replace SHA/content-diff prereleaseMerged with commit-ahead check
  (origin/main..origin/release) - prevents false positive when release is
  *behind* main (e.g. post-hotfix), which would have routed into release PR
  path with 0 commits
- tagged_private_stale (regular + hotfix): remove early break when private
  is content-synced - script must still evaluate backmerge PR creation even
  when private sync is a no-op

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix: prettier formatting in release script

* fix: enable auto-merge on existing backmerge PRs during reruns

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* fix: lint

---------

Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: gomes-bot <[email protected]>

* docs: update qabot skill for agent-browser 0.20.x features (#12177)

* chore: update near affiliate address

* docs: update qabot skill for agent-browser 0.20.x features

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

---------

Co-authored-by: Apotheosis <[email protected]>
Co-authored-by: gomes-bot <[email protected]>
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>

* feat: route custom token metadata imports through proxy (#12040)

* fix: use content diff for private sync state detection in release script (#12181)

---------

Co-authored-by: NeOMakinG <[email protected]>
Co-authored-by: Apotheosis <[email protected]>
Co-authored-by: gomes-bot <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: Jibles <[email protected]>
0xApotheosis added a commit that referenced this pull request Mar 17, 2026
chore: release v1.1018.0 (#12184)

* feat: affiliate system alignment - public-api, widget, dashboard (#12150)

* feat: add RPC fallback resilience for unchained outages (#12017)

* chore: update near affiliate address (#12156)

* fix: codex config relative path to agents.md (#12152)

fix: codex config relative path to AGENTS.md

Codex resolves model_instructions_file relative to .codex/ dir,
so "AGENTS.md" was looking for .codex/AGENTS.md instead of repo root.




* fix: restore missing transaction history translation keys (#12168)

* fix: bump NativeQrScanner minimum version to 3.7.2 (#12173)

The native QR scanner handler ships in mobile app v3.7.2 (mobile-app
PR #156), but the version gate was set to 3.4.0. This caused mobile
apps v3.4.0–3.7.1 to incorrectly attempt native scanning, resulting
in a 60-second spinner timeout with no way to scan.



* fix: make WalletConnect network selection list scrollable (#12169)

* fix: batch yield balance queries to respect api limit (#12174)

* fix: graceful error message when yield tx fails due to insufficient gas (#12176)

* fix: sync rfox staking asset selection to context for modals (#12175)

* fix: release script squash-merge compat and backmerge automation (#12162)

* fix: prevent duplicate private sync pr in release script

merged_untagged case was creating a private sync PR without checking
if one already existed, unlike tagged_private_stale which had the guard.



* fix: prevent duplicate private sync pr in release script

tagged_private_stale case was creating a private sync PR even when
private was already content-identical to main (SHA mismatch due to
propagation delay after a sync PR merges). Added a content diff check
to bail early in that case. Same guard applied to the hotfix path.

The merged_untagged case also gets the open-PR guard for belt-and-suspenders.



* fix: idle prereleaseMerged content diff + tagged_private_stale backmerge auto-merge

- idle case: use git diff content check instead of SHA equality for
  prereleaseMerged - squash merges diverge SHAs even when content matches
- tagged_private_stale (regular + hotfix): set auto-merge with merge
  commit strategy on backmerge PR so it lands without manual intervention



* fix: coderabbitai review - prereleaseMerged ahead-check + no early break in tagged_private_stale

- idle: replace SHA/content-diff prereleaseMerged with commit-ahead check
  (origin/main..origin/release) - prevents false positive when release is
  *behind* main (e.g. post-hotfix), which would have routed into release PR
  path with 0 commits
- tagged_private_stale (regular + hotfix): remove early break when private
  is content-synced - script must still evaluate backmerge PR creation even
  when private sync is a no-op



* fix: prettier formatting in release script

* fix: enable auto-merge on existing backmerge PRs during reruns



* fix: lint

---------




* docs: update qabot skill for agent-browser 0.20.x features (#12177)

* chore: update near affiliate address

* docs: update qabot skill for agent-browser 0.20.x features



---------





* feat: route custom token metadata imports through proxy (#12040)

* fix: use content diff for private sync state detection in release script (#12181)

---------

Co-authored-by: gomes <[email protected]>
Co-authored-by: NeOMakinG <[email protected]>
Co-authored-by: gomes-bot <[email protected]>
Co-authored-by: Claude Opus 4.6 <[email protected]>
Co-authored-by: Jibles <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants