diff --git a/compiled-rn/VERSION_NATIVE_FB b/compiled-rn/VERSION_NATIVE_FB index a4215a45d6..35fcfbc5ee 100644 --- a/compiled-rn/VERSION_NATIVE_FB +++ b/compiled-rn/VERSION_NATIVE_FB @@ -1 +1 @@ -19.2.0-native-fb-1d163962-20250802 \ No newline at end of file +19.2.0-native-fb-d3b26b29-20250804 \ No newline at end of file diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js index bebbe1d95c..9cb80df4c7 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<8ae4fd7266b163aea9892d5ca4037ecd>> + * @generated SignedSource<<98274d0c5e07e896c92618930d3f525f>> */ "use strict"; @@ -404,5 +404,5 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-1d163962-20250802"; + exports.version = "19.2.0-native-fb-d3b26b29-20250804"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js index 0ebc292615..380d2055e0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "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-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js index 0ebc292615..380d2055e0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "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-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js index 1106e25783..b787417bef 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<2b79a4f464c6279508fa4006e402aaa7>> + * @generated SignedSource<<8525ad18f88b91625c6f74798178ca33>> */ /* @@ -29025,11 +29025,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-1d163962-20250802" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-d3b26b29-20250804" !== 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-1d163962-20250802\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-native-fb-d3b26b29-20250804\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -29066,10 +29066,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -29207,5 +29207,5 @@ __DEV__ && listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; - exports.version = "19.2.0-native-fb-1d163962-20250802"; + exports.version = "19.2.0-native-fb-d3b26b29-20250804"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js index 18549a7c75..fb8e0cdce4 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ /* @@ -17128,14 +17128,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2002 = React.version; if ( - "19.2.0-native-fb-1d163962-20250802" !== + "19.2.0-native-fb-d3b26b29-20250804" !== isomorphicReactPackageVersion$jscomp$inline_2002 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2002, - "19.2.0-native-fb-1d163962-20250802" + "19.2.0-native-fb-d3b26b29-20250804" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17157,10 +17157,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2521 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2522 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17258,4 +17258,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js index e1f280071e..681d2e8132 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<148ab4a939817b3178316d90027c9690>> */ /* @@ -19086,14 +19086,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2242 = React.version; if ( - "19.2.0-native-fb-1d163962-20250802" !== + "19.2.0-native-fb-d3b26b29-20250804" !== isomorphicReactPackageVersion$jscomp$inline_2242 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2242, - "19.2.0-native-fb-1d163962-20250802" + "19.2.0-native-fb-d3b26b29-20250804" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19115,10 +19115,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2249 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802", + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$319 = 0; @@ -19231,4 +19231,4 @@ exports.hydrateRoot = function (container, initialChildren, options) { listenToAllSupportedEvents(container); return new ReactDOMHydrationRoot(initialChildren); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js index bbbb02008e..92cce5715c 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ /* @@ -29081,11 +29081,11 @@ __DEV__ && }; (function () { var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-1d163962-20250802" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-d3b26b29-20250804" !== 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-1d163962-20250802\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-dom: 19.2.0-native-fb-d3b26b29-20250804\nLearn more: https://react.dev/warnings/version-mismatch") ); })(); ("function" === typeof Map && @@ -29122,10 +29122,10 @@ __DEV__ && !(function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -29579,7 +29579,7 @@ __DEV__ && exports.useFormStatus = function () { return resolveDispatcher().useHostTransitionStatus(); }; - exports.version = "19.2.0-native-fb-1d163962-20250802"; + exports.version = "19.2.0-native-fb-d3b26b29-20250804"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js index 13117ca1b0..218d7642fb 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<5df270fd0dbe80893a6639d7021df875>> + * @generated SignedSource<<7d3c27718cca7ab582231c98ecd94ce2>> */ /* @@ -17139,14 +17139,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2003 = React.version; if ( - "19.2.0-native-fb-1d163962-20250802" !== + "19.2.0-native-fb-d3b26b29-20250804" !== isomorphicReactPackageVersion$jscomp$inline_2003 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2003, - "19.2.0-native-fb-1d163962-20250802" + "19.2.0-native-fb-d3b26b29-20250804" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -17168,10 +17168,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2524 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_2525 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -17422,4 +17422,4 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js index 0fc6fc18a7..d165ca40f1 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<39bb45866b742ac6c5a4aef0aaf2f38a>> + * @generated SignedSource<<12b4fe45b268036a270c136f6d04d585>> */ /* @@ -19101,14 +19101,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) { }; var isomorphicReactPackageVersion$jscomp$inline_2243 = React.version; if ( - "19.2.0-native-fb-1d163962-20250802" !== + "19.2.0-native-fb-d3b26b29-20250804" !== isomorphicReactPackageVersion$jscomp$inline_2243 ) throw Error( formatProdErrorMessage( 527, isomorphicReactPackageVersion$jscomp$inline_2243, - "19.2.0-native-fb-1d163962-20250802" + "19.2.0-native-fb-d3b26b29-20250804" ) ); ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { @@ -19130,10 +19130,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) { }; var internals$jscomp$inline_2250 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-dom", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802", + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$319 = 0; @@ -19399,7 +19399,7 @@ exports.useFormState = function (action, initialState, permalink) { exports.useFormStatus = function () { return ReactSharedInternals.H.useHostTransitionStatus(); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js index 8ede3b6dc4..ac06cbea96 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<0a69ac1907ba12b9879595e0f1ec6d89>> */ "use strict"; @@ -15739,10 +15739,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; internals.overrideHookState = overrideHookState; internals.overrideHookStateDeletePath = overrideHookStateDeletePath; @@ -15887,5 +15887,5 @@ __DEV__ && flushSyncWorkAcrossRoots_impl(0, !0)); } }; - exports.version = "19.2.0-native-fb-1d163962-20250802"; + exports.version = "19.2.0-native-fb-d3b26b29-20250804"; })(); diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js index 5c9725759c..f64ad0bcf9 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<3805192e0733e94ebef3a709d667e4ca>> */ "use strict"; @@ -9912,10 +9912,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1432 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { var hook$jscomp$inline_1433 = __REACT_DEVTOOLS_GLOBAL_HOOK__; @@ -10051,4 +10051,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js index 75032a89a7..99d9507b77 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-test-renderer/cjs/ReactTestRenderer-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<66efd123094574afb2a87a8bf50c2912>> */ "use strict"; @@ -10532,10 +10532,10 @@ function wrapFiber(fiber) { } var internals$jscomp$inline_1239 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-test-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802", + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804", getLaneLabelMap: function () { for ( var map = new Map(), lane = 1, index$143 = 0; @@ -10686,4 +10686,4 @@ exports.unstable_batchedUpdates = function (fn, a) { flushSyncWorkAcrossRoots_impl(0, !0)); } }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js index 2e2dfe5989..3edeab6a28 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<392161f5ed75673233b096b277c68f96>> + * @generated SignedSource<> */ "use strict"; @@ -1413,7 +1413,7 @@ __DEV__ && exports.useTransition = function () { return resolveDispatcher().useTransition(); }; - exports.version = "19.2.0-native-fb-1d163962-20250802"; + exports.version = "19.2.0-native-fb-d3b26b29-20250804"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js index 7d7b640769..a7925435cb 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<2a77214e3536976587aee41d599c9878>> + * @generated SignedSource<> */ "use strict"; @@ -589,4 +589,4 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js index 00694a8533..b4325b72e3 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react/cjs/React-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<2f752bf4bad2fb397376284ceae92444>> + * @generated SignedSource<<7ff083cecfd744e5def29bd5124b86ed>> */ "use strict"; @@ -593,7 +593,7 @@ exports.useSyncExternalStore = function ( exports.useTransition = function () { return ReactSharedInternals.H.useTransition(); }; -exports.version = "19.2.0-native-fb-1d163962-20250802"; +exports.version = "19.2.0-native-fb-d3b26b29-20250804"; "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION index f0933cbe15..590d15d3e9 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION @@ -1 +1 @@ -1d163962b21f9396d26930e31719bd8b10d9e107 +d3b26b2953c7e780abaa49f422c53fd4cda08e47 diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js index eaadb64e0b..c4ea43d832 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<6fcf3f77ff8e6a6f10ef79707ab50201>> + * @generated SignedSource<> */ "use strict"; @@ -19244,10 +19244,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js index f1af02bba2..e81d36c3ea 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<793216b119e5dcc4dca835298100a17d>> + * @generated SignedSource<<84287a6bbd50f0c3890a2eb73151e7c4>> */ "use strict"; @@ -11016,10 +11016,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1235 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1235.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js index 81f2d00905..101e143c33 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -12945,10 +12945,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1470 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1470.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js index 1152e91ebf..476489b122 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<2765bae7b74f0d381326e6ae3a8fc7f0>> */ "use strict"; @@ -19602,11 +19602,11 @@ __DEV__ && shouldSuspendImpl = newShouldSuspendImpl; }; var isomorphicReactPackageVersion = React.version; - if ("19.2.0-native-fb-1d163962-20250802" !== isomorphicReactPackageVersion) + if ("19.2.0-native-fb-d3b26b29-20250804" !== 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-1d163962-20250802\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-d3b26b29-20250804\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -19632,10 +19632,10 @@ __DEV__ && (function () { var internals = { bundleType: 1, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js index e728133247..48fbb28504 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<5e5215c85b98c8329332a6289ce5b513>> + * @generated SignedSource<<03d634c412fde76107f253626b4b405e>> */ "use strict"; @@ -11242,11 +11242,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-1d163962-20250802" !== isomorphicReactPackageVersion) +if ("19.2.0-native-fb-d3b26b29-20250804" !== 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-1d163962-20250802\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-d3b26b29-20250804\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -11296,10 +11296,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1293 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1293.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js index b45f9115a6..48fb720635 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<9464d603dcac0a12864778870377d27d>> + * @generated SignedSource<<7f3b4d69cc1295616bcf6a34c925abf7>> */ "use strict"; @@ -13160,11 +13160,11 @@ function updateContainer(element, container, parentComponent, callback) { return lane; } var isomorphicReactPackageVersion = React.version; -if ("19.2.0-native-fb-1d163962-20250802" !== isomorphicReactPackageVersion) +if ("19.2.0-native-fb-d3b26b29-20250804" !== 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-1d163962-20250802\nLearn more: https://react.dev/warnings/version-mismatch") + "\n - react-native-renderer: 19.2.0-native-fb-d3b26b29-20250804\nLearn more: https://react.dev/warnings/version-mismatch") ); if ( "function" !== @@ -13214,10 +13214,10 @@ batchedUpdatesImpl = function (fn, a) { var roots = new Map(), internals$jscomp$inline_1528 = { bundleType: 0, - version: "19.2.0-native-fb-1d163962-20250802", + version: "19.2.0-native-fb-d3b26b29-20250804", rendererPackageName: "react-native-renderer", currentDispatcherRef: ReactSharedInternals, - reconcilerVersion: "19.2.0-native-fb-1d163962-20250802" + reconcilerVersion: "19.2.0-native-fb-d3b26b29-20250804" }; null !== extraDevToolsConfig && (internals$jscomp$inline_1528.rendererConfig = extraDevToolsConfig); diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js index cf87c2b1c5..f4a95587d6 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.development.js @@ -12,7 +12,7 @@ * @lightSyntaxTransform * @preventMunge * @oncall react_core - * @generated SignedSource<<34c18c334bdeb44700e0ea0de8913de7>> + * @generated SignedSource<<4e37e896f362a0c21f96d8e6c65897ba>> */ 'use strict'; @@ -30872,6 +30872,7 @@ const EnvironmentConfigSchema = zod.z.object({ validateRefAccessDuringRender: zod.z.boolean().default(true), validateNoSetStateInRender: zod.z.boolean().default(true), validateNoSetStateInEffects: zod.z.boolean().default(false), + validateNoDerivedComputationsInEffects: zod.z.boolean().default(false), validateNoJSXInTryStatements: zod.z.boolean().default(false), validateStaticComponents: zod.z.boolean().default(false), validateMemoizedEffectDependencies: zod.z.boolean().default(false), @@ -51051,6 +51052,167 @@ function validateNoFreezingKnownMutableFunctions(fn) { return errors.asResult(); } +function validateNoDerivedComputationsInEffects(fn) { + const candidateDependencies = new Map(); + const functions = new Map(); + const locals = new Map(); + const errors = new CompilerError(); + for (const block of fn.body.blocks.values()) { + for (const instr of block.instructions) { + const { lvalue, value } = instr; + if (value.kind === 'LoadLocal') { + locals.set(lvalue.identifier.id, value.place.identifier.id); + } + else if (value.kind === 'ArrayExpression') { + candidateDependencies.set(lvalue.identifier.id, value); + } + else if (value.kind === 'FunctionExpression') { + functions.set(lvalue.identifier.id, value); + } + else if (value.kind === 'CallExpression' || + value.kind === 'MethodCall') { + const callee = value.kind === 'CallExpression' ? value.callee : value.property; + if (isUseEffectHookType(callee.identifier) && + value.args.length === 2 && + value.args[0].kind === 'Identifier' && + value.args[1].kind === 'Identifier') { + const effectFunction = functions.get(value.args[0].identifier.id); + const deps = candidateDependencies.get(value.args[1].identifier.id); + if (effectFunction != null && + deps != null && + deps.elements.length !== 0 && + deps.elements.every(element => element.kind === 'Identifier')) { + const dependencies = deps.elements.map(dep => { + var _a; + CompilerError.invariant(dep.kind === 'Identifier', { + reason: `Dependency is checked as a place above`, + loc: value.loc, + }); + return (_a = locals.get(dep.identifier.id)) !== null && _a !== void 0 ? _a : dep.identifier.id; + }); + validateEffect(effectFunction.loweredFunc.func, dependencies, errors); + } + } + } + } + } + if (errors.hasErrors()) { + throw errors; + } +} +function validateEffect(effectFunction, effectDeps, errors) { + for (const operand of effectFunction.context) { + if (isSetStateType(operand.identifier)) { + continue; + } + else if (effectDeps.find(dep => dep === operand.identifier.id) != null) { + continue; + } + else { + return; + } + } + for (const dep of effectDeps) { + if (effectFunction.context.find(operand => operand.identifier.id === dep) == + null) { + return; + } + } + const seenBlocks = new Set(); + const values = new Map(); + for (const dep of effectDeps) { + values.set(dep, [dep]); + } + const setStateLocations = []; + for (const block of effectFunction.body.blocks.values()) { + for (const pred of block.preds) { + if (!seenBlocks.has(pred)) { + return; + } + } + for (const phi of block.phis) { + const aggregateDeps = new Set(); + for (const operand of phi.operands.values()) { + const deps = values.get(operand.identifier.id); + if (deps != null) { + for (const dep of deps) { + aggregateDeps.add(dep); + } + } + } + if (aggregateDeps.size !== 0) { + values.set(phi.place.identifier.id, Array.from(aggregateDeps)); + } + } + for (const instr of block.instructions) { + switch (instr.value.kind) { + case 'Primitive': + case 'JSXText': + case 'LoadGlobal': { + break; + } + case 'LoadLocal': { + const deps = values.get(instr.value.place.identifier.id); + if (deps != null) { + values.set(instr.lvalue.identifier.id, deps); + } + break; + } + case 'ComputedLoad': + case 'PropertyLoad': + case 'BinaryExpression': + case 'TemplateLiteral': + case 'CallExpression': + case 'MethodCall': { + const aggregateDeps = new Set(); + for (const operand of eachInstructionValueOperand(instr.value)) { + const deps = values.get(operand.identifier.id); + if (deps != null) { + for (const dep of deps) { + aggregateDeps.add(dep); + } + } + } + if (aggregateDeps.size !== 0) { + values.set(instr.lvalue.identifier.id, Array.from(aggregateDeps)); + } + if (instr.value.kind === 'CallExpression' && + isSetStateType(instr.value.callee.identifier) && + instr.value.args.length === 1 && + instr.value.args[0].kind === 'Identifier') { + const deps = values.get(instr.value.args[0].identifier.id); + if (deps != null && new Set(deps).size === effectDeps.length) { + setStateLocations.push(instr.value.callee.loc); + } + else { + return; + } + } + break; + } + default: { + return; + } + } + } + for (const operand of eachTerminalOperand(block.terminal)) { + if (values.has(operand.identifier.id)) { + return; + } + } + seenBlocks.add(block.id); + } + for (const loc of setStateLocations) { + errors.push({ + reason: 'Values derived from props and state should be calculated during render, not in an effect. (https://react.dev/learn/you-might-not-need-an-effect#updating-state-based-on-props-or-state)', + description: null, + severity: ErrorSeverity.InvalidReact, + loc, + suggestions: null, + }); + } +} + function run(func, config, fnType, mode, programContext, logger, filename, code) { var _a, _b; const contextIdentifiers = findContextIdentifiers(func); @@ -51173,6 +51335,9 @@ function runWithEnvironment(func, env) { if (env.config.validateNoSetStateInRender) { validateNoSetStateInRender(hir).unwrap(); } + if (env.config.validateNoDerivedComputationsInEffects) { + validateNoDerivedComputationsInEffects(hir); + } if (env.config.validateNoSetStateInEffects) { env.logErrors(validateNoSetStateInEffects(hir)); } diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js index d453f9aadf..54070a2b8f 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/cjs/eslint-plugin-react-hooks.production.js @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - * @generated SignedSource<<8b1b8f2145063e8c59277e8766b3c225>> + * @generated SignedSource<> */ 'use strict'; @@ -30651,6 +30651,7 @@ const EnvironmentConfigSchema = zod.z.object({ validateRefAccessDuringRender: zod.z.boolean().default(true), validateNoSetStateInRender: zod.z.boolean().default(true), validateNoSetStateInEffects: zod.z.boolean().default(false), + validateNoDerivedComputationsInEffects: zod.z.boolean().default(false), validateNoJSXInTryStatements: zod.z.boolean().default(false), validateStaticComponents: zod.z.boolean().default(false), validateMemoizedEffectDependencies: zod.z.boolean().default(false), @@ -50830,6 +50831,167 @@ function validateNoFreezingKnownMutableFunctions(fn) { return errors.asResult(); } +function validateNoDerivedComputationsInEffects(fn) { + const candidateDependencies = new Map(); + const functions = new Map(); + const locals = new Map(); + const errors = new CompilerError(); + for (const block of fn.body.blocks.values()) { + for (const instr of block.instructions) { + const { lvalue, value } = instr; + if (value.kind === 'LoadLocal') { + locals.set(lvalue.identifier.id, value.place.identifier.id); + } + else if (value.kind === 'ArrayExpression') { + candidateDependencies.set(lvalue.identifier.id, value); + } + else if (value.kind === 'FunctionExpression') { + functions.set(lvalue.identifier.id, value); + } + else if (value.kind === 'CallExpression' || + value.kind === 'MethodCall') { + const callee = value.kind === 'CallExpression' ? value.callee : value.property; + if (isUseEffectHookType(callee.identifier) && + value.args.length === 2 && + value.args[0].kind === 'Identifier' && + value.args[1].kind === 'Identifier') { + const effectFunction = functions.get(value.args[0].identifier.id); + const deps = candidateDependencies.get(value.args[1].identifier.id); + if (effectFunction != null && + deps != null && + deps.elements.length !== 0 && + deps.elements.every(element => element.kind === 'Identifier')) { + const dependencies = deps.elements.map(dep => { + var _a; + CompilerError.invariant(dep.kind === 'Identifier', { + reason: `Dependency is checked as a place above`, + loc: value.loc, + }); + return (_a = locals.get(dep.identifier.id)) !== null && _a !== void 0 ? _a : dep.identifier.id; + }); + validateEffect(effectFunction.loweredFunc.func, dependencies, errors); + } + } + } + } + } + if (errors.hasErrors()) { + throw errors; + } +} +function validateEffect(effectFunction, effectDeps, errors) { + for (const operand of effectFunction.context) { + if (isSetStateType(operand.identifier)) { + continue; + } + else if (effectDeps.find(dep => dep === operand.identifier.id) != null) { + continue; + } + else { + return; + } + } + for (const dep of effectDeps) { + if (effectFunction.context.find(operand => operand.identifier.id === dep) == + null) { + return; + } + } + const seenBlocks = new Set(); + const values = new Map(); + for (const dep of effectDeps) { + values.set(dep, [dep]); + } + const setStateLocations = []; + for (const block of effectFunction.body.blocks.values()) { + for (const pred of block.preds) { + if (!seenBlocks.has(pred)) { + return; + } + } + for (const phi of block.phis) { + const aggregateDeps = new Set(); + for (const operand of phi.operands.values()) { + const deps = values.get(operand.identifier.id); + if (deps != null) { + for (const dep of deps) { + aggregateDeps.add(dep); + } + } + } + if (aggregateDeps.size !== 0) { + values.set(phi.place.identifier.id, Array.from(aggregateDeps)); + } + } + for (const instr of block.instructions) { + switch (instr.value.kind) { + case 'Primitive': + case 'JSXText': + case 'LoadGlobal': { + break; + } + case 'LoadLocal': { + const deps = values.get(instr.value.place.identifier.id); + if (deps != null) { + values.set(instr.lvalue.identifier.id, deps); + } + break; + } + case 'ComputedLoad': + case 'PropertyLoad': + case 'BinaryExpression': + case 'TemplateLiteral': + case 'CallExpression': + case 'MethodCall': { + const aggregateDeps = new Set(); + for (const operand of eachInstructionValueOperand(instr.value)) { + const deps = values.get(operand.identifier.id); + if (deps != null) { + for (const dep of deps) { + aggregateDeps.add(dep); + } + } + } + if (aggregateDeps.size !== 0) { + values.set(instr.lvalue.identifier.id, Array.from(aggregateDeps)); + } + if (instr.value.kind === 'CallExpression' && + isSetStateType(instr.value.callee.identifier) && + instr.value.args.length === 1 && + instr.value.args[0].kind === 'Identifier') { + const deps = values.get(instr.value.args[0].identifier.id); + if (deps != null && new Set(deps).size === effectDeps.length) { + setStateLocations.push(instr.value.callee.loc); + } + else { + return; + } + } + break; + } + default: { + return; + } + } + } + for (const operand of eachTerminalOperand(block.terminal)) { + if (values.has(operand.identifier.id)) { + return; + } + } + seenBlocks.add(block.id); + } + for (const loc of setStateLocations) { + errors.push({ + reason: 'Values derived from props and state should be calculated during render, not in an effect. (https://react.dev/learn/you-might-not-need-an-effect#updating-state-based-on-props-or-state)', + description: null, + severity: ErrorSeverity.InvalidReact, + loc, + suggestions: null, + }); + } +} + function run(func, config, fnType, mode, programContext, logger, filename, code) { var _a, _b; const contextIdentifiers = findContextIdentifiers(func); @@ -50952,6 +51114,9 @@ function runWithEnvironment(func, env) { if (env.config.validateNoSetStateInRender) { validateNoSetStateInRender(hir).unwrap(); } + if (env.config.validateNoDerivedComputationsInEffects) { + validateNoDerivedComputationsInEffects(hir); + } if (env.config.validateNoSetStateInEffects) { env.logErrors(validateNoSetStateInEffects(hir)); } diff --git a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json index 33aad9bf4f..793a131555 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json +++ b/compiled-rn/facebook-fbsource/xplat/js/tools/eslint-plugin-react-hooks/package.json @@ -1,7 +1,7 @@ { "name": "eslint-plugin-react-hooks", "description": "ESLint rules for React Hooks", - "version": "0.0.0-experimental-1d163962-20250802", + "version": "0.0.0-experimental-d3b26b29-20250804", "repository": { "type": "git", "url": "https://github.com/facebook/react.git",