Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: react/react
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2805f0ed
Choose a base ref
...
head repository: react/react
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3302d1f7
Choose a head ref
  • 3 commits
  • 15 files changed
  • 3 contributors

Commits on Sep 3, 2025

  1. [flags] enable opt-in for enableDefaultTransitionIndicator (#34373)

    So we can test the feature.
    rickhanlonii authored Sep 3, 2025
    Configuration menu
    Copy the full SHA
    3168e08 View commit details
    Browse the repository at this point in the history
  2. [playground] Upgrade to latest next (#34375)

    We were still on a canary version of next in the playground, so let's
    update to the latest version.
    poteto authored Sep 3, 2025
    Configuration menu
    Copy the full SHA
    7697a9f View commit details
    Browse the repository at this point in the history
  3. Fix: uDV skipped initial value if earlier transition suspended (#34376)

    Fixes a bug in useDeferredValue's optional `initialValue` argument. In
    the regression case, if a new useDeferredValue hook is mounted while an
    earlier transition is suspended, the `initialValue` argument of the new
    hook was ignored. After the fix, the `initialValue` argument is
    correctly rendered during the initial mount, regardless of whether other
    transitions were suspended.
    
    The culprit was related to the mechanism we use to track whether a
    render is the result of a `useDeferredValue` hook: we assign the
    deferred lane a TransitionLane, then entangle that lane with the
    DeferredLane bit. During the subsequent render, we check for the
    presence of the DeferredLane bit to determine whether to switch to the
    final, canonical value.
    
    But because transition lanes can themselves become entangled with other
    transitions, the effect is that every entangled transition was being
    treated as if it were the result of a `useDeferredValue` hook, causing
    us to skip the initial value and go straight to the final one.
    
    The fix I've chosen is to reserve some subset of TransitionLanes to be
    used only for deferred work, instead of using entanglement. This is
    similar to how retries are already implemented. Originally I tried not
    to implement it this way because it means there are now slightly fewer
    lanes allocated for regular transitions, but I underestimated how
    similar deferred work is to retries; they end up having a lot of the
    same requirements. Eventually it may be possible to merge the two
    concepts.
    acdlite authored Sep 3, 2025
    Configuration menu
    Copy the full SHA
    3302d1f View commit details
    Browse the repository at this point in the history
Loading