From 17c765548f7b806183bdcb5ccc9b0d805678ce61 Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 27 Nov 2025 14:23:22 +0100 Subject: [PATCH 1/2] chore: misc monorepo related fixes --- example/package.json | 5 ++++- nx.json | 16 ++++++++++++++++ scripts/build/copy-yarnrc.mjs | 2 +- scripts/types.ts | 4 ++-- yarn.lock | 5 ++++- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/example/package.json b/example/package.json index 74c87403c..50affb720 100644 --- a/example/package.json +++ b/example/package.json @@ -31,6 +31,8 @@ "@babel/core": "^7.25.2", "@babel/preset-env": "^7.25.3", "@react-native-community/cli": "^18.0.0", + "@react-native-community/cli-platform-android": "^18.0.0", + "@react-native-community/cli-platform-ios": "^18.0.0", "@react-native/babel-preset": "^0.79.0", "@react-native/metro-config": "^0.79.0", "@rnx-kit/cli": "^0.18.11", @@ -38,6 +40,7 @@ "@rnx-kit/polyfills": "^0.2.0", "@rnx-kit/tsconfig": "^2.0.0", "@types/react": "~19.0.0", + "@wdio/types": "^9.20.0", "appium": "^3.1.1", "appium-uiautomator2-driver": "^6.0.0", "appium-xcuitest-driver": "^10.0.0", @@ -45,7 +48,7 @@ "webdriverio": "^9.0.0" }, "eslintConfig": { - "extends": "../.github/eslint.config.js" + "extends": "../eslint.config.js" }, "rnx-kit": { "kitType": "app", diff --git a/nx.json b/nx.json index 950d13622..ae3549fb4 100644 --- a/nx.json +++ b/nx.json @@ -1,6 +1,14 @@ { "$schema": "./node_modules/nx/schemas/nx-schema.json", "defaultBase": "trunk", + "targetDefaults": { + "format:js": { + "cache": true + }, + "lint": { + "cache": true + } + }, "release": { "projects": ["react-native-test-app"], "changelog": { @@ -24,5 +32,13 @@ "git": { "commit": false } + }, + "tui": { + "enabled": false + }, + "pluginsConfig": { + "@nx/js": { + "analyzeSourceFiles": false + } } } diff --git a/scripts/build/copy-yarnrc.mjs b/scripts/build/copy-yarnrc.mjs index 1ede1d9dd..53f28df86 100644 --- a/scripts/build/copy-yarnrc.mjs +++ b/scripts/build/copy-yarnrc.mjs @@ -20,7 +20,7 @@ function main(src, dst) { yaml.load(yml) ); - rc["nmHoistingLimits"] = undefined; + rc["nodeLinker"] = "node-modules"; rc["plugins"] = []; if (rc.globalFolder) { diff --git a/scripts/types.ts b/scripts/types.ts index 9c17be4be..f6a1dd7a1 100644 --- a/scripts/types.ts +++ b/scripts/types.ts @@ -176,9 +176,9 @@ type InferredOptionTypes = { [key in keyof O]: InferredOptionType }; export type Args = InferredOptionTypes & { _: string[] }; -/************************ +/******************* * windows/app.mjs * - ************************/ + *******************/ type Resources = string[] | { windows?: string[] }; diff --git a/yarn.lock b/yarn.lock index 24b028d9c..6961cf874 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4720,7 +4720,7 @@ __metadata: languageName: node linkType: hard -"@wdio/types@npm:9.20.0": +"@wdio/types@npm:9.20.0, @wdio/types@npm:^9.20.0": version: 9.20.0 resolution: "@wdio/types@npm:9.20.0" dependencies: @@ -7807,6 +7807,8 @@ __metadata: "@babel/preset-env": "npm:^7.25.3" "@callstack/react-native-visionos": "npm:^0.79.0" "@react-native-community/cli": "npm:^18.0.0" + "@react-native-community/cli-platform-android": "npm:^18.0.0" + "@react-native-community/cli-platform-ios": "npm:^18.0.0" "@react-native-webapis/web-storage": "npm:^0.4.1" "@react-native/babel-preset": "npm:^0.79.0" "@react-native/metro-config": "npm:^0.79.0" @@ -7815,6 +7817,7 @@ __metadata: "@rnx-kit/polyfills": "npm:^0.2.0" "@rnx-kit/tsconfig": "npm:^2.0.0" "@types/react": "npm:~19.0.0" + "@wdio/types": "npm:^9.20.0" appium: "npm:^3.1.1" appium-uiautomator2-driver: "npm:^6.0.0" appium-xcuitest-driver: "npm:^10.0.0" From 5c5001bd1232373f27474d5b7461d0708f8416db Mon Sep 17 00:00:00 2001 From: Tommy Nguyen <4123478+tido64@users.noreply.github.com> Date: Thu, 27 Nov 2025 14:08:57 +0100 Subject: [PATCH 2/2] ktlint breaking changes --- .../microsoft/reacttestapp/camera/MainActivityExtensions.kt | 2 ++ .../main/java/com/microsoft/reacttestapp/MainActivity.kt | 6 ++++++ .../com/microsoft/reacttetapp/react/MainReactNativeHost.kt | 1 + 3 files changed, 9 insertions(+) diff --git a/android/app/src/camera/java/com/microsoft/reacttestapp/camera/MainActivityExtensions.kt b/android/app/src/camera/java/com/microsoft/reacttestapp/camera/MainActivityExtensions.kt index f608eb0cb..149672fd3 100644 --- a/android/app/src/camera/java/com/microsoft/reacttestapp/camera/MainActivityExtensions.kt +++ b/android/app/src/camera/java/com/microsoft/reacttestapp/camera/MainActivityExtensions.kt @@ -33,6 +33,7 @@ fun MainActivity.scanForQrCode() { } fragment.show(supportFragmentManager, QRCodeScannerFragment.TAG) } + shouldShowRequestPermissionRationale(Manifest.permission.CAMERA) -> { Snackbar .make( @@ -49,6 +50,7 @@ fun MainActivity.scanForQrCode() { } .show() } + else -> { ActivityCompat.requestPermissions( this, diff --git a/android/app/src/main/java/com/microsoft/reacttestapp/MainActivity.kt b/android/app/src/main/java/com/microsoft/reacttestapp/MainActivity.kt index 185fbcf68..56a6cd55b 100644 --- a/android/app/src/main/java/com/microsoft/reacttestapp/MainActivity.kt +++ b/android/app/src/main/java/com/microsoft/reacttestapp/MainActivity.kt @@ -201,21 +201,25 @@ class MainActivity : ReactActivity() { reload(BundleSource.Disk) true } + R.id.load_from_dev_server -> { PackagerConnectionSettings(this).debugServerHost = "" reload(BundleSource.Server) true } + R.id.remember_last_component -> { val enable = !menuItem.isChecked menuItem.isChecked = enable session.shouldRememberLastComponent = enable true } + R.id.scan_qr_code -> { scanForQrCode() true } + R.id.show_dev_options -> { val devSupportManager = if (BuildConfig.REACTAPP_USE_BRIDGELESS) { (application as TestApp).reactHost.devSupportManager @@ -225,6 +229,7 @@ class MainActivity : ReactActivity() { devSupportManager?.showDevOptionsDialog() true } + else -> false } } @@ -254,6 +259,7 @@ class MainActivity : ReactActivity() { .newInstance(component) .show(supportFragmentManager, ComponentBottomSheetDialogFragment.TAG) } + else -> { findActivityClass(component.name)?.let { startActivity(Intent(this, it)) diff --git a/android/app/src/reacthost-0.76/java/com/microsoft/reacttetapp/react/MainReactNativeHost.kt b/android/app/src/reacthost-0.76/java/com/microsoft/reacttetapp/react/MainReactNativeHost.kt index d1eaaa447..87a72498b 100644 --- a/android/app/src/reacthost-0.76/java/com/microsoft/reacttetapp/react/MainReactNativeHost.kt +++ b/android/app/src/reacthost-0.76/java/com/microsoft/reacttetapp/react/MainReactNativeHost.kt @@ -108,6 +108,7 @@ class MainReactNativeHost( BundleSource.Action.RELOAD -> { reactInstanceManager.devSupportManager.handleReloadJS() } + BundleSource.Action.RESTART -> { if (activity !is MainActivity) { activity.navigateUpTo(Intent(application, MainActivity.Companion::class.java))