@samitouri / QOS-React / commits / 0412f0c1a4

add offscreen state node (#24026)

Add state node on Offscreen fibers with id (in preparation for transition tracing)

Luna Ruan committed Mar 15, 2022 at 16:28 UTC 0412f0c1a46ef60032b70c43d55ec010f908855f
3 files changed +14 -2
packages/react-reconciler/src/ReactFiber.new.js
+6 -1
@@ -15,7 +15,10 @@ import type {WorkTag} from './ReactWorkTags';
15 import type {TypeOfMode} from './ReactTypeOfMode';
16 import type {Lanes} from './ReactFiberLane.new';
17 import type {SuspenseInstance, Props} from './ReactFiberHostConfig';
18 -import type {OffscreenProps} from './ReactFiberOffscreenComponent';
18 +import type {
19 + OffscreenProps,
20 + OffscreenInstance,
21 +} from './ReactFiberOffscreenComponent';
22
23 import {
24 createRootStrictEffectsByDefault,
@@ -735,6 +738,8 @@ export function createFiberFromOffscreen(
738 const fiber = createFiber(OffscreenComponent, pendingProps, key, mode);
739 fiber.elementType = REACT_OFFSCREEN_TYPE;
740 fiber.lanes = lanes;
741 + const primaryChildInstance: OffscreenInstance = {};
742 + fiber.stateNode = primaryChildInstance;
743 return fiber;
744 }
745
packages/react-reconciler/src/ReactFiber.old.js
+6 -1
@@ -15,7 +15,10 @@ import type {WorkTag} from './ReactWorkTags';
15 import type {TypeOfMode} from './ReactTypeOfMode';
16 import type {Lanes} from './ReactFiberLane.old';
17 import type {SuspenseInstance, Props} from './ReactFiberHostConfig';
18 -import type {OffscreenProps} from './ReactFiberOffscreenComponent';
18 +import type {
19 + OffscreenProps,
20 + OffscreenInstance,
21 +} from './ReactFiberOffscreenComponent';
22
23 import {
24 createRootStrictEffectsByDefault,
@@ -735,6 +738,8 @@ export function createFiberFromOffscreen(
738 const fiber = createFiber(OffscreenComponent, pendingProps, key, mode);
739 fiber.elementType = REACT_OFFSCREEN_TYPE;
740 fiber.lanes = lanes;
741 + const primaryChildInstance: OffscreenInstance = {};
742 + fiber.stateNode = primaryChildInstance;
743 return fiber;
744 }
745
packages/react-reconciler/src/ReactFiberOffscreenComponent.js
+2
@@ -31,3 +31,5 @@ export type OffscreenState = {|
31 baseLanes: Lanes,
32 cachePool: SpawnedCachePool | null,
33 |};
34 +
35 +export type OffscreenInstance = {};