fix: make WalletConnect network selection list scrollable#12169
fix: make WalletConnect network selection list scrollable#12169gomesalexandre merged 5 commits intodevelopfrom
Conversation
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]>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA 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
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment |
NeOMakinG
left a comment
There was a problem hiding this comment.
✅ QA Approved
Verification:
- Code reviewed:
NetworkSelection.tsxline 251 correctly addsminH={0}andoverflowY='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
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]>
gomesalexandre
left a comment
There was a problem hiding this comment.
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.
* 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]>
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]>
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'andminH={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.
Testing
Engineering
Operations
Connect any WalletConnect dApp and verify the network selection list scrolls properly when there are many networks.
Screenshots (if applicable)
🤖 Generated with Claude Code
Summary by CodeRabbit