KEMBAR78
Comparing 886b3d36...f3a80361 · facebook/react · GitHub
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: facebook/react
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 886b3d36
Choose a base ref
...
head repository: facebook/react
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: f3a80361
Choose a head ref
  • 7 commits
  • 42 files changed
  • 6 contributors

Commits on Sep 10, 2025

  1. [DevTools] fix: keep search query in a local sync state (#34423)

    When the search query changes, we kick off a transition that updates the
    search query in a reducer for TreeContext. The search input is also
    using this value for an `input` HTML element.
    
    For a larger applications, sometimes there is a noticeable delay in
    displaying the updated search query. This changes the approach to also
    keep a local synchronous state that is being updated on a change
    callback.
    hoxyq authored Sep 10, 2025
    Configuration menu
    Copy the full SHA
    e2ba45b View commit details
    Browse the repository at this point in the history
  2. [compiler] Allow setStates in use{Layout,Insertion}Effect where the s…

    …et value is derived from a ref (#34462)
    
    @stipsan found this issue where the compiler would bailout on the
    `useLayoutEffect` examples in the React docs. While setState in an
    effect is typically an anti-pattern due to the fact that it hurts
    performance through cascading renders, the one scenario where it _is_
    allowed is if the value being set flows from a ref.
    poteto authored Sep 10, 2025
    Configuration menu
    Copy the full SHA
    835b009 View commit details
    Browse the repository at this point in the history
  3. [compiler] More flexible/helpful lazy ref initialization (#34449)

    Two small QoL improvements inspired by feedback:
    * `if (ref.current === undefined) { ref.current = ... }` is now allowed.
    * `if (!ref.current) { ref.current = ... }` is still disallowed, but we
    emit an extra hint suggesting the `if (!ref.current == null)` pattern.
    
    I was on the fence about the latter. We got feedback asking to allow `if
    (!ref.current)` but if your ref stores a boolean value then this would
    allow reading the ref in render. The unary form is also less precise in
    general due to sketchy truthiness conversions. I figured a hint is a
    good compromise.
    
    ---
    [//]: # (BEGIN SAPLING FOOTER)
    Stack created with [Sapling](https://sapling-scm.com). Best reviewed
    with [ReviewStack](https://reviewstack.dev/facebook/react/pull/34449).
    * __->__ #34449
    * #34424
    josephsavona authored Sep 10, 2025
    Configuration menu
    Copy the full SHA
    bd9e6e0 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2025

  1. Configuration menu
    Copy the full SHA
    8c15014 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b1c519f View commit details
    Browse the repository at this point in the history
  3. [compiler][playground] (4/N) Config override panel (#34436)

    <!--
      Thanks for submitting a pull request!
    We appreciate you spending the time to work on these changes. Please
    provide enough information so that others can review your pull request.
    The three fields below are mandatory.
    
    Before submitting a pull request, please make sure the following is
    done:
    
    1. Fork [the repository](https://github.com/facebook/react) and create
    your branch from `main`.
      2. Run `yarn` in the repository root.
    3. If you've fixed a bug or added code that should be tested, add tests!
    4. Ensure the test suite passes (`yarn test`). Tip: `yarn test --watch
    TestName` is helpful in development.
    5. Run `yarn test --prod` to test in the production environment. It
    supports the same options as `yarn test`.
    6. If you need a debugger, run `yarn test --debug --watch TestName`,
    open `chrome://inspect`, and press "Inspect".
    7. Format your code with
    [prettier](https://github.com/prettier/prettier) (`yarn prettier`).
    8. Make sure your code lints (`yarn lint`). Tip: `yarn linc` to only
    check changed files.
      9. Run the [Flow](https://flowtype.org/) type checks (`yarn flow`).
      10. If you haven't already, complete the CLA.
    
    Learn more about contributing:
    https://reactjs.org/docs/how-to-contribute.html
    -->
    
    ## Summary
    
    Removed the old `OVERRIDE` pragma to make the source of truth for config
    overrides in the left-hand pane. Now, it will automatically update the
    output pane each time there is an edit to the config. The old pragma
    format is still supported, but it will be overwritten by the config pane
    if they are modifying the same flags. Removed the gating on the config
    panel so now all users will automatically be able to view it, but it
    will be initially collapsed.
    
    <!--
    Explain the **motivation** for making this change. What existing problem
    does the pull request solve?
    -->
    
    ## How did you test this change?
    
    
    https://github.com/user-attachments/assets/9d4512b9-e203-4ce0-ae95-dd96ff03bbc1
    
    
    <!--
    Demonstrate the code is solid. Example: The exact commands you ran and
    their output, screenshots / videos if the pull request changes the user
    interface.
    How exactly did you verify that your PR solves the issue you wanted to
    solve?
      If you leave this empty, your PR will very likely be closed.
    -->
    EugeneChoi4 authored Sep 11, 2025
    Configuration menu
    Copy the full SHA
    fe84397 View commit details
    Browse the repository at this point in the history
  4. [Flight] Ensure async info owners are outlined properly (#34465)

    When we emit objects of type `ReactAsyncInfo`, we need to make sure that
    their owners are outlined, using `outlineComponentInfo`. Otherwise we
    would end up accidentally emitting stashed fields that are not part of
    the transport protocol, specifically `debugStack`, `debugTask`, and
    `debugLocation`. This would lead to runtime errors in the client, when
    for example, the stack for a `debugLocation` is processed in
    `buildFakeCallStack`, but the stack was actually omitted from the RSC
    payload, because for those fields we don't ensure that the object limit
    is increased by the length of the stack, as we do when we're emitting
    the `stack` of a `ReactComponentInfo` object in `outlineComponentInfo`.
    unstubbable authored Sep 11, 2025
    Configuration menu
    Copy the full SHA
    f3a8036 View commit details
    Browse the repository at this point in the history
Loading