Skip to content

Commit 87da0ba

Browse files
committed
Add dispatchEvent to fragment instances (facebook#32813)
`fragmentInstance.dispatchEvent(evt)` calls `element.dispatchEvent(evt)` on the fragment's host parent. This mimics bubbling if the `fragmentInstance` could receive an event itself. If the parent is disconnected, there is a dev warning and no event is dispatched. DiffTrain build for [8a8df5d](facebook@8a8df5d)
1 parent a81caba commit 87da0ba

35 files changed

+953
-676
lines changed

compiled/eslint-plugin-react-hooks/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40272,6 +40272,21 @@ function evaluateInstruction(constants, instr) {
4027240272
}
4027340273
return null;
4027440274
}
40275+
case '-': {
40276+
const operand = read(constants, value.value);
40277+
if (operand !== null &&
40278+
operand.kind === 'Primitive' &&
40279+
typeof operand.value === 'number') {
40280+
const result = {
40281+
kind: 'Primitive',
40282+
value: operand.value * -1,
40283+
loc: value.loc,
40284+
};
40285+
instr.value = result;
40286+
return result;
40287+
}
40288+
return null;
40289+
}
4027540290
default:
4027640291
return null;
4027740292
}

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
e5a8de81e57181692d33ce916dfd6aa23638ec92
1+
8a8df5dbdd57bf63d5156c1a9cba21ac6106b83d
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
e5a8de81e57181692d33ce916dfd6aa23638ec92
1+
8a8df5dbdd57bf63d5156c1a9cba21ac6106b83d

