From 0ecea78e0c97c19b7ab987868e0a95808f5aaafc Mon Sep 17 00:00:00 2001 From: Jan Kassens Date: Thu, 2 Nov 2023 13:43:14 -0400 Subject: [PATCH 1/3] rename unstable_Offscreen to unstable_Activity --- ...DOMServerPartialHydration-test.internal.js | 22 +- .../src/__tests__/ReactCache-test.js | 10 +- .../src/__tests__/ReactDeferredValue-test.js | 24 +- .../src/__tests__/ReactOffscreen-test.js | 290 +++++++++--------- .../ReactOffscreenStrictMode-test.js | 32 +- .../__tests__/ReactOffscreenSuspense-test.js | 32 +- .../ReactSuspenseyCommitPhase-test.js | 8 +- .../__tests__/ReactTransitionTracing-test.js | 8 +- packages/react/index.classic.fb.js | 2 +- packages/react/index.experimental.js | 2 +- packages/react/index.js | 2 +- packages/react/index.modern.fb.js | 2 +- packages/react/src/React.js | 2 +- 13 files changed, 216 insertions(+), 220 deletions(-) diff --git a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js index 2468e6303a29..9d9f35eb01c2 100644 --- a/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js +++ b/packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js @@ -10,15 +10,15 @@ 'use strict'; +let Activity; let React = require('react'); let ReactDOM; let ReactDOMClient; let ReactDOMServer; -let Scheduler; let ReactFeatureFlags; +let Scheduler; let Suspense; let SuspenseList; -let Offscreen; let useSyncExternalStore; let act; let IdleEventPriority; @@ -112,8 +112,8 @@ describe('ReactDOMServerPartialHydration', () => { act = require('internal-test-utils').act; ReactDOMServer = require('react-dom/server'); Scheduler = require('scheduler'); + Activity = React.unstable_Activity; Suspense = React.Suspense; - Offscreen = React.unstable_Offscreen; useSyncExternalStore = React.useSyncExternalStore; if (gate(flags => flags.enableSuspenseList)) { SuspenseList = React.unstable_SuspenseList; @@ -778,7 +778,7 @@ describe('ReactDOMServerPartialHydration', () => { expect(span).not.toBe(span2); if (gate(flags => flags.dfsEffectsRefactor)) { - // The effects list refactor causes this to be null because the Suspense Offscreen's child + // The effects list refactor causes this to be null because the Suspense Activity's child // is null. However, since we can't hydrate Suspense in legacy this change in behavior is ok expect(ref.current).toBe(null); } else { @@ -3152,14 +3152,14 @@ describe('ReactDOMServerPartialHydration', () => { }); // @gate enableOffscreen - it('a visible Offscreen component acts like a fragment', async () => { + it('a visible Activity component acts like a fragment', async () => { const ref = React.createRef(); function App() { return ( - + Child - + ); } @@ -3169,7 +3169,7 @@ describe('ReactDOMServerPartialHydration', () => { const container = document.createElement('div'); container.innerHTML = finalHTML; - // Visible Offscreen boundaries behave exactly like fragments: a + // Visible Activity boundaries behave exactly like fragments: a // pure indirection. expect(container).toMatchInlineSnapshot(`
@@ -3188,7 +3188,7 @@ describe('ReactDOMServerPartialHydration', () => { }); // @gate enableOffscreen - it('a hidden Offscreen component is skipped over during server rendering', async () => { + it('a hidden Activity component is skipped over during server rendering', async () => { const visibleRef = React.createRef(); function HiddenChild() { @@ -3201,9 +3201,9 @@ describe('ReactDOMServerPartialHydration', () => { return ( <> Visible - + - + ); } diff --git a/packages/react-reconciler/src/__tests__/ReactCache-test.js b/packages/react-reconciler/src/__tests__/ReactCache-test.js index 7709652467e8..83d7f0b69760 100644 --- a/packages/react-reconciler/src/__tests__/ReactCache-test.js +++ b/packages/react-reconciler/src/__tests__/ReactCache-test.js @@ -6,7 +6,7 @@ let Scheduler; let assertLog; let act; let Suspense; -let Offscreen; +let Activity; let useCacheRefresh; let startTransition; let useState; @@ -27,7 +27,7 @@ describe('ReactCache', () => { act = require('internal-test-utils').act; Suspense = React.Suspense; cache = React.cache; - Offscreen = React.unstable_Offscreen; + Activity = React.unstable_Activity; getCacheSignal = React.unstable_getCacheSignal; useCacheRefresh = React.unstable_useCacheRefresh; startTransition = React.startTransition; @@ -1578,10 +1578,10 @@ describe('ReactCache', () => { // @gate enableOffscreen // @gate enableCache - test('prerender a new cache boundary inside an Offscreen tree', async () => { + test('prerender a new cache boundary inside an Activity tree', async () => { function App({prerenderMore}) { return ( - +
{prerenderMore ? ( @@ -1589,7 +1589,7 @@ describe('ReactCache', () => { ) : null}
-
+ ); } diff --git a/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js b/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js index 0c7fe7af103f..b34bc80a18f7 100644 --- a/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js +++ b/packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js @@ -16,7 +16,7 @@ let useDeferredValue; let useMemo; let useState; let Suspense; -let Offscreen; +let Activity; let assertLog; let waitForPaint; let textCache; @@ -34,7 +34,7 @@ describe('ReactDeferredValue', () => { useMemo = React.useMemo; useState = React.useState; Suspense = React.Suspense; - Offscreen = React.unstable_Offscreen; + Activity = React.unstable_Activity; const InternalTestUtils = require('internal-test-utils'); assertLog = InternalTestUtils.assertLog; @@ -585,9 +585,7 @@ describe('ReactDeferredValue', () => { const [shouldShow, setState] = useState(false); revealContent = () => setState(true); return ( - - {children} - + {children} ); } @@ -634,9 +632,7 @@ describe('ReactDeferredValue', () => { const [shouldShow, setState] = useState(false); revealContent = () => setState(true); return ( - - {children} - + {children} ); } @@ -695,9 +691,9 @@ describe('ReactDeferredValue', () => { function Container({text, shouldShow}) { return ( - + - + ); } @@ -736,9 +732,9 @@ describe('ReactDeferredValue', () => { function Container({text, shouldShow}) { return ( - + - + ); } @@ -781,9 +777,9 @@ describe('ReactDeferredValue', () => { function Container({text, shouldShow}) { return ( - + - + ); } diff --git a/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js b/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js index 120424ce1bf4..dabc562c97c9 100644 --- a/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js +++ b/packages/react-reconciler/src/__tests__/ReactOffscreen-test.js @@ -3,7 +3,7 @@ let ReactNoop; let Scheduler; let act; let LegacyHidden; -let Offscreen; +let Activity; let useState; let useLayoutEffect; let useEffect; @@ -23,7 +23,7 @@ describe('ReactOffscreen', () => { Scheduler = require('scheduler'); act = require('internal-test-utils').act; LegacyHidden = React.unstable_LegacyHidden; - Offscreen = React.unstable_Offscreen; + Activity = React.unstable_Activity; useState = React.useState; useLayoutEffect = React.useLayoutEffect; useEffect = React.useEffect; @@ -226,9 +226,9 @@ describe('ReactOffscreen', () => { // Mount hidden tree. await act(() => { root.render( - + - , + , ); }); // No layout effect. @@ -238,9 +238,9 @@ describe('ReactOffscreen', () => { // Unhide the tree. The layout effect is mounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Child', 'Mount layout']); @@ -262,9 +262,9 @@ describe('ReactOffscreen', () => { const root = ReactNoop.createRoot(); await act(() => { root.render( - + - , + , ); }); assertLog(['Child', 'Mount layout']); @@ -273,9 +273,9 @@ describe('ReactOffscreen', () => { // Hide the tree. The layout effect is unmounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Unmount layout', 'Child']); @@ -284,9 +284,9 @@ describe('ReactOffscreen', () => { // Unhide the tree. The layout effect is re-mounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Child', 'Mount layout']); @@ -295,7 +295,7 @@ describe('ReactOffscreen', () => { // @gate enableOffscreen 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 { @@ -316,11 +316,11 @@ describe('ReactOffscreen', () => { await act(() => { // Outer and inner offscreen are hidden. root.render( - - + + - - , + + , ); }); @@ -330,11 +330,11 @@ describe('ReactOffscreen', () => { await act(() => { // Inner offscreen is visible. root.render( - - + + - - , + + , ); }); @@ -344,11 +344,11 @@ describe('ReactOffscreen', () => { await act(() => { // Inner offscreen is hidden. root.render( - - + + - - , + + , ); }); @@ -358,11 +358,11 @@ describe('ReactOffscreen', () => { await act(() => { // Inner offscreen is visible. root.render( - - + + - - , + + , ); }); @@ -372,11 +372,11 @@ describe('ReactOffscreen', () => { // Outer offscreen is visible. // Inner offscreen is hidden. root.render( - - + + - - , + + , ); }); @@ -386,11 +386,11 @@ describe('ReactOffscreen', () => { // Outer offscreen is hidden. // Inner offscreen is visible. root.render( - - + + - - , + + , ); }); @@ -413,9 +413,9 @@ describe('ReactOffscreen', () => { await act(() => { // Start the tree hidden. The layout effect is not mounted. root.render( - + - , + , ); }); assertLog(['Child']); @@ -424,9 +424,9 @@ describe('ReactOffscreen', () => { // Show the tree. The layout effect is mounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Child', 'Mount layout']); @@ -435,9 +435,9 @@ describe('ReactOffscreen', () => { // Hide the tree again. The layout effect is un-mounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Unmount layout', 'Child']); @@ -461,9 +461,9 @@ describe('ReactOffscreen', () => { await act(() => { root.render( - + - , + , ); }); assertLog(['Child', 'Mount layout']); @@ -472,9 +472,9 @@ describe('ReactOffscreen', () => { // Hide the tree. The layout effect is unmounted. await act(() => { root.render( - + - , + , ); }); assertLog(['Unmount layout', 'Child']); @@ -536,9 +536,9 @@ describe('ReactOffscreen', () => { const root = ReactNoop.createRoot(); await act(() => { root.render( - + Hi - , + , ); }); expect(root).toMatchRenderedOutput(); @@ -546,10 +546,10 @@ describe('ReactOffscreen', () => { // Insert a new node into the hidden tree await act(() => { root.render( - + Hi Something new - , + , ); }); expect(root).toMatchRenderedOutput( @@ -566,9 +566,9 @@ describe('ReactOffscreen', () => { const root = ReactNoop.createRoot(); await act(() => { root.render( - + Hi - , + , ); }); expect(root).toMatchRenderedOutput(); @@ -576,20 +576,20 @@ describe('ReactOffscreen', () => { // Set the `hidden` prop to on an already hidden node await act(() => { root.render( - + - , + , ); }); - // It should still be hidden, because the Offscreen container overrides it + // It should still be hidden, because the Activity container overrides it expect(root).toMatchRenderedOutput(); // Unhide the boundary await act(() => { root.render( - + - , + , ); }); // It should still be hidden, because of the prop @@ -598,9 +598,9 @@ describe('ReactOffscreen', () => { // Remove the `hidden` prop await act(() => { root.render( - + Hi - , + , ); }); // Now it's visible @@ -661,9 +661,9 @@ describe('ReactOffscreen', () => { return ( <> - + - + ); } @@ -742,7 +742,7 @@ describe('ReactOffscreen', () => { }); // @gate enableOffscreen - it('regression: Offscreen instance is sometimes null during setState', async () => { + it('regression: Activity instance is sometimes null during setState', async () => { let setState; function Child() { const [state, _setState] = useState('Initial'); @@ -752,7 +752,7 @@ describe('ReactOffscreen', () => { const root = ReactNoop.createRoot(); await act(() => { - root.render(