Skip to content

Commit 39f1bc4

Browse files
committed
[RN] Call dispatchNativeEvent when the event target is null (#38007)
## Summary With `enableNativeEventTargetEventDispatching` on, the Fabric renderer skipped `dispatchNativeEvent` when the touched view had already unmounted, so the touch end never reached the JS responder and the next tap got lost. This passes the null target through instead, so React Native can still release the responder. It needs react/react-native#59522 to land first, since `dispatchNativeEvent` there throws on a null target today. Fixes #38006 ## How did you test this change? Added a test in `ReactFabric-test.internal.js` that unmounts a view, dispatches a touch end to its old instance handle, and expects `dispatchNativeEvent` to get a null target. It fails on main and passes with this change. Also ran `yarn test packages/react-native-renderer` (default, `--prod`, www-modern), `yarn flow fabric`, `yarn linc` and `yarn prettier-check`. DiffTrain build for [dc9aed3](dc9aed3)
1 parent 9e3edeb commit 39f1bc4

21 files changed

Lines changed: 87 additions & 90 deletions

‎compiled-rn/VERSION_NATIVE_FB‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.3.0-native-fb-e9df86ca-20261027
1+
19.3.0-native-fb-dc9aed36-20261027

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<879d4b185ca96129e38ec1de1b6d5112>>
10+
* @generated SignedSource<<b7565fa829b0db242f2c3f6ac6f179ce>>
1111
*/
1212

1313
"use strict";
@@ -423,5 +423,5 @@ __DEV__ &&
423423
exports.useFormStatus = function () {
424424
return resolveDispatcher().useHostTransitionStatus();
425425
};
426-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
426+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";
427427
})();

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<3e5e58f8be3a1299160f3f1b82e044c2>>
10+
* @generated SignedSource<<0c9e34b80c42b8f69f6374fa42e0822b>>
1111
*/
1212

