diff --git a/FabricExample/App.tsx b/FabricExample/App.tsx
index 2d3ebc8cc5..25e58c7052 100644
--- a/FabricExample/App.tsx
+++ b/FabricExample/App.tsx
@@ -1,12 +1,13 @@
import App from '../apps';
import { featureFlags } from 'react-native-screens';
-featureFlags.experiment.synchronousScreenUpdatesEnabled = false
-featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled = false
-featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled = false
-featureFlags.experiment.androidResetScreenShadowStateOnOrientationChangeEnabled = true
+featureFlags.experiment.synchronousScreenUpdatesEnabled = false;
+featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled = false;
+featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled = false;
+featureFlags.experiment.androidResetScreenShadowStateOnOrientationChangeEnabled =
+ true;
// TODO: @t0maboro - remove ts-ignore after release
// @ts-ignore - will be present since react-native-screens 4.21.0
-featureFlags.experiment.iosPreventReattachmentOfDismissedScreens = false
+featureFlags.experiment.iosPreventReattachmentOfDismissedScreens = false;
export default App;
diff --git a/FabricExample/android/app/src/main/java/com/fabricexample/MainActivity.kt b/FabricExample/android/app/src/main/java/com/fabricexample/MainActivity.kt
index 88e11498da..c1c71a1e78 100644
--- a/FabricExample/android/app/src/main/java/com/fabricexample/MainActivity.kt
+++ b/FabricExample/android/app/src/main/java/com/fabricexample/MainActivity.kt
@@ -1,6 +1,8 @@
package com.fabricexample
+import android.content.res.Configuration
import android.os.Bundle
+import android.util.Log
import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
@@ -15,6 +17,11 @@ class MainActivity : ReactActivity() {
*/
override fun getMainComponentName(): String = "FabricExample"
+ override fun onConfigurationChanged(configuration: Configuration) {
+ super.onConfigurationChanged(configuration)
+ Log.d("SCREENS", "activity id ${this} orientation = ${configuration.orientation}")
+ }
+
/**
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
diff --git a/FabricExample/android/settings.gradle b/FabricExample/android/settings.gradle
index 98477550f6..1a55becadb 100644
--- a/FabricExample/android/settings.gradle
+++ b/FabricExample/android/settings.gradle
@@ -4,3 +4,12 @@ extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> ex.autol
rootProject.name = 'FabricExample'
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')
+
+includeBuild('../node_modules/react-native') {
+ dependencySubstitution {
+ substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
+ substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
+ }
+}
diff --git a/FabricExample/package.json b/FabricExample/package.json
index cac3c43a2e..4830591222 100644
--- a/FabricExample/package.json
+++ b/FabricExample/package.json
@@ -25,7 +25,7 @@
"@react-navigation/stack": "link:../react-navigation/packages/stack/",
"nanoid": "^4.0.2",
"react": "19.2.3",
- "react-native": "0.84.0-rc.1",
+ "react-native": "0.83",
"react-native-gesture-handler": "^2.29.0",
"react-native-reanimated": "~4.2.1",
"react-native-restart": "^0.0.27",
@@ -43,10 +43,10 @@
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
- "@react-native/babel-preset": "0.84.0-rc.1",
- "@react-native/eslint-config": "0.84.0-rc.1",
- "@react-native/metro-config": "0.84.0-rc.1",
- "@react-native/typescript-config": "0.84.0-rc.1",
+ "@react-native/babel-preset": "0.83",
+ "@react-native/eslint-config": "0.83",
+ "@react-native/metro-config": "0.83",
+ "@react-native/typescript-config": "0.83",
"@types/jest": "^29.5.13",
"@types/react": "^19.2.0",
"@types/react-test-renderer": "^19.1.0",
diff --git a/FabricExample/yarn.lock b/FabricExample/yarn.lock
index 6f822ecc98..8bac93d10b 100644
--- a/FabricExample/yarn.lock
+++ b/FabricExample/yarn.lock
@@ -37,6 +37,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/code-frame@npm:7.28.6"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.1.1"
+ checksum: 10c0/ed5d57f99455e3b1c23e75ebb8430c6b9800b4ecd0121b4348b97cecb65406a47778d6db61f0d538a4958bb01b4b277e90348a68d39bd3beff1d7c940ed6dd66
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.26.5, @babel/compat-data@npm:^7.26.8":
version: 7.26.8
resolution: "@babel/compat-data@npm:7.26.8"
@@ -51,6 +62,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/compat-data@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/compat-data@npm:7.28.6"
+ checksum: 10c0/2d047431041281eaf33e9943d1a269d3374dbc9b498cafe6a18f5ee9aee7bb96f7f6cac0304eab4d13c41fc4db00fe4ca16c7aa44469ca6a211b8b6343b78fc4
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2":
version: 7.26.9
resolution: "@babel/core@npm:7.26.9"
@@ -150,6 +168,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/generator@npm:7.28.6"
+ dependencies:
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10c0/162fa358484a9a18e8da1235d998f10ea77c63bab408c8d3e327d5833f120631a77ff022c5ed1d838ee00523f8bb75df1f08196d3657d0bca9f2cfeb8503cc12
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-annotate-as-pure@npm:7.25.9"
@@ -181,6 +212,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-compilation-targets@npm:7.28.6"
+ dependencies:
+ "@babel/compat-data": "npm:^7.28.6"
+ "@babel/helper-validator-option": "npm:^7.27.1"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50
+ languageName: node
+ linkType: hard
+
"@babel/helper-compilation-targets@npm:^7.27.2":
version: 7.27.2
resolution: "@babel/helper-compilation-targets@npm:7.27.2"
@@ -374,6 +418,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-plugin-utils@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-plugin-utils@npm:7.28.6"
+ checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d
+ languageName: node
+ linkType: hard
+
"@babel/helper-remap-async-to-generator@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9"
@@ -557,6 +608,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/parser@npm:7.28.6"
+ dependencies:
+ "@babel/types": "npm:^7.28.6"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/d6bfe8aa8e067ef58909e9905496157312372ca65d8d2a4f2b40afbea48d59250163755bba8ae626a615da53d192b084bcfc8c9dad8b01e315b96967600de581
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9"
@@ -901,7 +963,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:7.27.1":
+"@babel/plugin-transform-arrow-functions@npm:7.27.1, @babel/plugin-transform-arrow-functions@npm:^7.24.7":
version: 7.27.1
resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1"
dependencies:
@@ -1039,6 +1101,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-computed-properties@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/1e9893503ae6d651125701cc29450e87c0b873c8febebff19da75da9c40cfb7968c52c28bf948244e461110aeb7b3591f2cc199b7406ff74a24c50c7a5729f39
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-computed-properties@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9"
@@ -1062,6 +1136,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-destructuring@npm:^7.28.5":
+ version: 7.28.5
+ resolution: "@babel/plugin-transform-destructuring@npm:7.28.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.28.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/288207f488412b23bb206c7c01ba143714e2506b72a9ec09e993f28366cc8188d121bde714659b3437984a86d2881d9b1b06de3089d5582823ccf2f3b3eaa2c4
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-dotall-regex@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9"
@@ -1154,6 +1240,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-function-name@npm:^7.25.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-function-name@npm:7.27.1"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.27.1"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/5abdc7b5945fbd807269dcc6e76e52b69235056023b0b35d311e8f5dfd6c09d9f225839798998fc3b663f50cf701457ddb76517025a0d7a5474f3fe56e567a4c
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-function-name@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-function-name@npm:7.25.9"
@@ -1178,6 +1277,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-literals@npm:^7.25.2":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/c40dc3eb2f45a92ee476412314a40e471af51a0f51a24e91b85cef5fc59f4fe06758088f541643f07f949d2c67ee7bdce10e11c5ec56791ae09b15c3b451eeca
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-literals@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-literals@npm:7.25.9"
@@ -1189,6 +1299,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/4632a35453d2131f0be466681d0a33e3db44d868ff51ec46cd87e0ebd1e47c6a39b894f7d1c9b06f931addf6efa9d30e60c4cdedeb4f69d426f683e11f8490cf
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9"
@@ -1318,6 +1439,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-numeric-separator@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/191097d8d2753cdd16d1acca65a945d1645ab20b65655c2f5b030a9e38967a52e093dcb21ebf391e342222705c6ffe5dea15dafd6257f7b51b77fb64a830b637
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-numeric-separator@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9"
@@ -1329,6 +1461,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-object-rest-spread@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.28.6"
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/plugin-transform-destructuring": "npm:^7.28.5"
+ "@babel/plugin-transform-parameters": "npm:^7.27.7"
+ "@babel/traverse": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/f55334352d4fcde385f2e8a58836687e71ff668c9b6e4c34d52575bf2789cdde92d9d3116edba13647ac0bc3e51fb2a6d1e8fb822dce7e8123334b82600bc4c3
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-object-rest-spread@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9"
@@ -1389,6 +1536,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7":
+ version: 7.27.7
+ resolution: "@babel/plugin-transform-parameters@npm:7.27.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/f2da3804e047d9f1cfb27be6c014e2c7f6cf5e1e38290d1cb3cb2607859e3d6facb4ee8c8c1e336e9fbb440091a174ce95ce156582d7e8bf9c0e735d11681f0f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-parameters@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-parameters@npm:7.25.9"
@@ -1535,7 +1693,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-shorthand-properties@npm:7.27.1":
+"@babel/plugin-transform-shorthand-properties@npm:7.27.1, @babel/plugin-transform-shorthand-properties@npm:^7.24.7":
version: 7.27.1
resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1"
dependencies:
@@ -1557,6 +1715,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-spread@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-spread@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/bcac50e558d6f0c501cbce19ec197af558cef51fe3b3a6eba27276e323e57a5be28109b4264a5425ac12a67bf95d6af9c2a42b05e79c522ce913fb9529259d76
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-spread@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-spread@npm:7.25.9"
@@ -1569,6 +1739,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-sticky-regex@npm:^7.24.7":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/5698df2d924f0b1b7bdb7ef370e83f99ed3f0964eb3b9c27d774d021bee7f6d45f9a73e2be369d90b4aff1603ce29827f8743f091789960e7669daf9c3cda850
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-sticky-regex@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9"
@@ -1860,6 +2041,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/template@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5
+ languageName: node
+ linkType: hard
+
"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9":
version: 7.26.9
resolution: "@babel/traverse@npm:7.26.9"
@@ -1905,6 +2097,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/traverse@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/generator": "npm:^7.28.6"
+ "@babel/helper-globals": "npm:^7.28.0"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ debug: "npm:^4.3.1"
+ checksum: 10c0/ed5deb9c3f03e2d1ad2d44b9c92c84cce24593245c3f7871ce27ee1b36d98034e6cd895fa98a94eb44ebabe1d22f51b10b09432939d1c51a0fcaab98f17a97bc
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
version: 7.26.9
resolution: "@babel/types@npm:7.26.9"
@@ -1945,6 +2152,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/types@npm:7.28.6"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ checksum: 10c0/54a6a9813e48ef6f35aa73c03b3c1572cad7fa32b61b35dd07e4230bc77b559194519c8a4d8106a041a27cc7a94052579e238a30a32d5509aa4da4d6fd83d990
+ languageName: node
+ linkType: hard
+
"@bcoe/v8-coverage@npm:^0.2.3":
version: 0.2.3
resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -2701,26 +2918,26 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/assets-registry@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/assets-registry@npm:0.84.0-rc.1"
- checksum: 10c0/da75e38d0500fea1f03462140d8161803e1452da209413158e18688e2f8cc8075d60e96fc8cb0795cf170a73c5de2e24b4d9adc7ec63eeb4b509ee2f3e94fa12
+"@react-native/assets-registry@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/assets-registry@npm:0.83.1"
+ checksum: 10c0/284ec022bc91fdc8f2dc14d92cb52247ad42b076fb12997cd089d0ea594f628425fb631d3abcf91a97bbe4f28e84ce5bcecd44ea0db86a51f821602ef54dc73c
languageName: node
linkType: hard
-"@react-native/babel-plugin-codegen@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/babel-plugin-codegen@npm:0.84.0-rc.1"
+"@react-native/babel-plugin-codegen@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/babel-plugin-codegen@npm:0.83.1"
dependencies:
"@babel/traverse": "npm:^7.25.3"
- "@react-native/codegen": "npm:0.84.0-rc.1"
- checksum: 10c0/4249f97c5827f09092ac18f3c3abd0ee529a7be8f0a38fb98819c70027649314d22f6d0ff61513a40e360235c03caf93dc177d7d6a0bf3c62ab5dc9b65888b44
+ "@react-native/codegen": "npm:0.83.1"
+ checksum: 10c0/fa08bf71cf4f4f70d8a0167ad8f91b47e270ab2879e745d63ce599406f9bb92b38100b9e0cea42dff8f8f17a5ea64826921f73f04535b4f09b77e53376cc043d
languageName: node
linkType: hard
-"@react-native/babel-preset@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/babel-preset@npm:0.84.0-rc.1"
+"@react-native/babel-preset@npm:0.83, @react-native/babel-preset@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/babel-preset@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/plugin-proposal-export-default-from": "npm:^7.24.7"
@@ -2728,19 +2945,27 @@ __metadata:
"@babel/plugin-syntax-export-default-from": "npm:^7.24.7"
"@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
"@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.24.7"
"@babel/plugin-transform-async-generator-functions": "npm:^7.25.4"
"@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
"@babel/plugin-transform-block-scoping": "npm:^7.25.0"
"@babel/plugin-transform-class-properties": "npm:^7.25.4"
"@babel/plugin-transform-classes": "npm:^7.25.4"
+ "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
"@babel/plugin-transform-destructuring": "npm:^7.24.8"
"@babel/plugin-transform-flow-strip-types": "npm:^7.25.2"
"@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-function-name": "npm:^7.25.1"
+ "@babel/plugin-transform-literals": "npm:^7.25.2"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
"@babel/plugin-transform-modules-commonjs": "npm:^7.24.8"
"@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
"@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.24.7"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7"
"@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
"@babel/plugin-transform-optional-chaining": "npm:^7.24.8"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
"@babel/plugin-transform-private-methods": "npm:^7.24.7"
"@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
"@babel/plugin-transform-react-display-name": "npm:^7.24.7"
@@ -2749,40 +2974,44 @@ __metadata:
"@babel/plugin-transform-react-jsx-source": "npm:^7.24.7"
"@babel/plugin-transform-regenerator": "npm:^7.24.7"
"@babel/plugin-transform-runtime": "npm:^7.24.7"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.24.7"
"@babel/plugin-transform-typescript": "npm:^7.25.2"
"@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
- "@react-native/babel-plugin-codegen": "npm:0.84.0-rc.1"
+ "@babel/template": "npm:^7.25.0"
+ "@react-native/babel-plugin-codegen": "npm:0.83.1"
babel-plugin-syntax-hermes-parser: "npm:0.32.0"
babel-plugin-transform-flow-enums: "npm:^0.0.2"
react-refresh: "npm:^0.14.0"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/4af7342b315f59141d948e4f43efa80a1b3c348f30ab07153a56d939336e76fe30a841db178c7d35991c5e00d6525a2eb63a80ab368b55a4e29d5980aefb38a5
+ checksum: 10c0/6662b4b427c7c95eae069e1395e92a2cd618926e22c515bb9f088ac1dde1c9c1ee707334658be68db4da5fd2e17a5d8735f9dbe455e5b454e73cca846e44050a
languageName: node
linkType: hard
-"@react-native/codegen@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/codegen@npm:0.84.0-rc.1"
+"@react-native/codegen@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/codegen@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/parser": "npm:^7.25.3"
+ glob: "npm:^7.1.1"
hermes-parser: "npm:0.32.0"
invariant: "npm:^2.2.4"
nullthrows: "npm:^1.1.1"
- tinyglobby: "npm:^0.2.15"
yargs: "npm:^17.6.2"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/6bd16c184f83c547c15b56587c124e666121384d03e59a827553d56d90c74702060823d7c44371744bb8b6849938a62d4d8be1b731bd8a997aa641288094294a
+ checksum: 10c0/8c9846ff210adc38fdc87dee3a1eff62d6e29781e3aea678069e73b27c50710c5ee38083cc4168c631118f0f4c98bd5343825e270b44a189845b358e86e1395b
languageName: node
linkType: hard
-"@react-native/community-cli-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/community-cli-plugin@npm:0.84.0-rc.1"
+"@react-native/community-cli-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/community-cli-plugin@npm:0.83.1"
dependencies:
- "@react-native/dev-middleware": "npm:0.84.0-rc.1"
+ "@react-native/dev-middleware": "npm:0.83.1"
debug: "npm:^4.4.0"
invariant: "npm:^2.2.4"
metro: "npm:^0.83.3"
@@ -2797,35 +3026,34 @@ __metadata:
optional: true
"@react-native/metro-config":
optional: true
- checksum: 10c0/ed13eca2ba4254b09883963989cc0abb8d3562eb98ebf4b442afb264b0514360e6c5d2b4f6d775a630d917777f9081efa7fa1d21cb3c6cabb519276ff76fa621
+ checksum: 10c0/9c39e186769322ab74b1f777b488452b4f891fc6a3e716155bedf6dd30e3dbd5153c07f8d0cde20407885bc3d308572b595e3f2bf7e718653731089012cd91e8
languageName: node
linkType: hard
-"@react-native/debugger-frontend@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/debugger-frontend@npm:0.84.0-rc.1"
- checksum: 10c0/527cb27c871940fa8eff175de391e6db2015e3b499be4d9e638068031b83ddee507525391ed92c381406dd1a54c4949216e2b692939dee769cebabc1860d3316
+"@react-native/debugger-frontend@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/debugger-frontend@npm:0.83.1"
+ checksum: 10c0/83a2a7a56b7cbe47771dd84ff99478ba76a4fe50a24b5c356dbceeb20a589c35334d6d321dea7bf34a04185857112bdbbb93c5edbe3512c20ef1ba1ecb4cf8b6
languageName: node
linkType: hard
-"@react-native/debugger-shell@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/debugger-shell@npm:0.84.0-rc.1"
+"@react-native/debugger-shell@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/debugger-shell@npm:0.83.1"
dependencies:
cross-spawn: "npm:^7.0.6"
- debug: "npm:^4.4.0"
fb-dotslash: "npm:0.5.8"
- checksum: 10c0/9b80445a2865045375ff5b9ae0773eb7e7fe3670e99b43afa5ac197b3c82029b33fc87e6824d32cf07439677cefffe4bd2d851f3a306af5931dc242617df66fc
+ checksum: 10c0/a98b870f1741f476dade84cb770a090e30a82712caef7589b9a5ffc7b5fde18acb270950c57dc03301c2fe091bbe9edc5b2ebfe699d7e07ba8df4a7ccbf4863e
languageName: node
linkType: hard
-"@react-native/dev-middleware@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/dev-middleware@npm:0.84.0-rc.1"
+"@react-native/dev-middleware@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/dev-middleware@npm:0.83.1"
dependencies:
"@isaacs/ttlcache": "npm:^1.4.1"
- "@react-native/debugger-frontend": "npm:0.84.0-rc.1"
- "@react-native/debugger-shell": "npm:0.84.0-rc.1"
+ "@react-native/debugger-frontend": "npm:0.83.1"
+ "@react-native/debugger-shell": "npm:0.83.1"
chrome-launcher: "npm:^0.15.2"
chromium-edge-launcher: "npm:^0.2.0"
connect: "npm:^3.6.5"
@@ -2835,17 +3063,17 @@ __metadata:
open: "npm:^7.0.3"
serve-static: "npm:^1.16.2"
ws: "npm:^7.5.10"
- checksum: 10c0/35094c8040f964bd6b42773da8cf4187bdee59bead503ead425fd04ce22b89254ff350ff8879d511cff0f7f7e2e9763aafe800f40b074c40778e5918caf8180a
+ checksum: 10c0/b9697e8729a74daf21338e2f3b69c1a542a9023cffe7b045537e2bd66d55397544b47b6980120207bf4dac5add986bcb0aed9a41608f74df3f9210d1f5d9f604
languageName: node
linkType: hard
-"@react-native/eslint-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/eslint-config@npm:0.84.0-rc.1"
+"@react-native/eslint-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/eslint-config@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/eslint-parser": "npm:^7.25.1"
- "@react-native/eslint-plugin": "npm:0.84.0-rc.1"
+ "@react-native/eslint-plugin": "npm:0.83.1"
"@typescript-eslint/eslint-plugin": "npm:^8.36.0"
"@typescript-eslint/parser": "npm:^8.36.0"
eslint-config-prettier: "npm:^8.5.0"
@@ -2854,78 +3082,78 @@ __metadata:
eslint-plugin-jest: "npm:^29.0.1"
eslint-plugin-react: "npm:^7.30.1"
eslint-plugin-react-hooks: "npm:^7.0.1"
- eslint-plugin-react-native: "npm:^5.0.0"
+ eslint-plugin-react-native: "npm:^4.0.0"
peerDependencies:
- eslint: ^8.0.0 || ^9.0.0
+ eslint: ">=8"
prettier: ">=2"
- checksum: 10c0/b7379d0e8592e82e94d545e359a490e52bf4a03341ba27941607bf477f0eae6b53fd54018ad98f70c0b96a5d1b1365da8086549781e741f1a0a9a73cd36259ae
+ checksum: 10c0/c6df159a86abd073e4093a1b32f5c410cb698d4f4b9996256c0027acd986007985a79fc44a85ff2752bbcdea3a1131b84dcdeccc9a1b8dac8b06487e1590e9a0
languageName: node
linkType: hard
-"@react-native/eslint-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/eslint-plugin@npm:0.84.0-rc.1"
- checksum: 10c0/16b65b3e5991ea8063ae9b2362c7f3ac6df792325c049786ce6c21ea8d7de4d0a4e15aff688da0689a00a2d80add712f240102fd31751561a99b3ff8a89b6c16
+"@react-native/eslint-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/eslint-plugin@npm:0.83.1"
+ checksum: 10c0/11ed1b8162d0a31ba854d41e2e9009418cf4a2a85188c542f2491316b2718808e53f788529d79f0a143d5a17d8b6f92c074303b9490ca44f546d7f344b0e925c
languageName: node
linkType: hard
-"@react-native/gradle-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/gradle-plugin@npm:0.84.0-rc.1"
- checksum: 10c0/54623d7ab7e6eb17fad242e95b110bc3950be2d0b83d5bce88abad8cb71e05f7cb4534c1f0cbbe44ccef6c5943c811316e5cb6363386a58f2a08405ca06447f5
+"@react-native/gradle-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/gradle-plugin@npm:0.83.1"
+ checksum: 10c0/3f55ea53fbb3ac1892c2d442a6649e779290e49667d887f613dd28b7d6d2dd73b33b5dbbe03bcfa1f730bf151dd05b9770631f6c66177162483a75ebb1a85c36
languageName: node
linkType: hard
-"@react-native/js-polyfills@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/js-polyfills@npm:0.84.0-rc.1"
- checksum: 10c0/8d0e0bba3c67cfea439847211f9d44a8b1ad96cdd5b65658eb73f031d14a52ac3a464af54e9f655f121c523b7fb59658239687eaef7d3ee1a509e62b128920d3
+"@react-native/js-polyfills@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/js-polyfills@npm:0.83.1"
+ checksum: 10c0/f79a6ccf0ba7206bbb0d0653c3a0da8d8bb9c064cf2614c04b69204a4b36f047bd4d00f835114f0f7f0bf37c0c9c388eea6baedbf2eeec1fbc7cdbbb76d12e7d
languageName: node
linkType: hard
-"@react-native/metro-babel-transformer@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/metro-babel-transformer@npm:0.84.0-rc.1"
+"@react-native/metro-babel-transformer@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/metro-babel-transformer@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
- "@react-native/babel-preset": "npm:0.84.0-rc.1"
+ "@react-native/babel-preset": "npm:0.83.1"
hermes-parser: "npm:0.32.0"
nullthrows: "npm:^1.1.1"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/9e3494eb71fffb85d75000896174414394cd8fa9cabf6ee44a70fdf6df2b1d823e90de39fd5c348e05468110910c9f12c64ca0e301d5125af50882ca0d69f3e2
+ checksum: 10c0/be9c900d6c303202839cdb9009349e389b8850eda0805080428d1ed9a95113c653a653639ffb9e1bbeba047196359f3fe1c1afe9e0e0e308d13850570ef7184a
languageName: node
linkType: hard
-"@react-native/metro-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/metro-config@npm:0.84.0-rc.1"
+"@react-native/metro-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/metro-config@npm:0.83.1"
dependencies:
- "@react-native/js-polyfills": "npm:0.84.0-rc.1"
- "@react-native/metro-babel-transformer": "npm:0.84.0-rc.1"
+ "@react-native/js-polyfills": "npm:0.83.1"
+ "@react-native/metro-babel-transformer": "npm:0.83.1"
metro-config: "npm:^0.83.3"
metro-runtime: "npm:^0.83.3"
- checksum: 10c0/5e94a9410eec96f57c446a3e015ccb99a1acdef9f6226c064f0ad1d4de25f73bb9e47ef1c79f5c49696d404ac61cc03db45d46d0b1c5cf0483517e0d35053bb6
+ checksum: 10c0/5aa6d30a96a04ec21c8fe6640843014a6a45659b7013b690843f42ede7b7ba340bd452bca80b5a430d3eb3d62fdcb6ab6fd83447782da1b50e1dd3c04f994d2d
languageName: node
linkType: hard
-"@react-native/normalize-colors@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/normalize-colors@npm:0.84.0-rc.1"
- checksum: 10c0/cfd1d7905fcdbd479b7b0b4078980bb2313a1fac0511d8d711e33683c85617598b1d5ea80a58c235009fb06480a0937ad0173601e472c9d04c59b7dd4244de5c
+"@react-native/normalize-colors@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/normalize-colors@npm:0.83.1"
+ checksum: 10c0/e1bb0b1b6d098513dd493b1ea926a8db57e96132be75525c8d03008453a48a2f09a12d8b059ef49fcb6ae05f0decc1a9120825ea5c845a4aeedd6e4b1596d75b
languageName: node
linkType: hard
-"@react-native/typescript-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/typescript-config@npm:0.84.0-rc.1"
- checksum: 10c0/2467f7b0c90d870633ef71fa060c409f00de9a3578f129e646aca7a7a176fe5094c1b7ba87f0a1f5906f2f36b3c695bafb9057d3fc8555b25520f517ccdfcc7b
+"@react-native/typescript-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/typescript-config@npm:0.83.1"
+ checksum: 10c0/d630758fa5e081d39a6c665068576574cfad08d7d0971a4de25a95bd9e3547ab28aa8e57543ba741569c4c9adf37587e80ac1ef2971cc1e6d2bbfd0c326edb1a
languageName: node
linkType: hard
-"@react-native/virtualized-lists@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/virtualized-lists@npm:0.84.0-rc.1"
+"@react-native/virtualized-lists@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/virtualized-lists@npm:0.83.1"
dependencies:
invariant: "npm:^2.2.4"
nullthrows: "npm:^1.1.1"
@@ -2936,7 +3164,7 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 10c0/0467997af2f7e96aef9e906dbf280a40495f67b7423ec6cef9f4c2c6af029955ecf401230e93644ff0a6c0f396fe1464bc6baa2436206bfe76970d450c554ffa
+ checksum: 10c0/722a2939dc056fda700935026d6d2d6ac26ddc98a06370d96e3d97d254bda321e4c5ec3ccca64e97f119d9a56eb707ffb35100ae377431e69427550c68ee4709
languageName: node
linkType: hard
@@ -3389,10 +3617,10 @@ __metadata:
"@react-native-community/cli": "npm:20.1.0"
"@react-native-community/cli-platform-android": "npm:20.1.0"
"@react-native-community/cli-platform-ios": "npm:20.1.0"
- "@react-native/babel-preset": "npm:0.84.0-rc.1"
- "@react-native/eslint-config": "npm:0.84.0-rc.1"
- "@react-native/metro-config": "npm:0.84.0-rc.1"
- "@react-native/typescript-config": "npm:0.84.0-rc.1"
+ "@react-native/babel-preset": "npm:0.83"
+ "@react-native/eslint-config": "npm:0.83"
+ "@react-native/metro-config": "npm:0.83"
+ "@react-native/typescript-config": "npm:0.83"
"@react-navigation/bottom-tabs": "link:../react-navigation/packages/bottom-tabs/"
"@react-navigation/core": "link:../react-navigation/packages/core/"
"@react-navigation/drawer": "link:../react-navigation/packages/drawer/"
@@ -3412,7 +3640,7 @@ __metadata:
patch-package: "npm:^8.0.0"
prettier: "npm:2.8.8"
react: "npm:19.2.3"
- react-native: "npm:0.84.0-rc.1"
+ react-native: "npm:0.83"
react-native-gesture-handler: "npm:^2.29.0"
react-native-reanimated: "npm:~4.2.1"
react-native-restart: "npm:^0.0.27"
@@ -5221,14 +5449,14 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-native@npm:^5.0.0":
- version: 5.0.0
- resolution: "eslint-plugin-react-native@npm:5.0.0"
+"eslint-plugin-react-native@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "eslint-plugin-react-native@npm:4.1.0"
dependencies:
eslint-plugin-react-native-globals: "npm:^0.1.1"
peerDependencies:
- eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- checksum: 10c0/c7c927bc743abf0cb367cc64fea5b28b28ea0c58be2990cab858a050b4855e89d90513afa44d73012c9fd670810ad0da2ac72e3e4bdfedf0ce0cbb65e901af7f
+ eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/9aedccde6227b78bad7c243844aca0860fca2dccd635e91e745bcd617c1e7fb889fa212917cf7b56860335a147fc7c8dc339d1976330ec4f896fe9156b35b162
languageName: node
linkType: hard
@@ -5560,18 +5788,6 @@ __metadata:
languageName: node
linkType: hard
-"fdir@npm:^6.5.0":
- version: 6.5.0
- resolution: "fdir@npm:6.5.0"
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
- languageName: node
- linkType: hard
-
"fecha@npm:^4.2.0":
version: 4.2.3
resolution: "fecha@npm:4.2.3"
@@ -5935,7 +6151,7 @@ __metadata:
languageName: node
linkType: hard
-"glob@npm:^7.1.3, glob@npm:^7.1.4":
+"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4":
version: 7.2.3
resolution: "glob@npm:7.2.3"
dependencies:
@@ -6066,10 +6282,10 @@ __metadata:
languageName: node
linkType: hard
-"hermes-compiler@npm:250829098.0.6":
- version: 250829098.0.6
- resolution: "hermes-compiler@npm:250829098.0.6"
- checksum: 10c0/ca565183f28fb6ee079ba1232ab005be8a2af49ac0db45e912b23a90cc44e8202a1f808a059d6c1601bcc9b976caac356639dc59d7eb5897cb2ecb1ef3661a23
+"hermes-compiler@npm:0.14.0":
+ version: 0.14.0
+ resolution: "hermes-compiler@npm:0.14.0"
+ checksum: 10c0/672036528448e8af5895c9d8c5dfd6012b76e92a5a187caf3143925e358bfc81b993a0cd50bbae7518c01fe6dc4fdc882e25cd623219a4d33f56d5f7abe6918b
languageName: node
linkType: hard
@@ -8686,13 +8902,6 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^4.0.3":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
- languageName: node
- linkType: hard
-
"pirates@npm:^4.0.4":
version: 4.0.6
resolution: "pirates@npm:4.0.6"
@@ -8998,18 +9207,18 @@ __metadata:
languageName: node
linkType: hard
-"react-native@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "react-native@npm:0.84.0-rc.1"
+"react-native@npm:0.83":
+ version: 0.83.1
+ resolution: "react-native@npm:0.83.1"
dependencies:
"@jest/create-cache-key-function": "npm:^29.7.0"
- "@react-native/assets-registry": "npm:0.84.0-rc.1"
- "@react-native/codegen": "npm:0.84.0-rc.1"
- "@react-native/community-cli-plugin": "npm:0.84.0-rc.1"
- "@react-native/gradle-plugin": "npm:0.84.0-rc.1"
- "@react-native/js-polyfills": "npm:0.84.0-rc.1"
- "@react-native/normalize-colors": "npm:0.84.0-rc.1"
- "@react-native/virtualized-lists": "npm:0.84.0-rc.1"
+ "@react-native/assets-registry": "npm:0.83.1"
+ "@react-native/codegen": "npm:0.83.1"
+ "@react-native/community-cli-plugin": "npm:0.83.1"
+ "@react-native/gradle-plugin": "npm:0.83.1"
+ "@react-native/js-polyfills": "npm:0.83.1"
+ "@react-native/normalize-colors": "npm:0.83.1"
+ "@react-native/virtualized-lists": "npm:0.83.1"
abort-controller: "npm:^3.0.0"
anser: "npm:^1.4.9"
ansi-regex: "npm:^5.0.0"
@@ -9018,7 +9227,8 @@ __metadata:
base64-js: "npm:^1.5.1"
commander: "npm:^12.0.0"
flow-enums-runtime: "npm:^0.0.6"
- hermes-compiler: "npm:250829098.0.6"
+ glob: "npm:^7.1.1"
+ hermes-compiler: "npm:0.14.0"
invariant: "npm:^2.2.4"
jest-environment-node: "npm:^29.7.0"
memoize-one: "npm:^5.0.0"
@@ -9033,19 +9243,18 @@ __metadata:
scheduler: "npm:0.27.0"
semver: "npm:^7.1.3"
stacktrace-parser: "npm:^0.1.10"
- tinyglobby: "npm:^0.2.15"
whatwg-fetch: "npm:^3.0.0"
ws: "npm:^7.5.10"
yargs: "npm:^17.6.2"
peerDependencies:
"@types/react": ^19.1.1
- react: ^19.2.3
+ react: ^19.2.0
peerDependenciesMeta:
"@types/react":
optional: true
bin:
react-native: cli.js
- checksum: 10c0/d35814637f8fb9059f57fb75f92d16c9e350066c428dc3da26abf00e6322a1c00440659b570c392715fb6e74be683a5346c784ae634d11e7410822cfd00aa49a
+ checksum: 10c0/3a2202ea6e69c1f612b71d31a664eeda2b79811e560aab280c2fa5738d5e285c52d3b6d1820bb1652dd0d78f5ac0f7f183535b5585e29f8cc8298723aa834999
languageName: node
linkType: hard
@@ -10141,16 +10350,6 @@ __metadata:
languageName: node
linkType: hard
-"tinyglobby@npm:^0.2.15":
- version: 0.2.15
- resolution: "tinyglobby@npm:0.2.15"
- dependencies:
- fdir: "npm:^6.5.0"
- picomatch: "npm:^4.0.3"
- checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
- languageName: node
- linkType: hard
-
"tmp@npm:^0.0.33":
version: 0.0.33
resolution: "tmp@npm:0.0.33"
diff --git a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt
index a15ed76841..df21435274 100644
--- a/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt
+++ b/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt
@@ -1,5 +1,6 @@
package com.swmansion.rnscreens
+import android.util.Log
import android.view.ViewGroup
import androidx.annotation.UiThread
import com.facebook.react.bridge.ReactContext
@@ -50,6 +51,19 @@ abstract class FabricEnabledViewGroup(
return
}
+ Log.d(
+ "SCREENS",
+ "FabricEnabledViewGroup // updateState lastWidth = %f, lastHeight = %f, lastHeader = %f, newWidth = %f, newHeight = %f, newHeader = %f"
+ .format(
+ lastWidth,
+ lastHeight,
+ lastHeaderHeight,
+ realWidth,
+ realHeight,
+ realHeaderHeight,
+ ),
+ )
+
lastWidth = realWidth
lastHeight = realHeight
lastHeaderHeight = realHeaderHeight
diff --git a/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt b/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt
index 68740757b7..ad83ecf3d1 100644
--- a/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/CustomAppBarLayout.kt
@@ -2,6 +2,7 @@ package com.swmansion.rnscreens
import android.annotation.SuppressLint
import android.content.Context
+import android.util.Log
import com.google.android.material.appbar.AppBarLayout
@SuppressLint("ViewConstructor")
@@ -12,6 +13,7 @@ class CustomAppBarLayout(
* Handles the layout correction from the child Toolbar.
*/
internal fun applyToolbarLayoutCorrection(toolbarPaddingTop: Int) {
+ Log.d("SCREENS", "CustomAppBarLayout // applyToolbarLayoutCorrection paddingTop = %d".format(toolbarPaddingTop));
applyFrameCorrectionByTopInset(toolbarPaddingTop)
}
diff --git a/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt b/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt
index 0ecc2fc36e..d3a170c4bd 100644
--- a/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt
@@ -3,6 +3,7 @@ package com.swmansion.rnscreens
import android.annotation.SuppressLint
import android.content.Context
import android.os.Build
+import android.util.Log
import android.view.Choreographer
import android.view.WindowInsets
import android.view.WindowManager
@@ -116,6 +117,8 @@ open class CustomToolbar(
override fun onApplyWindowInsets(insets: WindowInsets?): WindowInsets? {
val unhandledInsets = super.onApplyWindowInsets(insets)
+ Log.d("SCREENS", "onApplyWindowInsets")
+
// There are few UI modes we could be running in
//
// 1. legacy non edge-to-edge mode,
@@ -153,6 +156,7 @@ open class CustomToolbar(
val newInsets = InsetsCompat.add(horizontalInsets, verticalInsets)
if (lastInsets != newInsets) {
+ Log.d("SCREENS", "applyExactPadding lastInsets.top = %d, newInsets.top = %d".format(lastInsets.top, newInsets.top))
lastInsets = newInsets
applyExactPadding(
lastInsets.left,
@@ -174,6 +178,10 @@ open class CustomToolbar(
) {
super.onLayout(hasSizeChanged, l, t, r, b)
+ Log.d("SCREENS", "CustomToolbar // onLayout hasSizeChanged = %b, l = %d, t = %d, r = %d, b = %d".format(
+ hasSizeChanged, l, t, r, b
+ ))
+
config.onNativeToolbarLayout(
this,
hasSizeChanged || isForceShadowStateUpdateOnLayoutRequested,
diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
index 6b3a81bcc3..bcbf05d475 100644
--- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.pm.ActivityInfo
import android.graphics.Paint
import android.os.Parcelable
+import android.util.Log
import android.util.SparseArray
import android.view.MotionEvent
import android.view.View
@@ -350,6 +351,7 @@ class Screen(
r: Int,
b: Int,
) {
+ Log.d("SCREENS", "Screen // onLayout top = %d, width = %d, height = %d".format(t, r - l, b - t));
// In case of form sheet we get layout notification a bit later, in `onBottomSheetBehaviorDidLayout`
// after the attached behaviour laid out this view.
if (changed && isNativeStackScreen && !usesFormSheetPresentation()) {
diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt
index 9a9cbf312f..cb6c161243 100644
--- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.graphics.PorterDuff
import android.graphics.PorterDuffColorFilter
import android.text.TextUtils
+import android.util.Log
import android.util.TypedValue
import android.view.Gravity
import android.view.View.OnClickListener
@@ -128,6 +129,7 @@ class ScreenStackHeaderConfig(
val contentInsetEnd = toolbar.currentContentInsetEnd + toolbar.paddingEnd
+ Log.d("SCREENS", "ScreenStackHeaderConfig // onNativeToolbarLayout")
headerHeightUpdateProxy.updateHeaderHeightIfNeeded(this, screen)
// Note that implementation of the callee differs between architectures.
@@ -342,6 +344,7 @@ class ScreenStackHeaderConfig(
i++
}
+ Log.d("SCREENS", "ScreenStackHeaderConfig.onUpdate")
headerHeightUpdateProxy.updateHeaderHeightIfNeeded(this, screen)
}
diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderHeightUpdateProxy.kt b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderHeightUpdateProxy.kt
index 5485c80a72..df8ef5d4ba 100644
--- a/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderHeightUpdateProxy.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderHeightUpdateProxy.kt
@@ -1,5 +1,7 @@
package com.swmansion.rnscreens
+import android.util.Log
+
class ScreenStackHeaderHeightUpdateProxy {
var previousHeaderHeightInPx: Int? = null
@@ -9,6 +11,8 @@ class ScreenStackHeaderHeightUpdateProxy {
) {
val currentHeaderHeightInPx = if (config.isHeaderHidden) 0 else config.toolbar.height
+ Log.d("SCREENS", "ScreenStackHeaderHeightUpdateProxy // updateHeaderHeightIfNeeded %d".format(currentHeaderHeightInPx))
+
if (currentHeaderHeightInPx != previousHeaderHeightInPx) {
previousHeaderHeightInPx = currentHeaderHeightInPx
screen?.notifyHeaderHeightChange(currentHeaderHeightInPx)
diff --git a/android/src/main/java/com/swmansion/rnscreens/utils/InsetsUtils.kt b/android/src/main/java/com/swmansion/rnscreens/utils/InsetsUtils.kt
new file mode 100644
index 0000000000..666aed96ee
--- /dev/null
+++ b/android/src/main/java/com/swmansion/rnscreens/utils/InsetsUtils.kt
@@ -0,0 +1,17 @@
+package com.swmansion.rnscreens.utils
+
+import android.app.Activity
+import android.os.Build
+import android.view.WindowInsets
+import androidx.annotation.RequiresApi
+
+@RequiresApi(Build.VERSION_CODES.R)
+internal fun getWindowManagerTopInset(activity: Activity): Int {
+ val windowMetrics = activity.windowManager.maximumWindowMetrics
+ val insets =
+ windowMetrics.windowInsets.getInsetsIgnoringVisibility(
+ WindowInsets.Type.statusBars() or WindowInsets.Type.displayCutout(),
+ )
+
+ return insets.top
+}
diff --git a/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt b/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt
index 47cde4986e..4bb0a4e3cc 100644
--- a/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt
+++ b/android/src/main/java/com/swmansion/rnscreens/utils/ScreenDummyLayoutHelper.kt
@@ -2,6 +2,8 @@ package com.swmansion.rnscreens.utils
import android.app.Activity
import android.content.Context
+import android.content.pm.ActivityInfo
+import android.os.Build
import android.util.Log
import android.view.View
import androidx.appcompat.widget.Toolbar
@@ -32,8 +34,6 @@ internal class ScreenDummyLayoutHelper(
private lateinit var toolbar: Toolbar
private var defaultFontSize: Float = 0f
private var defaultContentInsetStartWithNavigation: Int = 0
-
- // LRU with size 1
private var cache: CacheEntry = CacheEntry.EMPTY
// We do not want to be responsible for the context lifecycle. If it's null, we're fine.
@@ -87,6 +87,8 @@ internal class ScreenDummyLayoutHelper(
}
synchronized(this) {
+ Log.d("SCREENS", "ScreenDummyLayoutHelper // activity id ${reactContext.currentActivity}")
+
// The layout could have been initialised when this thread waited for access to critical section.
if (isLayoutInitialized) {
return true
@@ -174,12 +176,19 @@ internal class ScreenDummyLayoutHelper(
}
}
- if (cache.hasKey(CacheKey(fontSize, isTitleEmpty))) {
+ val activity = requireActivity()
+
+ Log.d("SCREENS", "orientation = %d".format(activity.resources.configuration.orientation))
+
+ if (cache.hasKey(CacheKey(fontSize, isTitleEmpty, activity.resources.configuration.orientation))) {
return cache.headerHeight
}
- val topLevelDecorView = requireActivity().window.decorView
- val topInset = getDecorViewTopInset(topLevelDecorView)
+ val topLevelDecorView = activity.window.decorView
+ val topInset = getCachedTopInset()
+
+ Log.d("SCREENS", "ScreenDummyLayoutHelper // decorView.width = %d, decorView.height = %d".format(topLevelDecorView.width, topLevelDecorView.height))
+ Log.d("SCREENS", "ScreenDummyLayoutHelper // topInset = %d".format(topInset))
// These dimensions are not accurate, as they do include navigation bar, however
// it is ok for our purposes.
@@ -213,10 +222,21 @@ internal class ScreenDummyLayoutHelper(
val totalAppBarLayoutHeight = appBarLayout.height.toFloat() + topInset
val headerHeight = PixelUtil.toDIPFromPixel(totalAppBarLayoutHeight)
- cache = CacheEntry(CacheKey(fontSize, isTitleEmpty), headerHeight)
return headerHeight
}
+ private fun getCachedTopInset(): Int {
+ requireActivity().let {
+ // If build version allows, use insets retrieved from window manager
+ // They are correctly updated and available during orientation change
+ // which prevents content from jumping when calculating new layout
+ return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
+ getWindowManagerTopInset(it)
+ else
+ getDecorViewTopInset(it.window.decorView)
+ }
+ }
+
private fun requireReactContext(lazyMessage: (() -> Any)? = null): ReactApplicationContext =
requireNotNull(
reactContextRef.get(),
@@ -275,6 +295,7 @@ internal class ScreenDummyLayoutHelper(
private data class CacheKey(
val fontSize: Int,
val isTitleEmpty: Boolean,
+ val orientation: Int,
)
private class CacheEntry(
@@ -284,6 +305,6 @@ private class CacheEntry(
fun hasKey(key: CacheKey) = cacheKey.fontSize != Int.MIN_VALUE && cacheKey == key
companion object {
- val EMPTY = CacheEntry(CacheKey(Int.MIN_VALUE, false), 0f)
+ val EMPTY = CacheEntry(CacheKey(Int.MIN_VALUE, false, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT), 0f)
}
}
diff --git a/android/src/main/jni/CMakeLists.txt b/android/src/main/jni/CMakeLists.txt
index b2dfc56afc..e872033609 100644
--- a/android/src/main/jni/CMakeLists.txt
+++ b/android/src/main/jni/CMakeLists.txt
@@ -44,6 +44,7 @@ target_link_libraries(
ReactAndroid::reactnative
ReactAndroid::jsi
fbjni::fbjni
+ log
)
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 80)
diff --git a/apps/App.tsx b/apps/App.tsx
index 7a999525a1..897329f82f 100644
--- a/apps/App.tsx
+++ b/apps/App.tsx
@@ -1,11 +1,11 @@
import React from 'react';
import { enableFreeze } from 'react-native-screens';
-import Example from './Example';
-// import * as Test from './src/tests/issue-tests';
+// import Example from './Example';
+import * as Test from './src/tests/issue-tests';
enableFreeze(true);
export default function App() {
- return ;
- // return ;
+ // return ;
+ return ;
}
diff --git a/apps/src/tests/issue-tests/Test3578.tsx b/apps/src/tests/issue-tests/Test3578.tsx
new file mode 100644
index 0000000000..05d61625aa
--- /dev/null
+++ b/apps/src/tests/issue-tests/Test3578.tsx
@@ -0,0 +1,157 @@
+import React, { useEffect, useState } from 'react';
+import type { PropsWithChildren } from 'react';
+import { Button, StyleSheet, Text, View } from 'react-native';
+
+import {
+ Screen,
+ ScreenStack,
+ ScreenStackHeaderConfig,
+} from 'react-native-screens';
+
+type SectionProps = PropsWithChildren<{
+ title: string;
+}>;
+
+function Section({ children, title }: SectionProps): React.JSX.Element {
+ return (
+
+ {title}
+ {children}
+
+ );
+}
+
+function floodJsThread() {
+ setInterval(() => {
+ const end = Date.now() + 10;
+ while (Date.now() < end) {
+ // Intentionally do nothing; just burn CPU cycles.
+ Math.sqrt(Math.random());
+ }
+ }, 12);
+}
+
+function AppMain(): React.JSX.Element {
+ const backgroundStyle = {
+ flex: 1,
+ backgroundColor: 'white',
+ };
+
+ const [num, setNum] = useState(0);
+
+ useEffect(() => {
+ let i = 0;
+ setInterval(() => {
+ i++;
+ setNum(i);
+ }, 2);
+ }, []);
+
+ /*
+ * To keep the template simple and small we're adding padding to prevent view
+ * from rendering under the System UI.
+ * For bigger apps the reccomendation is to use `react-native-safe-area-context`:
+ * https://github.com/AppAndFlow/react-native-safe-area-context
+ *
+ * You can read more about it here:
+ * https://github.com/react-native-community/discussions-and-proposals/discussions/827
+ */
+ const safePadding = '5%';
+
+ return (
+
+
+ {/*
+ This test shows how the native layout update triggers a layout shift.
+ */}
+ {/*
+ There is a view with a blue background. We don't expect to ever see
+ flashes of the blue background.
+ */}
+
+
+
+ To better show off the problem, you can add extra computation to the
+ JS thread, so that the commits are likely further apart from each
+ other.
+
+
+
+
+ );
+}
+
+const styles = StyleSheet.create({
+ sectionContainer: {
+ marginTop: 32,
+ paddingHorizontal: 24,
+ },
+ sectionTitle: {
+ fontSize: 24,
+ fontWeight: '600',
+ },
+ sectionDescription: {
+ marginTop: 8,
+ fontSize: 18,
+ fontWeight: '400',
+ },
+ highlight: {
+ fontWeight: '700',
+ },
+});
+
+function InnerStack() {
+ return (
+
+
+
+
+
+
+ );
+}
+
+function App() {
+ return (
+
+
+
+
+
+
+ );
+}
+
+export default App;
diff --git a/apps/src/tests/issue-tests/index.ts b/apps/src/tests/issue-tests/index.ts
index e1272038e0..852ebae4cf 100644
--- a/apps/src/tests/issue-tests/index.ts
+++ b/apps/src/tests/issue-tests/index.ts
@@ -179,6 +179,7 @@ export { default as Test3522 } from './Test3522';
export { default as Test3564 } from './Test3564';
export { default as Test3566 } from './Test3566';
export { default as Test3576 } from './Test3576';
+export { default as Test3578 } from './Test3578';
export { default as Test3596 } from './Test3596';
export { default as Test3617 } from './Test3617';
export { default as TestScreenAnimation } from './TestScreenAnimation';
diff --git a/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h b/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h
index 2389f94a28..115890e9fd 100644
--- a/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h
+++ b/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h
@@ -5,6 +5,7 @@
#include
#include "RNSScreenShadowNodeCommitHook.h"
#endif // ANDROID
+#include
#include
#include
#include
@@ -45,6 +46,10 @@ class RNSScreenComponentDescriptor final
std::static_pointer_cast(
shadowNode.getState());
auto stateData = state->getData();
+
+ __android_log_print(
+ ANDROID_LOG_INFO, "SCREENS", "RNSScreenComponentDescriptor // adopt");
+
#ifdef ANDROID
// get
// featureFlags.experiment.androidResetScreenShadowStateOnOrientationChange
@@ -108,6 +113,7 @@ class RNSScreenComponentDescriptor final
// The if condition holds true on first render and when it is reset inside
// RNSScreenShadowNodeCommitHook.
layoutableShadowNode.setSize({YGUndefined, YGUndefined});
+ screenShadowNode.applyHeaderPadding();
}
#else
if (stateData.frameSize.width != 0 && stateData.frameSize.height != 0) {
diff --git a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp
index e69df80b12..409240155e 100644
--- a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp
+++ b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp
@@ -1,4 +1,6 @@
#include "RNSScreenShadowNode.h"
+#include
+#include "YLSN.h"
namespace facebook {
namespace react {
@@ -96,19 +98,7 @@ void RNSScreenShadowNode::appendChild(
// During creation of the shadow node children are not attached yet.
// We also do not want to set any padding in case.
if (headerConfigChildOpt) {
- const auto &headerConfigChild = headerConfigChildOpt->get();
- const auto &headerProps =
- *std::static_pointer_cast(
- headerConfigChild->getProps());
-
- const auto headerHeight = headerProps.hidden
- ? 0.f
- : findHeaderHeight(
- headerProps.titleFontSize, headerProps.title.empty())
- .value_or(0.f);
-
- screenShadowNode.setPadding({0, 0, 0, headerHeight});
- screenShadowNode.setHeaderHeight(headerHeight);
+ doApplyHeaderPadding(headerConfigChildOpt);
screenShadowNode.getFrameCorrectionModes().set(
FrameCorrectionModes::Mode(
FrameCorrectionModes::Mode::FrameHeightCorrection |
@@ -119,6 +109,15 @@ void RNSScreenShadowNode::appendChild(
}
void RNSScreenShadowNode::layout(facebook::react::LayoutContext layoutContext) {
+ yoga::Node yogaNode = ((YLSN *)this)->yogaNode_;
+ float padding = yogaNode.style().padding(yoga::Edge::Bottom).value().unwrap();
+ __android_log_print(
+ ANDROID_LOG_INFO,
+ "SCREENS",
+ "RNSScreenShadowNode // origin.y = %f height = %f, padding = %f",
+ layoutMetrics_.frame.origin.y,
+ layoutMetrics_.frame.size.height,
+ padding);
YogaLayoutableShadowNode::layout(layoutContext);
#ifdef ANDROID
@@ -147,6 +146,43 @@ void RNSScreenShadowNode::applyFrameCorrections() {
FrameCorrectionModes::Mode::FrameHeightCorrection);
}
+void RNSScreenShadowNode::applyHeaderPadding() {
+ auto headerConfigChildOpt = findHeaderConfigChild(*this);
+
+ if (headerConfigChildOpt) {
+ doApplyHeaderPadding(headerConfigChildOpt);
+ }
+};
+
+void RNSScreenShadowNode::doApplyHeaderPadding(
+ std::optional<
+ const std::reference_wrapper>>
+ headerConfigRef) {
+ if (!headerConfigRef) {
+ return;
+ }
+
+ const auto &headerConfigChild = headerConfigRef->get();
+ const auto &headerProps =
+ *std::static_pointer_cast(
+ headerConfigChild->getProps());
+
+ const auto headerHeight = headerProps.hidden
+ ? 0.f
+ : findHeaderHeight(headerProps.titleFontSize, headerProps.title.empty())
+ .value_or(0.f);
+
+ __android_log_print(
+ ANDROID_LOG_INFO,
+ "SCREENS",
+ "RNSScreenShadowNode // doApplyHeaderPadding headerHeight = %f",
+ headerHeight);
+
+ auto &screenShadowNode = static_cast(*this);
+ screenShadowNode.setPadding({0, 0, 0, headerHeight});
+ screenShadowNode.setHeaderHeight(headerHeight);
+};
+
void RNSScreenShadowNode::setHeaderHeight(float headerHeight) {
getStateDataMutable().setHeaderHeight(headerHeight);
}
diff --git a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h
index 93c9f4ba6c..0dea723d9f 100644
--- a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h
+++ b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h
@@ -4,8 +4,10 @@
#include
#include
#include
+#include
#include
#include "FrameCorrectionModes.h"
+#include "RNSScreenStackHeaderConfigShadowNode.h"
#include "RNSScreenState.h"
namespace facebook {
@@ -41,10 +43,16 @@ class JSI_EXPORT RNSScreenShadowNode final : public ConcreteViewShadowNode<
#ifdef ANDROID
void resetFrameSizeState();
+ void applyHeaderPadding();
+
private:
void applyFrameCorrections();
StateData &getStateDataMutable();
+
+ void doApplyHeaderPadding(
+ std::optional>>);
#endif // ANDROID
};
diff --git a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNodeCommitHook.cpp b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNodeCommitHook.cpp
index b0ec6ee1e9..39fb320ec0 100644
--- a/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNodeCommitHook.cpp
+++ b/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNodeCommitHook.cpp
@@ -35,6 +35,10 @@ RootShadowNode::Unshared RNSScreenShadowNodeCommitHook::shadowTreeWillCommit(
// Check if screen area has changed size (either because of orientation
// change, or application resize with floating window / split screen)
if (_screenSizeChanged(*oldRootProps, *newRootProps)) {
+ __android_log_print(
+ ANDROID_LOG_INFO,
+ "SCREENS",
+ "RNSScreenShadowNodeCommitHook // orientation change detected");
return newRootShadowNodeWithScreenFrameSizesReset(newRootShadowNode);
}
diff --git a/common/cpp/react/renderer/components/rnscreens/YLSN.h b/common/cpp/react/renderer/components/rnscreens/YLSN.h
new file mode 100644
index 0000000000..fe80d60ff6
--- /dev/null
+++ b/common/cpp/react/renderer/components/rnscreens/YLSN.h
@@ -0,0 +1,236 @@
+/*
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+#pragma once
+
+#include
+#include
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace facebook::react {
+
+class YLSN : public LayoutableShadowNode {
+ public:
+ using Shared = std::shared_ptr;
+ using ListOfShared = std::vector;
+
+#pragma mark - Constructors
+
+ YLSN(
+ const ShadowNodeFragment &fragment,
+ const ShadowNodeFamily::Shared &family,
+ ShadowNodeTraits traits);
+
+ YLSN(const ShadowNode &sourceShadowNode, const ShadowNodeFragment &fragment);
+
+ void completeClone(
+ const ShadowNode &sourceShadowNode,
+ const ShadowNodeFragment &fragment) override;
+
+#pragma mark - Mutating Methods
+
+ /*
+ * Connects `measureFunc` function of Yoga node with
+ * `LayoutableShadowNode::measure()` method.
+ */
+ void enableMeasurement();
+
+ void appendChild(const std::shared_ptr &child) override;
+ void replaceChild(
+ const ShadowNode &oldChild,
+ const std::shared_ptr &newChild,
+ size_t suggestedIndex = SIZE_MAX) override;
+
+ void updateYogaChildren();
+
+ void updateYogaProps();
+
+ /*
+ * Sets layoutable size of node.
+ */
+ void setSize(Size size) const;
+
+ void setPadding(RectangleEdges padding) const;
+
+ /*
+ * Sets position type of Yoga node (relative, absolute).
+ */
+ void setPositionType(YGPositionType positionType) const;
+
+#pragma mark - LayoutableShadowNode
+
+ void dirtyLayout() override;
+ bool getIsLayoutClean() const override;
+
+ /*
+ * Computes layout using Yoga layout engine.
+ * See `LayoutableShadowNode` for more details.
+ */
+ void layoutTree(
+ LayoutContext layoutContext,
+ LayoutConstraints layoutConstraints) override;
+
+ void layout(LayoutContext layoutContext) override;
+
+ Rect getContentBounds() const;
+
+ /**
+ * Subclasses which provide MeasurableYogaNode may override to signal that a
+ * new ShadowNode revision does not need to invalidate existing measurements.
+ */
+ virtual bool shouldNewRevisionDirtyMeasurement(
+ const ShadowNode &sourceShadowNode,
+ const ShadowNodeFragment &fragment) const;
+
+ /*
+ * Yoga config associated (only) with this particular node.
+ */
+ yoga::Config yogaConfig_;
+
+ /*
+ * All Yoga functions only accept non-const arguments, so we have to mark
+ * Yoga node as `mutable` here to avoid `static_cast`ing the pointer to this
+ * all the time.
+ */
+ mutable yoga::Node yogaNode_;
+
+ private:
+ /*
+ * Goes over `yogaNode_.getChildren()` and in case child's owner is
+ * equal to address of `yogaNode_`, it sets child's owner address
+ * to `0xBADC0FFEE0DDF00D`. This is magic constant, the intention
+ * is to make debugging easier when the address pops up in debugger.
+ * This prevents ABA problem where child yoga node goes from owned -> unowned
+ * -> back to owned because its parent is allocated at the same address.
+ */
+ void updateYogaChildrenOwnersIfNeeded();
+
+ /*
+ * Return true if child's yogaNode's owner is this->yogaNode_. Otherwise
+ * returns false.
+ */
+ bool doesOwn(const YLSN &child) const;
+
+ /*
+ * Appends a Yoga node to the Yoga node associated with this node.
+ * The method does *not* do anything besides that (no cloning or `owner` field
+ * adjustment).
+ */
+ void appendYogaChild(const YLSN::Shared &childNode);
+
+ /*
+ * Makes the child node with a given `index` (and Yoga node associated with) a
+ * valid child node satisfied requirements of the Concurrent Layout approach.
+ */
+ void adoptYogaChild(size_t index);
+
+ /**
+ * Applies contextual values to the ShadowNode's Yoga tree after the
+ * ShadowTree has been constructed, but before it has been is laid out or
+ * committed.
+ */
+ void configureYogaTree(
+ float pointScaleFactor,
+ YGErrata defaultErrata,
+ bool swapLeftAndRight);
+
+ /**
+ * Return an errata based on a `layoutConformance` prop if given, otherwise
+ * the passed default
+ */
+ YGErrata resolveErrata(YGErrata defaultErrata) const;
+
+ /**
+ * Replcaes a child with a mutable clone of itself, returning the clone.
+ */
+ YLSN &cloneChildInPlace(size_t layoutableChildIndex);
+
+ static yoga::Config &initializeYogaConfig(
+ yoga::Config &config,
+ YGConfigConstRef previousConfig = nullptr);
+ static YGNodeRef yogaNodeCloneCallbackConnector(
+ YGNodeConstRef oldYogaNode,
+ YGNodeConstRef parentYogaNode,
+ size_t childIndex);
+ static YGSize yogaNodeMeasureCallbackConnector(
+ YGNodeConstRef yogaNode,
+ float width,
+ YGMeasureMode widthMode,
+ float height,
+ YGMeasureMode heightMode);
+ static float yogaNodeBaselineCallbackConnector(
+ YGNodeConstRef yogaNode,
+ float width,
+ float height);
+ static YLSN &shadowNodeFromContext(YGNodeConstRef yogaNode);
+
+#pragma mark - RTL Legacy Autoflip
+
+ /*
+ * Reassigns the following values:
+ * - (left|right) → (start|end)
+ * - margin(Left|Right) → margin(Start|End)
+ * - padding(Left|Right) → padding(Start|End)
+ * - borderTop(Left|Right)Radius → borderTop(Start|End)Radius
+ * - borderBottom(Left|Right)Radius → borderBottom(Start|End)Radius
+ * - border(Left|Right)Width → border(Start|End)Width
+ * - border(Left|Right)Color → border(Start|End)Color
+ * This is neccesarry to be backwards compatible with old renderer, it swaps
+ * the values as well in https://fburl.com/diffusion/kl7bjr3h
+ */
+ void swapStyleLeftAndRight();
+ /*
+ * In shadow node passed as argument, reassigns following values
+ * - borderTop(Left|Right)Radius → borderTop(Start|End)Radius
+ * - borderBottom(Left|Right)Radius → borderBottom(Start|End)Radius
+ * - border(Left|Right)Width → border(Start|End)Width
+ * - border(Left|Right)Color → border(Start|End)Color
+ */
+ void swapLeftAndRightInViewProps();
+ /*
+ * In yoga node passed as argument, reassigns following values
+ * - (left|right) → (start|end)
+ * - margin(Left|Right) → margin(Start|End)
+ * - padding(Left|Right) → padding(Start|End)
+ */
+ void swapLeftAndRightInYogaStyleProps();
+
+ /*
+ * Combine a base yoga::Style with aliased properties which should be
+ * flattened into it. E.g. reconciling "marginInlineStart" and "marginStart".
+ */
+ static yoga::Style applyAliasedProps(
+ const yoga::Style &baseStyle,
+ const YogaStylableProps &props);
+
+#pragma mark - Consistency Ensuring Helpers
+
+ void ensureConsistency() const;
+ void ensureYogaChildrenAlignment() const;
+ void ensureYogaChildrenLookFine() const;
+
+#pragma mark - Private member variables
+ /*
+ * List of children which derive from YLSN
+ */
+ ListOfShared yogaLayoutableChildren_;
+
+ /*
+ * Whether the full Yoga subtree of this Node has been configured.
+ */
+ bool yogaTreeHasBeenConfigured_{false};
+};
+
+} // namespace facebook::react
diff --git a/package.json b/package.json
index 965c2def26..f39783816b 100644
--- a/package.json
+++ b/package.json
@@ -86,10 +86,10 @@
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
- "@react-native/babel-preset": "0.84.0-rc.1",
- "@react-native/eslint-config": "0.84.0-rc.1",
- "@react-native/metro-config": "0.84.0-rc.1",
- "@react-native/typescript-config": "0.84.0-rc.1",
+ "@react-native/babel-preset": "0.83",
+ "@react-native/eslint-config": "0.83",
+ "@react-native/metro-config": "0.83",
+ "@react-native/typescript-config": "0.83",
"@react-navigation/native": "^5.8.0",
"@react-navigation/stack": "^5.10.0",
"@types/jest": "^29.5.13",
@@ -112,7 +112,7 @@
"prettier": "^2.8.8",
"react": "19.2.3",
"react-dom": "^19.1.0",
- "react-native": "0.84.0-rc.1",
+ "react-native": "0.83",
"react-native-builder-bob": "^0.23.2",
"react-native-gesture-handler": "^2.28.0",
"react-native-reanimated": "^3.19.0",
diff --git a/yarn.lock b/yarn.lock
index 273c589dd5..fc9c2d2a69 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -37,6 +37,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/code-frame@npm:7.28.6"
+ dependencies:
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ js-tokens: "npm:^4.0.0"
+ picocolors: "npm:^1.1.1"
+ checksum: 10c0/ed5d57f99455e3b1c23e75ebb8430c6b9800b4ecd0121b4348b97cecb65406a47778d6db61f0d538a4958bb01b4b277e90348a68d39bd3beff1d7c940ed6dd66
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.26.5, @babel/compat-data@npm:^7.26.8":
version: 7.26.8
resolution: "@babel/compat-data@npm:7.26.8"
@@ -51,6 +62,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/compat-data@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/compat-data@npm:7.28.6"
+ checksum: 10c0/2d047431041281eaf33e9943d1a269d3374dbc9b498cafe6a18f5ee9aee7bb96f7f6cac0304eab4d13c41fc4db00fe4ca16c7aa44469ca6a211b8b6343b78fc4
+ languageName: node
+ linkType: hard
+
"@babel/core@npm:^7.0.0, @babel/core@npm:^7.1.6, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.25.2":
version: 7.26.9
resolution: "@babel/core@npm:7.26.9"
@@ -200,6 +218,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/generator@npm:7.28.6"
+ dependencies:
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ "@jridgewell/gen-mapping": "npm:^0.3.12"
+ "@jridgewell/trace-mapping": "npm:^0.3.28"
+ jsesc: "npm:^3.0.2"
+ checksum: 10c0/162fa358484a9a18e8da1235d998f10ea77c63bab408c8d3e327d5833f120631a77ff022c5ed1d838ee00523f8bb75df1f08196d3657d0bca9f2cfeb8503cc12
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.22.5":
version: 7.22.5
resolution: "@babel/helper-annotate-as-pure@npm:7.22.5"
@@ -253,6 +284,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-compilation-targets@npm:7.28.6"
+ dependencies:
+ "@babel/compat-data": "npm:^7.28.6"
+ "@babel/helper-validator-option": "npm:^7.27.1"
+ browserslist: "npm:^4.24.0"
+ lru-cache: "npm:^5.1.1"
+ semver: "npm:^6.3.1"
+ checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50
+ languageName: node
+ linkType: hard
+
"@babel/helper-compilation-targets@npm:^7.27.2":
version: 7.27.2
resolution: "@babel/helper-compilation-targets@npm:7.27.2"
@@ -544,6 +588,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-plugin-utils@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/helper-plugin-utils@npm:7.28.6"
+ checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d
+ languageName: node
+ linkType: hard
+
"@babel/helper-remap-async-to-generator@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9"
@@ -817,6 +868,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/parser@npm:7.28.6"
+ dependencies:
+ "@babel/types": "npm:^7.28.6"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 10c0/d6bfe8aa8e067ef58909e9905496157312372ca65d8d2a4f2b40afbea48d59250163755bba8ae626a615da53d192b084bcfc8c9dad8b01e315b96967600de581
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9"
@@ -1258,7 +1320,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-arrow-functions@npm:^7.0.0-0":
+"@babel/plugin-transform-arrow-functions@npm:^7.0.0-0, @babel/plugin-transform-arrow-functions@npm:^7.24.7":
version: 7.27.1
resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1"
dependencies:
@@ -1397,6 +1459,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-computed-properties@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/1e9893503ae6d651125701cc29450e87c0b873c8febebff19da75da9c40cfb7968c52c28bf948244e461110aeb7b3591f2cc199b7406ff74a24c50c7a5729f39
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-destructuring@npm:7.25.9"
@@ -1408,6 +1482,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-destructuring@npm:^7.28.5":
+ version: 7.28.5
+ resolution: "@babel/plugin-transform-destructuring@npm:7.28.5"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.28.5"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/288207f488412b23bb206c7c01ba143714e2506b72a9ec09e993f28366cc8188d121bde714659b3437984a86d2881d9b1b06de3089d5582823ccf2f3b3eaa2c4
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-dotall-regex@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9"
@@ -1513,6 +1599,19 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-function-name@npm:^7.25.1":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-function-name@npm:7.27.1"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.27.1"
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ "@babel/traverse": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/5abdc7b5945fbd807269dcc6e76e52b69235056023b0b35d311e8f5dfd6c09d9f225839798998fc3b663f50cf701457ddb76517025a0d7a5474f3fe56e567a4c
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-json-strings@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-json-strings@npm:7.25.9"
@@ -1535,6 +1634,28 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-literals@npm:^7.25.2":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-literals@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/c40dc3eb2f45a92ee476412314a40e471af51a0f51a24e91b85cef5fc59f4fe06758088f541643f07f949d2c67ee7bdce10e11c5ec56791ae09b15c3b451eeca
+ languageName: node
+ linkType: hard
+
+"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/4632a35453d2131f0be466681d0a33e3db44d868ff51ec46cd87e0ebd1e47c6a39b894f7d1c9b06f931addf6efa9d30e60c4cdedeb4f69d426f683e11f8490cf
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9"
@@ -1677,6 +1798,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-numeric-separator@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/191097d8d2753cdd16d1acca65a945d1645ab20b65655c2f5b030a9e38967a52e093dcb21ebf391e342222705c6ffe5dea15dafd6257f7b51b77fb64a830b637
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-numeric-separator@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9"
@@ -1699,6 +1831,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-object-rest-spread@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6"
+ dependencies:
+ "@babel/helper-compilation-targets": "npm:^7.28.6"
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/plugin-transform-destructuring": "npm:^7.28.5"
+ "@babel/plugin-transform-parameters": "npm:^7.27.7"
+ "@babel/traverse": "npm:^7.28.6"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/f55334352d4fcde385f2e8a58836687e71ff668c9b6e4c34d52575bf2789cdde92d9d3116edba13647ac0bc3e51fb2a6d1e8fb822dce7e8123334b82600bc4c3
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-object-rest-spread@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9"
@@ -1770,6 +1917,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7":
+ version: 7.27.7
+ resolution: "@babel/plugin-transform-parameters@npm:7.27.7"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/f2da3804e047d9f1cfb27be6c014e2c7f6cf5e1e38290d1cb3cb2607859e3d6facb4ee8c8c1e336e9fbb440091a174ce95ce156582d7e8bf9c0e735d11681f0f
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-private-methods@npm:7.25.9"
@@ -1939,7 +2097,7 @@ __metadata:
languageName: node
linkType: hard
-"@babel/plugin-transform-shorthand-properties@npm:^7.0.0-0":
+"@babel/plugin-transform-shorthand-properties@npm:^7.0.0-0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7":
version: 7.27.1
resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1"
dependencies:
@@ -1962,6 +2120,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-spread@npm:^7.24.7":
+ version: 7.28.6
+ resolution: "@babel/plugin-transform-spread@npm:7.28.6"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.28.6"
+ "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/bcac50e558d6f0c501cbce19ec197af558cef51fe3b3a6eba27276e323e57a5be28109b4264a5425ac12a67bf95d6af9c2a42b05e79c522ce913fb9529259d76
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.25.9":
version: 7.25.9
resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9"
@@ -1973,6 +2143,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/plugin-transform-sticky-regex@npm:^7.24.7":
+ version: 7.27.1
+ resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1"
+ dependencies:
+ "@babel/helper-plugin-utils": "npm:^7.27.1"
+ peerDependencies:
+ "@babel/core": ^7.0.0-0
+ checksum: 10c0/5698df2d924f0b1b7bdb7ef370e83f99ed3f0964eb3b9c27d774d021bee7f6d45f9a73e2be369d90b4aff1603ce29827f8743f091789960e7669daf9c3cda850
+ languageName: node
+ linkType: hard
+
"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.26.8":
version: 7.26.8
resolution: "@babel/plugin-transform-template-literals@npm:7.26.8"
@@ -2345,6 +2526,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/template@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/template@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5
+ languageName: node
+ linkType: hard
+
"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9":
version: 7.26.9
resolution: "@babel/traverse@npm:7.26.9"
@@ -2405,6 +2597,21 @@ __metadata:
languageName: node
linkType: hard
+"@babel/traverse@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/traverse@npm:7.28.6"
+ dependencies:
+ "@babel/code-frame": "npm:^7.28.6"
+ "@babel/generator": "npm:^7.28.6"
+ "@babel/helper-globals": "npm:^7.28.0"
+ "@babel/parser": "npm:^7.28.6"
+ "@babel/template": "npm:^7.28.6"
+ "@babel/types": "npm:^7.28.6"
+ debug: "npm:^4.3.1"
+ checksum: 10c0/ed5deb9c3f03e2d1ad2d44b9c92c84cce24593245c3f7871ce27ee1b36d98034e6cd895fa98a94eb44ebabe1d22f51b10b09432939d1c51a0fcaab98f17a97bc
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4":
version: 7.26.9
resolution: "@babel/types@npm:7.26.9"
@@ -2467,6 +2674,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.28.6":
+ version: 7.28.6
+ resolution: "@babel/types@npm:7.28.6"
+ dependencies:
+ "@babel/helper-string-parser": "npm:^7.27.1"
+ "@babel/helper-validator-identifier": "npm:^7.28.5"
+ checksum: 10c0/54a6a9813e48ef6f35aa73c03b3c1572cad7fa32b61b35dd07e4230bc77b559194519c8a4d8106a041a27cc7a94052579e238a30a32d5509aa4da4d6fd83d990
+ languageName: node
+ linkType: hard
+
"@babel/types@npm:^7.8.3":
version: 7.24.0
resolution: "@babel/types@npm:7.24.0"
@@ -3627,10 +3844,10 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/assets-registry@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/assets-registry@npm:0.84.0-rc.1"
- checksum: 10c0/da75e38d0500fea1f03462140d8161803e1452da209413158e18688e2f8cc8075d60e96fc8cb0795cf170a73c5de2e24b4d9adc7ec63eeb4b509ee2f3e94fa12
+"@react-native/assets-registry@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/assets-registry@npm:0.83.1"
+ checksum: 10c0/284ec022bc91fdc8f2dc14d92cb52247ad42b076fb12997cd089d0ea594f628425fb631d3abcf91a97bbe4f28e84ce5bcecd44ea0db86a51f821602ef54dc73c
languageName: node
linkType: hard
@@ -3641,19 +3858,19 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/babel-plugin-codegen@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/babel-plugin-codegen@npm:0.84.0-rc.1"
+"@react-native/babel-plugin-codegen@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/babel-plugin-codegen@npm:0.83.1"
dependencies:
"@babel/traverse": "npm:^7.25.3"
- "@react-native/codegen": "npm:0.84.0-rc.1"
- checksum: 10c0/4249f97c5827f09092ac18f3c3abd0ee529a7be8f0a38fb98819c70027649314d22f6d0ff61513a40e360235c03caf93dc177d7d6a0bf3c62ab5dc9b65888b44
+ "@react-native/codegen": "npm:0.83.1"
+ checksum: 10c0/fa08bf71cf4f4f70d8a0167ad8f91b47e270ab2879e745d63ce599406f9bb92b38100b9e0cea42dff8f8f17a5ea64826921f73f04535b4f09b77e53376cc043d
languageName: node
linkType: hard
-"@react-native/babel-preset@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/babel-preset@npm:0.84.0-rc.1"
+"@react-native/babel-preset@npm:0.83, @react-native/babel-preset@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/babel-preset@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/plugin-proposal-export-default-from": "npm:^7.24.7"
@@ -3661,19 +3878,27 @@ __metadata:
"@babel/plugin-syntax-export-default-from": "npm:^7.24.7"
"@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
"@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-transform-arrow-functions": "npm:^7.24.7"
"@babel/plugin-transform-async-generator-functions": "npm:^7.25.4"
"@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
"@babel/plugin-transform-block-scoping": "npm:^7.25.0"
"@babel/plugin-transform-class-properties": "npm:^7.25.4"
"@babel/plugin-transform-classes": "npm:^7.25.4"
+ "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
"@babel/plugin-transform-destructuring": "npm:^7.24.8"
"@babel/plugin-transform-flow-strip-types": "npm:^7.25.2"
"@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-function-name": "npm:^7.25.1"
+ "@babel/plugin-transform-literals": "npm:^7.25.2"
+ "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
"@babel/plugin-transform-modules-commonjs": "npm:^7.24.8"
"@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
"@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-numeric-separator": "npm:^7.24.7"
+ "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7"
"@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
"@babel/plugin-transform-optional-chaining": "npm:^7.24.8"
+ "@babel/plugin-transform-parameters": "npm:^7.24.7"
"@babel/plugin-transform-private-methods": "npm:^7.24.7"
"@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
"@babel/plugin-transform-react-display-name": "npm:^7.24.7"
@@ -3682,40 +3907,44 @@ __metadata:
"@babel/plugin-transform-react-jsx-source": "npm:^7.24.7"
"@babel/plugin-transform-regenerator": "npm:^7.24.7"
"@babel/plugin-transform-runtime": "npm:^7.24.7"
+ "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7"
+ "@babel/plugin-transform-spread": "npm:^7.24.7"
+ "@babel/plugin-transform-sticky-regex": "npm:^7.24.7"
"@babel/plugin-transform-typescript": "npm:^7.25.2"
"@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
- "@react-native/babel-plugin-codegen": "npm:0.84.0-rc.1"
+ "@babel/template": "npm:^7.25.0"
+ "@react-native/babel-plugin-codegen": "npm:0.83.1"
babel-plugin-syntax-hermes-parser: "npm:0.32.0"
babel-plugin-transform-flow-enums: "npm:^0.0.2"
react-refresh: "npm:^0.14.0"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/4af7342b315f59141d948e4f43efa80a1b3c348f30ab07153a56d939336e76fe30a841db178c7d35991c5e00d6525a2eb63a80ab368b55a4e29d5980aefb38a5
+ checksum: 10c0/6662b4b427c7c95eae069e1395e92a2cd618926e22c515bb9f088ac1dde1c9c1ee707334658be68db4da5fd2e17a5d8735f9dbe455e5b454e73cca846e44050a
languageName: node
linkType: hard
-"@react-native/codegen@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/codegen@npm:0.84.0-rc.1"
+"@react-native/codegen@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/codegen@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/parser": "npm:^7.25.3"
+ glob: "npm:^7.1.1"
hermes-parser: "npm:0.32.0"
invariant: "npm:^2.2.4"
nullthrows: "npm:^1.1.1"
- tinyglobby: "npm:^0.2.15"
yargs: "npm:^17.6.2"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/6bd16c184f83c547c15b56587c124e666121384d03e59a827553d56d90c74702060823d7c44371744bb8b6849938a62d4d8be1b731bd8a997aa641288094294a
+ checksum: 10c0/8c9846ff210adc38fdc87dee3a1eff62d6e29781e3aea678069e73b27c50710c5ee38083cc4168c631118f0f4c98bd5343825e270b44a189845b358e86e1395b
languageName: node
linkType: hard
-"@react-native/community-cli-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/community-cli-plugin@npm:0.84.0-rc.1"
+"@react-native/community-cli-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/community-cli-plugin@npm:0.83.1"
dependencies:
- "@react-native/dev-middleware": "npm:0.84.0-rc.1"
+ "@react-native/dev-middleware": "npm:0.83.1"
debug: "npm:^4.4.0"
invariant: "npm:^2.2.4"
metro: "npm:^0.83.3"
@@ -3730,35 +3959,34 @@ __metadata:
optional: true
"@react-native/metro-config":
optional: true
- checksum: 10c0/ed13eca2ba4254b09883963989cc0abb8d3562eb98ebf4b442afb264b0514360e6c5d2b4f6d775a630d917777f9081efa7fa1d21cb3c6cabb519276ff76fa621
+ checksum: 10c0/9c39e186769322ab74b1f777b488452b4f891fc6a3e716155bedf6dd30e3dbd5153c07f8d0cde20407885bc3d308572b595e3f2bf7e718653731089012cd91e8
languageName: node
linkType: hard
-"@react-native/debugger-frontend@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/debugger-frontend@npm:0.84.0-rc.1"
- checksum: 10c0/527cb27c871940fa8eff175de391e6db2015e3b499be4d9e638068031b83ddee507525391ed92c381406dd1a54c4949216e2b692939dee769cebabc1860d3316
+"@react-native/debugger-frontend@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/debugger-frontend@npm:0.83.1"
+ checksum: 10c0/83a2a7a56b7cbe47771dd84ff99478ba76a4fe50a24b5c356dbceeb20a589c35334d6d321dea7bf34a04185857112bdbbb93c5edbe3512c20ef1ba1ecb4cf8b6
languageName: node
linkType: hard
-"@react-native/debugger-shell@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/debugger-shell@npm:0.84.0-rc.1"
+"@react-native/debugger-shell@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/debugger-shell@npm:0.83.1"
dependencies:
cross-spawn: "npm:^7.0.6"
- debug: "npm:^4.4.0"
fb-dotslash: "npm:0.5.8"
- checksum: 10c0/9b80445a2865045375ff5b9ae0773eb7e7fe3670e99b43afa5ac197b3c82029b33fc87e6824d32cf07439677cefffe4bd2d851f3a306af5931dc242617df66fc
+ checksum: 10c0/a98b870f1741f476dade84cb770a090e30a82712caef7589b9a5ffc7b5fde18acb270950c57dc03301c2fe091bbe9edc5b2ebfe699d7e07ba8df4a7ccbf4863e
languageName: node
linkType: hard
-"@react-native/dev-middleware@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/dev-middleware@npm:0.84.0-rc.1"
+"@react-native/dev-middleware@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/dev-middleware@npm:0.83.1"
dependencies:
"@isaacs/ttlcache": "npm:^1.4.1"
- "@react-native/debugger-frontend": "npm:0.84.0-rc.1"
- "@react-native/debugger-shell": "npm:0.84.0-rc.1"
+ "@react-native/debugger-frontend": "npm:0.83.1"
+ "@react-native/debugger-shell": "npm:0.83.1"
chrome-launcher: "npm:^0.15.2"
chromium-edge-launcher: "npm:^0.2.0"
connect: "npm:^3.6.5"
@@ -3768,17 +3996,17 @@ __metadata:
open: "npm:^7.0.3"
serve-static: "npm:^1.16.2"
ws: "npm:^7.5.10"
- checksum: 10c0/35094c8040f964bd6b42773da8cf4187bdee59bead503ead425fd04ce22b89254ff350ff8879d511cff0f7f7e2e9763aafe800f40b074c40778e5918caf8180a
+ checksum: 10c0/b9697e8729a74daf21338e2f3b69c1a542a9023cffe7b045537e2bd66d55397544b47b6980120207bf4dac5add986bcb0aed9a41608f74df3f9210d1f5d9f604
languageName: node
linkType: hard
-"@react-native/eslint-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/eslint-config@npm:0.84.0-rc.1"
+"@react-native/eslint-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/eslint-config@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
"@babel/eslint-parser": "npm:^7.25.1"
- "@react-native/eslint-plugin": "npm:0.84.0-rc.1"
+ "@react-native/eslint-plugin": "npm:0.83.1"
"@typescript-eslint/eslint-plugin": "npm:^8.36.0"
"@typescript-eslint/parser": "npm:^8.36.0"
eslint-config-prettier: "npm:^8.5.0"
@@ -3787,58 +4015,58 @@ __metadata:
eslint-plugin-jest: "npm:^29.0.1"
eslint-plugin-react: "npm:^7.30.1"
eslint-plugin-react-hooks: "npm:^7.0.1"
- eslint-plugin-react-native: "npm:^5.0.0"
+ eslint-plugin-react-native: "npm:^4.0.0"
peerDependencies:
- eslint: ^8.0.0 || ^9.0.0
+ eslint: ">=8"
prettier: ">=2"
- checksum: 10c0/b7379d0e8592e82e94d545e359a490e52bf4a03341ba27941607bf477f0eae6b53fd54018ad98f70c0b96a5d1b1365da8086549781e741f1a0a9a73cd36259ae
+ checksum: 10c0/c6df159a86abd073e4093a1b32f5c410cb698d4f4b9996256c0027acd986007985a79fc44a85ff2752bbcdea3a1131b84dcdeccc9a1b8dac8b06487e1590e9a0
languageName: node
linkType: hard
-"@react-native/eslint-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/eslint-plugin@npm:0.84.0-rc.1"
- checksum: 10c0/16b65b3e5991ea8063ae9b2362c7f3ac6df792325c049786ce6c21ea8d7de4d0a4e15aff688da0689a00a2d80add712f240102fd31751561a99b3ff8a89b6c16
+"@react-native/eslint-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/eslint-plugin@npm:0.83.1"
+ checksum: 10c0/11ed1b8162d0a31ba854d41e2e9009418cf4a2a85188c542f2491316b2718808e53f788529d79f0a143d5a17d8b6f92c074303b9490ca44f546d7f344b0e925c
languageName: node
linkType: hard
-"@react-native/gradle-plugin@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/gradle-plugin@npm:0.84.0-rc.1"
- checksum: 10c0/54623d7ab7e6eb17fad242e95b110bc3950be2d0b83d5bce88abad8cb71e05f7cb4534c1f0cbbe44ccef6c5943c811316e5cb6363386a58f2a08405ca06447f5
+"@react-native/gradle-plugin@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/gradle-plugin@npm:0.83.1"
+ checksum: 10c0/3f55ea53fbb3ac1892c2d442a6649e779290e49667d887f613dd28b7d6d2dd73b33b5dbbe03bcfa1f730bf151dd05b9770631f6c66177162483a75ebb1a85c36
languageName: node
linkType: hard
-"@react-native/js-polyfills@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/js-polyfills@npm:0.84.0-rc.1"
- checksum: 10c0/8d0e0bba3c67cfea439847211f9d44a8b1ad96cdd5b65658eb73f031d14a52ac3a464af54e9f655f121c523b7fb59658239687eaef7d3ee1a509e62b128920d3
+"@react-native/js-polyfills@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/js-polyfills@npm:0.83.1"
+ checksum: 10c0/f79a6ccf0ba7206bbb0d0653c3a0da8d8bb9c064cf2614c04b69204a4b36f047bd4d00f835114f0f7f0bf37c0c9c388eea6baedbf2eeec1fbc7cdbbb76d12e7d
languageName: node
linkType: hard
-"@react-native/metro-babel-transformer@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/metro-babel-transformer@npm:0.84.0-rc.1"
+"@react-native/metro-babel-transformer@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/metro-babel-transformer@npm:0.83.1"
dependencies:
"@babel/core": "npm:^7.25.2"
- "@react-native/babel-preset": "npm:0.84.0-rc.1"
+ "@react-native/babel-preset": "npm:0.83.1"
hermes-parser: "npm:0.32.0"
nullthrows: "npm:^1.1.1"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/9e3494eb71fffb85d75000896174414394cd8fa9cabf6ee44a70fdf6df2b1d823e90de39fd5c348e05468110910c9f12c64ca0e301d5125af50882ca0d69f3e2
+ checksum: 10c0/be9c900d6c303202839cdb9009349e389b8850eda0805080428d1ed9a95113c653a653639ffb9e1bbeba047196359f3fe1c1afe9e0e0e308d13850570ef7184a
languageName: node
linkType: hard
-"@react-native/metro-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/metro-config@npm:0.84.0-rc.1"
+"@react-native/metro-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/metro-config@npm:0.83.1"
dependencies:
- "@react-native/js-polyfills": "npm:0.84.0-rc.1"
- "@react-native/metro-babel-transformer": "npm:0.84.0-rc.1"
+ "@react-native/js-polyfills": "npm:0.83.1"
+ "@react-native/metro-babel-transformer": "npm:0.83.1"
metro-config: "npm:^0.83.3"
metro-runtime: "npm:^0.83.3"
- checksum: 10c0/5e94a9410eec96f57c446a3e015ccb99a1acdef9f6226c064f0ad1d4de25f73bb9e47ef1c79f5c49696d404ac61cc03db45d46d0b1c5cf0483517e0d35053bb6
+ checksum: 10c0/5aa6d30a96a04ec21c8fe6640843014a6a45659b7013b690843f42ede7b7ba340bd452bca80b5a430d3eb3d62fdcb6ab6fd83447782da1b50e1dd3c04f994d2d
languageName: node
linkType: hard
@@ -3849,10 +4077,10 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/normalize-colors@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/normalize-colors@npm:0.84.0-rc.1"
- checksum: 10c0/cfd1d7905fcdbd479b7b0b4078980bb2313a1fac0511d8d711e33683c85617598b1d5ea80a58c235009fb06480a0937ad0173601e472c9d04c59b7dd4244de5c
+"@react-native/normalize-colors@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/normalize-colors@npm:0.83.1"
+ checksum: 10c0/e1bb0b1b6d098513dd493b1ea926a8db57e96132be75525c8d03008453a48a2f09a12d8b059ef49fcb6ae05f0decc1a9120825ea5c845a4aeedd6e4b1596d75b
languageName: node
linkType: hard
@@ -3863,16 +4091,16 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/typescript-config@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/typescript-config@npm:0.84.0-rc.1"
- checksum: 10c0/2467f7b0c90d870633ef71fa060c409f00de9a3578f129e646aca7a7a176fe5094c1b7ba87f0a1f5906f2f36b3c695bafb9057d3fc8555b25520f517ccdfcc7b
+"@react-native/typescript-config@npm:0.83":
+ version: 0.83.1
+ resolution: "@react-native/typescript-config@npm:0.83.1"
+ checksum: 10c0/d630758fa5e081d39a6c665068576574cfad08d7d0971a4de25a95bd9e3547ab28aa8e57543ba741569c4c9adf37587e80ac1ef2971cc1e6d2bbfd0c326edb1a
languageName: node
linkType: hard
-"@react-native/virtualized-lists@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "@react-native/virtualized-lists@npm:0.84.0-rc.1"
+"@react-native/virtualized-lists@npm:0.83.1":
+ version: 0.83.1
+ resolution: "@react-native/virtualized-lists@npm:0.83.1"
dependencies:
invariant: "npm:^2.2.4"
nullthrows: "npm:^1.1.1"
@@ -3883,7 +4111,7 @@ __metadata:
peerDependenciesMeta:
"@types/react":
optional: true
- checksum: 10c0/0467997af2f7e96aef9e906dbf280a40495f67b7423ec6cef9f4c2c6af029955ecf401230e93644ff0a6c0f396fe1464bc6baa2436206bfe76970d450c554ffa
+ checksum: 10c0/722a2939dc056fda700935026d6d2d6ac26ddc98a06370d96e3d97d254bda321e4c5ec3ccca64e97f119d9a56eb707ffb35100ae377431e69427550c68ee4709
languageName: node
linkType: hard
@@ -7542,14 +7770,14 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-native@npm:^5.0.0":
- version: 5.0.0
- resolution: "eslint-plugin-react-native@npm:5.0.0"
+"eslint-plugin-react-native@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "eslint-plugin-react-native@npm:4.1.0"
dependencies:
eslint-plugin-react-native-globals: "npm:^0.1.1"
peerDependencies:
- eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
- checksum: 10c0/c7c927bc743abf0cb367cc64fea5b28b28ea0c58be2990cab858a050b4855e89d90513afa44d73012c9fd670810ad0da2ac72e3e4bdfedf0ce0cbb65e901af7f
+ eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8
+ checksum: 10c0/9aedccde6227b78bad7c243844aca0860fca2dccd635e91e745bcd617c1e7fb889fa212917cf7b56860335a147fc7c8dc339d1976330ec4f896fe9156b35b162
languageName: node
linkType: hard
@@ -8012,18 +8240,6 @@ __metadata:
languageName: node
linkType: hard
-"fdir@npm:^6.5.0":
- version: 6.5.0
- resolution: "fdir@npm:6.5.0"
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
- checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f
- languageName: node
- linkType: hard
-
"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4":
version: 3.2.0
resolution: "fetch-blob@npm:3.2.0"
@@ -8807,10 +9023,10 @@ __metadata:
languageName: node
linkType: hard
-"hermes-compiler@npm:250829098.0.6":
- version: 250829098.0.6
- resolution: "hermes-compiler@npm:250829098.0.6"
- checksum: 10c0/ca565183f28fb6ee079ba1232ab005be8a2af49ac0db45e912b23a90cc44e8202a1f808a059d6c1601bcc9b976caac356639dc59d7eb5897cb2ecb1ef3661a23
+"hermes-compiler@npm:0.14.0":
+ version: 0.14.0
+ resolution: "hermes-compiler@npm:0.14.0"
+ checksum: 10c0/672036528448e8af5895c9d8c5dfd6012b76e92a5a187caf3143925e358bfc81b993a0cd50bbae7518c01fe6dc4fdc882e25cd623219a4d33f56d5f7abe6918b
languageName: node
linkType: hard
@@ -13012,13 +13228,6 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^4.0.3":
- version: 4.0.3
- resolution: "picomatch@npm:4.0.3"
- checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2
- languageName: node
- linkType: hard
-
"pidtree@npm:0.6.0":
version: 0.6.0
resolution: "pidtree@npm:0.6.0"
@@ -13537,10 +13746,10 @@ __metadata:
"@react-native-community/cli": "npm:20.1.0"
"@react-native-community/cli-platform-android": "npm:20.1.0"
"@react-native-community/cli-platform-ios": "npm:20.1.0"
- "@react-native/babel-preset": "npm:0.84.0-rc.1"
- "@react-native/eslint-config": "npm:0.84.0-rc.1"
- "@react-native/metro-config": "npm:0.84.0-rc.1"
- "@react-native/typescript-config": "npm:0.84.0-rc.1"
+ "@react-native/babel-preset": "npm:0.83"
+ "@react-native/eslint-config": "npm:0.83"
+ "@react-native/metro-config": "npm:0.83"
+ "@react-native/typescript-config": "npm:0.83"
"@react-navigation/native": "npm:^5.8.0"
"@react-navigation/stack": "npm:^5.10.0"
"@types/jest": "npm:^29.5.13"
@@ -13564,7 +13773,7 @@ __metadata:
react: "npm:19.2.3"
react-dom: "npm:^19.1.0"
react-freeze: "npm:^1.0.0"
- react-native: "npm:0.84.0-rc.1"
+ react-native: "npm:0.83"
react-native-builder-bob: "npm:^0.23.2"
react-native-gesture-handler: "npm:^2.28.0"
react-native-reanimated: "npm:^3.19.0"
@@ -13626,18 +13835,18 @@ __metadata:
languageName: node
linkType: hard
-"react-native@npm:0.84.0-rc.1":
- version: 0.84.0-rc.1
- resolution: "react-native@npm:0.84.0-rc.1"
+"react-native@npm:0.83":
+ version: 0.83.1
+ resolution: "react-native@npm:0.83.1"
dependencies:
"@jest/create-cache-key-function": "npm:^29.7.0"
- "@react-native/assets-registry": "npm:0.84.0-rc.1"
- "@react-native/codegen": "npm:0.84.0-rc.1"
- "@react-native/community-cli-plugin": "npm:0.84.0-rc.1"
- "@react-native/gradle-plugin": "npm:0.84.0-rc.1"
- "@react-native/js-polyfills": "npm:0.84.0-rc.1"
- "@react-native/normalize-colors": "npm:0.84.0-rc.1"
- "@react-native/virtualized-lists": "npm:0.84.0-rc.1"
+ "@react-native/assets-registry": "npm:0.83.1"
+ "@react-native/codegen": "npm:0.83.1"
+ "@react-native/community-cli-plugin": "npm:0.83.1"
+ "@react-native/gradle-plugin": "npm:0.83.1"
+ "@react-native/js-polyfills": "npm:0.83.1"
+ "@react-native/normalize-colors": "npm:0.83.1"
+ "@react-native/virtualized-lists": "npm:0.83.1"
abort-controller: "npm:^3.0.0"
anser: "npm:^1.4.9"
ansi-regex: "npm:^5.0.0"
@@ -13646,7 +13855,8 @@ __metadata:
base64-js: "npm:^1.5.1"
commander: "npm:^12.0.0"
flow-enums-runtime: "npm:^0.0.6"
- hermes-compiler: "npm:250829098.0.6"
+ glob: "npm:^7.1.1"
+ hermes-compiler: "npm:0.14.0"
invariant: "npm:^2.2.4"
jest-environment-node: "npm:^29.7.0"
memoize-one: "npm:^5.0.0"
@@ -13661,19 +13871,18 @@ __metadata:
scheduler: "npm:0.27.0"
semver: "npm:^7.1.3"
stacktrace-parser: "npm:^0.1.10"
- tinyglobby: "npm:^0.2.15"
whatwg-fetch: "npm:^3.0.0"
ws: "npm:^7.5.10"
yargs: "npm:^17.6.2"
peerDependencies:
"@types/react": ^19.1.1
- react: ^19.2.3
+ react: ^19.2.0
peerDependenciesMeta:
"@types/react":
optional: true
bin:
react-native: cli.js
- checksum: 10c0/d35814637f8fb9059f57fb75f92d16c9e350066c428dc3da26abf00e6322a1c00440659b570c392715fb6e74be683a5346c784ae634d11e7410822cfd00aa49a
+ checksum: 10c0/3a2202ea6e69c1f612b71d31a664eeda2b79811e560aab280c2fa5738d5e285c52d3b6d1820bb1652dd0d78f5ac0f7f183535b5585e29f8cc8298723aa834999
languageName: node
linkType: hard
@@ -15397,16 +15606,6 @@ __metadata:
languageName: node
linkType: hard
-"tinyglobby@npm:^0.2.15":
- version: 0.2.15
- resolution: "tinyglobby@npm:0.2.15"
- dependencies:
- fdir: "npm:^6.5.0"
- picomatch: "npm:^4.0.3"
- checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844
- languageName: node
- linkType: hard
-
"titleize@npm:^3.0.0":
version: 3.0.0
resolution: "titleize@npm:3.0.0"