Skip to content

Conversation

@dependabot
Copy link

@dependabot dependabot bot commented on behalf of github Oct 2, 2025

Bumps react and @types/react. These dependencies needed to be updated together.
Updates react from 18.3.1 to 19.2.0

Release notes

Sourced from react's releases.

19.2.0 (Oct 1, 2025)

Below is a list of all new features, APIs, and bug fixes.

Read the React 19.2 release post for more information.

New React Features

  • <Activity>: A new API to hide and restore the UI and internal state of its children.
  • useEffectEvent is a React Hook that lets you extract non-reactive logic into an Effect Event.
  • cacheSignal (for RSCs) lets your know when the cache() lifetime is over.
  • React Performance tracks appear on the Performance panel’s timeline in your browser developer tools

New React DOM Features

  • Added resume APIs for partial pre-rendering with Web Streams:
  • Added resume APIs for partial pre-rendering with Node Streams:
  • Updated prerender APIs to return a postponed state that can be passed to the resume APIs.

Notable changes

  • React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming <ViewTransition> Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics.
  • Add Node Web Streams (prerender, renderToReadableStream) to server-side-rendering APIs for Node.js
  • Use underscore instead of : IDs generated by useId

All Changes

React

React DOM

... (truncated)

Changelog

Sourced from react's changelog.

19.2.0 (October 1st, 2025)

Below is a list of all new features, APIs, and bug fixes.

Read the React 19.2 release post for more information.

New React Features

  • <Activity>: A new API to hide and restore the UI and internal state of its children.
  • useEffectEvent is a React Hook that lets you extract non-reactive logic into an Effect Event.
  • cacheSignal (for RSCs) lets your know when the cache() lifetime is over.
  • React Performance tracks appear on the Performance panel’s timeline in your browser developer tools

New React DOM Features

  • Added resume APIs for partial pre-rendering with Web Streams:
  • Added resume APIs for partial pre-rendering with Node Streams:
  • Updated prerender APIs to return a postponed state that can be passed to the resume APIs.

Notable changes

  • React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming <ViewTransition> Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics.
  • Add Node Web Streams (prerender, renderToReadableStream) to server-side-rendering APIs for Node.js
  • Use underscore instead of : IDs generated by useId

All Changes

React

React DOM

... (truncated)

Commits

Updates @types/react from 18.3.23 to 19.2.0

Commits

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

@dependabot dependabot bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 2, 2025
@fossabot
Copy link

fossabot bot commented Oct 2, 2025

Needs Review

I recommend reviewing this upgrade before merging because this is a major version jump introducing significant breaking changes and a critical version mismatch. The codebase upgrades React from 18.3.1 to 19.2.0 but leaves react-dom at 18.3.1, creating an incompatible peer dependency that will cause runtime failures. Additionally, the package.json contains a resolution forcing @​types/react back to 18.3.3, which conflicts with the upgrade to 19.2.0 and will cause TypeScript compilation errors. While the codebase already uses the modern createRoot API and avoids deprecated features like propTypes, defaultProps, and string refs, the version mismatches must be resolved and the 22 breaking changes must be validated against the 104 React components before deployment.

What we checked

  • CRITICAL: React upgraded to 19.2.0 but react-dom remains at 18.3.1 (line 19), creating an incompatible peer dependency that will cause runtime errors [1]
  • CRITICAL: Resolution forces @​types/react to 18.3.3, conflicting with the 19.2.0 upgrade on line 70 and causing TypeScript compilation failures [2]
  • POSITIVE: Application already uses ReactDOM.createRoot (modern API), avoiding the breaking change that removed ReactDOM.render [3]
  • POSITIVE: Code search found no usage of deprecated APIs (propTypes, defaultProps, contextTypes, string refs, createFactory) across all 104 React components [4]
  • Known ecosystem issue: Next.js projects fail to build with @​types/react v19 due to type recognition problems, though this project uses react-scripts [5]
  • Official migration guide documents 22 breaking changes including Node.js 18+ requirement, removed APIs, and TypeScript namespace changes [6]
  • Widespread ERESOLVE conflicts reported with @​testing-library/react and other ecosystem packages still requiring React 18 peer dependencies [7]

Dependency Usage

React is the foundational UI framework for this entire web application, with comprehensive usage across 104 component files spanning routing, authentication, state management, data visualization, file management, user administration, and bucket operations. The library enables all interactive user experiences through hooks like useState and useEffect for state and lifecycle management, functional components for UI composition, and SVG rendering for custom icons and visualizations. The TypeScript type definitions from @​types/react provide compile-time type safety across the codebase while having no runtime impact, ensuring developer productivity and code quality without affecting the application bundle.

  • react: web-app/config-overrides.js:1 - This code is attempting to modify the Webpack configuration for a React application during development to potentially enable Hot Module Replacement (HMR) using react-hot-loader, though there appears to be a typo in the line config.resolve.alia which would likely cause an error.
  • react: web-app/src/ProtectedRoutes.tsx:17 - Based on the partial snippet, this code appears to be setting up protected routes in a React application, likely managing authentication state and routing logic using React hooks like useEffect and useState, and potentially implementing navigation and access control for different routes.