1313
"use strict";
@@ -222,4 +222,4 @@ exports.useFormState = function (action, initialState, permalink) {
222222
exports.useFormStatus = function () {
223223
return ReactSharedInternals.H.useHostTransitionStatus();
224224
};
225-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
225+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<3e5e58f8be3a1299160f3f1b82e044c2>>
10+
* @generated SignedSource<<0c9e34b80c42b8f69f6374fa42e0822b>>
1111
*/
1212

1313
"use strict";
@@ -222,4 +222,4 @@ exports.useFormState = function (action, initialState, permalink) {
222222
exports.useFormStatus = function () {
223223
return ReactSharedInternals.H.useHostTransitionStatus();
224224
};
225-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
225+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<7db91008da6875d860040f73f6d9981d>>
10+
* @generated SignedSource<<923496c5daf412d466c62988bcd6fedb>>
1111
*/
1212

1313
/*
@@ -32438,11 +32438,11 @@ __DEV__ &&
3243832438
};
3243932439
(function () {
3244032440
var isomorphicReactPackageVersion = React.version;
32441-
if ("19.3.0-native-fb-e9df86ca-20261027" !== isomorphicReactPackageVersion)
32441+
if ("19.3.0-native-fb-dc9aed36-20261027" !== isomorphicReactPackageVersion)
3244232442
throw Error(
3244332443
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
3244432444
(isomorphicReactPackageVersion +
32445-
"\n - react-dom: 19.3.0-native-fb-e9df86ca-20261027\nLearn more: https://react.dev/warnings/version-mismatch")
32445+
"\n - react-dom: 19.3.0-native-fb-dc9aed36-20261027\nLearn more: https://react.dev/warnings/version-mismatch")
3244632446
);
3244732447
})();
3244832448
("function" === typeof Map &&
@@ -32479,10 +32479,10 @@ __DEV__ &&
3247932479
!(function () {
3248032480
var internals = {
3248132481
bundleType: 1,
32482-
version: "19.3.0-native-fb-e9df86ca-20261027",
32482+
version: "19.3.0-native-fb-dc9aed36-20261027",
3248332483
rendererPackageName: "react-dom",
3248432484
currentDispatcherRef: ReactSharedInternals,
32485-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027"
32485+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027"
3248632486
};
3248732487
internals.overrideHookState = overrideHookState;
3248832488
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -32632,5 +32632,5 @@ __DEV__ &&
3263232632
listenToAllSupportedEvents(container);
3263332633
return new ReactDOMHydrationRoot(initialChildren);
3263432634
};
32635-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
32635+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";
3263632636
})();

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<dad4164004856d84051959b22bff64ea>>
10+
* @generated SignedSource<<4fad1c6a0a4362287e44b45467a780fc>>
1111
*/
1212

1313
/*
@@ -19572,14 +19572,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1957219572
};
1957319573
var isomorphicReactPackageVersion$jscomp$inline_2136 = React.version;
1957419574
if (
19575-
"19.3.0-native-fb-e9df86ca-20261027" !==
19575+
"19.3.0-native-fb-dc9aed36-20261027" !==
1957619576
isomorphicReactPackageVersion$jscomp$inline_2136
1957719577
)
1957819578
throw Error(
1957919579
formatProdErrorMessage(
1958019580
527,
1958119581
isomorphicReactPackageVersion$jscomp$inline_2136,
19582-
"19.3.0-native-fb-e9df86ca-20261027"
19582+
"19.3.0-native-fb-dc9aed36-20261027"
1958319583
)
1958419584
);
1958519585
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19601,10 +19601,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1960119601
};
1960219602
var internals$jscomp$inline_2708 = {
1960319603
bundleType: 0,
19604-
version: "19.3.0-native-fb-e9df86ca-20261027",
19604+
version: "19.3.0-native-fb-dc9aed36-20261027",
1960519605
rendererPackageName: "react-dom",
1960619606
currentDispatcherRef: ReactSharedInternals,
19607-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027"
19607+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027"
1960819608
};
1960919609
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1961019610
var hook$jscomp$inline_2709 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -19711,4 +19711,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1971119711
listenToAllSupportedEvents(container);
1971219712
return new ReactDOMHydrationRoot(initialChildren);
1971319713
};
19714-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
19714+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<57ed9eb99d0db6c7ddf77114981aa8b6>>
10+
* @generated SignedSource<<3b94dbcd1cb5e28800335ccd58e67bd5>>
1111
*/
1212

1313
/*
@@ -21637,14 +21637,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
2163721637
};
2163821638
var isomorphicReactPackageVersion$jscomp$inline_2483 = React.version;
2163921639
if (
21640-
"19.3.0-native-fb-e9df86ca-20261027" !==
21640+
"19.3.0-native-fb-dc9aed36-20261027" !==
2164121641
isomorphicReactPackageVersion$jscomp$inline_2483
2164221642
)
2164321643
throw Error(
2164421644
formatProdErrorMessage(
2164521645
527,
2164621646
isomorphicReactPackageVersion$jscomp$inline_2483,
21647-
"19.3.0-native-fb-e9df86ca-20261027"
21647+
"19.3.0-native-fb-dc9aed36-20261027"
2164821648
)
2164921649
);
2165021650
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -21666,10 +21666,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
2166621666
};
2166721667
var internals$jscomp$inline_2490 = {
2166821668
bundleType: 0,
21669-
version: "19.3.0-native-fb-e9df86ca-20261027",
21669+
version: "19.3.0-native-fb-dc9aed36-20261027",
2167021670
rendererPackageName: "react-dom",
2167121671
currentDispatcherRef: ReactSharedInternals,
21672-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027",
21672+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027",
2167321673
getLaneLabelMap: function () {
2167421674
for (
2167521675
var map = new Map(), lane = 1, index$351 = 0;
@@ -21792,4 +21792,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
2179221792
listenToAllSupportedEvents(container);
2179321793
return new ReactDOMHydrationRoot(initialChildren);
2179421794
};
21795-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
21795+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<20a3c14ba13e21947bc1190462676b18>>
10+
* @generated SignedSource<<459cf606c770d4cc3afc6ac924295181>>
1111
*/
1212

1313
/*
@@ -32500,11 +32500,11 @@ __DEV__ &&
3250032500
};
3250132501
(function () {
3250232502
var isomorphicReactPackageVersion = React.version;
32503-
if ("19.3.0-native-fb-e9df86ca-20261027" !== isomorphicReactPackageVersion)
32503+
if ("19.3.0-native-fb-dc9aed36-20261027" !== isomorphicReactPackageVersion)
3250432504
throw Error(
3250532505
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
3250632506
(isomorphicReactPackageVersion +
32507-
"\n - react-dom: 19.3.0-native-fb-e9df86ca-20261027\nLearn more: https://react.dev/warnings/version-mismatch")
32507+
"\n - react-dom: 19.3.0-native-fb-dc9aed36-20261027\nLearn more: https://react.dev/warnings/version-mismatch")
3250832508
);
3250932509
})();
3251032510
("function" === typeof Map &&
@@ -32541,10 +32541,10 @@ __DEV__ &&
3254132541
!(function () {
3254232542
var internals = {
3254332543
bundleType: 1,
32544-
version: "19.3.0-native-fb-e9df86ca-20261027",
32544+
version: "19.3.0-native-fb-dc9aed36-20261027",
3254532545
rendererPackageName: "react-dom",
3254632546
currentDispatcherRef: ReactSharedInternals,
32547-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027"
32547+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027"
3254832548
};
3254932549
internals.overrideHookState = overrideHookState;
3255032550
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -33022,7 +33022,7 @@ __DEV__ &&
3302233022
exports.useFormStatus = function () {
3302333023
return resolveDispatcher().useHostTransitionStatus();
3302433024
};
33025-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
33025+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";
3302633026
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
3302733027
"function" ===
3302833028
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<9c3000164648b9f1a56aff65ff2da54e>>
10+
* @generated SignedSource<<2960a3f89f4af5d9d8a1e6beb78abac9>>
1111
*/
1212

1313
/*
@@ -19589,14 +19589,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1958919589
};
1959019590
var isomorphicReactPackageVersion$jscomp$inline_2137 = React.version;
1959119591
if (
19592-
"19.3.0-native-fb-e9df86ca-20261027" !==
19592+
"19.3.0-native-fb-dc9aed36-20261027" !==
1959319593
isomorphicReactPackageVersion$jscomp$inline_2137
1959419594
)
1959519595
throw Error(
1959619596
formatProdErrorMessage(
1959719597
527,
1959819598
isomorphicReactPackageVersion$jscomp$inline_2137,
19599-
"19.3.0-native-fb-e9df86ca-20261027"
19599+
"19.3.0-native-fb-dc9aed36-20261027"
1960019600
)
1960119601
);
1960219602
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19618,10 +19618,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1961819618
};
1961919619
var internals$jscomp$inline_2711 = {
1962019620
bundleType: 0,
19621-
version: "19.3.0-native-fb-e9df86ca-20261027",
19621+
version: "19.3.0-native-fb-dc9aed36-20261027",
1962219622
rendererPackageName: "react-dom",
1962319623
currentDispatcherRef: ReactSharedInternals,
19624-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027"
19624+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027"
1962519625
};
1962619626
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1962719627
var hook$jscomp$inline_2712 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -19893,4 +19893,4 @@ exports.useFormState = function (action, initialState, permalink) {
1989319893
exports.useFormStatus = function () {
1989419894
return ReactSharedInternals.H.useHostTransitionStatus();
1989519895
};
19896-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
19896+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";

‎compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<f237751c1d12485341854c450921d9bf>>
10+
* @generated SignedSource<<6ae662680121714bb303782490222cd6>>
1111
*/
1212

1313
/*
@@ -21658,14 +21658,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
2165821658
};
2165921659
var isomorphicReactPackageVersion$jscomp$inline_2484 = React.version;
2166021660
if (
21661-
"19.3.0-native-fb-e9df86ca-20261027" !==
21661+
"19.3.0-native-fb-dc9aed36-20261027" !==
2166221662
isomorphicReactPackageVersion$jscomp$inline_2484
2166321663
)
2166421664
throw Error(
2166521665
formatProdErrorMessage(
2166621666
527,
2166721667
isomorphicReactPackageVersion$jscomp$inline_2484,
21668-
"19.3.0-native-fb-e9df86ca-20261027"
21668+
"19.3.0-native-fb-dc9aed36-20261027"
2166921669
)
2167021670
);
2167121671
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -21687,10 +21687,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
2168721687
};
2168821688
var internals$jscomp$inline_2491 = {
2168921689
bundleType: 0,
21690-
version: "19.3.0-native-fb-e9df86ca-20261027",
21690+
version: "19.3.0-native-fb-dc9aed36-20261027",
2169121691
rendererPackageName: "react-dom",
2169221692
currentDispatcherRef: ReactSharedInternals,
21693-
reconcilerVersion: "19.3.0-native-fb-e9df86ca-20261027",
21693+
reconcilerVersion: "19.3.0-native-fb-dc9aed36-20261027",
2169421694
getLaneLabelMap: function () {
2169521695
for (
2169621696
var map = new Map(), lane = 1, index$351 = 0;
@@ -21978,7 +21978,7 @@ exports.useFormState = function (action, initialState, permalink) {
2197821978
exports.useFormStatus = function () {
2197921979
return ReactSharedInternals.H.useHostTransitionStatus();
2198021980
};
21981-
exports.version = "19.3.0-native-fb-e9df86ca-20261027";
21981+
exports.version = "19.3.0-native-fb-dc9aed36-20261027";
2198221982
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2198321983
"function" ===
2198421984
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)