Repository: vercel/next.js
Pull request: React types update

Bumped `@types/react` and `@types/react-dom` to their latest versions.

Part of https://linear.app/vercel/issue/NAR-747/

---
[Slack Thread](https://vercel.slack.com/archives/D0A6SL1TGVA/p1769523001528019?thread_ts=1769523001.528019&cid=D0A6SL1TGVA)

<a href="https://cursor.com/background-agent?bcId=bc-6b77cf1f-9f97-426b-ae58-5933e40a51b1"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-cursor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-cursor-light.svg"><img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-6b77cf1f-9f97-426b-ae58-5933e40a51b1"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-web-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-web-light.svg"><img alt="Open in Web" src="https://cursor.com/open-in-web.svg"></picture></a>



Changed files:
filename: package.json
patch: @@ -162,8 +162,8 @@
     "@types/jest": "29.5.5",
     "@types/node": "20.17.6",
     "@types/node-fetch": "2.6.1",
-    "@types/react": "19.2.2",
-    "@types/react-dom": "19.2.1",
+    "@types/react": "19.2.10",
+    "@types/react-dom": "19.2.3",
     "@types/relay-runtime": "14.1.13",
     "@types/shell-quote": "1.7.1",
     "@types/string-hash": "1.1.1",
@@ -319,8 +319,8 @@
       "@babel/parser": "7.27.0",
       "@babel/types": "7.27.0",
       "@babel/traverse": "7.27.0",
-      "@types/react": "19.2.2",
-      "@types/react-dom": "19.2.1",
+      "@types/react": "19.2.10",
+      "@types/react-dom": "19.2.3",
       "@types/retry": "0.12.0",
       "jest-snapshot": "30.0.0-alpha.6",
       "react": "19.3.0-canary-10680271-20260126",

filename: packages/next/src/client/app-dir/form.tsx
patch: @@ -1,6 +1,6 @@
 'use client'
 
-import { useCallback, type FormEvent, useContext } from 'react'
+import { useCallback, type SubmitEvent, useContext } from 'react'
 import { addBasePath } from '../add-base-path'
 import { useMergedRef } from '../use-merged-ref'
 import {
@@ -145,7 +145,7 @@ export default function Form({
 }
 
 function onFormSubmit(
-  event: FormEvent<HTMLFormElement>,
+  event: SubmitEvent<HTMLFormElement>,
   {
     actionHref,
     onSubmit,
@@ -177,7 +177,7 @@ function onFormSubmit(
   }
 
   const formElement = event.currentTarget
-  const submitter = (event.nativeEvent as SubmitEvent).submitter
+  const submitter = event.nativeEvent.submitter
 
   let action = actionHref
 

filename: packages/next/src/client/form.tsx
patch: @@ -1,6 +1,6 @@
 'use client'
 
-import { type FormEvent, useContext, forwardRef } from 'react'
+import { type SubmitEvent, useContext, forwardRef } from 'react'
 import { addBasePath } from './add-base-path'
 import { RouterContext } from '../shared/lib/router-context.shared-runtime'
 import type { NextRouter } from './router'
@@ -88,7 +88,7 @@ const Form = forwardRef<HTMLFormElement, FormProps>(function FormComponent(
 export default Form
 
 function onFormSubmit(
-  event: FormEvent<HTMLFormElement>,
+  event: SubmitEvent<HTMLFormElement>,
   {
     actionHref,
     onSubmit,
@@ -120,7 +120,7 @@ function onFormSubmit(
   }
 
   const formElement = event.currentTarget
-  const submitter = (event.nativeEvent as SubmitEvent).submitter
+  const submitter = event.nativeEvent.submitter
 
   let action = actionHref