compiled/facebook-www/React-dev.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ __DEV__ &&
15381538
exports.useTransition = function () {
15391539
return resolveDispatcher().useTransition();
15401540
};
1541-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
1541+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";
15421542
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
15431543
"function" ===
15441544
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-dev.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1538,7 +1538,7 @@ __DEV__ &&
15381538
exports.useTransition = function () {
15391539
return resolveDispatcher().useTransition();
15401540
};
1541-
exports.version = "19.2.0-www-modern-e5a8de81-20250506";
1541+
exports.version = "19.2.0-www-modern-8a8df5db-20250507";
15421542
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
15431543
"function" ===
15441544
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-prod.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,4 +636,4 @@ exports.useSyncExternalStore = function (
636636
exports.useTransition = function () {
637637
return ReactSharedInternals.H.useTransition();
638638
};
639-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
639+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";

compiled/facebook-www/React-prod.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -636,4 +636,4 @@ exports.useSyncExternalStore = function (
636636
exports.useTransition = function () {
637637
return ReactSharedInternals.H.useTransition();
638638
};
639-
exports.version = "19.2.0-www-modern-e5a8de81-20250506";
639+
exports.version = "19.2.0-www-modern-8a8df5db-20250507";

compiled/facebook-www/React-profiling.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ exports.useSyncExternalStore = function (
640640
exports.useTransition = function () {
641641
return ReactSharedInternals.H.useTransition();
642642
};
643-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
643+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";
644644
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
645645
"function" ===
646646
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-profiling.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -640,7 +640,7 @@ exports.useSyncExternalStore = function (
640640
exports.useTransition = function () {
641641
return ReactSharedInternals.H.useTransition();
642642
};
643-
exports.version = "19.2.0-www-modern-e5a8de81-20250506";
643+
exports.version = "19.2.0-www-modern-8a8df5db-20250507";
644644
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
645645
"function" ===
646646
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.classic.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19032,10 +19032,10 @@ __DEV__ &&
1903219032
(function () {
1903319033
var internals = {
1903419034
bundleType: 1,
19035-
version: "19.2.0-www-classic-e5a8de81-20250506",
19035+
version: "19.2.0-www-classic-8a8df5db-20250507",
1903619036
rendererPackageName: "react-art",
1903719037
currentDispatcherRef: ReactSharedInternals,
19038-
reconcilerVersion: "19.2.0-www-classic-e5a8de81-20250506"
19038+
reconcilerVersion: "19.2.0-www-classic-8a8df5db-20250507"
1903919039
};
1904019040
internals.overrideHookState = overrideHookState;
1904119041
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -19069,7 +19069,7 @@ __DEV__ &&
1906919069
exports.Shape = Shape;
1907019070
exports.Surface = Surface;
1907119071
exports.Text = Text;
19072-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
19072+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";
1907319073
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1907419074
"function" ===
1907519075
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.modern.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18804,10 +18804,10 @@ __DEV__ &&
1880418804
(function () {
1880518805
var internals = {
1880618806
bundleType: 1,
18807-
version: "19.2.0-www-modern-e5a8de81-20250506",
18807+
version: "19.2.0-www-modern-8a8df5db-20250507",
1880818808
rendererPackageName: "react-art",
1880918809
currentDispatcherRef: ReactSharedInternals,
18810-
reconcilerVersion: "19.2.0-www-modern-e5a8de81-20250506"
18810+
reconcilerVersion: "19.2.0-www-modern-8a8df5db-20250507"
1881118811
};
1881218812
internals.overrideHookState = overrideHookState;
1881318813
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -18841,7 +18841,7 @@ __DEV__ &&
1884118841
exports.Shape = Shape;
1884218842
exports.Surface = Surface;
1884318843
exports.Text = Text;
18844-
exports.version = "19.2.0-www-modern-e5a8de81-20250506";
18844+
exports.version = "19.2.0-www-modern-8a8df5db-20250507";
1884518845
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1884618846
"function" ===
1884718847
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-prod.classic.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11419,10 +11419,10 @@ var slice = Array.prototype.slice,
1141911419
})(React.Component);
1142011420
var internals$jscomp$inline_1620 = {
1142111421
bundleType: 0,
11422-
version: "19.2.0-www-classic-e5a8de81-20250506",
11422+
version: "19.2.0-www-classic-8a8df5db-20250507",
1142311423
rendererPackageName: "react-art",
1142411424
currentDispatcherRef: ReactSharedInternals,
11425-
reconcilerVersion: "19.2.0-www-classic-e5a8de81-20250506"
11425+
reconcilerVersion: "19.2.0-www-classic-8a8df5db-20250507"
1142611426
};
1142711427
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1142811428
var hook$jscomp$inline_1621 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -11448,4 +11448,4 @@ exports.RadialGradient = RadialGradient;
1144811448
exports.Shape = TYPES.SHAPE;
1144911449
exports.Surface = Surface;
1145011450
exports.Text = Text;
11451-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
11451+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";

compiled/facebook-www/ReactART-prod.modern.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11131,10 +11131,10 @@ var slice = Array.prototype.slice,
1113111131
})(React.Component);
1113211132
var internals$jscomp$inline_1593 = {
1113311133
bundleType: 0,
11134-
version: "19.2.0-www-modern-e5a8de81-20250506",
11134+
version: "19.2.0-www-modern-8a8df5db-20250507",
1113511135
rendererPackageName: "react-art",
1113611136
currentDispatcherRef: ReactSharedInternals,
11137-
reconcilerVersion: "19.2.0-www-modern-e5a8de81-20250506"
11137+
reconcilerVersion: "19.2.0-www-modern-8a8df5db-20250507"
1113811138
};
1113911139
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1114011140
var hook$jscomp$inline_1594 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -11160,4 +11160,4 @@ exports.RadialGradient = RadialGradient;
1116011160
exports.Shape = TYPES.SHAPE;
1116111161
exports.Surface = Surface;
1116211162
exports.Text = Text;
11163-
exports.version = "19.2.0-www-modern-e5a8de81-20250506";
11163+
exports.version = "19.2.0-www-modern-8a8df5db-20250507";

compiled/facebook-www/ReactDOM-dev.classic.js

Lines changed: 61 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -272,30 +272,18 @@ __DEV__ &&
272272
c
273273
) {
274274
for (; null !== child; ) {
275-
if (5 === child.tag) {
276-
if (
277-
fn(child, a, b, c) ||
278-
(searchWithinHosts &&
279-
traverseVisibleHostChildren(
280-
child.child,
281-
searchWithinHosts,
282-
fn,
283-
a,
284-
b,
285-
c
286-
))
287-
)
288-
return !0;
289-
} else if (
290-
(22 !== child.tag || null === child.memoizedState) &&
291-
traverseVisibleHostChildren(
292-
child.child,
293-
searchWithinHosts,
294-
fn,
295-
a,
296-
b,
297-
c
298-
)
275+
if (
276+
(5 === child.tag && fn(child, a, b, c)) ||
277+
((22 !== child.tag || null === child.memoizedState) &&
278+
(searchWithinHosts || 5 !== child.tag) &&
279+
traverseVisibleHostChildren(
280+
child.child,
281+
searchWithinHosts,
282+
fn,
283+
a,
284+
b,
285+
c
286+
))
299287
)
300288
return !0;
301289
child = child.sibling;
@@ -13669,11 +13657,11 @@ __DEV__ &&
1366913657
eventListeners = parent.stateNode._eventListeners;
1367013658
if (null !== eventListeners)
1367113659
for (var i = 0; i < eventListeners.length; i++) {
13672-
var _eventListeners$i2 = eventListeners[i];
13660+
var _eventListeners$i3 = eventListeners[i];
1367313661
childElement.removeEventListener(
13674-
_eventListeners$i2.type,
13675-
_eventListeners$i2.listener,
13676-
_eventListeners$i2.optionsOrUseCapture
13662+
_eventListeners$i3.type,
13663+
_eventListeners$i3.listener,
13664+
_eventListeners$i3.optionsOrUseCapture
1367713665
);
1367813666
}
1367913667
}
@@ -25487,11 +25475,11 @@ __DEV__ &&
2548725475
var eventListeners = fragmentInstance._eventListeners;
2548825476
if (null !== eventListeners)
2548925477
for (var i = 0; i < eventListeners.length; i++) {
25490-
var _eventListeners$i = eventListeners[i];
25478+
var _eventListeners$i2 = eventListeners[i];
2549125479
childElement.addEventListener(
25492-
_eventListeners$i.type,
25493-
_eventListeners$i.listener,
25494-
_eventListeners$i.optionsOrUseCapture
25480+
_eventListeners$i2.type,
25481+
_eventListeners$i2.listener,
25482+
_eventListeners$i2.optionsOrUseCapture
2549525483
);
2549625484
}
2549725485
null !== fragmentInstance._observers &&
@@ -30924,10 +30912,44 @@ __DEV__ &&
3092430912
)),
3092530913
null !== this._eventListeners && this._eventListeners.splice(type, 1));
3092630914
};
30915+
FragmentInstance.prototype.dispatchEvent = function (event) {
30916+
var parentHostFiber = getFragmentParentHostFiber(this._fragmentFiber);
30917+
if (null === parentHostFiber) return !0;
30918+
parentHostFiber = getInstanceFromHostFiber(parentHostFiber);
30919+
var eventListeners = this._eventListeners;
30920+
if (
30921+
(null !== eventListeners && 0 < eventListeners.length) ||
30922+
!event.bubbles
30923+
) {
30924+
var temp = document.createTextNode("");
30925+
if (eventListeners)
30926+
for (var i = 0; i < eventListeners.length; i++) {
30927+
var _eventListeners$i = eventListeners[i];
30928+
temp.addEventListener(
30929+
_eventListeners$i.type,
30930+
_eventListeners$i.listener,
30931+
_eventListeners$i.optionsOrUseCapture
30932+
);
30933+
}
30934+
parentHostFiber.appendChild(temp);
30935+
event = temp.dispatchEvent(event);
30936+
if (eventListeners)
30937+
for (i = 0; i < eventListeners.length; i++)
30938+
(_eventListeners$i = eventListeners[i]),
30939+
temp.removeEventListener(
30940+
_eventListeners$i.type,
30941+
_eventListeners$i.listener,
30942+
_eventListeners$i.optionsOrUseCapture
30943+
);
30944+
parentHostFiber.removeChild(temp);
30945+
return event;
30946+
}
30947+
return parentHostFiber.dispatchEvent(event);
30948+
};
3092730949
FragmentInstance.prototype.focus = function (focusOptions) {
3092830950
traverseVisibleHostChildren(
3092930951
this._fragmentFiber.child,
30930-
!1,
30952+
!0,
3093130953
setFocusOnFiberIfFocusable,
3093230954
focusOptions,
3093330955
void 0,
@@ -30938,7 +30960,7 @@ __DEV__ &&
3093830960
var children = [];
3093930961
traverseVisibleHostChildren(
3094030962
this._fragmentFiber.child,
30941-
!1,
30963+
!0,
3094230964
collectChildren,
3094330965
children,
3094430966
void 0,
@@ -31360,11 +31382,11 @@ __DEV__ &&
3136031382
return_targetInst = null;
3136131383
(function () {
3136231384
var isomorphicReactPackageVersion = React.version;
31363-
if ("19.2.0-www-classic-e5a8de81-20250506" !== isomorphicReactPackageVersion)
31385+
if ("19.2.0-www-classic-8a8df5db-20250507" !== isomorphicReactPackageVersion)
3136431386
throw Error(
3136531387
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
3136631388
(isomorphicReactPackageVersion +
31367-
"\n - react-dom: 19.2.0-www-classic-e5a8de81-20250506\nLearn more: https://react.dev/warnings/version-mismatch")
31389+
"\n - react-dom: 19.2.0-www-classic-8a8df5db-20250507\nLearn more: https://react.dev/warnings/version-mismatch")
3136831390
);
3136931391
})();
3137031392
("function" === typeof Map &&
@@ -31407,10 +31429,10 @@ __DEV__ &&
3140731429
!(function () {
3140831430
var internals = {
3140931431
bundleType: 1,
31410-
version: "19.2.0-www-classic-e5a8de81-20250506",
31432+
version: "19.2.0-www-classic-8a8df5db-20250507",
3141131433
rendererPackageName: "react-dom",
3141231434
currentDispatcherRef: ReactSharedInternals,
31413-
reconcilerVersion: "19.2.0-www-classic-e5a8de81-20250506"
31435+
reconcilerVersion: "19.2.0-www-classic-8a8df5db-20250507"
3141431436
};
3141531437
internals.overrideHookState = overrideHookState;
3141631438
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -32008,7 +32030,7 @@ __DEV__ &&
3200832030
exports.useFormStatus = function () {
3200932031
return resolveDispatcher().useHostTransitionStatus();
3201032032
};
32011-
exports.version = "19.2.0-www-classic-e5a8de81-20250506";
32033+
exports.version = "19.2.0-www-classic-8a8df5db-20250507";
3201232034
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
3201332035
"function" ===
3201432036
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)