feat: support independent native scrollers and rich pager lists - #135
Merged
Merged
Conversation
huhuanming
marked this pull request as ready for review
September 28, 2026 13:30
Contributor
Automated review needs attentionReview of commit Publication requires a retry or human review. This is not an automated approval. |
wabicai
approved these changes
Sep 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Native Home needs React content and rich native lists to share a collapsible header without losing refresh feedback, drag ownership or scroll momentum. This change adds multi-asset History and NFT media capabilities to NativeList, and makes NativeScroller own its AndroidX/UIKit scroll engine while retaining React content, Fabric layout/measurement, events and refresh controls.
The Pager coordinates top-positioned refresh indicators and retained page offsets, cancels React press ownership when an iOS horizontal drag takes over, and defaults non-adjacent page commands to immediate selection. Web behavior is unchanged. Contracts and limits are documented in the package specs.
Validation: NativeScroller JS 8/8, Pager wrapper 15/15, NativeList 203 tests, package type/declaration builds and release tooling 33/33 pass. Dedicated Android/iOS local builds and focused Home/Gallery/Market/Discover acceptance are recorded in the companion app handoff. This does not establish physical-device performance or the exhaustive interaction matrix.
Pager and NativeList
3.0.157-alpha.258are published to npmnextthrough Pager CI and NativeList CI. Registry integrity and published-source audits pass. The preview-only single-package workflow builds Image declarations before releasing NativeList; Image was not republished.Native source CI: Android/Kotlin/Swift checks pass. The first complete iOS run passes nine NativeScroller tests and the wiring/refresh suites but fails the direct press-cancellation fixture. The latest test-only commit attaches that fixture to a UIWindow without weakening assertions; its CI rerun is pending. Keep this PR draft until that check and remaining acceptance are resolved.
Companion app integration: OneKeyHQ/app-monorepo#13750