Implement Navigation API backed default indicator for DOM renderer (#33162)

Stacked on #33160.

By default, if `onDefaultTransitionIndicator` is not overridden, this
will trigger a fake Navigation event using the Navigation API. This is
intercepted to create an on-going navigation until we complete the
Transition. Basically each default Transition is simulated as a
Navigation.

This triggers the native browser loading state (in Chrome at least). So
now by default the browser spinner spins during a Transition if no other
loading state is provided. Firefox and Safari hasn't shipped Navigation
API yet and even in the flag Safari has, it doesn't actually trigger the
native loading state.

To ensures that you can still use other Navigations concurrently, we
don't start our fake Navigation if there's one on-going already.
Similarly if our fake Navigation gets interrupted by another. We wait
for on-going ones to finish and then start a new fake one if we're
supposed to be still pending.

There might be other routers on the page that might listen to intercept
Navigation Events. Typically you'd expect them not to trigger a refetch
when navigating to the same state. However, if they want to detect this
we provide the `"react-transition"` string in the `info` field for this
purpose.

DiffTrain build for [59440424d0](https://github.com/facebook/react/commit/59440424d05360cca32ca6f46ae33661f70d43e2)
This commit is contained in:
sebmarkbage
2025-05-13 13:07:35 -07:00
parent ffe6305552
commit 9c65b7e39a
24 changed files with 365 additions and 93 deletions
+1 -1
View File
@@ -1 +1 @@
19.2.0-native-fb-b480865d-20250513
19.2.0-native-fb-59440424-20250513
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<0ab47b372b965d3d02258f47dc0402f2>>
* @generated SignedSource<<dec5042bc5f03cc4b5905cbafac45d5d>>
*/
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<8818e9dff1a8e3a8643381d87dda4bd0>>
* @generated SignedSource<<2e17e4696030242c7e8aced13f53e62a>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<8818e9dff1a8e3a8643381d87dda4bd0>>
* @generated SignedSource<<2e17e4696030242c7e8aced13f53e62a>>
*/
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<6df1c2dec5d32d3e650052606abec7b1>>
* @generated SignedSource<<030115b4e4980785e31f5c7ff2c5cc14>>
*/
/*
@@ -23088,7 +23088,57 @@ __DEV__ &&
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener(
"navigatesuccess",
handleNavigateComplete
);
navigation.removeEventListener(
"navigateerror",
handleNavigateComplete
);
null !== pendingResolve &&
(pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -26960,11 +27010,11 @@ __DEV__ &&
};
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-b480865d-20250513" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-59440424-20250513" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-native-fb-b480865d-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-native-fb-59440424-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -27001,10 +27051,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -27142,5 +27192,5 @@ __DEV__ &&
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<a7fa48d321866d402c60ee70cf639689>>
* @generated SignedSource<<5bd08c285c559e1d555ed66bced9133a>>
*/
/*
@@ -17006,7 +17006,50 @@ function retryIfBlockedOn(unblocked) {
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
navigation.removeEventListener("navigateerror", handleNavigateComplete);
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -17051,14 +17094,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2015 = React.version;
if (
"19.2.0-native-fb-b480865d-20250513" !==
"19.2.0-native-fb-59440424-20250513" !==
isomorphicReactPackageVersion$jscomp$inline_2015
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2015,
"19.2.0-native-fb-b480865d-20250513"
"19.2.0-native-fb-59440424-20250513"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17080,10 +17123,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2534 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2535 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17181,4 +17224,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<e0097274d9805a46724495e2931b53a1>>
* @generated SignedSource<<7e1f32d8db4f8fd1ee8f002787de4b01>>
*/
/*
@@ -17716,7 +17716,50 @@ function retryIfBlockedOn(unblocked) {
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
navigation.removeEventListener("navigateerror", handleNavigateComplete);
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -17761,14 +17804,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2118 = React.version;
if (
"19.2.0-native-fb-b480865d-20250513" !==
"19.2.0-native-fb-59440424-20250513" !==
isomorphicReactPackageVersion$jscomp$inline_2118
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2118,
"19.2.0-native-fb-b480865d-20250513"
"19.2.0-native-fb-59440424-20250513"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17790,10 +17833,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2125 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513",
reconcilerVersion: "19.2.0-native-fb-59440424-20250513",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$313 = 0;
@@ -17906,4 +17949,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
listenToAllSupportedEvents(container);
return new ReactDOMHydrationRoot(initialChildren);
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<7a69574b96a456be3dc7359f1fc26017>>
* @generated SignedSource<<c1bf1cc232c10227cd915ab8b8f9fe68>>
*/
/*
@@ -23113,7 +23113,57 @@ __DEV__ &&
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener(
"navigatesuccess",
handleNavigateComplete
);
navigation.removeEventListener(
"navigateerror",
handleNavigateComplete
);
null !== pendingResolve &&
(pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -27016,11 +27066,11 @@ __DEV__ &&
};
(function () {
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-b480865d-20250513" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-59440424-20250513" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-dom: 19.2.0-native-fb-b480865d-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-dom: 19.2.0-native-fb-59440424-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
);
})();
("function" === typeof Map &&
@@ -27057,10 +27107,10 @@ __DEV__ &&
!(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -27514,7 +27564,7 @@ __DEV__ &&
exports.useFormStatus = function () {
return resolveDispatcher().useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<6a686fdd5152c2144439e4d73c8dc376>>
* @generated SignedSource<<01adbc294113268e3776663698f74862>>
*/
/*
@@ -17017,7 +17017,50 @@ function retryIfBlockedOn(unblocked) {
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
navigation.removeEventListener("navigateerror", handleNavigateComplete);
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -17062,14 +17105,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2016 = React.version;
if (
"19.2.0-native-fb-b480865d-20250513" !==
"19.2.0-native-fb-59440424-20250513" !==
isomorphicReactPackageVersion$jscomp$inline_2016
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2016,
"19.2.0-native-fb-b480865d-20250513"
"19.2.0-native-fb-59440424-20250513"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17091,10 +17134,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2537 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2538 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17345,4 +17388,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<41f01b170d2e068c9c040151a986517b>>
* @generated SignedSource<<22804a49fa5dd8572821b97d90acc4a3>>
*/
/*
@@ -17731,7 +17731,50 @@ function retryIfBlockedOn(unblocked) {
}
}
function defaultOnDefaultTransitionIndicator() {
return function () {};
function handleNavigate(event) {
event.canIntercept &&
"react-transition" === event.info &&
event.intercept({
handler: function () {
return new Promise(function (resolve) {
return (pendingResolve = resolve);
});
},
focusReset: "manual",
scroll: "manual"
});
}
function handleNavigateComplete() {
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
isCancelled || startFakeNavigation();
}
function startFakeNavigation() {
if (!isCancelled && !navigation.transition) {
var currentEntry = navigation.currentEntry;
currentEntry &&
null != currentEntry.url &&
navigation.navigate(currentEntry.url, {
state: currentEntry.getState(),
info: "react-transition",
history: "replace"
});
}
}
if ("object" === typeof navigation) {
var isCancelled = !1,
pendingResolve = null;
navigation.addEventListener("navigate", handleNavigate);
navigation.addEventListener("navigatesuccess", handleNavigateComplete);
navigation.addEventListener("navigateerror", handleNavigateComplete);
setTimeout(startFakeNavigation, 100);
return function () {
isCancelled = !0;
navigation.removeEventListener("navigate", handleNavigate);
navigation.removeEventListener("navigatesuccess", handleNavigateComplete);
navigation.removeEventListener("navigateerror", handleNavigateComplete);
null !== pendingResolve && (pendingResolve(), (pendingResolve = null));
};
}
}
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -17776,14 +17819,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
};
var isomorphicReactPackageVersion$jscomp$inline_2119 = React.version;
if (
"19.2.0-native-fb-b480865d-20250513" !==
"19.2.0-native-fb-59440424-20250513" !==
isomorphicReactPackageVersion$jscomp$inline_2119
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_2119,
"19.2.0-native-fb-b480865d-20250513"
"19.2.0-native-fb-59440424-20250513"
)
);
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17805,10 +17848,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
};
var internals$jscomp$inline_2126 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-dom",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513",
reconcilerVersion: "19.2.0-native-fb-59440424-20250513",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$313 = 0;
@@ -18074,7 +18117,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<095ce9109f965d84b638a6e498a605f4>>
* @generated SignedSource<<0dbed81cbc519d42773eabdb962161a3>>
*/
"use strict";
@@ -15658,10 +15658,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
internals.overrideHookState = overrideHookState;
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -15806,5 +15806,5 @@ __DEV__ &&
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
})();
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<cb9495a0f6e9a2ee657dfdaca49873b3>>
* @generated SignedSource<<85c6b71c5e6fed8e1c271b1588ae02be>>
*/
"use strict";
@@ -9895,10 +9895,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1446 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1447 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10034,4 +10034,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<78893cb9c19090c905e9221e3e494a29>>
* @generated SignedSource<<6a1f8ce4b87d03fd0933b53b239cf25b>>
*/
"use strict";
@@ -10515,10 +10515,10 @@ function wrapFiber(fiber) {
}
var internals$jscomp$inline_1254 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-test-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513",
reconcilerVersion: "19.2.0-native-fb-59440424-20250513",
getLaneLabelMap: function () {
for (
var map = new Map(), lane = 1, index$155 = 0;
@@ -10669,4 +10669,4 @@ exports.unstable_batchedUpdates = function (fn, a) {
flushSyncWorkAcrossRoots_impl(0, !0));
}
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<2ce7b3f148e9fd49390ff312b64947f9>>
* @generated SignedSource<<b7e111fb633e90cebbd257b435fcd498>>
*/
"use strict";
@@ -1411,7 +1411,7 @@ __DEV__ &&
exports.useTransition = function () {
return resolveDispatcher().useTransition();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<c330294893910e0eb245594b80818dc0>>
* @generated SignedSource<<5cc56d91a19083ad8995110343f38ff6>>
*/
"use strict";
@@ -586,4 +586,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<20655fa8ecfb88cdc9f86d7e59db521c>>
* @generated SignedSource<<55cb83f6a26ce22fd76bb5a7c5901e0c>>
*/
"use strict";
@@ -590,7 +590,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.2.0-native-fb-b480865d-20250513";
exports.version = "19.2.0-native-fb-59440424-20250513";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -1 +1 @@
b480865db0babfcad602a1a1909775069b5779f9
59440424d05360cca32ca6f46ae33661f70d43e2
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<7420d195b4dedea736a7398bde419066>>
* @generated SignedSource<<574ab45d59c7d4cc4bfc147bbcfdaac4>>
*/
"use strict";
@@ -17486,10 +17486,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<3de9573c0e5881986d4a835277049c02>>
* @generated SignedSource<<b47a7fbb266b3670614aee9037f0ddf7>>
*/
"use strict";
@@ -11202,10 +11202,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1255 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1255.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<bd203bff8d39c892a673d0f5076d4979>>
* @generated SignedSource<<8eb4aa97ce9dec715ed3503e1b4030e0>>
*/
"use strict";
@@ -11906,10 +11906,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1356 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1356.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<244bbb42754a3a9b52a634ba06501d9c>>
* @generated SignedSource<<36a95af6746f77f31a4ac9a7574d4181>>
*/
"use strict";
@@ -17609,11 +17609,11 @@ __DEV__ &&
shouldSuspendImpl = newShouldSuspendImpl;
};
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-b480865d-20250513" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-59440424-20250513" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-b480865d-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-59440424-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -17639,10 +17639,10 @@ __DEV__ &&
(function () {
var internals = {
bundleType: 1,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<7fe288a30387ffb0c6bc173939a82794>>
* @generated SignedSource<<dc3f420b37309d052cc48b87945f6c79>>
*/
"use strict";
@@ -11211,11 +11211,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-b480865d-20250513" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-59440424-20250513" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-b480865d-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-59440424-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -11265,10 +11265,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1306 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1306.rendererConfig = extraDevToolsConfig);
@@ -7,7 +7,7 @@
* @noflow
* @nolint
* @preventMunge
* @generated SignedSource<<61312a9627893bd3425e582e0d1490a4>>
* @generated SignedSource<<ff42f4f71d78419d0ca51e181075000f>>
*/
"use strict";
@@ -11913,11 +11913,11 @@ function updateContainer(element, container, parentComponent, callback) {
return lane;
}
var isomorphicReactPackageVersion = React.version;
if ("19.2.0-native-fb-b480865d-20250513" !== isomorphicReactPackageVersion)
if ("19.2.0-native-fb-59440424-20250513" !== isomorphicReactPackageVersion)
throw Error(
'Incompatible React versions: The "react" and "react-native-renderer" packages must have the exact same version. Instead got:\n - react: ' +
(isomorphicReactPackageVersion +
"\n - react-native-renderer: 19.2.0-native-fb-b480865d-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
"\n - react-native-renderer: 19.2.0-native-fb-59440424-20250513\nLearn more: https://react.dev/warnings/version-mismatch")
);
if (
"function" !==
@@ -11967,10 +11967,10 @@ batchedUpdatesImpl = function (fn, a) {
var roots = new Map(),
internals$jscomp$inline_1407 = {
bundleType: 0,
version: "19.2.0-native-fb-b480865d-20250513",
version: "19.2.0-native-fb-59440424-20250513",
rendererPackageName: "react-native-renderer",
currentDispatcherRef: ReactSharedInternals,
reconcilerVersion: "19.2.0-native-fb-b480865d-20250513"
reconcilerVersion: "19.2.0-native-fb-59440424-20250513"
};
null !== extraDevToolsConfig &&
(internals$jscomp$inline_1407.rendererConfig = extraDevToolsConfig);
@@ -1,7 +1,7 @@
{
"name": "eslint-plugin-react-hooks",
"description": "ESLint rules for React Hooks",
"version": "0.0.0-experimental-b480865d-20250513",
"version": "0.0.0-experimental-59440424-20250513",
"repository": {
"type": "git",
"url": "https://github.com/facebook/react.git",