diff --git a/fixtures/view-transition/src/components/Page.js b/fixtures/view-transition/src/components/Page.js
index ef1a855320634..587306fe9578f 100644
--- a/fixtures/view-transition/src/components/Page.js
+++ b/fixtures/view-transition/src/components/Page.js
@@ -1,7 +1,7 @@
import React, {
unstable_addTransitionType as addTransitionType,
unstable_ViewTransition as ViewTransition,
- unstable_Activity as Activity,
+ Activity,
useLayoutEffect,
useEffect,
useState,
diff --git a/packages/react-devtools-shared/src/__tests__/storeComponentFilters-test.js b/packages/react-devtools-shared/src/__tests__/storeComponentFilters-test.js
index c29bff05383c5..4faf50e432263 100644
--- a/packages/react-devtools-shared/src/__tests__/storeComponentFilters-test.js
+++ b/packages/react-devtools-shared/src/__tests__/storeComponentFilters-test.js
@@ -199,7 +199,7 @@ describe('Store component filters', () => {
});
it('should filter Activity', async () => {
- const Activity = React.unstable_Activity;
+ const Activity = React.Activity || React.unstable_Activity;
if (Activity != null) {
await actAsync(async () =>
diff --git a/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js b/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js
index 35c10fe0f073e..2ac6cb0a4b603 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFragmentRefs-test.js
@@ -31,7 +31,7 @@ describe('FragmentRefs', () => {
jest.resetModules();
React = require('react');
Fragment = React.Fragment;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
ReactDOMClient = require('react-dom/client');
ReactDOM = require('react-dom');
createPortal = ReactDOM.createPortal;
diff --git a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
index b865b6afd784f..d13303f006a8b 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
@@ -113,7 +113,7 @@ describe('ReactDOMServerPartialHydration', () => {
act = require('internal-test-utils').act;
ReactDOMServer = require('react-dom/server');
Scheduler = require('scheduler');
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
Suspense = React.Suspense;
useSyncExternalStore = React.useSyncExternalStore;
if (gate(flags => flags.enableSuspenseList)) {
diff --git a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydrationActivity-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydrationActivity-test.internal.js
index c21c6469460ee..cf9e5d1d03992 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydrationActivity-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydrationActivity-test.internal.js
@@ -100,7 +100,7 @@ describe('ReactDOMServerPartialHydrationActivity', () => {
act = require('internal-test-utils').act;
ReactDOMServer = require('react-dom/server');
Scheduler = require('scheduler');
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
Suspense = React.Suspense;
useSyncExternalStore = React.useSyncExternalStore;
diff --git a/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydrationActivity-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydrationActivity-test.internal.js
index af5a9c40a5da7..c2a856a018181 100644
--- a/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydrationActivity-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMServerSelectiveHydrationActivity-test.internal.js
@@ -139,7 +139,7 @@ describe('ReactDOMServerSelectiveHydrationActivity', () => {
ReactDOMServer = require('react-dom/server');
act = require('internal-test-utils').act;
Scheduler = require('scheduler');
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
const InternalTestUtils = require('internal-test-utils');
assertLog = InternalTestUtils.assertLog;
diff --git a/packages/react-reconciler/src/__tests__/Activity-test.js b/packages/react-reconciler/src/__tests__/Activity-test.js
index 86db58a09834d..01311217e2444 100644
--- a/packages/react-reconciler/src/__tests__/Activity-test.js
+++ b/packages/react-reconciler/src/__tests__/Activity-test.js
@@ -24,7 +24,7 @@ describe('Activity', () => {
Scheduler = require('scheduler');
act = require('internal-test-utils').act;
LegacyHidden = React.unstable_LegacyHidden;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
useState = React.useState;
useInsertionEffect = React.useInsertionEffect;
useLayoutEffect = React.useLayoutEffect;
@@ -280,7 +280,7 @@ describe('Activity', () => {
// @gate enableActivity
it('nested offscreen does not call componentWillUnmount when hidden', async () => {
- // This is a bug that appeared during production test of .
+ // This is a bug that appeared during production test of .
// It is a very specific scenario with nested Offscreens. The inner offscreen
// goes from visible to hidden in synchronous update.
class ClassComponent extends React.Component {
diff --git a/packages/react-reconciler/src/__tests__/ActivityLegacySuspense-test.js b/packages/react-reconciler/src/__tests__/ActivityLegacySuspense-test.js
index 3d059ab8e3efa..a4ec2298174b9 100644
--- a/packages/react-reconciler/src/__tests__/ActivityLegacySuspense-test.js
+++ b/packages/react-reconciler/src/__tests__/ActivityLegacySuspense-test.js
@@ -22,7 +22,7 @@ describe('Activity Suspense', () => {
Scheduler = require('scheduler');
act = require('internal-test-utils').act;
LegacyHidden = React.unstable_LegacyHidden;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
Suspense = React.Suspense;
useState = React.useState;
useEffect = React.useEffect;
diff --git a/packages/react-reconciler/src/__tests__/ActivityStrictMode-test.js b/packages/react-reconciler/src/__tests__/ActivityStrictMode-test.js
index de8adc7ce3ee4..f8f7fca0e09f0 100644
--- a/packages/react-reconciler/src/__tests__/ActivityStrictMode-test.js
+++ b/packages/react-reconciler/src/__tests__/ActivityStrictMode-test.js
@@ -10,7 +10,7 @@ describe('Activity StrictMode', () => {
log = [];
React = require('react');
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
ReactNoop = require('react-noop-renderer');
act = require('internal-test-utils').act;
});
diff --git a/packages/react-reconciler/src/__tests__/ActivitySuspense-test.js b/packages/react-reconciler/src/__tests__/ActivitySuspense-test.js
index b18573efa5b02..90fdf21a42860 100644
--- a/packages/react-reconciler/src/__tests__/ActivitySuspense-test.js
+++ b/packages/react-reconciler/src/__tests__/ActivitySuspense-test.js
@@ -23,7 +23,7 @@ describe('Activity Suspense', () => {
Scheduler = require('scheduler');
act = require('internal-test-utils').act;
LegacyHidden = React.unstable_LegacyHidden;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
Suspense = React.Suspense;
useState = React.useState;
useEffect = React.useEffect;
diff --git a/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js b/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js
index f8504720ac863..c34e26c67d278 100644
--- a/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js
@@ -34,7 +34,7 @@ describe('ReactDeferredValue', () => {
useMemo = React.useMemo;
useState = React.useState;
Suspense = React.Suspense;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
const InternalTestUtils = require('internal-test-utils');
assertLog = InternalTestUtils.assertLog;
diff --git a/packages/react-reconciler/src/__tests__/ReactErrorStacks-test.js b/packages/react-reconciler/src/__tests__/ReactErrorStacks-test.js
index 77459530e22f9..5f74de7af0ffc 100644
--- a/packages/react-reconciler/src/__tests__/ReactErrorStacks-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactErrorStacks-test.js
@@ -28,7 +28,7 @@ describe('ReactFragment', () => {
React = require('react');
Suspense = React.Suspense;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
ViewTransition = React.unstable_ViewTransition;
ReactNoop = require('react-noop-renderer');
const InternalTestUtils = require('internal-test-utils');
diff --git a/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js b/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js
index 905aac9a7857e..c61336b4dd4f2 100644
--- a/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js
@@ -68,7 +68,7 @@ describe('ReactHooksWithNoopRenderer', () => {
useTransition = React.useTransition;
useDeferredValue = React.useDeferredValue;
Suspense = React.Suspense;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
ContinuousEventPriority =
require('react-reconciler/constants').ContinuousEventPriority;
if (gate(flags => flags.enableSuspenseList)) {
diff --git a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
index e594e4fbedb28..ec88184d40a06 100644
--- a/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
+++ b/packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js
@@ -968,7 +968,7 @@ describe('ReactLazy', () => {
// @gate enableActivity
it('throws with a useful error when wrapping Activity with lazy()', async () => {
- const BadLazy = lazy(() => fakeImport(React.unstable_Activity));
+ const BadLazy = lazy(() => fakeImport(React.Activity));
const root = ReactTestRenderer.create(
}>
@@ -981,7 +981,7 @@ describe('ReactLazy', () => {
await waitForAll(['Loading...']);
- await resolveFakeImport(React.unstable_Activity);
+ await resolveFakeImport(React.Activity);
root.update(
}>
diff --git a/packages/react-reconciler/src/__tests__/ReactSiblingPrerendering-test.js b/packages/react-reconciler/src/__tests__/ReactSiblingPrerendering-test.js
index 4252fef65f33c..14dcea33ffe22 100644
--- a/packages/react-reconciler/src/__tests__/ReactSiblingPrerendering-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactSiblingPrerendering-test.js
@@ -25,7 +25,7 @@ describe('ReactSiblingPrerendering', () => {
waitForAll = require('internal-test-utils').waitForAll;
startTransition = React.startTransition;
Suspense = React.Suspense;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
textCache = new Map();
});
diff --git a/packages/react-reconciler/src/__tests__/ReactSuspenseyCommitPhase-test.js b/packages/react-reconciler/src/__tests__/ReactSuspenseyCommitPhase-test.js
index 2e252acbf3be7..4c10031085501 100644
--- a/packages/react-reconciler/src/__tests__/ReactSuspenseyCommitPhase-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactSuspenseyCommitPhase-test.js
@@ -23,7 +23,7 @@ describe('ReactSuspenseyCommitPhase', () => {
if (gate(flags => flags.enableSuspenseList)) {
SuspenseList = React.unstable_SuspenseList;
}
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
useMemo = React.useMemo;
startTransition = React.startTransition;
resolveSuspenseyThing = ReactNoop.resolveSuspenseyThing;
diff --git a/packages/react-reconciler/src/__tests__/ReactTransitionTracing-test.js b/packages/react-reconciler/src/__tests__/ReactTransitionTracing-test.js
index ab4982ce020d3..42d3ee57a6130 100644
--- a/packages/react-reconciler/src/__tests__/ReactTransitionTracing-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactTransitionTracing-test.js
@@ -53,7 +53,7 @@ describe('ReactInteractionTracing', () => {
useState = React.useState;
startTransition = React.startTransition;
Suspense = React.Suspense;
- Activity = React.unstable_Activity;
+ Activity = React.Activity;
getCacheForType = React.unstable_getCacheForType;
diff --git a/packages/react-refresh/src/__tests__/ReactFreshIntegration-test.js b/packages/react-refresh/src/__tests__/ReactFreshIntegration-test.js
index d851d72eb4c29..0a9f1eb9baf46 100644
--- a/packages/react-refresh/src/__tests__/ReactFreshIntegration-test.js
+++ b/packages/react-refresh/src/__tests__/ReactFreshIntegration-test.js
@@ -308,7 +308,7 @@ describe('ReactFreshIntegration', () => {
// @gate __DEV__ && enableActivity
it('ignores ref for class component in hidden subtree', async () => {
const code = `
- import {unstable_Activity as Activity} from 'react';
+ import {Activity} from 'react';
// Avoid creating a new class on Fast Refresh.
global.A = global.A ?? class A extends React.Component {
@@ -338,7 +338,7 @@ describe('ReactFreshIntegration', () => {
// @gate __DEV__ && enableActivity
it('ignores ref for hoistable resource in hidden subtree', async () => {
const code = `
- import {unstable_Activity as Activity} from 'react';
+ import {Activity} from 'react';
function hiddenRef() {
throw new Error('Unexpected hiddenRef() invocation.');
@@ -360,7 +360,7 @@ describe('ReactFreshIntegration', () => {
// @gate __DEV__ && enableActivity
it('ignores ref for host component in hidden subtree', async () => {
const code = `
- import {unstable_Activity as Activity} from 'react';
+ import {Activity} from 'react';
function hiddenRef() {
throw new Error('Unexpected hiddenRef() invocation.');
@@ -382,7 +382,7 @@ describe('ReactFreshIntegration', () => {
// @gate __DEV__ && enableActivity
it('ignores ref for Activity in hidden subtree', async () => {
const code = `
- import {unstable_Activity as Activity} from 'react';
+ import {Activity} from 'react';
function hiddenRef(value) {
throw new Error('Unexpected hiddenRef() invocation.');
@@ -407,7 +407,7 @@ describe('ReactFreshIntegration', () => {
it('ignores ref for Scope in hidden subtree', async () => {
const code = `
import {
- unstable_Activity as Activity,
+ Activity,
unstable_Scope as Scope,
} from 'react';
@@ -433,7 +433,7 @@ describe('ReactFreshIntegration', () => {
// @gate __DEV__ && enableActivity
it('ignores ref for functional component in hidden subtree', async () => {
const code = `
- import {unstable_Activity as Activity} from 'react';
+ import {Activity} from 'react';
// Avoid creating a new component on Fast Refresh.
global.A = global.A ?? function A() {
@@ -463,7 +463,7 @@ describe('ReactFreshIntegration', () => {
const code = `
import {
forwardRef,
- unstable_Activity as Activity,
+ Activity,
} from 'react';
// Avoid creating a new component on Fast Refresh.
@@ -494,7 +494,7 @@ describe('ReactFreshIntegration', () => {
const code = `
import {
memo,
- unstable_Activity as Activity,
+ Activity,
} from 'react';
// Avoid creating a new component on Fast Refresh.
@@ -526,7 +526,7 @@ describe('ReactFreshIntegration', () => {
const code = `
import {
memo,
- unstable_Activity as Activity,
+ Activity,
} from 'react';
// Avoid creating a new component on Fast Refresh.
diff --git a/packages/react/index.development.js b/packages/react/index.development.js
index 595135e606e64..b3c3752ab0f2a 100644
--- a/packages/react/index.development.js
+++ b/packages/react/index.development.js
@@ -44,7 +44,7 @@ export {
cacheSignal,
startTransition,
unstable_LegacyHidden,
- unstable_Activity,
+ Activity,
unstable_Scope,
unstable_SuspenseList,
unstable_TracingMarker,
diff --git a/packages/react/index.experimental.development.js b/packages/react/index.experimental.development.js
index 7f0d03a0b2436..6bf0b8a6bb78c 100644
--- a/packages/react/index.experimental.development.js
+++ b/packages/react/index.experimental.development.js
@@ -29,7 +29,7 @@ export {
cache,
cacheSignal,
startTransition,
- unstable_Activity,
+ Activity,
unstable_postpone,
unstable_getCacheForType,
unstable_SuspenseList,
diff --git a/packages/react/index.experimental.js b/packages/react/index.experimental.js
index dfaeca747ed5a..a251b03949292 100644
--- a/packages/react/index.experimental.js
+++ b/packages/react/index.experimental.js
@@ -29,7 +29,8 @@ export {
cache,
cacheSignal,
startTransition,
- unstable_Activity,
+ Activity,
+ Activity as unstable_Activity,
unstable_postpone,
unstable_getCacheForType,
unstable_SuspenseList,
diff --git a/packages/react/index.fb.js b/packages/react/index.fb.js
index fb637b799b0ca..3dba103e89d28 100644
--- a/packages/react/index.fb.js
+++ b/packages/react/index.fb.js
@@ -32,7 +32,8 @@ export {
startTransition,
StrictMode,
Suspense,
- unstable_Activity,
+ Activity,
+ Activity as unstable_Activity,
unstable_getCacheForType,
unstable_LegacyHidden,
unstable_Scope,
diff --git a/packages/react/index.js b/packages/react/index.js
index cbeea0d28bb45..aee4ac263de2d 100644
--- a/packages/react/index.js
+++ b/packages/react/index.js
@@ -44,7 +44,7 @@ export {
cacheSignal,
startTransition,
unstable_LegacyHidden,
- unstable_Activity,
+ Activity,
unstable_Scope,
unstable_SuspenseList,
unstable_TracingMarker,
diff --git a/packages/react/index.stable.development.js b/packages/react/index.stable.development.js
index 80fc4d7cac767..d8b561541cb0f 100644
--- a/packages/react/index.stable.development.js
+++ b/packages/react/index.stable.development.js
@@ -10,6 +10,7 @@
export {
__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
__COMPILER_RUNTIME,
+ Activity,
Children,
Component,
Fragment,
diff --git a/packages/react/index.stable.js b/packages/react/index.stable.js
index 1cb9de1e37233..70b24eb0b2408 100644
--- a/packages/react/index.stable.js
+++ b/packages/react/index.stable.js
@@ -10,6 +10,7 @@
export {
__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
__COMPILER_RUNTIME,
+ Activity,
Children,
Component,
Fragment,
diff --git a/packages/react/src/ReactClient.js b/packages/react/src/ReactClient.js
index b9b34e218824d..12c3b6c4abf40 100644
--- a/packages/react/src/ReactClient.js
+++ b/packages/react/src/ReactClient.js
@@ -116,7 +116,7 @@ export {
useDeferredValue,
REACT_SUSPENSE_LIST_TYPE as unstable_SuspenseList,
REACT_LEGACY_HIDDEN_TYPE as unstable_LegacyHidden,
- REACT_ACTIVITY_TYPE as unstable_Activity,
+ REACT_ACTIVITY_TYPE as Activity,
getCacheForType as unstable_getCacheForType,
useCacheRefresh as unstable_useCacheRefresh,
use,
diff --git a/packages/react/src/ReactServer.experimental.js b/packages/react/src/ReactServer.experimental.js
index ad885f0968e7c..4fe83248e2c77 100644
--- a/packages/react/src/ReactServer.experimental.js
+++ b/packages/react/src/ReactServer.experimental.js
@@ -82,5 +82,5 @@ export {
// Experimental
REACT_SUSPENSE_LIST_TYPE as unstable_SuspenseList,
REACT_VIEW_TRANSITION_TYPE as unstable_ViewTransition,
- REACT_ACTIVITY_TYPE as unstable_Activity,
+ REACT_ACTIVITY_TYPE as Activity,
};
diff --git a/scripts/jest/TestFlags.js b/scripts/jest/TestFlags.js
index 12b74039d5379..e2d34cc516d5c 100644
--- a/scripts/jest/TestFlags.js
+++ b/scripts/jest/TestFlags.js
@@ -81,7 +81,8 @@ function getTestFlags() {
fb: www || xplat,
// These aren't flags, just a useful aliases for tests.
- enableActivity: releaseChannel === 'experimental' || www || xplat,
+ // TODO: Clean this up.
+ enableActivity: true,
enableSuspenseList: releaseChannel === 'experimental' || www || xplat,
enableLegacyHidden: www,
// TODO: Suspending the work loop during the render phase is currently