diff --git a/fixtures/flight-esm/src/Button.js b/fixtures/flight-esm/src/Button.js index 90171e8e84..3c8816e2a2 100644 --- a/fixtures/flight-esm/src/Button.js +++ b/fixtures/flight-esm/src/Button.js @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {experimental_useFormStatus as useFormStatus} from 'react-dom'; +import {useFormStatus} from 'react-dom'; import ErrorBoundary from './ErrorBoundary.js'; const h = React.createElement; diff --git a/fixtures/flight-esm/src/Form.js b/fixtures/flight-esm/src/Form.js index 75f874d6e9..6e6ace9f8a 100644 --- a/fixtures/flight-esm/src/Form.js +++ b/fixtures/flight-esm/src/Form.js @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {experimental_useFormStatus as useFormStatus} from 'react-dom'; +import {useFormStatus} from 'react-dom'; import ErrorBoundary from './ErrorBoundary.js'; const h = React.createElement; diff --git a/fixtures/flight/src/Button.js b/fixtures/flight/src/Button.js index 999c84f580..e62e40c716 100644 --- a/fixtures/flight/src/Button.js +++ b/fixtures/flight/src/Button.js @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {experimental_useFormStatus as useFormStatus} from 'react-dom'; +import {useFormStatus} from 'react-dom'; import ErrorBoundary from './ErrorBoundary.js'; function ButtonDisabledWhilePending({action, children}) { diff --git a/fixtures/flight/src/Counter.js b/fixtures/flight/src/Counter.js index 5af74369a1..f89840de69 100644 --- a/fixtures/flight/src/Counter.js +++ b/fixtures/flight/src/Counter.js @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {experimental_useFormState as useFormState} from 'react-dom'; +import {useFormState} from 'react-dom'; import Container from './Container.js'; diff --git a/fixtures/flight/src/Form.js b/fixtures/flight/src/Form.js index d98452c683..8bb06362d5 100644 --- a/fixtures/flight/src/Form.js +++ b/fixtures/flight/src/Form.js @@ -1,7 +1,7 @@ 'use client'; import * as React from 'react'; -import {experimental_useFormStatus as useFormStatus} from 'react-dom'; +import {useFormStatus} from 'react-dom'; import ErrorBoundary from './ErrorBoundary.js'; function Status() { diff --git a/packages/react-dom/index.classic.fb.js b/packages/react-dom/index.classic.fb.js index 4a85218105..d8814243b6 100644 --- a/packages/react-dom/index.classic.fb.js +++ b/packages/react-dom/index.classic.fb.js @@ -31,8 +31,8 @@ export { unstable_createEventHandle, unstable_renderSubtreeIntoContainer, unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority. - useFormStatus as experimental_useFormStatus, - useFormState as experimental_useFormState, + useFormStatus, + useFormState, prefetchDNS, preconnect, preload, diff --git a/packages/react-dom/index.experimental.js b/packages/react-dom/index.experimental.js index 39151bc1bf..c21671c830 100644 --- a/packages/react-dom/index.experimental.js +++ b/packages/react-dom/index.experimental.js @@ -20,8 +20,8 @@ export { unstable_batchedUpdates, unstable_renderSubtreeIntoContainer, unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority. - useFormStatus as experimental_useFormStatus, - useFormState as experimental_useFormState, + useFormStatus, + useFormState, prefetchDNS, preconnect, preload, diff --git a/packages/react-dom/index.js b/packages/react-dom/index.js index 7d9dff6b46..4db349ea5b 100644 --- a/packages/react-dom/index.js +++ b/packages/react-dom/index.js @@ -23,8 +23,8 @@ export { unstable_createEventHandle, unstable_renderSubtreeIntoContainer, unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority. - useFormStatus as experimental_useFormStatus, - useFormState as experimental_useFormState, + useFormStatus, + useFormState, prefetchDNS, preconnect, preload, diff --git a/packages/react-dom/index.modern.fb.js b/packages/react-dom/index.modern.fb.js index c1548b7303..531f4d429b 100644 --- a/packages/react-dom/index.modern.fb.js +++ b/packages/react-dom/index.modern.fb.js @@ -16,8 +16,8 @@ export { unstable_batchedUpdates, unstable_createEventHandle, unstable_runWithPriority, // DO NOT USE: Temporarily exposed to migrate off of Scheduler.runWithPriority. - useFormStatus as experimental_useFormStatus, - useFormState as experimental_useFormState, + useFormStatus, + useFormState, prefetchDNS, preconnect, preload, diff --git a/packages/react-dom/index.stable.js b/packages/react-dom/index.stable.js index b83cd23d5d..36f5563fda 100644 --- a/packages/react-dom/index.stable.js +++ b/packages/react-dom/index.stable.js @@ -19,6 +19,8 @@ export { unmountComponentAtNode, unstable_batchedUpdates, unstable_renderSubtreeIntoContainer, + useFormStatus, + useFormState, prefetchDNS, preconnect, preload, diff --git a/packages/react-dom/server-rendering-stub.js b/packages/react-dom/server-rendering-stub.js index ef9f14d782..bb6dbd1813 100644 --- a/packages/react-dom/server-rendering-stub.js +++ b/packages/react-dom/server-rendering-stub.js @@ -24,7 +24,7 @@ export { preloadModule, preinit, preinitModule, - experimental_useFormStatus, - experimental_useFormState, + useFormStatus, + useFormState, unstable_batchedUpdates, } from './src/server/ReactDOMServerRenderingStub'; diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzForm-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzForm-test.js index b9ffe6520c..ae56c5eae4 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzForm-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzForm-test.js @@ -31,9 +31,9 @@ describe('ReactDOMFizzForm', () => { React = require('react'); ReactDOMServer = require('react-dom/server.browser'); ReactDOMClient = require('react-dom/client'); - useFormStatus = require('react-dom').experimental_useFormStatus; - useFormState = require('react-dom').experimental_useFormState; - useOptimistic = require('react').experimental_useOptimistic; + useFormStatus = require('react-dom').useFormStatus; + useFormState = require('react-dom').useFormState; + useOptimistic = require('react').useOptimistic; act = require('internal-test-utils').act; container = document.createElement('div'); document.body.appendChild(container); diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 2b9f3b1562..a801be661f 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -89,7 +89,7 @@ describe('ReactDOMFizzServer', () => { if (gate(flags => flags.enableSuspenseList)) { SuspenseList = React.unstable_SuspenseList; } - useFormState = ReactDOM.experimental_useFormState; + useFormState = ReactDOM.useFormState; PropTypes = require('prop-types'); diff --git a/packages/react-dom/src/__tests__/ReactDOMForm-test.js b/packages/react-dom/src/__tests__/ReactDOMForm-test.js index 97cbf1aa62..90efc90cbd 100644 --- a/packages/react-dom/src/__tests__/ReactDOMForm-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMForm-test.js @@ -55,8 +55,8 @@ describe('ReactDOMForm', () => { useState = React.useState; Suspense = React.Suspense; startTransition = React.startTransition; - useFormStatus = ReactDOM.experimental_useFormStatus; - useFormState = ReactDOM.experimental_useFormState; + useFormStatus = ReactDOM.useFormStatus; + useFormState = ReactDOM.useFormState; container = document.createElement('div'); document.body.appendChild(container); diff --git a/packages/react-dom/src/__tests__/react-dom-server-rendering-stub-test.js b/packages/react-dom/src/__tests__/react-dom-server-rendering-stub-test.js index 315d87ed85..0f6b4efa34 100644 --- a/packages/react-dom/src/__tests__/react-dom-server-rendering-stub-test.js +++ b/packages/react-dom/src/__tests__/react-dom-server-rendering-stub-test.js @@ -85,9 +85,9 @@ describe('react-dom-server-rendering-stub', () => { // @gate enableFormActions // @gate enableAsyncActions - it('exports experimental_useFormStatus', async () => { + it('exports useFormStatus', async () => { function App() { - const {pending} = ReactDOM.experimental_useFormStatus(); + const {pending} = ReactDOM.useFormStatus(); return 'Pending: ' + pending; } diff --git a/packages/react-dom/src/server/ReactDOMServerRenderingStub.js b/packages/react-dom/src/server/ReactDOMServerRenderingStub.js index 8adc9ade4a..d3a7f33095 100644 --- a/packages/react-dom/src/server/ReactDOMServerRenderingStub.js +++ b/packages/react-dom/src/server/ReactDOMServerRenderingStub.js @@ -16,8 +16,8 @@ export { prefetchDNS, } from '../shared/ReactDOMFloat'; export { - useFormStatus as experimental_useFormStatus, - useFormState as experimental_useFormState, + useFormStatus, + useFormState, } from 'react-dom-bindings/src/shared/ReactDOMFormActions'; export function createPortal() { diff --git a/packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js b/packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js index 2a36c4cb8c..0bf859f188 100644 --- a/packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js +++ b/packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js @@ -19,7 +19,7 @@ describe('ReactAsyncActions', () => { assertLog = require('internal-test-utils').assertLog; useTransition = React.useTransition; useState = React.useState; - useOptimistic = React.experimental_useOptimistic; + useOptimistic = React.useOptimistic; textCache = new Map(); }); diff --git a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMForm-test.js b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMForm-test.js index 1ba0e10074..f179bc6acb 100644 --- a/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMForm-test.js +++ b/packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMForm-test.js @@ -55,7 +55,7 @@ describe('ReactFlightDOMForm', () => { ReactDOMServer = require('react-dom/server.edge'); ReactDOMClient = require('react-dom/client'); act = require('react-dom/test-utils').act; - useFormState = require('react-dom').experimental_useFormState; + useFormState = require('react-dom').useFormState; container = document.createElement('div'); document.body.appendChild(container); }); diff --git a/packages/react/index.classic.fb.js b/packages/react/index.classic.fb.js index 2d2c4ea8ff..5ea1945956 100644 --- a/packages/react/index.classic.fb.js +++ b/packages/react/index.classic.fb.js @@ -52,7 +52,7 @@ export { useLayoutEffect, useInsertionEffect, useMemo, - experimental_useOptimistic, + useOptimistic, useReducer, useRef, useState, diff --git a/packages/react/index.experimental.js b/packages/react/index.experimental.js index 081fa27469..f1092ff4a8 100644 --- a/packages/react/index.experimental.js +++ b/packages/react/index.experimental.js @@ -50,7 +50,7 @@ export { useInsertionEffect, useLayoutEffect, useMemo, - experimental_useOptimistic, + useOptimistic, useReducer, useRef, useState, diff --git a/packages/react/index.js b/packages/react/index.js index fd2c377668..9ba3d9402c 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -75,7 +75,7 @@ export { useInsertionEffect, useLayoutEffect, useMemo, - experimental_useOptimistic, + useOptimistic, useSyncExternalStore, useReducer, useRef, diff --git a/packages/react/index.modern.fb.js b/packages/react/index.modern.fb.js index 2658db8acf..1ba7d1b42b 100644 --- a/packages/react/index.modern.fb.js +++ b/packages/react/index.modern.fb.js @@ -50,7 +50,7 @@ export { useInsertionEffect, useLayoutEffect, useMemo, - experimental_useOptimistic, + useOptimistic, useReducer, useRef, useState, diff --git a/packages/react/index.stable.js b/packages/react/index.stable.js index 95f0eeb9b5..de0a17cdb7 100644 --- a/packages/react/index.stable.js +++ b/packages/react/index.stable.js @@ -42,6 +42,7 @@ export { useLayoutEffect, useMemo, useReducer, + useOptimistic, useRef, useState, useSyncExternalStore, diff --git a/packages/react/src/React.js b/packages/react/src/React.js index 9c0cda47a8..3e9a869623 100644 --- a/packages/react/src/React.js +++ b/packages/react/src/React.js @@ -111,7 +111,7 @@ export { useInsertionEffect, useLayoutEffect, useMemo, - useOptimistic as experimental_useOptimistic, + useOptimistic, useSyncExternalStore, useReducer, useRef, diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index afb4331dff..5178f2c90f 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -31,6 +31,8 @@ export const enableComponentStackLocations = true; // TODO: Finish rolling out in www export const enableClientRenderFallbackOnTextMismatch = true; +export const enableFormActions = true; +export const enableAsyncActions = true; // Not sure if www still uses this. We don't have a replacement but whatever we // replace it with will likely be different than what's already there, so we @@ -82,8 +84,6 @@ export const enableLegacyCache = __EXPERIMENTAL__; export const enableCacheElement = __EXPERIMENTAL__; export const enableFetchInstrumentation = true; -export const enableFormActions = __EXPERIMENTAL__; - export const enableBinaryFlight = __EXPERIMENTAL__; export const enableTaint = __EXPERIMENTAL__; @@ -120,8 +120,6 @@ export const enableUseEffectEventHook = __EXPERIMENTAL__; // (handled with an MutationObserver) instead of inline-scripts export const enableFizzExternalRuntime = true; -export const enableAsyncActions = __EXPERIMENTAL__; - export const alwaysThrottleRetries = true; export const useMicrotasksForSchedulingInFabric = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index d3b4c1447d..392c8cbb53 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -74,7 +74,7 @@ export const enableDO_NOT_USE_disableStrictPassiveEffect = false; export const enableFizzExternalRuntime = false; export const enableDeferRootSchedulingToMicrotask = true; -export const enableAsyncActions = false; +export const enableAsyncActions = true; export const alwaysThrottleRetries = true; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js index 0589932216..b690f237b1 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js @@ -71,7 +71,7 @@ export const useModernStrictMode = false; export const enableDO_NOT_USE_disableStrictPassiveEffect = false; export const enableDeferRootSchedulingToMicrotask = true; -export const enableAsyncActions = false; +export const enableAsyncActions = true; export const alwaysThrottleRetries = true; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index 1ab428c9d2..e426ade2df 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -74,7 +74,7 @@ export const enableDO_NOT_USE_disableStrictPassiveEffect = false; export const enableFizzExternalRuntime = false; export const enableDeferRootSchedulingToMicrotask = true; -export const enableAsyncActions = false; +export const enableAsyncActions = true; export const alwaysThrottleRetries = true;