Skip to content

fix(vendor): embed batch (virtuallist, focus, zindex, text, classname styles)#113

Merged
RuudBurger merged 13 commits into
mainfrom
promote/vendor-batch-july
Jul 16, 2026
Merged

fix(vendor): embed batch (virtuallist, focus, zindex, text, classname styles)#113
RuudBurger merged 13 commits into
mainfrom
promote/vendor-batch-july

Conversation

@RuudBurger

@RuudBurger RuudBurger commented Jul 16, 2026

Copy link
Copy Markdown
Member

Promotes framework change(s) developed against the client's vendor/react-lightning embed.

What changed

  • VirtualList back-stops the reveal gate so cells that never report a measure still show up
  • useDerivedValue(() => withTiming(...)) ticks to a live number instead of storing the raw animation descriptor
  • PixelRatio.get() reports 1, matching the fixed-resolution Lightning scene
  • Focus events bubble up the element tree like tvOS/web, so wrapper views see child focus
  • zIndex stacking is contained to the RN parent under view flattening instead of leaking scene-wide
  • Grid focus resolves the target index with the cross axis, fixing down-navigation landing in the wrong column
  • Colorless text defaults to white, and nested text aggregates re-fold correctly
  • Vertical VirtualLists get a zero flex basis so content height can't inflate the ancestor flex chain
  • VirtualList understands the native snap props (snapToAlignment/scrollSnapAlign, scrollSnapOffset, snapToItemPadding)
  • className styles survive style-only updates, flexbox reset defaults to column again, and children append at the right index
  • VirtualList layout reads opt out of React Compiler memoization so a cached read can't serve stale layout
  • Focus moves skip stale destinations instead of aborting, so a dead ref can't strand focus
  • React-hidden trees release their layout space (display none, not just alpha 0)

Developed and validated in plexinc/react-native-client against the embedded copy before
promotion; client-side integration stays in that repo until a release is cut.

…er measure

(cherry picked from commit abf4cb38d6474621df4fa1edc007c27cb52e344f)
(cherry picked from commit c9f8de298b2b5ffb5ce669817b8a7828356688a3)
…scene

(cherry picked from commit c1d16b13e97b3612f80d9c449b7fefbd10e5dcce)
(cherry picked from commit cc3b2ab936c8cafad5fd6a65b7458655b89301d5)
(cherry picked from commit bcc049a876694da90e8f3718340f758e95a1c3fa)
(cherry picked from commit 5499534b6700c4b838812631d936bb787d57d486)
…aggregates

(cherry picked from commit fd8146b62c101f56912c69a5c0c7d1a4f973bacd)
@RuudBurger
RuudBurger requested a review from DouweBos July 16, 2026 15:53
@RuudBurger
RuudBurger merged commit edaeae2 into main Jul 16, 2026
1 check passed
@RuudBurger
RuudBurger deleted the promote/vendor-batch-july branch July 16, 2026 17:43
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.

2 participants