Skip to content

Commit 4482fdd

Browse files
authored
Fix host context issues around EventComponents and EventTargets (#15284)
1 parent 5ef0d1d commit 4482fdd

File tree

3 files changed

+551
-1
lines changed

3 files changed

+551
-1
lines changed

packages/react-reconciler/src/ReactFiberBeginWork.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -2112,8 +2112,15 @@ function beginWork(
21122112
// been unsuspended it has committed as a regular Suspense component.
21132113
// If it needs to be retried, it should have work scheduled on it.
21142114
workInProgress.effectTag |= DidCapture;
2115-
break;
21162115
}
2116+
break;
2117+
}
2118+
case EventComponent:
2119+
case EventTarget: {
2120+
if (enableEventAPI) {
2121+
pushHostContextForEvent(workInProgress);
2122+
}
2123+
break;
21172124
}
21182125
}
21192126
return bailoutOnAlreadyFinishedWork(

packages/react-reconciler/src/ReactFiberUnwindWork.js

+9
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import {
2727
SuspenseComponent,
2828
DehydratedSuspenseComponent,
2929
IncompleteClassComponent,
30+
EventComponent,
31+
EventTarget,
3032
} from 'shared/ReactWorkTags';
3133
import {
3234
DidCapture,
@@ -38,6 +40,7 @@ import {
3840
import {
3941
enableSchedulerTracing,
4042
enableSuspenseServerRenderer,
43+
enableEventAPI,
4144
} from 'shared/ReactFeatureFlags';
4245
import {ConcurrentMode} from './ReactTypeOfMode';
4346
import {shouldCaptureSuspense} from './ReactFiberSuspenseComponent';
@@ -510,6 +513,12 @@ function unwindWork(
510513
case ContextProvider:
511514
popProvider(workInProgress);
512515
return null;
516+
case EventComponent:
517+
case EventTarget:
518+
if (enableEventAPI) {
519+
popHostContext(workInProgress);
520+
}
521+
return null;
513522
default:
514523
return null;
515524
}

0 commit comments

Comments
 (0)