View 102 more usages
  • react:
    import React from "react";
    - This code is setting up the root React application by creating a ReactDOM root, wrapping the application with a Redux Provider to enable global state management, and preparing to render the main application component.
  • react:
    import React from "react";
    - This React functional component named Copyright is rendering a Box component from an MDS (Material Design System) library, likely to display a copyright notice or footer text in a web application.
  • react:
    import React from "react";
    - This React functional component renders a centered loading indicator using a Loader component within a Grid layout, likely to display a loading state while content is being fetched or processed.
  • react:
    import React from "react";
    - Based on the partial code snippet, this appears to be the beginning of a React functional component called MoreLink that is designed to create a customizable link or button with optional leading icon, text, link destination, and color properties.
  • react:
    import React from "react";
    - Based on the partial code snippet, this looks like the beginning of a React functional component for a "Not Found" or 404 error page, which would typically render a page that displays when a user navigates to a route that doesn't exist in the web application.
  • react:
    import * as React from "react";
    - This React functional component creates an SVG icon for encryption, accepting standard SVG properties as props and allowing for flexible customization of the icon's appearance and behavior.
  • react:
    import { SVGProps } from "react";
    - This code is defining a React functional component called EncryptionIcon that renders an SVG icon using the standard SVG properties passed as props, specifically for an encryption-related icon.
  • react: - This code is defining a React functional component called EncryptionStatusIcon that accepts SVG-related props, likely intended to render an icon representing encryption status as an SVG graphic.
  • react:
    import { SVGProps } from "react";
    - This code is defining a React functional component called EncryptionStatusIcon that renders an SVG icon, using TypeScript's SVGProps type to type-check and allow flexible prop passing for SVG elements.
  • react:
    import * as React from "react";
    - Based on the partial import snippet you've shared, it looks like this is starting to import a React hook (likely useCallback) from React, which is typically used to memoize and optimize function performance in React components.
  • react:
    import { useCallback, useEffect, useState } from "react";
    - This React code snippet appears to be importing React hooks like useCallback, useEffect, and useState to manage state, side effects, and memoize functions within a component, specifically in a CommandBar screen of a web application.
  • react:
    import * as React from "react";
    - Based on the partial code snippet you've shared, it looks like the code is importing the Fragment component from React, which is typically used to group multiple elements without adding an extra DOM node to the rendered output.
  • react:
    import { Fragment } from "react";
    - Based on the partial code snippet, it appears this React component is setting up a KBar provider (a command palette library) within a console-related screen, likely to enable quick navigation or command execution in a web application interface.
  • react:
    import React from "react";
    - Based on the partial import statement you've shown, this code appears to be importing React and defining some types/constants related to menu items and user permissions, likely for setting up navigation or access control in a React-based console or admin interface.
  • react: - This code appears to be importing React and some UI components (DisabledIcon, EnabledIcon, Box) along with a type definition for BucketVersioningResponse, likely preparing to create a React component that will display versioning information for a bucket in a web application.
  • react: - In this specific code snippet, React is being imported along with Luxon's DateTime, and an array of column definitions (ACCOUNT_TABLE_COLUMNS) is being defined for what appears to be an account-related table, likely to be used in rendering a table of account information with predefined column labels.
  • react: - Based on the partial import statement, this appears to be a React component file that is importing UI components like Box and HelpIc (likely a help icon) from a component library, potentially to render a help information box or tooltip related to adding a service account.
  • react: - Based on the partial context provided, this seems to be the beginning of a React component file related to a help box for selecting notification endpoint types, with an import statement for React and potentially a HelpBox and Lambda component, likely intended to provide explanatory or contextual help in a web application's console/account section.
  • react: - Based on the partial code snippet you've shared, it appears to be the beginning of a TypeScript React component definition for a SearchBox, likely defining a type and importing necessary components and styling utilities for creating a search input interface.
  • react: - I apologize, but the code snippet you've shared appears to be incomplete. The import statement is cut off mid-line, so I cannot provide a precise description of what the code is doing with React. Could you please provide the full import statement or surrounding code context?
  • react: - This React functional component named DashboardItemBox is creating a reusable container (Box) component that can wrap and render any child components passed to it, likely for a dashboard interface, with flexible styling from the "mds" design system.
  • react: - Based on the partial import statement, this appears to be a React component file that is importing some UI components (Box, Loader, Success) from a styled component library, likely to render a time-related statistic item in a dashboard or console screen, though without seeing the full implementation I can only provide a general inference.
  • react: - Based on the context, this appears to be a React component (ConfirmDeleteDestinationModal) that is importing React and a ConfirmDialog component, likely to create a modal dialog for confirming the deletion of an event destination, with an incomplete import statement for an icon component.
  • react: - This code snippet appears to be importing essential React and routing-related dependencies (React, useNavigate from react-router-dom, and lodash's get function) to prepare for creating a styled React component for a destination button in a web application's console screen.
  • react: - This code appears to be importing React and several utility libraries (lodash's get, styled-components, and an MDS Box component) in preparation for creating a React component related to event destination target titles, though the import statements seem to be incomplete or have a typo with the random "i" character.
  • react: - Based on the incomplete import statement, it seems this code is importing React and some UI components (Box and GroupsIco) from a component library, likely preparing to create a React component related to displaying help information for adding groups in a web application's console screen.
  • react: - Based on the partial code snippet, it appears to be importing React and some custom components/permissions related to an Identity Provider (IDP) configuration screen, likely preparing to render a React component for adding OpenID Connect configuration settings.
  • react: - Based on the partial import snippet, it seems this React component is likely importing React core functionality, permissions-related constants, and potentially a lock icon component for an Identity Provider (IDP) configuration details screen.
  • react: - This code appears to be defining a React functional component called IDPOpenIDConfigurations, but the code snippet is incomplete as the ret statement seems to be cut off, so it's not clear what the component is actually rendering or doing.
  • react:
    import React from "react";
    - This code snippet appears to be importing React routing components and a higher-order component (withSuspense) to set up routes for a React application's KMS (Key Management System) screen, likely preparing to define and manage page navigation with lazy-loaded components.
  • react:
    import * as React from "react";
    - This React functional component is creating a reusable SVG check icon that accepts standard SVG properties as props, allowing flexible customization of the icon's appearance and behavior.
  • react:
    import { SVGProps } from "react";
    - This code is defining a React functional component called CheckIcon that renders an SVG check mark icon, using TypeScript's SVGProps to type the props for the SVG element, allowing for flexible SVG attribute customization.
  • react: - Based on the limited context, this appears to be the beginning of a React component import statement for a License Consent Modal, likely importing some UI components and utilities related to displaying a modal dialog about licensing terms.
  • react: - This code snippet defines a React functional component called LicenseLink that renders a hyperlink (anchor tag) pointing to a Min.io compliance webpage, likely for displaying license or terms of service information.
  • react:
    import React from "react";
    - Based on the limited context provided, this code snippet appears to be defining an interface for a license plan option in a React application, specifically declaring the structure of an object that represents different licensing plan details with a plan ID and plan name.
  • react: - Based on the partial code snippet, this appears to be a React component importing Redux hooks and a Menu component, likely preparing to render a menu in a console/dashboard screen using React and Redux state management.
  • react: - This code snippet appears to be importing React, a SearchBox component, and an action creator (setSearchObjects) from a slice, likely preparing to implement a search functionality within an object browser screen of a React application.
  • react: - Based on the context provided, this appears to be an import statement in a React TypeScript file for a component related to adding a help box or help icon in a policy console screen, likely importing a help icon component from a UI library.
  • react: - This code snippet appears to be importing React and routing-related components (Route and Routes) from React Router, likely preparing to set up routing for a policies-related screen in a web application, with a fallback NotFoundPage component for unmatched routes.
  • react: - Based on the partial import and context, this appears to be a React component for a cluster registration form, likely involving form layout, select inputs, and state management related to subnet organization selection.
  • react: - This code appears to be importing React and several UI components (Box, Button, FormLayout, InputBox, OnlineRegistrationIcon, and UsersIcon) from an unnamed library, likely in preparation for creating a user interface for an online registration screen in a React application.
  • react: - This code appears to be the beginning of defining a React functional component called RegistrationStatusBanner that seems intended to display a banner related to a user's registration status, with an email parameter that has a default value.
  • react: - Based on the partial code snippet, this appears to be a React component file related to configuring or displaying a subnet MFA (Multi-Factor Authentication) token, likely using Material Design System (MDS) components and Redux for state management (via useSelector).
  • react: - Based on the partial code snippet, this looks like the beginning of a React component file (SpeedTestUnit.tsx) that is importing React and styled-components for creating a styled React component related to a speed test functionality.
  • react:
    import React from "react";
    - This code appears to be importing React routing components (Route, Routes) and a higher-order component (withSuspense) to set up lazy-loaded route handling in a React application, likely for managing navigation and code-splitting in the Tools screen component.
  • react:
    import { Fragment, useEffect, useState } from "react";
    - Based on the partial import and context, this React component appears to be using hooks like useState and useEffect to manage state and side effects, likely for handling trace or logging functionality in a web application console screen.
  • react: - I apologize, but the code snippet you've provided is incomplete. It appears to be the beginning of an import statement for a React component, but it cuts off mid-word. Without the full context, I can't accurately describe what this specific code is doing with React.
  • react: - Based on the partial import statement, it looks like this React component is likely importing some UI components (Box and HelpIc) from a component library, possibly to render a help box or information container related to adding a user service account in a web application console.
  • react: - Based on the partial import statement, it appears this React component is likely importing a Redux selector hook (useSelector) to retrieve state related to setting a secret key in a user management context, likely for password or authentication purposes.
  • react: - This code snippet appears to be importing React, a Redux selector hook, and a Redux action creator (setUserName) from a slice file, likely preparing to manage user-related state in a React component using Redux for state management.
  • react:
    import React from "react";
    - Based on the partial code snippet, it appears to be importing React and React Router components (Route, Routes) to set up routing for a React application, likely defining navigation paths for different pages or components, with an incomplete/truncated import statement at the end.
  • react: - Based on the limited context provided, it seems this code appears to be importing React, some components from an "mds" library, Redux selector, and potentially starting to import an "AppStat" type/interface, but the import is incomplete. Without seeing the full file, I can only provide a very generalized observation that it looks like the beginning of a React component that might use Redux state management and Material Design (MDS) styled components.
  • react: - Based on the partial code snippet, it appears to be importing React and various UI components (Button, CopyIcon, InputLabel, ReadBox, Box) from an "mds" library, likely preparing to create a React component related to handling or displaying credentials with copy functionality.

However, the import for "reac" seems to be incomplete, which might be a typo or a cut-off line.

To give a more precise description, I would need to see the complete component definition and implementation. The current snippet seems to be just importing dependencies and starting a type definition.

Other Usages (104)

These usages were analyzed but no breaking changes were detected:

react

Changes

React has been upgraded with 22 breaking changes including mandatory Node.js 18+, removal of legacy APIs (propTypes, defaultProps, string refs, ReactDOM.render), and introduction of the new JSX transform requirement. The update adds 61 new features centered around Server Components, async Actions, form handling (useActionState, useFormStatus), document metadata support, and the new <Activity> component for UI state management.

View 280 more changes
  • <Activity>: A new API to hide and restore the UI and internal state of its children. (vv19.2.0, release notes)
  • useEffectEvent is a React Hook that lets you extract non-reactive logic into an Effect Event. (vv19.2.0, release notes)
  • cacheSignal (for RSCs) lets your know when the cache() lifetime is over. (vv19.2.0, release notes)
  • React Performance tracks appear on the Performance panel’s timeline in your browser developer tools (vv19.2.0, release notes)
  • Added resume APIs for partial pre-rendering with Web Streams: (vv19.2.0, release notes)
  • resume: to resume a prerender to a stream. (vv19.2.0, release notes)
  • resumeAndPrerender: to resume a prerender to HTML. (vv19.2.0, release notes)
  • Updated prerender APIs to return a postponed state that can be passed to the resume APIs. (vv19.2.0, release notes)
  • React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming <ViewTransition> Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics. (vv19.2.0, release notes)
  • Add Node Web Streams (prerender, renderToReadableStream) to server-side-rendering APIs for Node.js (vv19.2.0, release notes)
  • Use underscore instead of : IDs generated by useId (vv19.2.0, release notes)
  • <Activity /> was developed over many years, starting before ClassComponent.setState (@​acdlite @​sebmarkbage and many others) (vv19.2.0, release notes)
  • Stringify context as "SomeContext" instead of "SomeContext.Provider" (@​kassens #33507) (vv19.2.0, release notes)
  • Include stack of cause of React instrumentation errors with %o placeholder (@​eps1lon #34198) (vv19.2.0, release notes)
  • Fix infinite useDeferredValue loop in popstate event (@​acdlite #32821) (vv19.2.0, release notes)
  • Fix a bug when an initial value was passed to useDeferredValue (@​acdlite #34376) (vv19.2.0, release notes)
  • Fix a crash when submitting forms with Client Actions (@​sebmarkbage #33055) (vv19.2.0, release notes)
  • Hide/unhide the content of dehydrated suspense boundaries if they resuspend (@​sebmarkbage #32900) (vv19.2.0, release notes)
  • Avoid stack overflow on wide trees during Hot Reload (@​sophiebits #34145) (vv19.2.0, release notes)
  • Improve Owner and Component stacks in various places (@​sebmarkbage, @​eps1lon: #33629, #33724, #32735, #33723) (vv19.2.0, release notes)
  • Add cacheSignal (@​sebmarkbage #33557) (vv19.2.0, release notes)
  • Block on Suspensey Fonts during reveal of server-side-rendered content (@​sebmarkbage #33342) (vv19.2.0, release notes)
  • Use underscore instead of : for IDs generated by useId (@​sebmarkbage, @​eps1lon: #32001, [Fizz] Block on Suspensey Fonts during reveal facebook/react#33342#33099, #33422) (vv19.2.0, release notes)
  • Stop warning when ARIA 1.3 attributes are used (@​Abdul-Omira #34264) (vv19.2.0, release notes)
  • Allow nonce to be used on hoistable styles (@​Andarist #32461) (vv19.2.0, release notes)
  • Warn for using a React owned node as a Container if it also has text content (@​sebmarkbage #32774) (vv19.2.0, release notes)
  • s/HTML/text for for error messages if text hydration mismatches (@​rickhanlonii #32763) (vv19.2.0, release notes)
  • Fix a bug with React.use inside React.lazy-ed Component (@​hi-ogawa #33941) (vv19.2.0, release notes)
  • Enable the progressiveChunkSize option for server-side-rendering APIs (@​sebmarkbage #33027) (vv19.2.0, release notes)
  • Fix a bug with deeply nested Suspense inside Suspense fallback when server-side-rendering (@​gnoff #33467) (vv19.2.0, release notes)
  • Avoid hanging when suspending after aborting while rendering (@​gnoff #34192) (vv19.2.0, release notes)
  • Add Node Web Streams to server-side-rendering APIs for Node.js (@​sebmarkbage #33475) (vv19.2.0, release notes)
  • Preload <img> and <link> using hints before they're rendered (@​sebmarkbage #34604) (vv19.2.0, release notes)
  • Log error if production elements are rendered during development (@​eps1lon #34189) (vv19.2.0, release notes)
  • Fix a bug when returning a Temporary reference (e.g. a Client Reference) from Server Functions (@​sebmarkbage #34084, @​denk0403 #33761) (vv19.2.0, release notes)
  • Pass line/column to filterStackFrame (@​eps1lon #33707) (vv19.2.0, release notes)
  • Support Async Modules in Turbopack Server References (@​lubieowoce #34531) (vv19.2.0, release notes)
  • Add support for .mjs file extension in Webpack (@​jennyscript #33028) (vv19.2.0, release notes)
  • Fix a wrong missing key warning (@​unstubbable #34350) (vv19.2.0, release notes)
  • Make console log resolve in predictable order (@​sebmarkbage #33665) (vv19.2.0, release notes)
  • createContainer and createHydrationContainer had their parameter order adjusted after on* handlers to account for upcoming experimental APIs (vv19.2.0, release notes)
  • New Violations: Disallow calling use within try/catch blocks. (@​poteto in #34040) (vv19.2.0, release notes)
  • New Violations: Disallow calling useEffectEvent functions in arbitrary closures. (@​jbrown215 in #33544) (vv19.2.0, release notes)
  • Handle React.useEffect in addition to useEffect in rules-of-hooks. (@​Ayc0 in #34076) (vv19.2.0, release notes)
  • Added react-hooks settings config option that to accept additionalEffectHooks that are used across exhaustive-deps and rules-of-hooks rules. (@​jbrown215) in #34497 (vv19.2.0, release notes)
  • Fixed Owner Stacks to work with ES2015 function.name semantics (#33680 by @​hoxyq) (vv19.1.1, release notes)
  • Added Owner Stack feature for tracking components responsible for rendering a specific component (vv19.1.0, release notes)
  • Owner Stacks can be logged during debugging (vv19.1.0, release notes)
  • Owner Stacks can be used to enhance error overlays and development tools (vv19.1.0, release notes)
  • Owner Stacks are only available in development builds (vv19.1.0, release notes)
  • Confirmed no changes to Component Stacks in production builds (vv19.1.0, release notes)
  • An Owner Stack is a development-only stack trace that helps identify which components are responsible for rendering a particular component. An Owner Stack is distinct from a Component Stacks, which shows the hierarchy of components leading to an error. (vv19.1.0, release notes)
  • The captureOwnerStack API is only available in development mode and returns a Owner Stack, if available. The API can be used to enhance error overlays or log component relationships when debugging. #29923, #32353, #30306, (vv19.1.0, release notes)
  • Enhanced support for Suspense boundaries to be used anywhere, including the client, server, and during hydration. #32069, #32163, #32224, #32252 (vv19.1.0, release notes)
  • Reduced unnecessary client rendering through improved hydration scheduling #31751 (vv19.1.0, release notes)
  • Increased priority of client rendered Suspense boundaries #31776 (vv19.1.0, release notes)
  • Fixed frozen fallback states by rendering unfinished Suspense boundaries on the client. #31620 (vv19.1.0, release notes)
  • Reduced garbage collection pressure by improving Suspense boundary retries. #31667 (vv19.1.0, release notes)
  • Fixed erroneous “Waiting for Paint” log when the passive effect phase was not delayed #31526 (vv19.1.0, release notes)
  • Fixed a regression causing key warnings for flattened positional children in development mode. #32117 (vv19.1.0, release notes)
  • Updated useId to use valid CSS selectors, changing format from :r123: to «r123». #32001 (vv19.1.0, release notes)
  • Added a dev-only warning for null/undefined created in useEffect, useInsertionEffect, and useLayoutEffect. #32355 (vv19.1.0, release notes)
  • Improved consistency across prod and dev to improve compatibility with Google Closure Complier and bindings #31808 (vv19.1.0, release notes)
  • Improve passive effect scheduling for consistent task yielding. #31785 (vv19.1.0, release notes)
  • Fixed asserts in React Native when passChildrenWhenCloningPersistedNodes is enabled for OffscreenComponent rendering. #32528 (vv19.1.0, release notes)
  • Fixed component name resolution for Portal #32640 (vv19.1.0, release notes)
  • Added support for beforetoggle and toggle events on the dialog element. #32479 #32479 (vv19.1.0, release notes)
  • Fixed double warning when the href attribute is an empty string #31783 (vv19.1.0, release notes)
  • Fixed an edge case where getHoistableRoot() didn’t work properly when the container was a Document #32321 (vv19.1.0, release notes)
  • Removed support for using HTML comments (e.g. <!-- -->) as a DOM container. #32250 (vv19.1.0, release notes)
  • Added support for <script> and <template> tags to be nested within <select> tags. #31837 (vv19.1.0, release notes)
  • Fixed responsive images to be preloaded as HTML instead of headers #32445 (vv19.1.0, release notes)
  • Added exports field to package.json for use-sync-external-store to support various entrypoints. #25231 (vv19.1.0, release notes)
  • Added unstable_prerender, a new experimental API for prerendering React Server Components on the server #31724 (vv19.1.0, release notes)
  • Fixed an issue where streams would hang when receiving new chunks after a global error #31840, #31851 (vv19.1.0, release notes)
  • Fixed an issue where pending chunks were counted twice. #31833 (vv19.1.0, release notes)
  • Added support for streaming in edge environments #31852 (vv19.1.0, release notes)
  • Added support for sending custom error names from a server so that they are available in the client for console replaying. #32116 (vv19.1.0, release notes)
  • Updated the server component wire format to remove IDs for hints and console.log because they have no return value #31671 (vv19.1.0, release notes)
  • Exposed registerServerReference in client builds to handle server references in different environments. #32534 (vv19.1.0, release notes)
  • Added react-server-dom-parcel package which integrates Server Components with the Parcel bundler #31725, #32132, #31799, #32294, #31741 (vv19.1.0, release notes)
  • Added warnings for deprecated APIs to help prepare for React 19 (vv19.0.0, release notes)
  • Recommend upgrading to React 18.3.1 as a transitional step before moving to React 19 (vv19.0.0, release notes)
  • Actions: startTransition can now accept async functions. Functions passed to startTransition are called “Actions”. A given Transition can include one or more Actions which update state in the background and update the UI with one commit. In addition to updating state, Actions can now perform side effects including async requests, and the Action will wait for the work to finish before finishing the Transition. This feature allows Transitions to include side effects like fetch() in the pending state, and provides support for error handling, and optimistic updates. (vv19.0.0, release notes)
  • useActionState: is a new hook to order Actions inside of a Transition with access to the state of the action, and the pending state. It accepts a reducer that can call Actions, and the initial state used for first render. It also accepts an optional string that is used if the action is passed to a form action prop to support progressive enhancement in forms. (vv19.0.0, release notes)
  • useOptimistic: is a new hook to update state while a Transition is in progress. It returns the state, and a set function that can be called inside a transition to “optimistically” update the state to expected final value immediately while the Transition completes in the background. When the transition finishes, the state is updated to the new value. (vv19.0.0, release notes)
  • use: is a new API that allows reading resources in render. In React 19, use accepts a promise or Context. If provided a promise, use will suspend until a value is resolved. use can only be used in render but can be called conditionally. (vv19.0.0, release notes)
  • ref as a prop: Refs can now be used as props, removing the need for forwardRef. (vv19.0.0, release notes)
  • Suspense sibling pre-warming: When a component suspends, React will immediately commit the fallback of the nearest Suspense boundary, without waiting for the entire sibling tree to render. After the fallback commits, React will schedule another render for the suspended siblings to “pre-warm” lazy requests. (vv19.0.0, release notes)
  • <form> action prop: Form Actions allow you to manage forms automatically and integrate with useFormStatus. When a <form> action succeeds, React will automatically reset the form for uncontrolled components. The form can be reset manually with the new requestFormReset API. (vv19.0.0, release notes)
  • <button> and <input> formAction prop: Actions can be passed to the formAction prop to configure form submission behavior. This allows using different Actions depending on the input. (vv19.0.0, release notes)
  • useFormStatus: is a new hook that provides the status of the parent <form> action, as if the form was a Context provider. The hook returns the values: pending, data, method, and action. (vv19.0.0, release notes)
  • Support for Document Metadata: We’ve added support for rendering document metadata tags in components natively. React will automatically hoist them into the <head> section of the document. (vv19.0.0, release notes)
  • Support for Stylesheets: React 19 will ensure stylesheets are inserted into the <head> on the client before revealing the content of a Suspense boundary that depends on that stylesheet. (vv19.0.0, release notes)
  • Support for async scripts: Async scripts can be rendered anywhere in the component tree and React will handle ordering and deduplication. (vv19.0.0, release notes)
  • Support for preloading resources: React 19 ships with preinit, preload, prefetchDNS, and preconnect APIs to optimize initial page loads by moving discovery of additional resources like fonts out of stylesheet loading. They can also be used to prefetch resources used by an anticipated navigation. (vv19.0.0, release notes)
  • Added prerender and prerenderToNodeStream APIs for static site generation. They are designed to work with streaming environments like Node.js Streams and Web Streams. Unlike renderToString, they wait for data to load for HTML generation. (vv19.0.0, release notes)
  • RSC features such as directives, server components, and server functions are now stable. This means libraries that ship with Server Components can now target React 19 as a peer dependency with a react-server export condition for use in frameworks that support the Full-stack React Architecture. The underlying APIs used to implement a React Server Components bundler or framework do not follow semver and may break between minors in React 19.x. See docs for how to support React Server Components. (vv19.0.0, release notes)
  • element.ref access: React 19 supports ref as a prop, so we’re deprecating element.ref in favor of element.props.ref. Accessing will result in a warning. (vv19.0.0, release notes)
  • react-test-renderer: In React 19, react-test-renderer logs a deprecation warning and has switched to concurrent rendering for web usage. We recommend migrating your tests to @​testinglibrary.com/docs/react-testing-library/intro/) or @​testingesting-library.com/docs/react-native-testing-library/intro) (vv19.0.0, release notes)
  • Removal of long-deprecated APIs in React 19 (vv19.0.0, release notes)
  • Recommended to first upgrade to version 18.3.1 to see additional deprecation warnings before migrating to React 19 (vv19.0.0, release notes)
  • New JSX Transform is now required: We introduced a new JSX transform in 2020 to improve bundle size and use JSX without importing React. In React 19, we’re adding additional improvements like using ref as a prop and JSX speed improvements that require the new transform. (vv19.0.0, release notes)
  • Errors in render are not re-thrown: Errors that are not caught by an Error Boundary are now reported to window.reportError. Errors that are caught by an Error Boundary are reported to console.error. We’ve introduced onUncaughtError and onCaughtError methods to createRoot and hydrateRoot to customize this error handling. (vv19.0.0, release notes)
  • Removed: propTypes: Using propTypes will now be silently ignored. If required, we recommend migrating to TypeScript or another type-checking solution. (vv19.0.0, release notes)
  • Removed: defaultProps for functions: ES6 default parameters can be used in place. Class components continue to support defaultProps since there is no ES6 alternative. (vv19.0.0, release notes)
  • Removed: contextTypes and getChildContext: Legacy Context for class components has been removed in favor of the contextType API. (vv19.0.0, release notes)
  • Removed: string refs: Any usage of string refs need to be migrated to ref callbacks. (vv19.0.0, release notes)
  • Removed: Module pattern factories: A rarely used pattern that can be migrated to regular functions. (vv19.0.0, release notes)
  • Removed: React.createFactory: Now that JSX is broadly supported, all createFactory usage can be migrated to JSX components. (vv19.0.0, release notes)
  • Removed: react-test-renderer/shallow: This has been a re-export of react-shallow-renderer since React 18. If needed, you can continue to use the third-party package directly. We recommend using @​testinglibrary.com/docs/react-testing-library/intro/) or @​testingesting-library.com/docs/react-native-testing-library/intro) instead. (vv19.0.0, release notes)
  • Removed: react-dom/test-utils: We’ve moved act from react-dom/test-utils to react. All other utilities have been removed. (vv19.0.0, release notes)
  • Removed: ReactDOM.render, ReactDOM.hydrate: These have been removed in favor of the concurrent equivalents: ReactDOM.createRoot and ReactDOM.hydrateRoot. (vv19.0.0, release notes)
  • Removed: unmountComponentAtNode: Removed in favor of root.unmount(). (vv19.0.0, release notes)
  • Removed: ReactDOM.findDOMNode: You can replace ReactDOM.findDOMNode with DOM Refs. (vv19.0.0, release notes)
  • <Context> as a provider: You can now render <Context> as a provider instead of <Context.Provider>. (vv19.0.0, release notes)
  • Cleanup functions for refs: When the component unmounts, React will call the cleanup function returned from the ref callback. (vv19.0.0, release notes)
  • useDeferredValue initial value argument: When provided, useDeferredValue will return the initial value for the initial render of a component, then schedule a re-render in the background with the deferredValue returned. (vv19.0.0, release notes)
  • Support for Custom Elements: React 19 now passes all tests on Custom Elements Everywhere. (vv19.0.0, release notes)
  • StrictMode changes: useMemo and useCallback will now reuse the memoized results from the first render, during the second render. Additionally, StrictMode will now double-invoke ref callback functions on initial mount. (vv19.0.0, release notes)
  • UMD builds removed: To load React 19 with a script tag, we recommend using an ESM-based CDN such as esm.sh. (vv19.0.0, release notes)
  • Diffs for hydration errors: In the case of a mismatch, React 19 logs a single error with a diff of the mismatched content. (vv19.0.0, release notes)
  • Compatibility with third-party scripts and extensions: React will now force a client re-render to fix up any mismatched content caused by elements inserted by third-party JS. (vv19.0.0, release notes)
  • Use the npx types-react-codemod@​latest preset-19 command to automatically update React TypeScript files to a new version/preset (vv19.0.0, release notes)
  • Removed deprecated TypeScript types: (vv19.0.0, release notes)
  • ReactChild (replacement: React.ReactElement | number | string) (vv19.0.0, release notes)
  • ReactFragment (replacement: Iterable<React.ReactNode>) (vv19.0.0, release notes)
  • ReactNodeArray (replacement: ReadonlyArray<React.ReactNode>) (vv19.0.0, release notes)
  • ReactText (replacement: number | string) (vv19.0.0, release notes)
  • VoidFunctionComponent (replacement: FunctionComponent) (vv19.0.0, release notes)
  • VFC (replacement: FC) (vv19.0.0, release notes)
  • Moved to prop-types: Requireable, ValidationMap, Validator, WeakValidationMap (vv19.0.0, release notes)
  • Moved to create-react-class: ClassicComponentClass, ClassicComponent, ClassicElement, ComponentSpec, Mixin, ReactChildren, ReactHTML, ReactSVG, SFCFactory (vv19.0.0, release notes)
  • Disallow implicit return in refs: refs can now accept cleanup functions. When you return something else, we can’t tell if you intentionally returned something not meant to clean up or returned the wrong value. Implicit returns of anything but functions will now error. (vv19.0.0, release notes)
  • Require initial argument to useRef: The initial argument is now required to match useState, createContext etc (vv19.0.0, release notes)
  • Refs are mutable by default: Ref objects returned from useRef() are now always mutable instead of sometimes being immutable. This feature was too confusing for users and conflicted with legit cases where refs were managed by React and manually written to. (vv19.0.0, release notes)
  • Strict ReactElement typing: The props of React elements now default to unknown instead of any if the element is typed as ReactElement (vv19.0.0, release notes)
  • JSX namespace in TypeScript: The global JSX namespace is removed to improve interoperability with other libraries using JSX. Instead, the JSX namespace is available from the React package: import { JSX } from 'react' (vv19.0.0, release notes)
  • Better useReducer typings: Most useReducer usage should not require explicit type arguments. For example, ```diff -useReducer<React.Reducer<State, Action>>(reducer) +useReducer(reducer) (vv19.0.0, release notes)
  • Change in useReducer generic type signature from <React.Reducer<State, Action>> to <State, [Action]> (vv19.0.0, release notes)
  • Add support for async Actions (#26621, #26726, #28078, #28097, #29226, #29618, #29670, #26716 by @​acdlite and @​sebmarkbage) (vv19.0.0, release notes)
  • Add useActionState() hook to update state based on the result of a Form Action (#27270, #27278, #27309, #27302, #27307, #27366, #27370, #27321, #27374, #27372, #27397, #27399, #27460, #28557, #27570, #27571, #28631, #28788, #29694, #29695, #29694, #29665, #28232, #28319 by @​acdlite, @​eps1lon, and @​rickhanlonii) (vv19.0.0, release notes)
  • Add use() API to read resources in render (#25084, #25202, #25207, #25214, #25226, #25247, #25539, #25538, #25537, #25543, #25561, #25620, #25615, #25922, #25641, #25634, #26232, #26536, #26739, #28233 by @​acdlite, @​MofeiZ, @​sebmarkbage, @​sophiebits, @​eps1lon, and @​hansottowirtz) (vv19.0.0, release notes)
  • Add useOptimistic() hook to display mutated state optimistically during an async mutation (#26740, #26772, #27277, #27453, #27454, #27936 by @​acdlite) (vv19.0.0, release notes)
  • Added an initialValue argument to useDeferredValue() hook (#27500, #27509, #27512, #27888, #27550 by @​acdlite) (vv19.0.0, release notes)
  • Support refs as props, warn on element.ref access (#28348, #28464, #28731 by @​acdlite) (vv19.0.0, release notes)
  • Support Custom Elements (#22184, #26524, #26523, #27511, #24541 by @​josepharhar, @​sebmarkbage, @​gnoff and @​eps1lon) (vv19.0.0, release notes)
  • Add ref cleanup function (#25686, #28883, #28910 by @​sammy-SC), @​jackpope, and @​kassens) (vv19.0.0, release notes)
  • Sibling pre-rendering replaced by sibling pre-warming (#26380, #26549, #30761, #30800, #30762, #30879, #30934, #30952, #31056, #31452 by @​sammy-SC), @​acdlite, @​gnoff, @​jackpope, @​rickhanlonii) (vv19.0.0, release notes)
  • Don’t rethrow errors at the root (#28627, #28641 by @​sebmarkbage) (vv19.0.0, release notes)
  • Batch sync discrete, continuous, and default lanes (#25700 by @​tyao1) (vv19.0.0, release notes)
  • Switch <Context> to mean <Context.Provider> (#28226 by @​gaearon) (vv19.0.0, release notes)
  • Changes to StrictMode (vv19.0.0, release notes)
  • Handle info, group, and groupCollapsed in StrictMode logging (#25172 by @​timneutkens) (vv19.0.0, release notes)
  • Refs are now attached/detached/attached in StrictMode (#25049 by @​sammy-SC) (vv19.0.0, release notes)
  • Fix useSyncExternalStore() hydration in StrictMode (#26791 by @​sophiebits) (vv19.0.0, release notes)
  • Always trigger componentWillUnmount() in StrictMode (#26842 by @​tyao1) (vv19.0.0, release notes)
  • Restore double invoking useState() and useReducer() initializer functions in StrictMode (#28248 by @​eps1lon) (vv19.0.0, release notes)
  • Reuse memoized result from first pass (#25583 by @​acdlite) (vv19.0.0, release notes)
  • Fix useId() in StrictMode (#25713 by @​gnoff) (vv19.0.0, release notes)
  • Add component name to StrictMode error messages (#25718 by @​sammy-SC) (vv19.0.0, release notes)
  • Add support for rendering BigInt (#24580 by @​eps1lon) (vv19.0.0, release notes)
  • act() no longer checks shouldYield which can be inaccurate in test environments (#26317 by @​acdlite) (vv19.0.0, release notes)
  • Warn when keys are spread with props (#25697, #26080 by @​sebmarkbage and @​kassens) (vv19.0.0, release notes)
  • Generate sourcemaps for production build artifacts (#26446 by @​markerikson) (vv19.0.0, release notes)
  • Improve stack diffing algorithm (#27132 by @​KarimP) (vv19.0.0, release notes)
  • Suspense throttling lowered from 500ms to 300ms (#26803 by @​acdlite) (vv19.0.0, release notes)
  • Lazily propagate context changes (#20890 by @​acdlite and @​gnoff) (vv19.0.0, release notes)
  • Immediately rerender pinged fiber (#25074 by @​acdlite) (vv19.0.0, release notes)
  • Move update scheduling to microtask (#26512 by @​acdlite) (vv19.0.0, release notes)
  • Consistently apply throttled retries (#26611, #26802 by @​acdlite) (vv19.0.0, release notes)
  • Suspend Thenable/Lazy if it's used in React.Children (#28284 by @​sebmarkbage) (vv19.0.0, release notes)
  • Detect infinite update loops caused by render phase updates (#26625 by @​acdlite) (vv19.0.0, release notes)
  • Update conditional hooks warning (#29626 by @​sophiebits) (vv19.0.0, release notes)
  • Update error URLs to go to new docs (#27240 by @​rickhanlonii) (vv19.0.0, release notes)
  • Rename the react.element symbol to react.transitional.element (#28813 by @​sebmarkbage) (vv19.0.0, release notes)
  • Fix crash when suspending in shell during useSyncExternalStore() re-render (#27199 by @​acdlite) (vv19.0.0, release notes)
  • Fix incorrect “detected multiple renderers" error in tests (#22797 by @​eps1lon) (vv19.0.0, release notes)
  • Fix bug where effect cleanup may be called twice after bailout (#26561 by @​acdlite) (vv19.0.0, release notes)
  • Fix suspending in shell during discrete update (#25495 by @​acdlite) (vv19.0.0, release notes)
  • Fix memory leak after repeated setState bailouts (#25309 by @​acdlite) (vv19.0.0, release notes)
  • Fix useSyncExternalStore() dropped update when state is dispatched in render phase (#25578 by @​pandaiolo) (vv19.0.0, release notes)
  • Fix logging when rendering a lazy fragment (#30372 by @​tomtom-sherman)) (vv19.0.0, release notes)
  • Remove string refs (#25383, #28322 by @​eps1lon and @​acdlite) (vv19.0.0, release notes)
  • Remove Legacy Context (#30319 by @​kassens) (vv19.0.0, release notes)
  • Remove RefreshRuntime.findAffectedHostInstances (#30538 by @​gaearon) (vv19.0.0, release notes)
  • Remove client caching from cache() API (#27977, #28250 by @​acdlite and @​gnoff) (vv19.0.0, release notes)
  • Remove propTypes (#28324, #28326 by @​gaearon) (vv19.0.0, release notes)
  • Remove defaultProps support, except for classes (#28733 by @​acdlite) (vv19.0.0, release notes)
  • Remove UMD builds (#28735 by @​gnoff) (vv19.0.0, release notes)
  • Remove delay for non-transition updates (#26597 by @​acdlite) (vv19.0.0, release notes)
  • Remove createFactory (#27798 by @​kassens) (vv19.0.0, release notes)
  • Adds Form Actions to handle form submission (#26379, #26674, #26689, #26708, #26714, #26735, #26846, #27358, #28056 by @​sebmarkbage, @​acdlite, and @​jupapios) (vv19.0.0, release notes)
  • Add useFormStatus() hook to provide status information of the last form submission (#26719, #26722, #26788, #29019, #28728, #28413 by @​acdlite and @​eps1lon) (vv19.0.0, release notes)
  • Support for Document Metadata. Adds preinit, preinitModule, preconnect, prefetchDNS, preload, and preloadModule APIs. (vv19.0.0, release notes)
  • #25060, #25243, #25388, #25432, #25436, #25426, #25500, #25480, #25508, #25515, #25514, #25532, #25536, #25534, #25546, #25559, #25569, #25599, #25689, #26106, #26152, #26239, #26237, #26280, #26154, #26256, #26353, #26427, #26450, #26502, #26514, #26531, #26532, #26557, #26871, #26881, #26877, #26873, #26880, #26942, #26938, #26940, #26939, #27030, #27201, #27212, #27217, #27218, #27220, #27224, #27223, #27269, #27260, #27347, #27346, #27361, #27400, #27541, #27610, #28110, #29693, #29732, #29811, #27586, #28069 by @​gnoff, @​sebmarkbage, @​acdlite, @​kassens, @​sokra, @​sweetliquid (vv19.0.0, release notes)
  • Add fetchPriority to <img> and <link> (#25927 by @​styfle) (vv19.0.0, release notes)
  • Add support for SVG transformOrigin prop (#26130 by @​aravarav-ind)) (vv19.0.0, release notes)
  • Add support for onScrollEnd event (#26789 by @​devongovett) (vv19.0.0, release notes)
  • Allow <hr> as child of <select> (#27632 by @​SouSingh) (vv19.0.0, release notes)
  • Add support for Popover API (#27981 by @​eps1lon) (vv19.0.0, release notes)
  • Add support for inert (#24730 by @​eps1lon) (vv19.0.0, release notes)
  • Add support for imageSizes and imageSrcSet (#22550 by @​eps1lon) (vv19.0.0, release notes)
  • Synchronously flush transitions in popstate events (#26025, #27559, #27505, #30759 by @​tyao1 and @​acdlite) (vv19.0.0, release notes)
  • flushSync exhausts queue even if something throws (#26366 by @​acdlite) (vv19.0.0, release notes)
  • Throw error if react and react-dom versions don’t match (#29236 by @​acdlite) (vv19.0.0, release notes)
  • Ensure srcset and src are assigned last on <img> instances (#30340 by @​gnoff) (vv19.0.0, release notes)
  • Javascript URLs are replaced with functions that throw errors (#26507, #29808 by @​sebmarkbage and @​kassens) (vv19.0.0, release notes)
  • Treat toggle and beforetoggle as discrete events (#29176 by @​eps1lon) (vv19.0.0, release notes)
  • Filter out empty src and href attributes (unless for <a href=”” />) (#18513, #28124 by @​bvaughn and @​eps1lon) (vv19.0.0, release notes)
  • Fix unitless scale style property (#25601 by @​JonnyBurger) (vv19.0.0, release notes)
  • Fix onChange error message for controlled <select> (#27740 by @​BikiBiki-das)) (vv19.0.0, release notes)
  • Fix focus restore in child windows after element reorder (#30951 by @​ling1726) (vv19.0.0, release notes)
  • Remove render, hydrate, findDOMNode, unmountComponentAtNode, unstable_createEventHandle, unstable_renderSubtreeIntoContainer, and unstable_runWithPriority. Move createRoot and hydrateRoot to react-dom/client. (#28271 by @​gnoff) (vv19.0.0, release notes)
  • Remove test-utils (#28541 by @​eps1lon) (vv19.0.0, release notes)
  • Remove unstable_flushControlled (#26397 by @​kassens) (vv19.0.0, release notes)
  • Remove legacy mode (#28468 by @​gnoff) (vv19.0.0, release notes)
  • Remove renderToStaticNodeStream() (#28873 by @​gnoff) (vv19.0.0, release notes)
  • Remove unstable_renderSubtreeIntoContainer (#29771 by @​kassens) (vv19.0.0, release notes)
  • Stable release of React Server Components (Many, many PRs by @​sebmarkbage, @​acdlite, @​gnoff, @​sammy-SC, @​gaearon, @​sophiebits, @​unstubbable, @​lubieowoce) (vv19.0.0, release notes)
  • Support Server Actions (#26124, #26632, #27459 by @​sebmarkbage and @​acdlite) (vv19.0.0, release notes)
  • Changes to SSR (vv19.0.0, release notes)
  • Add external runtime which bootstraps hydration on the client for binary transparency (#25437, #26169, #25499 by @​MofeiZ and @​acdlite) (vv19.0.0, release notes)
  • Support subresource integrity for bootstrapScripts and bootstrapModules (#25104 by @​gnoff) (vv19.0.0, release notes)
  • Fix null bytes written at text chunk boundaries (#26228 by @​sophiebits) (vv19.0.0, release notes)
  • Fix logic around attribute serialization (#26526 by @​gnoff) (vv19.0.0, release notes)
  • Fix precomputed chunk cleared on Node 18 (#25645 by @​feedthejim) (vv19.0.0, release notes)
  • Optimize end tag chunks (#27522 by @​yujunjung) (vv19.0.0, release notes)
  • Gracefully handle suspending in DOM configs (#26768 by @​sebmarkbage) (vv19.0.0, release notes)
  • Check for nullish values on ReactCustomFormAction (#26770 by @​sebmarkbage) (vv19.0.0, release notes)
  • Preload bootstrapModules, bootstrapScripts, and update priority queue (#26754, #26753, #27190, #27189 by @​gnoff) (vv19.0.0, release notes)
  • Client render the nearest child or parent suspense boundary if replay errors or is aborted (#27386 by @​sebmarkbage) (vv19.0.0, release notes)
  • Don't bail out of flushing if we still have pending root tasks (#27385 by @​sebmarkbage) (vv19.0.0, release notes)
  • Ensure Resumable State is Serializable (#27388 by @​sebmarkbage) (vv19.0.0, release notes)
  • Remove extra render pass when reverting to client render (#26445 by @​acdlite) (vv19.0.0, release notes)
  • Fix unwinding context during selective hydration (#25876 by @​tyao1) (vv19.0.0, release notes)
  • Stop flowing and then abort if a stream is cancelled (#27405 by @​sebmarkbage) (vv19.0.0, release notes)
  • Pass cancellation reason to abort (#27536 by @​sebmarkbage) (vv19.0.0, release notes)
  • Add onHeaders entrypoint option (#27641, #27712 by @​gnoff) (vv19.0.0, release notes)
  • Escape <style> and <script> textContent to enable rendering inner content without dangerouslySetInnerHTML (#28870, #28871 by @​gnoff) (vv19.0.0, release notes)
  • Fallback to client replaying actions for Blob serialization (#28987 by @​sebmarkbage) (vv19.0.0, release notes)
  • Render Suspense fallback if boundary contains new stylesheet during sync update (#28965 by @​gnoff) (vv19.0.0, release notes)
  • Fix header length tracking (#30327 by @​gnoff) (vv19.0.0, release notes)
  • Use srcset to trigger load event on mount (#30351 by @​gnoff) (vv19.0.0, release notes)
  • Don't perform work when closing stream (#30497 by @​gnoff) (vv19.0.0, release notes)
  • Allow aborting during render (#30488, #30730 by @​gnoff) (vv19.0.0, release notes)
  • Start initial work immediately (#31079 by @​gnoff) (vv19.0.0, release notes)
  • A transition flowing into a dehydrated boundary no longer suspends when showing fallback (#27230 by @​acdlite) (vv19.0.0, release notes)
  • Fix selective hydration triggers false update loop error (#27439 by @​acdlite) (vv19.0.0, release notes)
  • Warn for Child Iterator of all types but allow Generator Components (#28853 by @​sebmarkbage) (vv19.0.0, release notes)
  • Include regular stack trace in serialized errors (#28684, #28738 by @​sebmarkbage) (vv19.0.0, release notes)
  • Aborting early no longer infinitely suspends (#24751 by @​sebmarkbage) (vv19.0.0, release notes)
  • Fix hydration warning suppression in text comparisons (#24784 by @​gnoff) (vv19.0.0, release notes)
  • Changes to error handling in SSR (vv19.0.0, release notes)
  • Add diffs to hydration warnings (#28502, #28512 by @​sebmarkbage) (vv19.0.0, release notes)
  • Make Error creation lazy (#24728 by @​sebmarkbage) (vv19.0.0, release notes)
  • Remove recoverable error when a sync update flows into a dehydrated boundary (#25692 by @​sebmarkbage) (vv19.0.0, release notes)
  • Don't "fix up" mismatched text content with suppressedHydrationWarning (#26391 by @​sebmarkbage) (vv19.0.0, release notes)
  • Fix component stacks in errors (#27456 by @​sebmarkbage) (vv19.0.0, release notes)
  • Add component stacks to onError (#27761, #27850 by @​gnoff and @​sebmarkbage) (vv19.0.0, release notes)
  • Throw hydration mismatch errors once (#28502 by @​sebmarkbage) (vv19.0.0, release notes)
  • Add Bun streaming server renderer (#25597 by @​colinhacks) (vv19.0.0, release notes)
  • Add nonce support to bootstrap scripts (#26738 by @​danieltott) (vv19.0.0, release notes)
  • Add crossorigin support to bootstrap scripts (#26844 by @​HenriqueLimas) (vv19.0.0, release notes)
  • Support nonce and fetchpriority in preload links (#26826 by @​liuyenwei) (vv19.0.0, release notes)
  • Add referrerPolicy to ReactDOM.preload() (#27096 by @​styfle) (vv19.0.0, release notes)
  • Add server condition for react/jsx-dev-runtime (#28921 by @​himself65) (vv19.0.0, release notes)
  • Export version (#29596 by @​unstubbable) (vv19.0.0, release notes)
  • Rename the secret export of Client and Server internals (#28786, #28789 by @​sebmarkbage) (vv19.0.0, release notes)
  • Remove layout effect warning on server (#26395 by @​rickhanlonii) (vv19.0.0, release notes)
  • Remove errorInfo.digest from onRecoverableError (#28222 by @​gnoff) (vv19.0.0, release notes)
  • Add deprecation error to react-test-renderer on web (#27903, #28904 by @​jackpope and @​acdlite) (vv19.0.0, release notes)
  • Render with ConcurrentRoot on web (#28498 by @​jackpope) (vv19.0.0, release notes)
  • Remove react-test-renderer/shallow export (#25475, #28497 by @​sebmarkbage and @​jackpope) (vv19.0.0, release notes)
  • Enable suspending commits without blocking render (#26398, #26427 by @​acdlite) (vv19.0.0, release notes)
  • Remove prepareUpdate (#26583, #27409 by @​sebmarkbage and @​sophiebits) (vv19.0.0, release notes)
  • Enable tree shaking (#27701 by @​markerikson) (vv19.0.0, release notes)
  • Remove isConcurrentMode and isAsyncMode methods (#28224 by @​gaearon) (vv19.0.0, release notes)
  • Remove React internals access (#29868 by @​phryneas) (vv19.0.0, release notes)
  • Fix stale selectors keeping previous store references (#25969 by @​jellevoost) (vv19.0.0, release notes)
References (7)

[1]: CRITICAL: React upgraded to 19.2.0 but react-dom remains at 18.3.1 (line 19), creating an incompatible peer dependency that will cause runtime errors

"react": "^19.2.0",

[2]: CRITICAL: Resolution forces @​types/react to 18.3.3, conflicting with the 19.2.0 upgrade on line 70 and causing TypeScript compilation failures

"@types/react": "^18.3.3"

[3]: POSITIVE: Application already uses ReactDOM.createRoot (modern API), avoiding the breaking change that removed ReactDOM.render

const root = ReactDOM.createRoot(

[4]: POSITIVE: Code search found no usage of deprecated APIs (propTypes, defaultProps, contextTypes, string refs, createFactory) across all 104 React components
https://github.com/franchb/console/blob/c61391c1ef202f712a08cbf07ed4fa7684e1e1e1/web-app/package.json

[5]: Known ecosystem issue: Next.js projects fail to build with @​types/react v19 due to type recognition problems, though this project uses react-scripts (source link)

[6]: Official migration guide documents 22 breaking changes including Node.js 18+ requirement, removed APIs, and TypeScript namespace changes (source link)

[7]: Widespread ERESOLVE conflicts reported with @​testing-library/react and other ecosystem packages still requiring React 18 peer dependencies (source link)


fossabot analyzed this PR using static analysis and dependency research.

@dependabot dependabot bot force-pushed the dependabot/npm_and_yarn/web-app/multi-dcae87122d branch from c61391c to cb78e87 Compare October 2, 2025 09:49
@coderabbitai
Copy link

coderabbitai bot commented Oct 2, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

Bumps [react](https://github.com/facebook/react/tree/HEAD/packages/react) and [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react). These dependencies needed to be updated together.

Updates `react` from 18.3.1 to 19.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.0/packages/react)

Updates `@types/react` from 18.3.23 to 19.2.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: "@types/react"
  dependency-version: 19.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot force-pushed the dependabot/npm_and_yarn/web-app/multi-dcae87122d branch from cb78e87 to 3b74a79 Compare October 2, 2025 09:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant