It looks like you’re writing a letter. Would you like help?
diff --git a/packages/nux/src/components/dot-tip/test/index.js b/packages/nux/src/components/dot-tip/test/index.js
index bde2b1ab2424b..7917b044fc3e2 100644
--- a/packages/nux/src/components/dot-tip/test/index.js
+++ b/packages/nux/src/components/dot-tip/test/index.js
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
-import { render, screen } from '@testing-library/react';
+import { act, render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
/**
@@ -12,23 +12,27 @@ import { DotTip } from '..';
const noop = () => {};
describe( 'DotTip', () => {
- it( 'should not render anything if invisible', () => {
+ it( 'should not render anything if invisible', async () => {
render(
It looks like you’re writing a letter. Would you like help?
);
+ await act( () => Promise.resolve() );
+
expect( screen.queryByRole( 'dialog' ) ).not.toBeInTheDocument();
} );
- it( 'should render correctly', () => {
+ it( 'should render correctly', async () => {
render(
It looks like you’re writing a letter. Would you like help?
);
+ await act( () => Promise.resolve() );
+
expect( screen.getByRole( 'dialog' ) ).toMatchSnapshot();
} );
@@ -44,6 +48,8 @@ describe( 'DotTip', () => {
);
+ await act( () => Promise.resolve() );
+
await user.click( screen.getByRole( 'button', { name: 'Got it' } ) );
expect( onDismiss ).toHaveBeenCalled();
@@ -61,6 +67,8 @@ describe( 'DotTip', () => {
);
+ await act( () => Promise.resolve() );
+
await user.click(
screen.getByRole( 'button', { name: 'Disable tips' } )
);
diff --git a/packages/plugins/CHANGELOG.md b/packages/plugins/CHANGELOG.md
index f21f3a0701994..ecd39ce32b67c 100644
--- a/packages/plugins/CHANGELOG.md
+++ b/packages/plugins/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 4.20.0 (2022-11-16)
## 4.19.0 (2022-11-02)
diff --git a/packages/plugins/package.json b/packages/plugins/package.json
index a6ad25e560dab..1de11cdf9f45a 100644
--- a/packages/plugins/package.json
+++ b/packages/plugins/package.json
@@ -33,7 +33,7 @@
"memize": "^1.1.0"
},
"peerDependencies": {
- "react": "^17.0.0"
+ "react": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/preferences/CHANGELOG.md b/packages/preferences/CHANGELOG.md
index 32b03240f1b20..450f04af9d7cf 100644
--- a/packages/preferences/CHANGELOG.md
+++ b/packages/preferences/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 2.14.0 (2022-11-16)
## 2.13.0 (2022-11-02)
diff --git a/packages/preferences/package.json b/packages/preferences/package.json
index 6ae2f3da2e30a..452aee12a77bf 100644
--- a/packages/preferences/package.json
+++ b/packages/preferences/package.json
@@ -38,8 +38,8 @@
"classnames": "^2.3.1"
},
"peerDependencies": {
- "react": "^17.0.0",
- "react-dom": "^17.0.0"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/react-native-aztec/android/build.gradle b/packages/react-native-aztec/android/build.gradle
index c99fd0e4ca417..b72f14a1afd7f 100644
--- a/packages/react-native-aztec/android/build.gradle
+++ b/packages/react-native-aztec/android/build.gradle
@@ -73,10 +73,15 @@ repositories {
includeGroup "org.wordpress.aztec"
}
}
- maven { url "https://a8c-libs.s3.amazonaws.com/android/hermes-mirror" }
maven { url "https://a8c-libs.s3.amazonaws.com/android/react-native-mirror" }
google()
- mavenCentral()
+ mavenCentral {
+ // We don't want to fetch react-native from Maven Central as there are
+ // older versions over there.
+ content {
+ excludeGroup "com.facebook.react"
+ }
+ }
}
dependencies {
diff --git a/packages/react-native-bridge/android/react-native-bridge/build.gradle b/packages/react-native-bridge/android/react-native-bridge/build.gradle
index d0e5484329da2..fff4afa5da279 100644
--- a/packages/react-native-bridge/android/react-native-bridge/build.gradle
+++ b/packages/react-native-bridge/android/react-native-bridge/build.gradle
@@ -45,10 +45,15 @@ android {
repositories {
maven { url "https://a8c-libs.s3.amazonaws.com/android" }
- maven { url "https://a8c-libs.s3.amazonaws.com/android/hermes-mirror" }
maven { url "https://jitpack.io" }
google()
- mavenCentral()
+ mavenCentral {
+ // We don't want to fetch react-native from Maven Central as there are
+ // older versions over there.
+ content {
+ excludeGroup "com.facebook.react"
+ }
+ }
}
dependencies {
@@ -75,7 +80,6 @@ dependencies {
exclude group: 'com.github.wordpress-mobile', module: 'react-native-reanimated'
})
-
// Published by `wordpress-mobile/react-native-libraries-publisher`
// See the documentation for this value in `build.gradle.kts` of `wordpress-mobile/react-native-libraries-publisher`
def reactNativeLibrariesPublisherVersion = "v1"
@@ -89,7 +93,9 @@ dependencies {
implementation "$reactNativeLibrariesGroupId:react-native-clipboard:${extractPackageVersion(packageJson, '@react-native-clipboard/clipboard', 'dependencies')}"
implementation "$reactNativeLibrariesGroupId:react-native-fast-image:${extractPackageVersion(packageJson, 'react-native-fast-image', 'dependencies')}"
- runtimeOnly "org.wordpress-mobile:hermes-release-mirror:$rnVersion"
+ runtimeOnly("com.facebook.react:hermes-engine:$rnVersion", {
+ exclude group:'com.facebook.fbjni'
+ })
if (willPublishReactNativeBridgeBinary) {
implementation "org.wordpress-mobile.gutenberg-mobile:react-native-aztec:$reactNativeAztecVersion"
diff --git a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java
index 74236bb49bcd8..e2a0f2dffcf62 100644
--- a/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java
+++ b/packages/react-native-bridge/android/react-native-bridge/src/main/java/org/wordpress/mobile/WPAndroidGlue/WPAndroidGlueCode.java
@@ -27,7 +27,6 @@
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactRootView;
import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReadableArray;
@@ -45,9 +44,7 @@
import com.reactnativecommunity.slider.ReactSliderPackage;
import org.linusu.RNGetRandomValuesPackage;
import com.reactnativecommunity.webview.RNCWebViewPackage;
-import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import com.swmansion.gesturehandler.RNGestureHandlerPackage;
-import com.swmansion.reanimated.ReanimatedJSIModulePackage;
import com.swmansion.reanimated.ReanimatedPackage;
import com.swmansion.rnscreens.RNScreensPackage;
import com.th3rdwave.safeareacontext.SafeAreaContextPackage;
@@ -590,12 +587,6 @@ public ReactInstanceManager getReactInstanceManager(ReactApplicationContext reac
mRnReactNativeGutenbergBridgePackage);
}
- protected JSIModulePackage getJSIModulePackage() {
- // In the future, once we support more JSI modules, we would need to provide our own JSIModulePackage and
- // include Reanimated.
- return new ReanimatedJSIModulePackage();
- }
-
private MainPackageConfig getMainPackageConfig(ImagePipelineConfig imagePipelineConfig) {
return new MainPackageConfig.Builder().setFrescoConfig(imagePipelineConfig).build();
}
@@ -615,7 +606,7 @@ public void onCreateView(Context initContext,
mIsDarkMode = gutenbergProps.isDarkMode();
mExceptionLogger = exceptionLogger;
mBreadcrumbLogger = breadcrumbLogger;
- mReactRootView = new RNGestureHandlerEnabledRootView(new MutableContextWrapper(initContext));
+ mReactRootView = new ReactRootView(new MutableContextWrapper(initContext));
mReactRootView.setBackgroundColor(colorBackground);
ReactInstanceManagerBuilder builder =
@@ -625,7 +616,6 @@ public void onCreateView(Context initContext,
.addPackages(getPackages())
.setUseDeveloperSupport(isDebug)
.setJavaScriptExecutorFactory(new HermesExecutorFactory())
- .setJSIModulesPackage(getJSIModulePackage())
.setInitialLifecycleState(LifecycleState.BEFORE_CREATE);
if (BuildConfig.SHOULD_ATTACH_JS_BUNDLE) {
builder.setBundleAssetName("index.android.bundle");
diff --git a/packages/react-native-bridge/ios/Gutenberg.swift b/packages/react-native-bridge/ios/Gutenberg.swift
index da327fb11ef7e..f676624c8f71c 100644
--- a/packages/react-native-bridge/ios/Gutenberg.swift
+++ b/packages/react-native-bridge/ios/Gutenberg.swift
@@ -256,7 +256,11 @@ extension Gutenberg: RCTBridgeDelegate {
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
}
#endif
- return RCTBundleURLProvider.sharedSettings()?.jsBundleURL(forBundleRoot: "index", fallbackResource: "")
+
+ guard let localBundle = RCTBundleURLProvider.sharedSettings()?.jsBundleURL(forBundleRoot: "index", fallbackExtension: "") else {
+ return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
+ }
+ return localBundle
}
public func extraModules(for bridge: RCTBridge!) -> [RCTBridgeModule]! {
diff --git a/packages/react-native-editor/.bundle/config b/packages/react-native-editor/.bundle/config
new file mode 100644
index 0000000000000..d137d242ed742
--- /dev/null
+++ b/packages/react-native-editor/.bundle/config
@@ -0,0 +1,2 @@
+BUNDLE_PATH: "vendor/bundle"
+BUNDLE_FORCE_RUBY_PLATFORM: 1
\ No newline at end of file
diff --git a/packages/react-native-editor/.gitignore b/packages/react-native-editor/.gitignore
index ff41241cdc867..516754e3ff8be 100644
--- a/packages/react-native-editor/.gitignore
+++ b/packages/react-native-editor/.gitignore
@@ -61,6 +61,7 @@ xcuserdata
*.moved-aside
DerivedData
*.xcuserstatee
+ios/.xcode.env.local
# Android/IntelliJ
#
@@ -89,9 +90,10 @@ buck-out/
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/
-*/fastlane/report.xml
-*/fastlane/Preview.html
-*/fastlane/screenshots
+**/fastlane/report.xml
+**/fastlane/Preview.html
+**/fastlane/screenshots
+**/fastlane/test_output
# Bundle artifact
*.jsbundle
@@ -115,7 +117,8 @@ bin/wp-cli.phar
# Report generated from jest-junit
/junit.xml
-# Cocoapods
+# Ruby / CocoaPods
ios/Pods
ios/vendor
+/vendor/bundle/
diff --git a/packages/react-native-editor/android/app/build.gradle b/packages/react-native-editor/android/app/build.gradle
index fa77522f3aee2..e9a2aca0016f5 100644
--- a/packages/react-native-editor/android/app/build.gradle
+++ b/packages/react-native-editor/android/app/build.gradle
@@ -103,16 +103,19 @@ def enableProguardInReleaseBuilds = false
/**
* Whether to enable the Hermes VM.
*
- * This should be set on project.ext.react and mirrored here. If it is not set
+ * This should be set on project.ext.react and that value will be read here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", false);
/**
- * Architectures to build native code for in debug.
+ * Architectures to build native code for.
*/
-def nativeArchitectures = project.getProperties().get("reactNativeDebugArchitectures")
+def reactNativeArchitectures() {
+ def value = project.getProperties().get("reactNativeArchitectures")
+ return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
+}
android {
ndkVersion rootProject.ext.ndkVersion
@@ -130,9 +133,73 @@ android {
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
- ndk {
- abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "mips"
+ buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
+ if (isNewArchitectureEnabled()) {
+ // We configure the NDK build only if you decide to opt-in for the New Architecture.
+ externalNativeBuild {
+ ndkBuild {
+ arguments "APP_PLATFORM=android-21",
+ "APP_STL=c++_shared",
+ "NDK_TOOLCHAIN_VERSION=clang",
+ "GENERATED_SRC_DIR=$buildDir/generated/source",
+ "PROJECT_BUILD_DIR=$buildDir",
+ "REACT_ANDROID_DIR=../../../../node_modules/react-native/ReactAndroid",
+ "REACT_ANDROID_BUILD_DIR=../../../../node_modules/react-native/ReactAndroid/build",
+ "NODE_MODULES_DIR=../../../../node_modules"
+ cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
+ cppFlags "-std=c++17"
+ // Make sure this target name is the same you specify inside the
+ // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
+ targets "gutenberg_appmodules"
+ }
+ }
+ if (!enableSeparateBuildPerCPUArchitecture) {
+ ndk {
+ abiFilters (*reactNativeArchitectures())
+ }
+ }
+ }
+ }
+
+ if (isNewArchitectureEnabled()) {
+ // We configure the NDK build only if you decide to opt-in for the New Architecture.
+ externalNativeBuild {
+ ndkBuild {
+ path "$projectDir/src/main/jni/Android.mk"
+ }
+ }
+ def reactAndroidProjectDir = project(':ReactAndroid').projectDir
+ def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
+ dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
+ from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
+ into("$buildDir/react-ndk/exported")
+ }
+ def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
+ dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
+ from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
+ into("$buildDir/react-ndk/exported")
+ }
+ afterEvaluate {
+ // If you wish to add a custom TurboModule or component locally,
+ // you should uncomment this line.
+ // preBuild.dependsOn("generateCodegenArtifactsFromSchema")
+ preDebugBuild.dependsOn(packageReactNdkDebugLibs)
+ preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
+
+ // Due to a bug inside AGP, we have to explicitly set a dependency
+ // between configureNdkBuild* tasks and the preBuild tasks.
+ // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
+ configureNdkBuildRelease.dependsOn(preReleaseBuild)
+ configureNdkBuildDebug.dependsOn(preDebugBuild)
+ reactNativeArchitectures().each { architecture ->
+ tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
+ dependsOn("preDebugBuild")
+ }
+ tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
+ dependsOn("preReleaseBuild")
+ }
+ }
}
}
splits {
@@ -140,7 +207,7 @@ android {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
- include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
+ include (*reactNativeArchitectures())
}
}
buildTypes {
@@ -177,7 +244,7 @@ dependencies {
})
implementation 'androidx.appcompat:appcompat:1.2.0'
//noinspection GradleDynamicVersion
- implementation "com.facebook.react:react-native:${extractPackageVersion(packageJson, 'react-native', 'dependencies')}" // From node_modules
+ implementation "com.facebook.react:react-native:${extractPackageVersion(packageJson, 'react-native', 'dependencies')}"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
@@ -204,6 +271,26 @@ dependencies {
implementation "$reactNativeLibrariesGroupId:react-native-masked-view:${extractPackageVersion(packageJson, '@react-native-masked-view/masked-view', 'dependencies')}"
implementation "$reactNativeLibrariesGroupId:react-native-clipboard:${extractPackageVersion(packageJson, '@react-native-clipboard/clipboard', 'dependencies')}"
implementation "$reactNativeLibrariesGroupId:react-native-fast-image:${extractPackageVersion(packageJson, 'react-native-fast-image', 'dependencies')}"
+
+ implementation("com.facebook.react:hermes-engine:${extractPackageVersion(packageJson, 'react-native', 'dependencies')}") {
+ exclude group:'com.facebook.fbjni'
+ }
+}
+
+if (isNewArchitectureEnabled()) {
+ // If new architecture is enabled, we let you build RN from source
+ // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
+ // This will be applied to all the imported transtitive dependency.
+ configurations.all {
+ resolutionStrategy.dependencySubstitution {
+ substitute(module("com.facebook.react:react-native"))
+ .using(project(":ReactAndroid"))
+ .because("On New Architecture we're building React Native from source")
+ substitute(module("com.facebook.react:hermes-engine"))
+ .using(project(":ReactAndroid:hermes-engine"))
+ .because("On New Architecture we're building Hermes from source")
+ }
+ }
}
// Run this once to be able to run the application with BUCK
@@ -212,3 +299,11 @@ task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
+
+def isNewArchitectureEnabled() {
+ // To opt-in for the New Architecture, you can either:
+ // - Set `newArchEnabled` to true inside the `gradle.properties` file
+ // - Invoke gradle with `-newArchEnabled=true`
+ // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
+ return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
+}
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/debug/AndroidManifest.xml b/packages/react-native-editor/android/app/src/debug/AndroidManifest.xml
index 179354e4c747a..1970c1dc4856e 100644
--- a/packages/react-native-editor/android/app/src/debug/AndroidManifest.xml
+++ b/packages/react-native-editor/android/app/src/debug/AndroidManifest.xml
@@ -5,6 +5,6 @@
android:networkSecurityConfig="@xml/react_native_config"
tools:targetApi="28"
tools:ignore="GoogleAppIndexingWarning">
-
+
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/AndroidManifest.xml b/packages/react-native-editor/android/app/src/main/AndroidManifest.xml
index 7323be781e80a..3f139808aa706 100644
--- a/packages/react-native-editor/android/app/src/main/AndroidManifest.xml
+++ b/packages/react-native-editor/android/app/src/main/AndroidManifest.xml
@@ -15,7 +15,7 @@
diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainActivity.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainActivity.java
index 447f2d35ee4de..ae81e808011ea 100644
--- a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainActivity.java
+++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainActivity.java
@@ -6,8 +6,6 @@
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
-import com.facebook.react.ReactRootView;
-import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import org.wordpress.mobile.WPAndroidGlue.GutenbergProps;
@@ -27,11 +25,6 @@ protected String getMainComponentName() {
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
- @Override
- protected ReactRootView createRootView() {
- return new RNGestureHandlerEnabledRootView(MainActivity.this);
- }
-
@Nullable
@Override
protected Bundle getLaunchOptions() {
diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java
index fdcc576213925..d33464b698ced 100644
--- a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java
+++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/MainApplication.java
@@ -14,9 +14,7 @@
import com.facebook.react.ReactApplication;
import com.BV.LinearGradient.LinearGradientPackage;
import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.WritableMap;
import com.reactnativecommunity.clipboard.ClipboardPackage;
import com.reactnativecommunity.slider.ReactSliderPackage;
import com.brentvatne.react.ReactVideoPackage;
@@ -33,7 +31,6 @@
import org.wordpress.mobile.ReactNativeGutenbergBridge.GutenbergWebViewActivity;
import org.wordpress.mobile.ReactNativeGutenbergBridge.RNMedia;
import org.wordpress.mobile.ReactNativeGutenbergBridge.RNReactNativeGutenbergBridgePackage;
-import org.wordpress.mobile.WPAndroidGlue.Media;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
@@ -41,7 +38,6 @@
import com.facebook.soloader.SoLoader;
import com.reactnativecommunity.webview.RNCWebViewPackage;
import com.swmansion.gesturehandler.RNGestureHandlerPackage;
-import com.swmansion.reanimated.ReanimatedJSIModulePackage;
import com.swmansion.reanimated.ReanimatedPackage;
import com.swmansion.rnscreens.RNScreensPackage;
import com.th3rdwave.safeareacontext.SafeAreaContextPackage;
@@ -314,11 +310,6 @@ protected List getPackages() {
protected String getJSMainModuleName() {
return "index";
}
-
- @Override
- protected JSIModulePackage getJSIModulePackage() {
- return new ReanimatedJSIModulePackage();
- }
};
}
diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/MainApplicationReactNativeHost.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/MainApplicationReactNativeHost.java
new file mode 100644
index 0000000000000..5a3deee24f507
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/MainApplicationReactNativeHost.java
@@ -0,0 +1,116 @@
+package com.gutenberg.newarchitecture;
+
+import android.app.Application;
+import androidx.annotation.NonNull;
+import com.facebook.react.ReactInstanceManager;
+import com.facebook.react.ReactNativeHost;
+import com.facebook.react.ReactPackage;
+import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
+import com.facebook.react.bridge.JSIModulePackage;
+import com.facebook.react.bridge.JSIModuleProvider;
+import com.facebook.react.bridge.JSIModuleSpec;
+import com.facebook.react.bridge.JSIModuleType;
+import com.facebook.react.bridge.JavaScriptContextHolder;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.UIManager;
+import com.facebook.react.fabric.ComponentFactory;
+import com.facebook.react.fabric.CoreComponentsRegistry;
+import com.facebook.react.fabric.FabricJSIModuleProvider;
+import com.facebook.react.fabric.ReactNativeConfig;
+import com.facebook.react.uimanager.ViewManagerRegistry;
+import com.gutenberg.BuildConfig;
+import com.gutenberg.newarchitecture.components.MainComponentsRegistry;
+import com.gutenberg.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
+ * TurboModule delegates and the Fabric Renderer.
+ *
+ * Please note that this class is used ONLY if you opt-in for the New Architecture (see the
+ * `newArchEnabled` property). Is ignored otherwise.
+ */
+public class MainApplicationReactNativeHost extends ReactNativeHost {
+ public MainApplicationReactNativeHost(Application application) {
+ super(application);
+ }
+
+ @Override
+ public boolean getUseDeveloperSupport() {
+ return BuildConfig.DEBUG;
+ }
+
+ @Override
+ protected List getPackages() {
+ List packages = Arrays.asList();
+ // Packages that cannot be autolinked yet can be added manually here, for example:
+ // packages.add(new MyReactNativePackage());
+ // TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
+ // packages.add(new TurboReactPackage() { ... });
+ // If you have custom Fabric Components, their ViewManagers should also be loaded here
+ // inside a ReactPackage.
+ return packages;
+ }
+
+ @Override
+ protected String getJSMainModuleName() {
+ return "index";
+ }
+
+ @NonNull
+ @Override
+ protected ReactPackageTurboModuleManagerDelegate.Builder
+ getReactPackageTurboModuleManagerDelegateBuilder() {
+ // Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
+ // for the new architecture and to use TurboModules correctly.
+ return new MainApplicationTurboModuleManagerDelegate.Builder();
+ }
+
+ @Override
+ protected JSIModulePackage getJSIModulePackage() {
+ return new JSIModulePackage() {
+ @Override
+ public List getJSIModules(
+ final ReactApplicationContext reactApplicationContext,
+ final JavaScriptContextHolder jsContext) {
+ final List specs = new ArrayList<>();
+
+ // Here we provide a new JSIModuleSpec that will be responsible of providing the
+ // custom Fabric Components.
+ specs.add(
+ new JSIModuleSpec() {
+ @Override
+ public JSIModuleType getJSIModuleType() {
+ return JSIModuleType.UIManager;
+ }
+
+ @Override
+ public JSIModuleProvider getJSIModuleProvider() {
+ final ComponentFactory componentFactory = new ComponentFactory();
+ CoreComponentsRegistry.register(componentFactory);
+
+ // Here we register a Components Registry.
+ // The one that is generated with the template contains no components
+ // and just provides you the one from React Native core.
+ MainComponentsRegistry.register(componentFactory);
+
+ final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
+
+ ViewManagerRegistry viewManagerRegistry =
+ new ViewManagerRegistry(
+ reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));
+
+ return new FabricJSIModuleProvider(
+ reactApplicationContext,
+ componentFactory,
+ ReactNativeConfig.DEFAULT_CONFIG,
+ viewManagerRegistry);
+ }
+ });
+ return specs;
+ }
+ };
+ }
+}
diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/components/MainComponentsRegistry.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/components/MainComponentsRegistry.java
new file mode 100644
index 0000000000000..4a613ac3a2bc3
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/components/MainComponentsRegistry.java
@@ -0,0 +1,36 @@
+package com.gutenberg.newarchitecture.components;
+
+import com.facebook.jni.HybridData;
+import com.facebook.proguard.annotations.DoNotStrip;
+import com.facebook.react.fabric.ComponentFactory;
+import com.facebook.soloader.SoLoader;
+
+/**
+ * Class responsible to load the custom Fabric Components. This class has native methods and needs a
+ * corresponding C++ implementation/header file to work correctly (already placed inside the jni/
+ * folder for you).
+ *
+ * Please note that this class is used ONLY if you opt-in for the New Architecture (see the
+ * `newArchEnabled` property). Is ignored otherwise.
+ */
+@DoNotStrip
+public class MainComponentsRegistry {
+ static {
+ SoLoader.loadLibrary("fabricjni");
+ }
+
+ @DoNotStrip private final HybridData mHybridData;
+
+ @DoNotStrip
+ private native HybridData initHybrid(ComponentFactory componentFactory);
+
+ @DoNotStrip
+ private MainComponentsRegistry(ComponentFactory componentFactory) {
+ mHybridData = initHybrid(componentFactory);
+ }
+
+ @DoNotStrip
+ public static MainComponentsRegistry register(ComponentFactory componentFactory) {
+ return new MainComponentsRegistry(componentFactory);
+ }
+}
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
new file mode 100644
index 0000000000000..b80720e9bdd88
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/java/com/gutenberg/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate.java
@@ -0,0 +1,48 @@
+package com.gutenberg.newarchitecture.modules;
+
+import com.facebook.jni.HybridData;
+import com.facebook.react.ReactPackage;
+import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.soloader.SoLoader;
+import java.util.List;
+
+/**
+ * Class responsible to load the TurboModules. This class has native methods and needs a
+ * corresponding C++ implementation/header file to work correctly (already placed inside the jni/
+ * folder for you).
+ *
+ *
Please note that this class is used ONLY if you opt-in for the New Architecture (see the
+ * `newArchEnabled` property). Is ignored otherwise.
+ */
+public class MainApplicationTurboModuleManagerDelegate
+ extends ReactPackageTurboModuleManagerDelegate {
+
+ private static volatile boolean sIsSoLibraryLoaded;
+
+ protected MainApplicationTurboModuleManagerDelegate(
+ ReactApplicationContext reactApplicationContext, List packages) {
+ super(reactApplicationContext, packages);
+ }
+
+ protected native HybridData initHybrid();
+
+ native boolean canCreateTurboModule(String moduleName);
+
+ public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
+ protected MainApplicationTurboModuleManagerDelegate build(
+ ReactApplicationContext context, List packages) {
+ return new MainApplicationTurboModuleManagerDelegate(context, packages);
+ }
+ }
+
+ @Override
+ protected synchronized void maybeLoadOtherSoLibraries() {
+ if (!sIsSoLibraryLoaded) {
+ // If you change the name of your application .so file in the Android.mk file,
+ // make sure you update the name here as well.
+ SoLoader.loadLibrary("gutenberg_appmodules");
+ sIsSoLibraryLoaded = true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/Android.mk b/packages/react-native-editor/android/app/src/main/jni/Android.mk
new file mode 100644
index 0000000000000..633707fd91605
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/Android.mk
@@ -0,0 +1,48 @@
+THIS_DIR := $(call my-dir)
+
+include $(REACT_ANDROID_DIR)/Android-prebuilt.mk
+
+# If you wish to add a custom TurboModule or Fabric component in your app you
+# will have to include the following autogenerated makefile.
+# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk
+include $(CLEAR_VARS)
+
+LOCAL_PATH := $(THIS_DIR)
+
+# You can customize the name of your application .so file here.
+LOCAL_MODULE := gutenberg_appmodules
+
+LOCAL_C_INCLUDES := $(LOCAL_PATH)
+LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
+LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
+
+# If you wish to add a custom TurboModule or Fabric component in your app you
+# will have to uncomment those lines to include the generated source
+# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)
+#
+# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
+# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)
+# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
+
+# Here you should add any native library you wish to depend on.
+LOCAL_SHARED_LIBRARIES := \
+ libfabricjni \
+ libfbjni \
+ libfolly_runtime \
+ libglog \
+ libjsi \
+ libreact_codegen_rncore \
+ libreact_debug \
+ libreact_nativemodule_core \
+ libreact_render_componentregistry \
+ libreact_render_core \
+ libreact_render_debug \
+ libreact_render_graphics \
+ librrc_view \
+ libruntimeexecutor \
+ libturbomodulejsijni \
+ libyoga
+
+LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall
+
+include $(BUILD_SHARED_LIBRARY)
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.cpp b/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.cpp
new file mode 100644
index 0000000000000..39de093d1136d
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.cpp
@@ -0,0 +1,24 @@
+#include "MainApplicationModuleProvider.h"
+
+#include
+
+namespace facebook {
+namespace react {
+
+std::shared_ptr MainApplicationModuleProvider(
+ const std::string moduleName,
+ const JavaTurboModule::InitParams ¶ms) {
+ // Here you can provide your own module provider for TurboModules coming from
+ // either your application or from external libraries. The approach to follow
+ // is similar to the following (for a library called `samplelibrary`:
+ //
+ // auto module = samplelibrary_ModuleProvider(moduleName, params);
+ // if (module != nullptr) {
+ // return module;
+ // }
+ // return rncore_ModuleProvider(moduleName, params);
+ return rncore_ModuleProvider(moduleName, params);
+}
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.h b/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.h
new file mode 100644
index 0000000000000..2f2fb24a3a76c
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainApplicationModuleProvider.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include
+#include
+
+#include
+
+namespace facebook {
+namespace react {
+
+std::shared_ptr MainApplicationModuleProvider(
+ const std::string moduleName,
+ const JavaTurboModule::InitParams ¶ms);
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp b/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp
new file mode 100644
index 0000000000000..f2e4714dc93b6
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.cpp
@@ -0,0 +1,45 @@
+#include "MainApplicationTurboModuleManagerDelegate.h"
+#include "MainApplicationModuleProvider.h"
+
+namespace facebook {
+namespace react {
+
+jni::local_ref
+MainApplicationTurboModuleManagerDelegate::initHybrid(
+ jni::alias_ref) {
+ return makeCxxInstance();
+}
+
+void MainApplicationTurboModuleManagerDelegate::registerNatives() {
+ registerHybrid({
+ makeNativeMethod(
+ "initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
+ makeNativeMethod(
+ "canCreateTurboModule",
+ MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
+ });
+}
+
+std::shared_ptr
+MainApplicationTurboModuleManagerDelegate::getTurboModule(
+ const std::string name,
+ const std::shared_ptr jsInvoker) {
+ // Not implemented yet: provide pure-C++ NativeModules here.
+ return nullptr;
+}
+
+std::shared_ptr
+MainApplicationTurboModuleManagerDelegate::getTurboModule(
+ const std::string name,
+ const JavaTurboModule::InitParams ¶ms) {
+ return MainApplicationModuleProvider(name, params);
+}
+
+bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
+ std::string name) {
+ return getTurboModule(name, nullptr) != nullptr ||
+ getTurboModule(name, {.moduleName = name}) != nullptr;
+}
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h b/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h
new file mode 100644
index 0000000000000..2cd17d7a944c0
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainApplicationTurboModuleManagerDelegate.h
@@ -0,0 +1,38 @@
+#include
+#include
+
+#include
+#include
+
+namespace facebook {
+namespace react {
+
+class MainApplicationTurboModuleManagerDelegate
+ : public jni::HybridClass<
+ MainApplicationTurboModuleManagerDelegate,
+ TurboModuleManagerDelegate> {
+ public:
+ // Adapt it to the package you used for your Java class.
+ static constexpr auto kJavaDescriptor =
+ "Lcom/gutenberg/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
+
+ static jni::local_ref initHybrid(jni::alias_ref);
+
+ static void registerNatives();
+
+ std::shared_ptr getTurboModule(
+ const std::string name,
+ const std::shared_ptr jsInvoker) override;
+ std::shared_ptr getTurboModule(
+ const std::string name,
+ const JavaTurboModule::InitParams ¶ms) override;
+
+ /**
+ * Test-only method. Allows user to verify whether a TurboModule can be
+ * created by instances of this class.
+ */
+ bool canCreateTurboModule(std::string name);
+};
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.cpp b/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.cpp
new file mode 100644
index 0000000000000..c5188f4dc7b12
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.cpp
@@ -0,0 +1,61 @@
+#include "MainComponentsRegistry.h"
+
+#include
+#include
+#include
+#include
+
+namespace facebook {
+namespace react {
+
+MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
+
+std::shared_ptr
+MainComponentsRegistry::sharedProviderRegistry() {
+ auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
+
+ // Custom Fabric Components go here. You can register custom
+ // components coming from your App or from 3rd party libraries here.
+ //
+ // providerRegistry->add(concreteComponentDescriptorProvider<
+ // AocViewerComponentDescriptor>());
+ return providerRegistry;
+}
+
+jni::local_ref
+MainComponentsRegistry::initHybrid(
+ jni::alias_ref,
+ ComponentFactory *delegate) {
+ auto instance = makeCxxInstance(delegate);
+
+ auto buildRegistryFunction =
+ [](EventDispatcher::Weak const &eventDispatcher,
+ ContextContainer::Shared const &contextContainer)
+ -> ComponentDescriptorRegistry::Shared {
+ auto registry = MainComponentsRegistry::sharedProviderRegistry()
+ ->createComponentDescriptorRegistry(
+ {eventDispatcher, contextContainer});
+
+ auto mutableRegistry =
+ std::const_pointer_cast(registry);
+
+ mutableRegistry->setFallbackComponentDescriptor(
+ std::make_shared(
+ ComponentDescriptorParameters{
+ eventDispatcher, contextContainer, nullptr}));
+
+ return registry;
+ };
+
+ delegate->buildRegistryFunction = buildRegistryFunction;
+ return instance;
+}
+
+void MainComponentsRegistry::registerNatives() {
+ registerHybrid({
+ makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
+ });
+}
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.h b/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.h
new file mode 100644
index 0000000000000..1046cfa3f2f73
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/MainComponentsRegistry.h
@@ -0,0 +1,32 @@
+#pragma once
+
+#include
+#include
+#include
+#include
+
+namespace facebook {
+namespace react {
+
+class MainComponentsRegistry
+ : public facebook::jni::HybridClass {
+ public:
+ // Adapt it to the package you used for your Java class.
+ constexpr static auto kJavaDescriptor =
+ "Lcom/gutenberg/newarchitecture/components/MainComponentsRegistry;";
+
+ static void registerNatives();
+
+ MainComponentsRegistry(ComponentFactory *delegate);
+
+ private:
+ static std::shared_ptr
+ sharedProviderRegistry();
+
+ static jni::local_ref initHybrid(
+ jni::alias_ref,
+ ComponentFactory *delegate);
+};
+
+} // namespace react
+} // namespace facebook
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/jni/OnLoad.cpp b/packages/react-native-editor/android/app/src/main/jni/OnLoad.cpp
new file mode 100644
index 0000000000000..ae1ef007d1524
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/jni/OnLoad.cpp
@@ -0,0 +1,11 @@
+#include
+#include "MainApplicationTurboModuleManagerDelegate.h"
+#include "MainComponentsRegistry.h"
+
+JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
+ return facebook::jni::initialize(vm, [] {
+ facebook::react::MainApplicationTurboModuleManagerDelegate::
+ registerNatives();
+ facebook::react::MainComponentsRegistry::registerNatives();
+ });
+}
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/res/drawable/rn_edit_text_material.xml b/packages/react-native-editor/android/app/src/main/res/drawable/rn_edit_text_material.xml
new file mode 100644
index 0000000000000..986188ce0e448
--- /dev/null
+++ b/packages/react-native-editor/android/app/src/main/res/drawable/rn_edit_text_material.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/react-native-editor/android/app/src/main/res/values/styles.xml b/packages/react-native-editor/android/app/src/main/res/values/styles.xml
index 24bc061368750..7ba83a2ad5a2c 100644
--- a/packages/react-native-editor/android/app/src/main/res/values/styles.xml
+++ b/packages/react-native-editor/android/app/src/main/res/values/styles.xml
@@ -3,6 +3,7 @@
diff --git a/packages/react-native-editor/android/build.gradle b/packages/react-native-editor/android/build.gradle
index e7e23353c6b50..bf14d99e5af48 100644
--- a/packages/react-native-editor/android/build.gradle
+++ b/packages/react-native-editor/android/build.gradle
@@ -1,3 +1,5 @@
+import org.apache.tools.ant.taskdefs.condition.Os
+
buildscript {
ext {
gradlePluginVersion = '7.2.1'
@@ -7,7 +9,15 @@ buildscript {
compileSdkVersion = 31
targetSdkVersion = 31
supportLibVersion = '28.0.0'
- ndkVersion = "21.4.7075529"
+ gradleDownloadTask = '5.0.1'
+
+ if (System.properties['os.arch'] == "aarch64") {
+ // For M1 Users we need to use the NDK 24 which added support for aarch64
+ ndkVersion = "24.0.8215888"
+ } else {
+ // Otherwise we default to the side-by-side NDK version from AGP.
+ ndkVersion = "21.4.7075529"
+ }
}
repositories {
google()
@@ -15,13 +25,21 @@ buildscript {
}
dependencies {
classpath "com.android.tools.build:gradle:$gradlePluginVersion"
+ classpath("com.facebook.react:react-native-gradle-plugin")
+ classpath("de.undercouch:gradle-download-task:$gradleDownloadTask")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
allprojects {
repositories {
- mavenCentral()
+ mavenCentral {
+ // We don't want to fetch react-native from Maven Central as there are
+ // older versions over there.
+ content {
+ excludeGroup "com.facebook.react"
+ }
+ }
mavenLocal()
maven {
url "https://a8c-libs.s3.amazonaws.com/android"
@@ -33,7 +51,6 @@ allprojects {
}
}
maven { url "https://a8c-libs.s3.amazonaws.com/android/react-native-mirror" }
- maven { url "https://a8c-libs.s3.amazonaws.com/android/hermes-mirror" }
maven { url 'https://www.jitpack.io' }
google()
}
diff --git a/packages/react-native-editor/android/gradle.properties b/packages/react-native-editor/android/gradle.properties
index 094d0de62d995..8f91fa8476d6a 100644
--- a/packages/react-native-editor/android/gradle.properties
+++ b/packages/react-native-editor/android/gradle.properties
@@ -25,4 +25,15 @@ android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=false
android.useDeprecatedNdk=true
-FLIPPER_VERSION=0.99.0
\ No newline at end of file
+FLIPPER_VERSION=0.125.0
+
+# Use this property to specify which architecture you want to build.
+# You can also override it from the CLI using
+# ./gradlew -PreactNativeArchitectures=x86_64
+reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
+# Use this property to enable support to the new architecture.
+# This will allow you to use TurboModules and the Fabric render in
+# your application. You should enable this flag either if you want
+# to write custom TurboModules/Fabric components OR use libraries that
+# are providing them.
+newArchEnabled=false
\ No newline at end of file
diff --git a/packages/react-native-editor/android/settings.gradle b/packages/react-native-editor/android/settings.gradle
index 00081747119a5..fea32ba7734e7 100644
--- a/packages/react-native-editor/android/settings.gradle
+++ b/packages/react-native-editor/android/settings.gradle
@@ -3,3 +3,10 @@ rootProject.name = 'gutenberg'
includeBuild("../../react-native-bridge/android")
include ':app'
+includeBuild('../../../node_modules/react-native-gradle-plugin')
+if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
+ include(":ReactAndroid")
+ project(":ReactAndroid").projectDir = file('../../../node_modules/react-native/ReactAndroid')
+ include(":ReactAndroid:hermes-engine")
+ project(":ReactAndroid:hermes-engine").projectDir = file('../../../node_modules/react-native/ReactAndroid/hermes-engine')
+}
\ No newline at end of file
diff --git a/packages/react-native-editor/ios/.ruby-version b/packages/react-native-editor/ios/.ruby-version
index a4dd9dba4fbfc..a603bb50a29e3 100644
--- a/packages/react-native-editor/ios/.ruby-version
+++ b/packages/react-native-editor/ios/.ruby-version
@@ -1 +1 @@
-2.7.4
+2.7.5
diff --git a/packages/react-native-editor/ios/Gemfile b/packages/react-native-editor/ios/Gemfile
index 9536eabf7d526..5b9407e20cb78 100644
--- a/packages/react-native-editor/ios/Gemfile
+++ b/packages/react-native-editor/ios/Gemfile
@@ -1,3 +1,3 @@
source 'https://rubygems.org'
-gem 'cocoapods', '~> 1.10.0'
+gem 'cocoapods', '~> 1.11', '>= 1.11.2'
\ No newline at end of file
diff --git a/packages/react-native-editor/ios/Gemfile.lock b/packages/react-native-editor/ios/Gemfile.lock
index 98d409730b4bd..842ff6acd396f 100644
--- a/packages/react-native-editor/ios/Gemfile.lock
+++ b/packages/react-native-editor/ios/Gemfile.lock
@@ -1,23 +1,25 @@
GEM
remote: https://rubygems.org/
specs:
- CFPropertyList (3.0.3)
- activesupport (5.2.5)
+ CFPropertyList (3.0.5)
+ rexml
+ activesupport (6.1.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
+ addressable (2.8.1)
+ public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
- claide (1.0.3)
- cocoapods (1.10.1)
- addressable (~> 2.6)
+ claide (1.1.0)
+ cocoapods (1.11.3)
+ addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.10.1)
+ cocoapods-core (= 1.11.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.4.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -28,66 +30,71 @@ GEM
escape (~> 0.0.4)
fourflusher (>= 2.3.0, < 3.0)
gh_inspector (~> 1.0)
- molinillo (~> 0.6.6)
+ molinillo (~> 0.8.0)
nap (~> 1.0)
- ruby-macho (~> 1.4)
- xcodeproj (>= 1.19.0, < 2.0)
- cocoapods-core (1.10.1)
- activesupport (> 5.0, < 6)
- addressable (~> 2.6)
+ ruby-macho (>= 1.0, < 3.0)
+ xcodeproj (>= 1.21.0, < 2.0)
+ cocoapods-core (1.11.3)
+ activesupport (>= 5.0, < 7)
+ addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
fuzzy_match (~> 2.0.4)
nap (~> 1.0)
netrc (~> 0.11)
- public_suffix
+ public_suffix (~> 4.0)
typhoeus (~> 1.0)
- cocoapods-deintegrate (1.0.4)
+ cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.6.3)
cocoapods-plugins (1.0.0)
nap
- cocoapods-search (1.0.0)
- cocoapods-trunk (1.5.0)
+ cocoapods-search (1.0.1)
+ cocoapods-trunk (1.6.0)
nap (>= 0.8, < 2.0)
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
- concurrent-ruby (1.1.8)
+ concurrent-ruby (1.1.10)
escape (0.0.4)
- ethon (0.14.0)
+ ethon (0.15.0)
ffi (>= 1.15.0)
- ffi (1.15.0)
+ ffi (1.15.5)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
- i18n (1.8.10)
+ i18n (1.12.0)
concurrent-ruby (~> 1.0)
- json (2.5.1)
- minitest (5.14.4)
- molinillo (0.6.6)
+ json (2.6.2)
+ minitest (5.16.3)
+ molinillo (0.8.0)
nanaimo (0.3.0)
nap (1.1.0)
netrc (0.11.0)
- public_suffix (4.0.6)
- ruby-macho (1.4.0)
- thread_safe (0.3.6)
+ public_suffix (4.0.7)
+ rexml (3.2.5)
+ ruby-macho (2.5.1)
typhoeus (1.4.0)
ethon (>= 0.9.0)
- tzinfo (1.2.10)
- thread_safe (~> 0.1)
- xcodeproj (1.19.0)
+ tzinfo (2.0.5)
+ concurrent-ruby (~> 1.0)
+ xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
+ rexml (~> 3.2.4)
+ zeitwerk (2.6.1)
PLATFORMS
- ruby
+ arm64-darwin-21
DEPENDENCIES
- cocoapods (~> 1.10.0)
+ cocoapods (~> 1.11, >= 1.11.2)
+
+RUBY VERSION
+ ruby 2.7.5p203
BUNDLED WITH
- 2.2.27
+ 2.3.18
diff --git a/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj b/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj
index 60e0d221f169d..010f3add38639 100644
--- a/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj
+++ b/packages/react-native-editor/ios/GutenbergDemo.xcodeproj/project.pbxproj
@@ -331,7 +331,6 @@
"${PODS_ROOT}/Target Support Files/Pods-GutenbergDemo/Pods-GutenbergDemo-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/BVLinearGradient/BVLinearGradient.framework",
"${BUILT_PRODUCTS_DIR}/DoubleConversion/DoubleConversion.framework",
- "${BUILT_PRODUCTS_DIR}/FBReactNativeSpec/FBReactNativeSpec.framework",
"${BUILT_PRODUCTS_DIR}/Gutenberg/Gutenberg.framework",
"${BUILT_PRODUCTS_DIR}/RCT-Folly/folly.framework",
"${BUILT_PRODUCTS_DIR}/RCTTypeSafety/RCTTypeSafety.framework",
@@ -343,6 +342,7 @@
"${BUILT_PRODUCTS_DIR}/RNSVG/RNSVG.framework",
"${BUILT_PRODUCTS_DIR}/RNScreens/RNScreens.framework",
"${BUILT_PRODUCTS_DIR}/RNTAztecView/RNTAztecView.framework",
+ "${BUILT_PRODUCTS_DIR}/React-Codegen/React_Codegen.framework",
"${BUILT_PRODUCTS_DIR}/React-Core/React.framework",
"${BUILT_PRODUCTS_DIR}/React-CoreModules/CoreModules.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTAnimation/RCTAnimation.framework",
@@ -353,6 +353,7 @@
"${BUILT_PRODUCTS_DIR}/React-RCTSettings/RCTSettings.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTText/RCTText.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTVibration/RCTVibration.framework",
+ "${BUILT_PRODUCTS_DIR}/React-bridging/react_bridging.framework",
"${BUILT_PRODUCTS_DIR}/React-cxxreact/cxxreact.framework",
"${BUILT_PRODUCTS_DIR}/React-jsi/jsi.framework",
"${BUILT_PRODUCTS_DIR}/React-jsiexecutor/jsireact.framework",
@@ -379,7 +380,6 @@
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BVLinearGradient.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DoubleConversion.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBReactNativeSpec.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/folly.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTTypeSafety.framework",
@@ -391,6 +391,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNSVG.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNScreens.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNTAztecView.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React_Codegen.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CoreModules.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTAnimation.framework",
@@ -401,6 +402,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTSettings.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTText.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTVibration.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/react_bridging.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cxxreact.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/jsi.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/jsireact.framework",
@@ -459,7 +461,6 @@
"${PODS_ROOT}/Target Support Files/Pods-GutenbergDemo-GutenbergDemoTests/Pods-GutenbergDemo-GutenbergDemoTests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/BVLinearGradient/BVLinearGradient.framework",
"${BUILT_PRODUCTS_DIR}/DoubleConversion/DoubleConversion.framework",
- "${BUILT_PRODUCTS_DIR}/FBReactNativeSpec/FBReactNativeSpec.framework",
"${BUILT_PRODUCTS_DIR}/Gutenberg/Gutenberg.framework",
"${BUILT_PRODUCTS_DIR}/RCT-Folly/folly.framework",
"${BUILT_PRODUCTS_DIR}/RCTTypeSafety/RCTTypeSafety.framework",
@@ -471,6 +472,7 @@
"${BUILT_PRODUCTS_DIR}/RNSVG/RNSVG.framework",
"${BUILT_PRODUCTS_DIR}/RNScreens/RNScreens.framework",
"${BUILT_PRODUCTS_DIR}/RNTAztecView/RNTAztecView.framework",
+ "${BUILT_PRODUCTS_DIR}/React-Codegen/React_Codegen.framework",
"${BUILT_PRODUCTS_DIR}/React-Core/React.framework",
"${BUILT_PRODUCTS_DIR}/React-CoreModules/CoreModules.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTAnimation/RCTAnimation.framework",
@@ -481,6 +483,7 @@
"${BUILT_PRODUCTS_DIR}/React-RCTSettings/RCTSettings.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTText/RCTText.framework",
"${BUILT_PRODUCTS_DIR}/React-RCTVibration/RCTVibration.framework",
+ "${BUILT_PRODUCTS_DIR}/React-bridging/react_bridging.framework",
"${BUILT_PRODUCTS_DIR}/React-cxxreact/cxxreact.framework",
"${BUILT_PRODUCTS_DIR}/React-jsi/jsi.framework",
"${BUILT_PRODUCTS_DIR}/React-jsiexecutor/jsireact.framework",
@@ -507,7 +510,6 @@
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BVLinearGradient.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DoubleConversion.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBReactNativeSpec.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/folly.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTTypeSafety.framework",
@@ -519,6 +521,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNSVG.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNScreens.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RNTAztecView.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React_Codegen.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CoreModules.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTAnimation.framework",
@@ -529,6 +532,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTSettings.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTText.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RCTVibration.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/react_bridging.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/cxxreact.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/jsi.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/jsireact.framework",
@@ -798,6 +802,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
};
@@ -834,6 +839,7 @@
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
+ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
SDKROOT = iphoneos;
SWIFT_VERSION = 5.0;
VALIDATE_PRODUCT = YES;
diff --git a/packages/react-native-editor/ios/Podfile b/packages/react-native-editor/ios/Podfile
index a06d86872cc6d..0423e435398eb 100644
--- a/packages/react-native-editor/ios/Podfile
+++ b/packages/react-native-editor/ios/Podfile
@@ -6,16 +6,21 @@ require_relative '../../../node_modules/@react-native-community/cli-platform-ios
# Uncomment the next line to define a global platform for your project
app_ios_deployment_target = Gem::Version.new('13.0')
platform :ios, app_ios_deployment_target.version
+install! 'cocoapods', :deterministic_uuids => false
target 'GutenbergDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
config = use_native_modules!
+
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
- :hermes_enabled => false
+ :hermes_enabled => false,
+ :fabric_enabled => false,
+ # An absolute path to the application root
+ :app_path => "#{Pod::Config.instance.installation_root}/.."
)
target 'GutenbergDemoTests' do
diff --git a/packages/react-native-editor/ios/Podfile.lock b/packages/react-native-editor/ios/Podfile.lock
index 3c8fd7c7d0488..3a97ea92fe769 100644
--- a/packages/react-native-editor/ios/Podfile.lock
+++ b/packages/react-native-editor/ios/Podfile.lock
@@ -3,30 +3,30 @@ PODS:
- BVLinearGradient (2.5.6-wp-3):
- React-Core
- DoubleConversion (1.1.6)
- - FBLazyVector (0.66.2)
- - FBReactNativeSpec (0.66.2):
+ - FBLazyVector (0.69.4)
+ - FBReactNativeSpec (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTRequired (= 0.66.2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
+ - RCTRequired (= 0.69.4)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Core (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
- fmt (6.2.1)
- glog (0.3.5)
- Gutenberg (1.85.1):
- - React-Core (= 0.66.2)
- - React-CoreModules (= 0.66.2)
- - React-RCTImage (= 0.66.2)
+ - React-Core (= 0.69.4)
+ - React-CoreModules (= 0.69.4)
+ - React-RCTImage (= 0.69.4)
- RNTAztecView
- - libwebp (1.2.1):
- - libwebp/demux (= 1.2.1)
- - libwebp/mux (= 1.2.1)
- - libwebp/webp (= 1.2.1)
- - libwebp/demux (1.2.1):
+ - libwebp (1.2.3):
+ - libwebp/demux (= 1.2.3)
+ - libwebp/mux (= 1.2.3)
+ - libwebp/webp (= 1.2.3)
+ - libwebp/demux (1.2.3):
- libwebp/webp
- - libwebp/mux (1.2.1):
+ - libwebp/mux (1.2.3):
- libwebp/demux
- - libwebp/webp (1.2.1)
+ - libwebp/webp (1.2.3)
- RCT-Folly (2021.06.28.00-v2):
- boost
- DoubleConversion
@@ -38,194 +38,205 @@ PODS:
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- - RCTRequired (0.66.2)
- - RCTTypeSafety (0.66.2):
- - FBLazyVector (= 0.66.2)
+ - RCTRequired (0.69.4)
+ - RCTTypeSafety (0.69.4):
+ - FBLazyVector (= 0.69.4)
+ - RCTRequired (= 0.69.4)
+ - React-Core (= 0.69.4)
+ - React (0.69.4):
+ - React-Core (= 0.69.4)
+ - React-Core/DevSupport (= 0.69.4)
+ - React-Core/RCTWebSocket (= 0.69.4)
+ - React-RCTActionSheet (= 0.69.4)
+ - React-RCTAnimation (= 0.69.4)
+ - React-RCTBlob (= 0.69.4)
+ - React-RCTImage (= 0.69.4)
+ - React-RCTLinking (= 0.69.4)
+ - React-RCTNetwork (= 0.69.4)
+ - React-RCTSettings (= 0.69.4)
+ - React-RCTText (= 0.69.4)
+ - React-RCTVibration (= 0.69.4)
+ - React-bridging (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTRequired (= 0.66.2)
- - React-Core (= 0.66.2)
- - React (0.66.2):
- - React-Core (= 0.66.2)
- - React-Core/DevSupport (= 0.66.2)
- - React-Core/RCTWebSocket (= 0.66.2)
- - React-RCTActionSheet (= 0.66.2)
- - React-RCTAnimation (= 0.66.2)
- - React-RCTBlob (= 0.66.2)
- - React-RCTImage (= 0.66.2)
- - React-RCTLinking (= 0.66.2)
- - React-RCTNetwork (= 0.66.2)
- - React-RCTSettings (= 0.66.2)
- - React-RCTText (= 0.66.2)
- - React-RCTVibration (= 0.66.2)
- - React-callinvoker (0.66.2)
- - React-Core (0.66.2):
+ - React-jsi (= 0.69.4)
+ - React-callinvoker (0.69.4)
+ - React-Codegen (0.69.4):
+ - FBReactNativeSpec (= 0.69.4)
+ - RCT-Folly (= 2021.06.28.00-v2)
+ - RCTRequired (= 0.69.4)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Core (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-Core (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-Core/Default (= 0.66.2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-Core/Default (= 0.69.4)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/CoreModulesHeaders (0.66.2):
+ - React-Core/CoreModulesHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/Default (0.66.2):
+ - React-Core/Default (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/DevSupport (0.66.2):
+ - React-Core/DevSupport (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-Core/Default (= 0.66.2)
- - React-Core/RCTWebSocket (= 0.66.2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-jsinspector (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-Core/Default (= 0.69.4)
+ - React-Core/RCTWebSocket (= 0.69.4)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-jsinspector (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTActionSheetHeaders (0.66.2):
+ - React-Core/RCTActionSheetHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTAnimationHeaders (0.66.2):
+ - React-Core/RCTAnimationHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTBlobHeaders (0.66.2):
+ - React-Core/RCTBlobHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTImageHeaders (0.66.2):
+ - React-Core/RCTImageHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTLinkingHeaders (0.66.2):
+ - React-Core/RCTLinkingHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTNetworkHeaders (0.66.2):
+ - React-Core/RCTNetworkHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTSettingsHeaders (0.66.2):
+ - React-Core/RCTSettingsHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTTextHeaders (0.66.2):
+ - React-Core/RCTTextHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTVibrationHeaders (0.66.2):
+ - React-Core/RCTVibrationHeaders (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-Core/RCTWebSocket (0.66.2):
+ - React-Core/RCTWebSocket (0.69.4):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-Core/Default (= 0.66.2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsiexecutor (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-Core/Default (= 0.69.4)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsiexecutor (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- Yoga
- - React-CoreModules (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - React-CoreModules (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core/CoreModulesHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-RCTImage (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-cxxreact (0.66.2):
+ - RCTTypeSafety (= 0.69.4)
+ - React-Codegen (= 0.69.4)
+ - React-Core/CoreModulesHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-RCTImage (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-cxxreact (0.69.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-callinvoker (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-jsinspector (= 0.66.2)
- - React-logger (= 0.66.2)
- - React-perflogger (= 0.66.2)
- - React-runtimeexecutor (= 0.66.2)
- - React-jsi (0.66.2):
+ - React-callinvoker (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-jsinspector (= 0.69.4)
+ - React-logger (= 0.69.4)
+ - React-perflogger (= 0.69.4)
+ - React-runtimeexecutor (= 0.69.4)
+ - React-jsi (0.69.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-jsi/Default (= 0.66.2)
- - React-jsi/Default (0.66.2):
+ - React-jsi/Default (= 0.69.4)
+ - React-jsi/Default (0.69.4):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-jsiexecutor (0.66.2):
+ - React-jsiexecutor (0.69.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-perflogger (= 0.66.2)
- - React-jsinspector (0.66.2)
- - React-logger (0.66.2):
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-perflogger (= 0.69.4)
+ - React-jsinspector (0.69.4)
+ - React-logger (0.69.4):
- glog
- - react-native-blur (0.8.0):
+ - react-native-blur (4.2.0):
- React-Core
- react-native-get-random-values (1.4.0):
- React-Core
@@ -237,78 +248,79 @@ PODS:
- React-Core
- react-native-slider (3.0.2-wp-3):
- React-Core
- - react-native-video (5.2.0-wp-4):
+ - react-native-video (5.2.0-wp-5):
- React-Core
- - react-native-video/Video (= 5.2.0-wp-4)
- - react-native-video/Video (5.2.0-wp-4):
+ - react-native-video/Video (= 5.2.0-wp-5)
+ - react-native-video/Video (5.2.0-wp-5):
- React-Core
- react-native-webview (11.6.2):
- React-Core
- - React-perflogger (0.66.2)
- - React-RCTActionSheet (0.66.2):
- - React-Core/RCTActionSheetHeaders (= 0.66.2)
- - React-RCTAnimation (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - React-perflogger (0.69.4)
+ - React-RCTActionSheet (0.69.4):
+ - React-Core/RCTActionSheetHeaders (= 0.69.4)
+ - React-RCTAnimation (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core/RCTAnimationHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTBlob (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTAnimationHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTBlob (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - React-Core/RCTBlobHeaders (= 0.66.2)
- - React-Core/RCTWebSocket (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-RCTNetwork (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTImage (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTBlobHeaders (= 0.69.4)
+ - React-Core/RCTWebSocket (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-RCTNetwork (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTImage (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core/RCTImageHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-RCTNetwork (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTLinking (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
- - React-Core/RCTLinkingHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTNetwork (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTImageHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-RCTNetwork (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTLinking (0.69.4):
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTLinkingHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTNetwork (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core/RCTNetworkHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTSettings (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTNetworkHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTSettings (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - RCTTypeSafety (= 0.66.2)
- - React-Core/RCTSettingsHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-RCTText (0.66.2):
- - React-Core/RCTTextHeaders (= 0.66.2)
- - React-RCTVibration (0.66.2):
- - FBReactNativeSpec (= 0.66.2)
+ - RCTTypeSafety (= 0.69.4)
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTSettingsHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-RCTText (0.69.4):
+ - React-Core/RCTTextHeaders (= 0.69.4)
+ - React-RCTVibration (0.69.4):
- RCT-Folly (= 2021.06.28.00-v2)
- - React-Core/RCTVibrationHeaders (= 0.66.2)
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (= 0.66.2)
- - React-runtimeexecutor (0.66.2):
- - React-jsi (= 0.66.2)
- - ReactCommon/turbomodule/core (0.66.2):
+ - React-Codegen (= 0.69.4)
+ - React-Core/RCTVibrationHeaders (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (= 0.69.4)
+ - React-runtimeexecutor (0.69.4):
+ - React-jsi (= 0.69.4)
+ - ReactCommon/turbomodule/core (0.69.4):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- - React-callinvoker (= 0.66.2)
- - React-Core (= 0.66.2)
- - React-cxxreact (= 0.66.2)
- - React-jsi (= 0.66.2)
- - React-logger (= 0.66.2)
- - React-perflogger (= 0.66.2)
+ - React-bridging (= 0.69.4)
+ - React-callinvoker (= 0.69.4)
+ - React-Core (= 0.69.4)
+ - React-cxxreact (= 0.69.4)
+ - React-jsi (= 0.69.4)
+ - React-logger (= 0.69.4)
+ - React-perflogger (= 0.69.4)
- RNCClipboard (1.9.0):
- React-Core
- RNCMaskedView (0.2.6):
@@ -319,7 +331,7 @@ PODS:
- SDWebImageWebPCoder (~> 0.8.4)
- RNGestureHandler (2.3.2-wp-2):
- React-Core
- - RNReanimated (2.4.1-wp-4):
+ - RNReanimated (2.9.1-wp-2):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
@@ -374,9 +386,10 @@ DEPENDENCIES:
- RCTRequired (from `../../../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../../../node_modules/react-native/Libraries/TypeSafety`)
- React (from `../../../node_modules/react-native/`)
+ - React-bridging (from `../../../node_modules/react-native/ReactCommon`)
- React-callinvoker (from `../../../node_modules/react-native/ReactCommon/callinvoker`)
+ - React-Codegen (from `build/generated/ios`)
- React-Core (from `../../../node_modules/react-native/`)
- - React-Core/DevSupport (from `../../../node_modules/react-native/`)
- React-Core/RCTWebSocket (from `../../../node_modules/react-native/`)
- React-CoreModules (from `../../../node_modules/react-native/React/CoreModules`)
- React-cxxreact (from `../../../node_modules/react-native/ReactCommon/cxxreact`)
@@ -445,8 +458,12 @@ EXTERNAL SOURCES:
:path: "../../../node_modules/react-native/Libraries/TypeSafety"
React:
:path: "../../../node_modules/react-native/"
+ React-bridging:
+ :path: "../../../node_modules/react-native/ReactCommon"
React-callinvoker:
:path: "../../../node_modules/react-native/ReactCommon/callinvoker"
+ React-Codegen:
+ :path: build/generated/ios
React-Core:
:path: "../../../node_modules/react-native/"
React-CoreModules:
@@ -523,58 +540,60 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost: a7c83b31436843459a1961bfd74b96033dc77234
BVLinearGradient: ace34fab72158c068ae989a0ebdbf86cb4ef0e49
- DoubleConversion: 831926d9b8bf8166fd87886c4abab286c2422662
- FBLazyVector: 57a8b34460679fb69e1ce7d625b04dbd1596b1f1
- FBReactNativeSpec: 18438b1c04ce502ed681cd19db3f4508964c082a
+ DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
+ FBLazyVector: c71b8c429a8af2aff1013934a7152e9d9d0c937d
+ FBReactNativeSpec: 2ff441cbe6e58c1778d8a5cf3311831a6a8c0809
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
- glog: 5337263514dd6f09803962437687240c5dc39aa4
- Gutenberg: f3c8abb1b4f9a695f6f55c3637344e1111bb4ccf
- libwebp: 98a37e597e40bfdb4c911fc98f2c53d0b12d05fc
- RCT-Folly: a21c126816d8025b547704b777a2ba552f3d9fa9
- RCTRequired: 5e9e85f48da8dd447f5834ce14c6799ea8c7f41a
- RCTTypeSafety: aba333d04d88d1f954e93666a08d7ae57a87ab30
- React: a8f119296b97812f73af5ae0eb1f26cf262ae4b4
- React-callinvoker: ce22372414af68085a32174d5dfbd41ea03799e6
- React-Core: 9fb6365464ecc235d7023ee7f868dc643ca20f41
- React-CoreModules: 9874a32779eadf7492fb85e71fbc5eeab733df32
- React-cxxreact: e562a15aba33752febb3125bad4e329e8d024252
- React-jsi: 78f1c0eb3f9054d15745e89e06f9dc17de4d07da
- React-jsiexecutor: 573adf0d6ce5e05c55872dfde5b1589acb88a96f
- React-jsinspector: b08b2d5e86cef9dc4bb69f0aa0bbe6d210fb7da5
- React-logger: faee236598b0f7e1a5e3b68577016ac451f1f993
- react-native-blur: ef741a08d020010ba65e411be0ab82d1d325e7ad
+ glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
+ Gutenberg: 3030a119b01cbfa29925327398a7cfaa63c9bfc7
+ libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
+ RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
+ RCTRequired: bd9d2ab0fda10171fcbcf9ba61a7df4dc15a28f4
+ RCTTypeSafety: e44e139bf6ec8042db396201834fc2372f6a21cd
+ React: 482cd1ba23c471be1aed3800180be2427418d7be
+ React-bridging: c2ea4fed6fe4ed27c12fd71e88b5d5d3da107fde
+ React-callinvoker: d4d1f98163fb5e35545e910415ef6c04796bb188
+ React-Codegen: ff35fb9c7f6ec2ed34fb6de2e1099d88dfb25f2f
+ React-Core: 4d3443a45b67c71d74d7243ddde9569d1e4f4fad
+ React-CoreModules: 70be25399366b5632ab18ecf6fe444a8165a7bea
+ React-cxxreact: 822d3794fc0bf206f4691592f90e086dd4f92228
+ React-jsi: ffa51cbc9a78cc156cf61f79ed52ecb76dc6013b
+ React-jsiexecutor: a27badbbdbc0ff781813370736a2d1c7261181d4
+ React-jsinspector: 8a3d3f5dcd23a91e8c80b1bf0e96902cd1dca999
+ React-logger: 1088859f145b8f6dd0d3ed051a647ef0e3e80fad
+ react-native-blur: 3e9c8e8e9f7d17fa1b94e1a0ae9fd816675f5382
react-native-get-random-values: b6fb85e7169b9822976793e467458c151c3e8b69
react-native-keyboard-aware-scroll-view: 0bc6c2dfe9056935a40dc1a70e764b7a1bbf6568
react-native-safe-area: c9cf765aa2dd96159476a99633e7d462ce5bb94f
react-native-safe-area-context: f0906bf8bc9835ac9a9d3f97e8bde2a997d8da79
react-native-slider: a433f1c13c5da3c17a587351bff7371f65cc9a07
- react-native-video: bbc5d6759a481da913f1d917dd119c3366f4c36d
+ react-native-video: cc1982bfac4d256fb56302642d968b6e72ffbeb7
react-native-webview: 193d233c29eacce1f42ca2637dab7ba79c25a6de
- React-perflogger: 5ab487cacfe6ec19bfe3d3f8072bf71eb07d63da
- React-RCTActionSheet: 03f25695e095fb5aa003828620943c74cc281fec
- React-RCTAnimation: eaf82da39f0c36fb0ef2a28df797c5f73a2a98ea
- React-RCTBlob: c8b58e70faa2ff482a8eb99491c8b12c4477bc74
- React-RCTImage: 92a0471a03c55d445ede02516176d852120280bf
- React-RCTLinking: 9a4482710586877671e19f0a564c2a745153f26f
- React-RCTNetwork: 3801dd1ce7873db828a2d824ee2d4f25a0abf7d0
- React-RCTSettings: a5d35733c27853177935185b76a3a0f7aa594dc9
- React-RCTText: 6d8d3bc93c4595caf1f681198271cd4630759a74
- React-RCTVibration: 3e815c3d2dd2e0e931b68595b5b92d23ba38b3fb
- React-runtimeexecutor: 393e26602c1b248683372051e34db63e359e3b01
- ReactCommon: c0263c1a41509aeb94be3214fa7bc3b71eae5ef6
+ React-perflogger: cb386fd44c97ec7f8199c04c12b22066b0f2e1e0
+ React-RCTActionSheet: f803a85e46cf5b4066c2ac5e122447f918e9c6e5
+ React-RCTAnimation: 19c80fa950ccce7f4db76a2a7f2cf79baae07fc7
+ React-RCTBlob: f36ab97e2d515c36df14a1571e50056be80413d5
+ React-RCTImage: 2c8f0a329a116248e82f8972ffe806e47c6d1cfa
+ React-RCTLinking: 670f0223075aff33be3b89714f1da4f5343fc4af
+ React-RCTNetwork: 09385b73f4ff1f46bd5d749540fb33f69a7e5908
+ React-RCTSettings: 33b12d3ac7a1f2eba069ec7bd1b84345263b3bbe
+ React-RCTText: a1a3ea902403bd9ae4cf6f7960551dc1d25711b5
+ React-RCTVibration: 9adb4a3cbb598d1bbd46a05256f445e4b8c70603
+ React-runtimeexecutor: 61ee22a8cdf8b6bb2a7fb7b4ba2cc763e5285196
+ ReactCommon: 8f67bd7e0a6afade0f20718f859dc8c2275f2e83
RNCClipboard: 99fc8ad669a376b756fbc8098ae2fd05c0ed0668
RNCMaskedView: c298b644a10c0c142055b3ae24d83879ecb13ccd
RNFastImage: 1f2cab428712a4baaf78d6169eaec7f622556dd7
RNGestureHandler: 3e0ea0c115175e66680032904339696bab928ca3
- RNReanimated: 2366094144f5bfc2179b401237ef49034ecbee3e
+ RNReanimated: 8b189a09da0345d84b33b8cde57a57f8ed847352
RNScreens: 953633729a42e23ad0c93574d676b361e3335e8b
RNSVG: 36a7359c428dcb7c6bce1cc546fbfebe069809b0
RNTAztecView: 0d144de38c612c41953b2222f6facdcdae67fca8
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
WordPress-Aztec-iOS: 7d11d598f14c82c727c08b56bd35fbeb7dafb504
- Yoga: 9a08effa851c1d8cc1647691895540bc168ea65f
+ Yoga: ff994563b2fd98c982ca58e8cd9db2cdaf4dda74
-PODFILE CHECKSUM: 855614b96eacd35e67d17c1a2818c71c67a28560
+PODFILE CHECKSUM: 6ae5f47a0b577b6e4ad29c87992c37b2a814a0b7
-COCOAPODS: 1.10.1
+COCOAPODS: 1.11.3
diff --git a/packages/react-native-editor/ios/gutenbergTests/gutenbergTests.m b/packages/react-native-editor/ios/gutenbergTests/gutenbergTests.m
index a549f9a878317..875c225324e2e 100644
--- a/packages/react-native-editor/ios/gutenbergTests/gutenbergTests.m
+++ b/packages/react-native-editor/ios/gutenbergTests/gutenbergTests.m
@@ -20,7 +20,7 @@ @interface gutenbergTests : XCTestCase
@implementation gutenbergTests
-- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test
+- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
{
if (test(view)) {
return YES;
@@ -50,12 +50,14 @@ - (void)testRendersWelcomeScreen
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
[[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
- foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) {
- if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
- return YES;
- }
- return NO;
- }];
+ foundElement = [self findSubviewInView:vc.view
+ matching:^BOOL(UIView *view) {
+ if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
+ return YES;
+ }
+ return NO;
+ }];
+}
}
RCTSetLogFunction(RCTDefaultLogFunction);
diff --git a/packages/react-native-editor/package.json b/packages/react-native-editor/package.json
index ae94a539a76c2..c20912d7e8802 100644
--- a/packages/react-native-editor/package.json
+++ b/packages/react-native-editor/package.json
@@ -31,7 +31,7 @@
"dependencies": {
"@babel/runtime": "^7.16.0",
"@react-native-clipboard/clipboard": "1.9.0",
- "@react-native-community/blur": "3.6.0",
+ "@react-native-community/blur": "4.2.0",
"@react-native-community/slider": "https://raw.githubusercontent.com/wordpress-mobile/react-native-slider/v3.0.2-wp-3/react-native-community-slider-3.0.2-wp-3.tgz",
"@react-native-masked-view/masked-view": "0.2.6",
"@react-navigation/core": "5.12.0",
@@ -56,7 +56,7 @@
"jed": "^1.1.1",
"jsdom-jscore-rn": "git+https://github.com/iamcco/jsdom-jscore-rn.git#a562f3d57c27c13e5bfc8cf82d496e69a3ba2800",
"node-fetch": "^2.6.0",
- "react-native": "0.66.2",
+ "react-native": "0.69.4",
"react-native-fast-image": "8.5.11",
"react-native-gesture-handler": "https://raw.githubusercontent.com/wordpress-mobile/react-native-gesture-handler/2.3.2-wp-2/react-native-gesture-handler-2.3.2-wp-2.tgz",
"react-native-get-random-values": "1.4.0",
@@ -66,14 +66,14 @@
"react-native-linear-gradient": "https://raw.githubusercontent.com/wordpress-mobile/react-native-linear-gradient/v2.5.6-wp-3/react-native-linear-gradient-2.5.6-wp-3.tgz",
"react-native-modal": "^11.10.0",
"react-native-prompt-android": "https://raw.githubusercontent.com/wordpress-mobile/react-native-prompt-android/v1.0.0-wp-3/react-native-prompt-android-1.0.0-wp-3.tgz",
- "react-native-reanimated": "https://raw.githubusercontent.com/wordpress-mobile/react-native-reanimated/2.4.1-wp-4/react-native-reanimated-2.4.1-wp-4.tgz",
+ "react-native-reanimated": "https://raw.githubusercontent.com/wordpress-mobile/react-native-reanimated/2.9.1-wp-2/react-native-reanimated-2.9.1-wp-2.tgz",
"react-native-safe-area": "^0.5.0",
"react-native-safe-area-context": "3.2.0",
"react-native-sass-transformer": "^1.1.1",
"react-native-screens": "2.9.0",
"react-native-svg": "9.13.6",
"react-native-url-polyfill": "^1.1.2",
- "react-native-video": "https://raw.githubusercontent.com/wordpress-mobile/react-native-video/5.2.0-wp-4/react-native-video-5.2.0-wp-4.tgz",
+ "react-native-video": "https://raw.githubusercontent.com/wordpress-mobile/react-native-video/5.2.0-wp-5/react-native-video-5.2.0-wp-5.tgz",
"react-native-webview": "11.6.2"
},
"publishConfig": {
@@ -89,7 +89,7 @@
"postrn-bundle": "cd ../.. && patch-package --reverse --patch-dir packages/react-native-editor/metro-patch",
"prebundle": "npm run i18n-cache:force",
"bundle": "npm run bundle:android && npm run bundle:ios",
- "bundle:android": "mkdir -p bundle/android && npm run rn-bundle -- --platform android --dev false --entry-file index.js --assets-dest bundle/android --bundle-output bundle/android/App.text.js --sourcemap-output bundle/android/App.text.js.map && ./../../node_modules/hermes-engine/`node -e \"const platform=require('os').platform();console.log(platform === 'darwin' ? 'osx-bin' : (platform === 'linux' ? 'linux64-bin' : (platform === 'win32' ? 'win64-bin' : 'unsupported-os')));\"`/hermesc -emit-binary -O -out bundle/android/App.js bundle/android/App.text.js -output-source-map",
+ "bundle:android": "mkdir -p bundle/android && npm run rn-bundle -- --platform android --dev false --entry-file index.js --assets-dest bundle/android --bundle-output bundle/android/App.text.js --sourcemap-output bundle/android/App.text.js.map && ./../../node_modules/react-native/sdks/hermesc/`node -e \"const platform=require('os').platform();console.log(platform === 'darwin' ? 'osx-bin' : (platform === 'linux' ? 'linux64-bin' : (platform === 'win32' ? 'win64-bin' : 'unsupported-os')));\"`/hermesc -emit-binary -O -out bundle/android/App.js bundle/android/App.text.js -output-source-map",
"bundle:ios": "mkdir -p bundle/ios && npm run rn-bundle -- --platform ios --dev false --entry-file index.js --assets-dest bundle/ios --bundle-output bundle/ios/App.js --sourcemap-output bundle/ios/App.js.map",
"i18n-cache": "node i18n-cache/index.js",
"i18n-cache:force": "cross-env REFRESH_I18N_CACHE=1 node i18n-cache/index.js",
diff --git a/packages/react-native-editor/react-native.config.js b/packages/react-native-editor/react-native.config.js
new file mode 100644
index 0000000000000..1dfc03662f7b5
--- /dev/null
+++ b/packages/react-native-editor/react-native.config.js
@@ -0,0 +1,15 @@
+/**
+ * External dependencies
+ */
+const path = require( 'path' );
+
+module.exports = {
+ dependencies: {
+ '@wordpress/react-native-bridge': {
+ root: path.resolve( __dirname, '../react-native-bridge' ),
+ },
+ '@wordpress/react-native-aztec': {
+ root: path.resolve( __dirname, '../react-native-aztec' ),
+ },
+ },
+};
diff --git a/packages/react-native-editor/src/index.js b/packages/react-native-editor/src/index.js
index 965ca9300fa5e..adb33b8943bde 100644
--- a/packages/react-native-editor/src/index.js
+++ b/packages/react-native-editor/src/index.js
@@ -1,8 +1,3 @@
-/**
- * External dependencies
- */
-import 'react-native-gesture-handler';
-
/**
* WordPress dependencies
*/
diff --git a/packages/reusable-blocks/CHANGELOG.md b/packages/reusable-blocks/CHANGELOG.md
index 3bc91adf13fd3..42ca3cc0769a9 100644
--- a/packages/reusable-blocks/CHANGELOG.md
+++ b/packages/reusable-blocks/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 3.20.0 (2022-11-16)
## 3.19.0 (2022-11-02)
diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json
index 79808b21425ed..f262f7fd023c0 100644
--- a/packages/reusable-blocks/package.json
+++ b/packages/reusable-blocks/package.json
@@ -40,8 +40,8 @@
"@wordpress/url": "file:../url"
},
"peerDependencies": {
- "react": "^17.0.0",
- "react-dom": "^17.0.0"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/rich-text/CHANGELOG.md b/packages/rich-text/CHANGELOG.md
index de2b21d0cd017..07848e967f6b6 100644
--- a/packages/rich-text/CHANGELOG.md
+++ b/packages/rich-text/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 5.20.0 (2022-11-16)
## 5.19.0 (2022-11-02)
diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json
index 483df30480f2f..d83a475b7d52a 100644
--- a/packages/rich-text/package.json
+++ b/packages/rich-text/package.json
@@ -42,7 +42,7 @@
"rememo": "^4.0.0"
},
"peerDependencies": {
- "react": "^17.0.0"
+ "react": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/scripts/CHANGELOG.md b/packages/scripts/CHANGELOG.md
index 7600e10fdb731..8572a09585b91 100644
--- a/packages/scripts/CHANGELOG.md
+++ b/packages/scripts/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 24.6.0 (2022-11-16)
## 24.5.0 (2022-11-02)
diff --git a/packages/scripts/package.json b/packages/scripts/package.json
index 110b4da106246..6e81d31364af4 100644
--- a/packages/scripts/package.json
+++ b/packages/scripts/package.json
@@ -89,8 +89,8 @@
"webpack-dev-server": "^4.4.0"
},
"peerDependencies": {
- "react": "^17.0.0",
- "react-dom": "^17.0.0"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/server-side-render/CHANGELOG.md b/packages/server-side-render/CHANGELOG.md
index 2852b799eb0c7..d81e2810829ac 100644
--- a/packages/server-side-render/CHANGELOG.md
+++ b/packages/server-side-render/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 3.20.0 (2022-11-16)
## 3.19.0 (2022-11-02)
diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json
index 2c700e17077b1..2ceeb7140e707 100644
--- a/packages/server-side-render/package.json
+++ b/packages/server-side-render/package.json
@@ -39,8 +39,8 @@
"lodash": "^4.17.21"
},
"peerDependencies": {
- "react": "^17.0.0",
- "react-dom": "^17.0.0"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/viewport/CHANGELOG.md b/packages/viewport/CHANGELOG.md
index 6971ca4432472..5f91832442b1c 100644
--- a/packages/viewport/CHANGELOG.md
+++ b/packages/viewport/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 4.20.0 (2022-11-16)
## 4.19.0 (2022-11-02)
diff --git a/packages/viewport/package.json b/packages/viewport/package.json
index d094a2634d334..d10025a953c2b 100644
--- a/packages/viewport/package.json
+++ b/packages/viewport/package.json
@@ -30,7 +30,7 @@
"@wordpress/data": "file:../data"
},
"peerDependencies": {
- "react": "^17.0.0"
+ "react": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/widgets/CHANGELOG.md b/packages/widgets/CHANGELOG.md
index 8402e0e4d2775..5f87628f05259 100644
--- a/packages/widgets/CHANGELOG.md
+++ b/packages/widgets/CHANGELOG.md
@@ -2,6 +2,10 @@
## Unreleased
+### Breaking Changes
+
+- Updated dependencies to require React 18 ([45235](https://github.com/WordPress/gutenberg/pull/45235))
+
## 2.20.0 (2022-11-16)
## 2.19.0 (2022-11-02)
diff --git a/packages/widgets/package.json b/packages/widgets/package.json
index 01ac126c41c14..2e8c646b11b1b 100644
--- a/packages/widgets/package.json
+++ b/packages/widgets/package.json
@@ -35,8 +35,8 @@
"classnames": "^2.3.1"
},
"peerDependencies": {
- "react": "^17.0.0",
- "react-dom": "^17.0.0"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
},
"publishConfig": {
"access": "public"
diff --git a/test/native/integration-test-helpers/get-block.js b/test/native/integration-test-helpers/get-block.js
index 5f618ddbefe8e..0770a736affbb 100644
--- a/test/native/integration-test-helpers/get-block.js
+++ b/test/native/integration-test-helpers/get-block.js
@@ -8,8 +8,7 @@
* @return {import('react-test-renderer').ReactTestInstance} Block instance.
*/
export const getBlock = ( screen, blockName, { rowIndex = 1 } = {} ) => {
- const { getByLabelText } = screen;
- return getByLabelText(
+ return screen.getAllByLabelText(
new RegExp( `${ blockName } Block\\. Row ${ rowIndex }` )
- );
+ )[ 0 ];
};
diff --git a/test/native/integration-test-helpers/get-inner-block.js b/test/native/integration-test-helpers/get-inner-block.js
index 53536c7d2f7eb..1bb1e6938c280 100644
--- a/test/native/integration-test-helpers/get-inner-block.js
+++ b/test/native/integration-test-helpers/get-inner-block.js
@@ -17,7 +17,7 @@ export const getInnerBlock = (
blockName,
{ rowIndex = 1 } = {}
) => {
- return within( parentBlock ).getByLabelText(
+ return within( parentBlock ).getAllByLabelText(
new RegExp( `${ blockName } Block\\. Row ${ rowIndex }` )
- );
+ )[ 0 ];
};
diff --git a/test/native/setup.js b/test/native/setup.js
index d65865e9da395..5f1801a338985 100644
--- a/test/native/setup.js
+++ b/test/native/setup.js
@@ -15,6 +15,9 @@ require( '../../packages/react-native-editor/src/globals' );
// Set up Reanimated library for testing
require( 'react-native-reanimated/lib/reanimated2/jestUtils' ).setUpTests();
global.__reanimatedWorkletInit = jest.fn();
+global.ReanimatedDataMock = {
+ now: () => 0,
+};
RNNativeModules.UIManager = RNNativeModules.UIManager || {};
RNNativeModules.UIManager.RCTView = RNNativeModules.UIManager.RCTView || {};
diff --git a/test/unit/config/matchers/to-be-positioned-popover.js b/test/unit/config/matchers/to-be-positioned-popover.js
new file mode 100644
index 0000000000000..bb28edce85b76
--- /dev/null
+++ b/test/unit/config/matchers/to-be-positioned-popover.js
@@ -0,0 +1,15 @@
+/**
+ * Asserts that the specified popover has already been positioned.
+ * Necessary because it will be positioned a bit later after it's displayed.
+ *
+ * @param {HTMLElement} element Popover element.
+ */
+function toBePositionedPopover( element ) {
+ const pass = element.style.top !== '' && element.style.left !== '';
+ return {
+ pass,
+ message: `Received element is ${ pass ? '' : 'not ' } positioned`,
+ };
+}
+
+expect.extend( { toBePositionedPopover } );
diff --git a/test/unit/config/testing-library.js b/test/unit/config/testing-library.js
index dd8c725c6f4ae..8f8c1bab711ad 100644
--- a/test/unit/config/testing-library.js
+++ b/test/unit/config/testing-library.js
@@ -1,3 +1,4 @@
require( '@testing-library/jest-dom' );
require( 'snapshot-diff/extend-expect' );
require( './matchers/to-match-style-diff-snapshot' );
+require( './matchers/to-be-positioned-popover' );