mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4eb7e70b57 | ||
|
|
43248535f2 |
@@ -43,7 +43,6 @@ project.xcworkspace
|
||||
/private/helloworld/android/app/build/
|
||||
/private/helloworld/android/build/
|
||||
/packages/react-native-popup-menu-android/android/build/
|
||||
/packages/react-native-test-library/android/build/
|
||||
|
||||
# Buck
|
||||
.buckd
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
#
|
||||
# This source code is licensed under the MIT license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
require 'json'
|
||||
|
||||
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'OSSLibraryExample'
|
||||
s.version = package['version']
|
||||
s.summary = package['description']
|
||||
s.description = package['description']
|
||||
s.homepage = package['homepage']
|
||||
s.license = package['license']
|
||||
s.platforms = min_supported_versions
|
||||
s.author = 'Meta Platforms, Inc. and its affiliates'
|
||||
s.source = { :git => package['repository']['url'], :tag => "#{s.version}" }
|
||||
|
||||
s.source_files = 'ios/**/*.{h,m,mm,cpp}'
|
||||
|
||||
install_modules_dependencies(s)
|
||||
end
|
||||
@@ -1,9 +0,0 @@
|
||||
## Important
|
||||
This package is for testing only. It is a subject to frequent change. It does not represent the recomended structure for React native libraries. It should not be used as a referece for such purposes.
|
||||
|
||||
## Building
|
||||
```
|
||||
yarn install
|
||||
yarn build
|
||||
npx react-native codegen
|
||||
```
|
||||
@@ -1,32 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
plugins {
|
||||
id("com.facebook.react")
|
||||
alias(libs.plugins.android.library)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk = libs.versions.compileSdk.get().toInt()
|
||||
buildToolsVersion = libs.versions.buildTools.get()
|
||||
namespace = "com.facebook.react.osslibraryexample"
|
||||
|
||||
defaultConfig { minSdk = libs.versions.minSdk.get().toInt() }
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions { jvmTarget = "17" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// Build React Native from source
|
||||
implementation(project(":packages:react-native:ReactAndroid"))
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
# We want to have more fine grained control on the Java version for
|
||||
# ReactAndroid, therefore we disable RGNP Java version alignment mechanism
|
||||
react.internal.disableJavaVersionAlignment=true
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleJavaSpec.js
|
||||
*
|
||||
* @nolint
|
||||
*/
|
||||
|
||||
package com.facebook.fbreact.specs;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public abstract class NativeSampleModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
|
||||
public static final String NAME = "NativeSampleModule";
|
||||
|
||||
public NativeSampleModuleSpec(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nonnull String getName() {
|
||||
return NAME;
|
||||
}
|
||||
|
||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||
@DoNotStrip
|
||||
public abstract double getRandomNumber();
|
||||
}
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.osslibraryexample
|
||||
|
||||
import com.facebook.fbreact.specs.NativeSampleModuleSpec
|
||||
import com.facebook.react.bridge.ReactApplicationContext
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
||||
import com.facebook.react.bridge.ReactMethod
|
||||
import com.facebook.react.module.annotations.ReactModule
|
||||
|
||||
@ReactModule(name = NativeSampleModuleSpec.NAME)
|
||||
public class NativeSampleModule(reactContext: ReactApplicationContext?) :
|
||||
ReactContextBaseJavaModule(reactContext) {
|
||||
|
||||
override fun getName(): String = NAME
|
||||
|
||||
private companion object {
|
||||
const val NAME = "NativeSampleModule"
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public fun getRandomNumber(): Int {
|
||||
return (0..99).random()
|
||||
}
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.osslibraryexample
|
||||
|
||||
import com.facebook.react.ReactPackage
|
||||
import com.facebook.react.bridge.NativeModule
|
||||
import com.facebook.react.bridge.ReactApplicationContext
|
||||
import com.facebook.react.uimanager.ViewManager
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
public class OSSLibraryExamplePackage : ReactPackage {
|
||||
@Deprecated("Migrate to [BaseReactPackage] and implement [getModule] instead.")
|
||||
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> =
|
||||
listOf(NativeSampleModule(reactContext))
|
||||
|
||||
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> =
|
||||
listOf(SampleNativeComponentViewManager())
|
||||
}
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.osslibraryexample
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.graphics.Color
|
||||
import com.facebook.react.bridge.ReadableArray
|
||||
import com.facebook.react.module.annotations.ReactModule
|
||||
import com.facebook.react.uimanager.SimpleViewManager
|
||||
import com.facebook.react.uimanager.ThemedReactContext
|
||||
import com.facebook.react.uimanager.ViewProps
|
||||
import com.facebook.react.uimanager.annotations.ReactProp
|
||||
import com.facebook.react.viewmanagers.SampleNativeComponentManagerInterface
|
||||
|
||||
/** Legacy View manager (non Fabric compatible) for {@link SampleNativeView} components. */
|
||||
@ReactModule(name = SampleNativeComponentViewManager.REACT_CLASS)
|
||||
internal class SampleNativeComponentViewManager :
|
||||
SimpleViewManager<SampleNativeView>(), SampleNativeComponentManagerInterface<SampleNativeView> {
|
||||
|
||||
override fun getName(): String = REACT_CLASS
|
||||
|
||||
// @ReactProp(name = ViewProps.OPACITY, defaultFloat = 1f)
|
||||
override fun setOpacity(view: SampleNativeView, opacity: Float) {
|
||||
super.setOpacity(view, opacity)
|
||||
}
|
||||
|
||||
@SuppressLint("BadMethodUse-android.view.View.setBackgroundColor")
|
||||
@ReactProp(name = ViewProps.COLOR)
|
||||
fun setColor(view: SampleNativeView, color: String) {
|
||||
view.setBackgroundColor(Color.parseColor(color))
|
||||
}
|
||||
|
||||
@ReactProp(name = "cornerRadius")
|
||||
fun setCornerRadius(view: SampleNativeView, cornerRadius: Float) {
|
||||
view.setCornerRadius(cornerRadius)
|
||||
}
|
||||
|
||||
override fun createViewInstance(reactContext: ThemedReactContext): SampleNativeView =
|
||||
SampleNativeView(reactContext)
|
||||
|
||||
@SuppressLint("BadMethodUse-android.view.View.setBackgroundColor")
|
||||
override fun changeBackgroundColor(view: SampleNativeView, color: String) {
|
||||
view.setBackgroundColor(Color.parseColor(color))
|
||||
}
|
||||
|
||||
override fun getExportedViewConstants(): Map<String, Any> = mapOf("PI" to 3.14)
|
||||
|
||||
override fun getExportedCustomBubblingEventTypeConstants(): Map<String, Any> {
|
||||
return mapOf(
|
||||
"onColorChanged" to
|
||||
mapOf(
|
||||
"phasedRegistrationNames" to
|
||||
mapOf(
|
||||
"bubbled" to "onColorChanged",
|
||||
"captured" to "onColorChangedCapture",
|
||||
)),
|
||||
"topIntArrayChanged" to
|
||||
mapOf(
|
||||
"phasedRegistrationNames" to
|
||||
mapOf(
|
||||
"bubbled" to "topIntArrayChanged",
|
||||
"captured" to "topIntArrayChangedCapture",
|
||||
)))
|
||||
}
|
||||
|
||||
@SuppressLint("BadMethodUse-android.view.View.setBackgroundColor")
|
||||
override fun receiveCommand(view: SampleNativeView, commandId: String, args: ReadableArray?) {
|
||||
if (commandId.contentEquals("changeBackgroundColor")) {
|
||||
val sentColor: Int = Color.parseColor(args?.getString(0))
|
||||
view.setBackgroundColor(sentColor)
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Deprecated in Java")
|
||||
@SuppressLint("BadMethodUse-android.view.View.setBackgroundColor")
|
||||
@Suppress("DEPRECATION") // We intentionally want to test against the legacy API here.
|
||||
override fun receiveCommand(view: SampleNativeView, commandId: Int, args: ReadableArray?) {
|
||||
when (commandId) {
|
||||
COMMAND_CHANGE_BACKGROUND_COLOR -> {
|
||||
val sentColor: Int = Color.parseColor(args?.getString(0))
|
||||
view.setBackgroundColor(sentColor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getCommandsMap(): Map<String, Int> =
|
||||
mapOf("changeBackgroundColor" to COMMAND_CHANGE_BACKGROUND_COLOR)
|
||||
|
||||
companion object {
|
||||
const val REACT_CLASS = "SampleNativeComponent"
|
||||
const val COMMAND_CHANGE_BACKGROUND_COLOR = 42
|
||||
}
|
||||
|
||||
@ReactProp(name = "values")
|
||||
override fun setValues(view: SampleNativeView, value: ReadableArray?) {
|
||||
val values = mutableListOf<Int>()
|
||||
value?.toArrayList()?.forEach { values.add((it as Double).toInt()) }
|
||||
view.emitOnArrayChangedEvent(values)
|
||||
}
|
||||
}
|
||||
-97
@@ -1,97 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.osslibraryexample
|
||||
|
||||
import android.graphics.drawable.GradientDrawable
|
||||
import android.view.View
|
||||
import com.facebook.react.bridge.Arguments
|
||||
import com.facebook.react.bridge.ReactContext
|
||||
import com.facebook.react.bridge.WritableArray
|
||||
import com.facebook.react.bridge.WritableMap
|
||||
import com.facebook.react.uimanager.ThemedReactContext
|
||||
import com.facebook.react.uimanager.UIManagerHelper
|
||||
import com.facebook.react.uimanager.events.Event
|
||||
|
||||
public class SampleNativeView(context: ThemedReactContext) : View(context) {
|
||||
private var currentColor = 0
|
||||
private var background: GradientDrawable = GradientDrawable()
|
||||
private val reactContext: ReactContext = context.reactApplicationContext
|
||||
|
||||
override fun setBackgroundColor(color: Int) {
|
||||
if (color != currentColor) {
|
||||
background.setColor(color)
|
||||
currentColor = color
|
||||
setBackground(background)
|
||||
}
|
||||
}
|
||||
|
||||
public fun setCornerRadius(cornerRadius: Float) {
|
||||
background.cornerRadius = cornerRadius
|
||||
setBackground(background)
|
||||
}
|
||||
|
||||
public fun emitOnArrayChangedEvent(ints: List<Int>) {
|
||||
val newIntArray = Arguments.createArray()
|
||||
val newBoolArray = Arguments.createArray()
|
||||
val newFloatArray = Arguments.createArray()
|
||||
val newDoubleArray = Arguments.createArray()
|
||||
val newYesNoArray = Arguments.createArray()
|
||||
val newStringArray = Arguments.createArray()
|
||||
val newObjectArray = Arguments.createArray()
|
||||
val newArrayArray = Arguments.createArray()
|
||||
|
||||
for (i in ints) {
|
||||
newIntArray.pushInt(i * 2)
|
||||
newBoolArray.pushBoolean(i % 2 == 1)
|
||||
newFloatArray.pushDouble(i * 3.14)
|
||||
newDoubleArray.pushDouble(i / 3.14)
|
||||
newYesNoArray.pushString(if (i % 2 == 1) "yep" else "nope")
|
||||
newStringArray.pushString(i.toString())
|
||||
|
||||
val latLon = Arguments.createMap()
|
||||
latLon.putDouble("lat", -1.0 * i)
|
||||
latLon.putDouble("lon", 2.0 * i)
|
||||
newObjectArray.pushMap(latLon)
|
||||
|
||||
val innerArray: WritableArray = Arguments.createArray()
|
||||
innerArray.pushInt(i)
|
||||
innerArray.pushInt(i)
|
||||
innerArray.pushInt(i)
|
||||
newArrayArray.pushArray(innerArray)
|
||||
}
|
||||
|
||||
val payload =
|
||||
Arguments.createMap().apply {
|
||||
putArray("values", newIntArray)
|
||||
putArray("boolValues", newBoolArray)
|
||||
putArray("floats", newFloatArray)
|
||||
putArray("doubles", newDoubleArray)
|
||||
putArray("yesNos", newYesNoArray)
|
||||
putArray("strings", newStringArray)
|
||||
putArray("latLons", newObjectArray)
|
||||
putArray("multiArrays", newArrayArray)
|
||||
}
|
||||
|
||||
val reactContext = context as ReactContext
|
||||
val surfaceId = UIManagerHelper.getSurfaceId(reactContext)
|
||||
val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, id)
|
||||
val event = OnIntArrayChangedEvent(surfaceId, id, payload)
|
||||
|
||||
eventDispatcher?.dispatchEvent(event)
|
||||
}
|
||||
|
||||
private inner class OnIntArrayChangedEvent(
|
||||
surfaceId: Int,
|
||||
viewId: Int,
|
||||
private val payload: WritableMap
|
||||
) : Event<OnIntArrayChangedEvent>(surfaceId, viewId) {
|
||||
override fun getEventName() = "topIntArrayChanged"
|
||||
|
||||
override fun getEventData() = payload
|
||||
}
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
||||
*/
|
||||
|
||||
package com.facebook.react.viewmanagers;
|
||||
|
||||
import android.view.View;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
||||
import com.facebook.react.uimanager.BaseViewManager;
|
||||
import com.facebook.react.uimanager.LayoutShadowNode;
|
||||
|
||||
public class SampleNativeComponentManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & SampleNativeComponentManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
||||
public SampleNativeComponentManagerDelegate(U viewManager) {
|
||||
super(viewManager);
|
||||
}
|
||||
@Override
|
||||
public void setProperty(T view, String propName, @Nullable Object value) {
|
||||
switch (propName) {
|
||||
case "opacity":
|
||||
mViewManager.setOpacity(view, value == null ? 0f : ((Double) value).floatValue());
|
||||
break;
|
||||
case "values":
|
||||
mViewManager.setValues(view, (ReadableArray) value);
|
||||
break;
|
||||
default:
|
||||
super.setProperty(view, propName, value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveCommand(T view, String commandName, @Nullable ReadableArray args) {
|
||||
switch (commandName) {
|
||||
case "changeBackgroundColor":
|
||||
mViewManager.changeBackgroundColor(view, args.getString(0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsJavaInterface.js
|
||||
*/
|
||||
|
||||
package com.facebook.react.viewmanagers;
|
||||
|
||||
import android.view.View;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
|
||||
|
||||
public interface SampleNativeComponentManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
|
||||
void setOpacity(T view, float value);
|
||||
void setValues(T view, @Nullable ReadableArray value);
|
||||
void changeBackgroundColor(T view, String color);
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
#
|
||||
# This source code is licensed under the MIT license found in the
|
||||
# LICENSE file in the root directory of this source tree.
|
||||
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
set(CMAKE_VERBOSE_MAKEFILE on)
|
||||
|
||||
file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/OSSLibraryExampleSpec/*.cpp)
|
||||
|
||||
add_library(
|
||||
react_codegen_OSSLibraryExampleSpec
|
||||
OBJECT
|
||||
${react_codegen_SRCS}
|
||||
)
|
||||
|
||||
target_include_directories(react_codegen_OSSLibraryExampleSpec PUBLIC . react/renderer/components/OSSLibraryExampleSpec)
|
||||
|
||||
target_link_libraries(
|
||||
react_codegen_OSSLibraryExampleSpec
|
||||
fbjni
|
||||
jsi
|
||||
reactnative
|
||||
)
|
||||
|
||||
target_compile_reactnative_options(react_codegen_OSSLibraryExampleSpec PRIVATE)
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleJniCpp.js
|
||||
*/
|
||||
|
||||
#include "OSSLibraryExampleSpec.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeSampleModuleSpecJSI_getRandomNumber(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
static jmethodID cachedMethodId = nullptr;
|
||||
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, NumberKind, "getRandomNumber", "()D", args, count, cachedMethodId);
|
||||
}
|
||||
|
||||
NativeSampleModuleSpecJSI::NativeSampleModuleSpecJSI(const JavaTurboModule::InitParams ¶ms)
|
||||
: JavaTurboModule(params) {
|
||||
methodMap_["getRandomNumber"] = MethodMetadata {0, __hostFunction_NativeSampleModuleSpecJSI_getRandomNumber};
|
||||
}
|
||||
|
||||
std::shared_ptr<TurboModule> OSSLibraryExampleSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
|
||||
if (moduleName == "NativeSampleModule") {
|
||||
return std::make_shared<NativeSampleModuleSpecJSI>(params);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,31 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleJniH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ReactCommon/JavaTurboModule.h>
|
||||
#include <ReactCommon/TurboModule.h>
|
||||
#include <jsi/jsi.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
/**
|
||||
* JNI C++ class for module 'NativeSampleModule'
|
||||
*/
|
||||
class JSI_EXPORT NativeSampleModuleSpecJSI : public JavaTurboModule {
|
||||
public:
|
||||
NativeSampleModuleSpecJSI(const JavaTurboModule::InitParams ¶ms);
|
||||
};
|
||||
|
||||
|
||||
JSI_EXPORT
|
||||
std::shared_ptr<TurboModule> OSSLibraryExampleSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms);
|
||||
|
||||
} // namespace facebook::react
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateComponentDescriptorCpp.js
|
||||
*/
|
||||
|
||||
#include "ComponentDescriptors.h"
|
||||
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
||||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
void OSSLibraryExampleSpec_registerComponentDescriptorsFromCodegen(
|
||||
std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {
|
||||
registry->add(concreteComponentDescriptorProvider<SampleNativeComponentComponentDescriptor>());
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateComponentDescriptorH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ShadowNodes.h"
|
||||
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
||||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
using SampleNativeComponentComponentDescriptor = ConcreteComponentDescriptor<SampleNativeComponentShadowNode>;
|
||||
|
||||
void OSSLibraryExampleSpec_registerComponentDescriptorsFromCodegen(
|
||||
std::shared_ptr<const ComponentDescriptorProviderRegistry> registry);
|
||||
|
||||
} // namespace facebook::react
|
||||
-95
@@ -1,95 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateEventEmitterCpp.js
|
||||
*/
|
||||
|
||||
#include "EventEmitters.h"
|
||||
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
void SampleNativeComponentEventEmitter::onIntArrayChanged(OnIntArrayChanged $event) const {
|
||||
dispatchEvent("intArrayChanged", [$event=std::move($event)](jsi::Runtime &runtime) {
|
||||
auto $payload = jsi::Object(runtime);
|
||||
|
||||
auto values = jsi::Array(runtime, $event.values.size());
|
||||
size_t valuesIndex = 0;
|
||||
for (auto valuesValue : $event.values) {
|
||||
values.setValueAtIndex(runtime, valuesIndex++, valuesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "values", values);
|
||||
|
||||
|
||||
auto boolValues = jsi::Array(runtime, $event.boolValues.size());
|
||||
size_t boolValuesIndex = 0;
|
||||
for (auto boolValuesValue : $event.boolValues) {
|
||||
boolValues.setValueAtIndex(runtime, boolValuesIndex++, (bool)boolValuesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "boolValues", boolValues);
|
||||
|
||||
|
||||
auto floats = jsi::Array(runtime, $event.floats.size());
|
||||
size_t floatsIndex = 0;
|
||||
for (auto floatsValue : $event.floats) {
|
||||
floats.setValueAtIndex(runtime, floatsIndex++, floatsValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "floats", floats);
|
||||
|
||||
|
||||
auto doubles = jsi::Array(runtime, $event.doubles.size());
|
||||
size_t doublesIndex = 0;
|
||||
for (auto doublesValue : $event.doubles) {
|
||||
doubles.setValueAtIndex(runtime, doublesIndex++, doublesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "doubles", doubles);
|
||||
|
||||
|
||||
auto yesNos = jsi::Array(runtime, $event.yesNos.size());
|
||||
size_t yesNosIndex = 0;
|
||||
for (auto yesNosValue : $event.yesNos) {
|
||||
yesNos.setValueAtIndex(runtime, yesNosIndex++, toString(yesNosValue));
|
||||
}
|
||||
$payload.setProperty(runtime, "yesNos", yesNos);
|
||||
|
||||
|
||||
auto strings = jsi::Array(runtime, $event.strings.size());
|
||||
size_t stringsIndex = 0;
|
||||
for (auto stringsValue : $event.strings) {
|
||||
strings.setValueAtIndex(runtime, stringsIndex++, stringsValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "strings", strings);
|
||||
|
||||
|
||||
auto latLons = jsi::Array(runtime, $event.latLons.size());
|
||||
size_t latLonsIndex = 0;
|
||||
for (auto latLonsValue : $event.latLons) {
|
||||
auto latLonsObject = jsi::Object(runtime);
|
||||
latLonsObject.setProperty(runtime, "lat", latLonsValue.lat);
|
||||
latLonsObject.setProperty(runtime, "lon", latLonsValue.lon);
|
||||
latLons.setValueAtIndex(runtime, latLonsIndex++, latLonsObject);
|
||||
}
|
||||
$payload.setProperty(runtime, "latLons", latLons);
|
||||
|
||||
|
||||
auto multiArrays = jsi::Array(runtime, $event.multiArrays.size());
|
||||
size_t multiArraysIndex = 0;
|
||||
for (auto multiArraysValue : $event.multiArrays) {
|
||||
auto multiArraysArray = jsi::Array(runtime, multiArraysValue.size());
|
||||
size_t multiArraysIndexInternal = 0;
|
||||
for (auto multiArraysValueInternal : multiArraysValue) {
|
||||
multiArraysArray.setValueAtIndex(runtime, multiArraysIndexInternal++, multiArraysValueInternal);
|
||||
}
|
||||
multiArrays.setValueAtIndex(runtime, multiArraysIndex++, multiArraysArray);
|
||||
}
|
||||
$payload.setProperty(runtime, "multiArrays", multiArrays);
|
||||
|
||||
return $payload;
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateEventEmitterH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <react/renderer/components/view/ViewEventEmitter.h>
|
||||
|
||||
|
||||
namespace facebook::react {
|
||||
class SampleNativeComponentEventEmitter : public ViewEventEmitter {
|
||||
public:
|
||||
using ViewEventEmitter::ViewEventEmitter;
|
||||
|
||||
enum class OnIntArrayChangedYesNos {
|
||||
Yep,
|
||||
Nope
|
||||
};
|
||||
|
||||
static char const *toString(const OnIntArrayChangedYesNos value) {
|
||||
switch (value) {
|
||||
case OnIntArrayChangedYesNos::Yep: return "yep";
|
||||
case OnIntArrayChangedYesNos::Nope: return "nope";
|
||||
}
|
||||
}
|
||||
|
||||
struct OnIntArrayChangedLatLons {
|
||||
double lat;
|
||||
double lon;
|
||||
};
|
||||
|
||||
struct OnIntArrayChanged {
|
||||
std::vector<int> values;
|
||||
std::vector<bool> boolValues;
|
||||
std::vector<Float> floats;
|
||||
std::vector<double> doubles;
|
||||
std::vector<OnIntArrayChangedYesNos> yesNos;
|
||||
std::vector<std::string> strings;
|
||||
std::vector<OnIntArrayChangedLatLons> latLons;
|
||||
std::vector<std::vector<int>> multiArrays;
|
||||
};
|
||||
void onIntArrayChanged(OnIntArrayChanged value) const;
|
||||
};
|
||||
} // namespace facebook::react
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleCpp.js
|
||||
*/
|
||||
|
||||
#include "OSSLibraryExampleSpecJSI.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
static jsi::Value __hostFunction_NativeSampleModuleCxxSpecJSI_getRandomNumber(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
||||
return static_cast<NativeSampleModuleCxxSpecJSI *>(&turboModule)->getRandomNumber(
|
||||
rt
|
||||
);
|
||||
}
|
||||
|
||||
NativeSampleModuleCxxSpecJSI::NativeSampleModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: TurboModule("NativeSampleModule", jsInvoker) {
|
||||
methodMap_["getRandomNumber"] = MethodMetadata {0, __hostFunction_NativeSampleModuleCxxSpecJSI_getRandomNumber};
|
||||
}
|
||||
|
||||
|
||||
} // namespace facebook::react
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ReactCommon/TurboModule.h>
|
||||
#include <react/bridging/Bridging.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
|
||||
class JSI_EXPORT NativeSampleModuleCxxSpecJSI : public TurboModule {
|
||||
protected:
|
||||
NativeSampleModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
||||
|
||||
public:
|
||||
virtual double getRandomNumber(jsi::Runtime &rt) = 0;
|
||||
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JSI_EXPORT NativeSampleModuleCxxSpec : public TurboModule {
|
||||
public:
|
||||
jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
||||
return delegate_.create(rt, propName);
|
||||
}
|
||||
|
||||
static constexpr std::string_view kModuleName = "NativeSampleModule";
|
||||
|
||||
protected:
|
||||
NativeSampleModuleCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: TurboModule(std::string{NativeSampleModuleCxxSpec::kModuleName}, jsInvoker),
|
||||
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
||||
|
||||
|
||||
private:
|
||||
class Delegate : public NativeSampleModuleCxxSpecJSI {
|
||||
public:
|
||||
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
||||
NativeSampleModuleCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
||||
|
||||
}
|
||||
|
||||
double getRandomNumber(jsi::Runtime &rt) override {
|
||||
static_assert(
|
||||
bridging::getParameterCount(&T::getRandomNumber) == 1,
|
||||
"Expected getRandomNumber(...) to have 1 parameters");
|
||||
|
||||
return bridging::callFromJs<double>(
|
||||
rt, &T::getRandomNumber, jsInvoker_, instance_);
|
||||
}
|
||||
|
||||
private:
|
||||
friend class NativeSampleModuleCxxSpec;
|
||||
T *instance_;
|
||||
};
|
||||
|
||||
Delegate delegate_;
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsCpp.js
|
||||
*/
|
||||
|
||||
#include "Props.h"
|
||||
#include <react/renderer/core/PropsParserContext.h>
|
||||
#include <react/renderer/core/propsConversions.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
SampleNativeComponentProps::SampleNativeComponentProps(
|
||||
const PropsParserContext &context,
|
||||
const SampleNativeComponentProps &sourceProps,
|
||||
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
|
||||
|
||||
opacity(convertRawProp(context, rawProps, "opacity", sourceProps.opacity, {0.0})),
|
||||
values(convertRawProp(context, rawProps, "values", sourceProps.values, {}))
|
||||
{}
|
||||
|
||||
} // namespace facebook::react
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <react/renderer/components/view/ViewProps.h>
|
||||
#include <react/renderer/core/PropsParserContext.h>
|
||||
#include <vector>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
class SampleNativeComponentProps final : public ViewProps {
|
||||
public:
|
||||
SampleNativeComponentProps() = default;
|
||||
SampleNativeComponentProps(const PropsParserContext& context, const SampleNativeComponentProps &sourceProps, const RawProps &rawProps);
|
||||
|
||||
#pragma mark - Props
|
||||
|
||||
Float opacity{0.0};
|
||||
std::vector<int> values{};
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateShadowNodeCpp.js
|
||||
*/
|
||||
|
||||
#include "ShadowNodes.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
extern const char SampleNativeComponentComponentName[] = "SampleNativeComponent";
|
||||
|
||||
} // namespace facebook::react
|
||||
-32
@@ -1,32 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateShadowNodeH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "EventEmitters.h"
|
||||
#include "Props.h"
|
||||
#include "States.h"
|
||||
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
|
||||
#include <jsi/jsi.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
JSI_EXPORT extern const char SampleNativeComponentComponentName[];
|
||||
|
||||
/*
|
||||
* `ShadowNode` for <SampleNativeComponent> component.
|
||||
*/
|
||||
using SampleNativeComponentShadowNode = ConcreteViewShadowNode<
|
||||
SampleNativeComponentComponentName,
|
||||
SampleNativeComponentProps,
|
||||
SampleNativeComponentEventEmitter,
|
||||
SampleNativeComponentState>;
|
||||
|
||||
} // namespace facebook::react
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateStateCpp.js
|
||||
*/
|
||||
#include "States.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
|
||||
|
||||
} // namespace facebook::react
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateStateH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef RN_SERIALIZABLE_STATE
|
||||
#include <folly/dynamic.h>
|
||||
#endif
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
class SampleNativeComponentState {
|
||||
public:
|
||||
SampleNativeComponentState() = default;
|
||||
|
||||
#ifdef RN_SERIALIZABLE_STATE
|
||||
SampleNativeComponentState(SampleNativeComponentState const &previousState, folly::dynamic data){};
|
||||
folly::dynamic getDynamic() const {
|
||||
return {};
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,18 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @noflow
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
presets: [
|
||||
[
|
||||
'module:@react-native/babel-preset',
|
||||
{disableStaticViewConfigsCodegen: false},
|
||||
],
|
||||
],
|
||||
};
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow strict-local
|
||||
* @format
|
||||
*/
|
||||
|
||||
export {default as SampleNativeComponent} from './src/SampleNativeComponent';
|
||||
export type {NativeComponentType} from './src/SampleNativeComponent';
|
||||
import {Commands as SampleNativeComponentCommands} from './src/SampleNativeComponent';
|
||||
|
||||
export {SampleNativeComponentCommands};
|
||||
export {default as NativeSampleModule} from './src/NativeSampleModule';
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateComponentDescriptorCpp.js
|
||||
*/
|
||||
|
||||
#include "ComponentDescriptors.h"
|
||||
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
||||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
void OSSLibraryExampleSpec_registerComponentDescriptorsFromCodegen(
|
||||
std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {
|
||||
registry->add(concreteComponentDescriptorProvider<SampleNativeComponentComponentDescriptor>());
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,24 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateComponentDescriptorH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "ShadowNodes.h"
|
||||
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
||||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
using SampleNativeComponentComponentDescriptor = ConcreteComponentDescriptor<SampleNativeComponentShadowNode>;
|
||||
|
||||
void OSSLibraryExampleSpec_registerComponentDescriptorsFromCodegen(
|
||||
std::shared_ptr<const ComponentDescriptorProviderRegistry> registry);
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,95 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateEventEmitterCpp.js
|
||||
*/
|
||||
|
||||
#include "EventEmitters.h"
|
||||
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
void SampleNativeComponentEventEmitter::onIntArrayChanged(OnIntArrayChanged $event) const {
|
||||
dispatchEvent("intArrayChanged", [$event=std::move($event)](jsi::Runtime &runtime) {
|
||||
auto $payload = jsi::Object(runtime);
|
||||
|
||||
auto values = jsi::Array(runtime, $event.values.size());
|
||||
size_t valuesIndex = 0;
|
||||
for (auto valuesValue : $event.values) {
|
||||
values.setValueAtIndex(runtime, valuesIndex++, valuesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "values", values);
|
||||
|
||||
|
||||
auto boolValues = jsi::Array(runtime, $event.boolValues.size());
|
||||
size_t boolValuesIndex = 0;
|
||||
for (auto boolValuesValue : $event.boolValues) {
|
||||
boolValues.setValueAtIndex(runtime, boolValuesIndex++, (bool)boolValuesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "boolValues", boolValues);
|
||||
|
||||
|
||||
auto floats = jsi::Array(runtime, $event.floats.size());
|
||||
size_t floatsIndex = 0;
|
||||
for (auto floatsValue : $event.floats) {
|
||||
floats.setValueAtIndex(runtime, floatsIndex++, floatsValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "floats", floats);
|
||||
|
||||
|
||||
auto doubles = jsi::Array(runtime, $event.doubles.size());
|
||||
size_t doublesIndex = 0;
|
||||
for (auto doublesValue : $event.doubles) {
|
||||
doubles.setValueAtIndex(runtime, doublesIndex++, doublesValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "doubles", doubles);
|
||||
|
||||
|
||||
auto yesNos = jsi::Array(runtime, $event.yesNos.size());
|
||||
size_t yesNosIndex = 0;
|
||||
for (auto yesNosValue : $event.yesNos) {
|
||||
yesNos.setValueAtIndex(runtime, yesNosIndex++, toString(yesNosValue));
|
||||
}
|
||||
$payload.setProperty(runtime, "yesNos", yesNos);
|
||||
|
||||
|
||||
auto strings = jsi::Array(runtime, $event.strings.size());
|
||||
size_t stringsIndex = 0;
|
||||
for (auto stringsValue : $event.strings) {
|
||||
strings.setValueAtIndex(runtime, stringsIndex++, stringsValue);
|
||||
}
|
||||
$payload.setProperty(runtime, "strings", strings);
|
||||
|
||||
|
||||
auto latLons = jsi::Array(runtime, $event.latLons.size());
|
||||
size_t latLonsIndex = 0;
|
||||
for (auto latLonsValue : $event.latLons) {
|
||||
auto latLonsObject = jsi::Object(runtime);
|
||||
latLonsObject.setProperty(runtime, "lat", latLonsValue.lat);
|
||||
latLonsObject.setProperty(runtime, "lon", latLonsValue.lon);
|
||||
latLons.setValueAtIndex(runtime, latLonsIndex++, latLonsObject);
|
||||
}
|
||||
$payload.setProperty(runtime, "latLons", latLons);
|
||||
|
||||
|
||||
auto multiArrays = jsi::Array(runtime, $event.multiArrays.size());
|
||||
size_t multiArraysIndex = 0;
|
||||
for (auto multiArraysValue : $event.multiArrays) {
|
||||
auto multiArraysArray = jsi::Array(runtime, multiArraysValue.size());
|
||||
size_t multiArraysIndexInternal = 0;
|
||||
for (auto multiArraysValueInternal : multiArraysValue) {
|
||||
multiArraysArray.setValueAtIndex(runtime, multiArraysIndexInternal++, multiArraysValueInternal);
|
||||
}
|
||||
multiArrays.setValueAtIndex(runtime, multiArraysIndex++, multiArraysArray);
|
||||
}
|
||||
$payload.setProperty(runtime, "multiArrays", multiArrays);
|
||||
|
||||
return $payload;
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,49 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateEventEmitterH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <react/renderer/components/view/ViewEventEmitter.h>
|
||||
|
||||
|
||||
namespace facebook::react {
|
||||
class SampleNativeComponentEventEmitter : public ViewEventEmitter {
|
||||
public:
|
||||
using ViewEventEmitter::ViewEventEmitter;
|
||||
|
||||
enum class OnIntArrayChangedYesNos {
|
||||
Yep,
|
||||
Nope
|
||||
};
|
||||
|
||||
static char const *toString(const OnIntArrayChangedYesNos value) {
|
||||
switch (value) {
|
||||
case OnIntArrayChangedYesNos::Yep: return "yep";
|
||||
case OnIntArrayChangedYesNos::Nope: return "nope";
|
||||
}
|
||||
}
|
||||
|
||||
struct OnIntArrayChangedLatLons {
|
||||
double lat;
|
||||
double lon;
|
||||
};
|
||||
|
||||
struct OnIntArrayChanged {
|
||||
std::vector<int> values;
|
||||
std::vector<bool> boolValues;
|
||||
std::vector<Float> floats;
|
||||
std::vector<double> doubles;
|
||||
std::vector<OnIntArrayChangedYesNos> yesNos;
|
||||
std::vector<std::string> strings;
|
||||
std::vector<OnIntArrayChangedLatLons> latLons;
|
||||
std::vector<std::vector<int>> multiArrays;
|
||||
};
|
||||
void onIntArrayChanged(OnIntArrayChanged value) const;
|
||||
};
|
||||
} // namespace facebook::react
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleObjCpp
|
||||
*
|
||||
* We create an umbrella header (and corresponding implementation) here since
|
||||
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
||||
* must have a single output. More files => more genrule()s => slower builds.
|
||||
*/
|
||||
|
||||
#import "OSSLibraryExampleSpec.h"
|
||||
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
static facebook::jsi::Value __hostFunction_NativeSampleModuleSpecJSI_getRandomNumber(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
||||
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, NumberKind, "getRandomNumber", @selector(getRandomNumber), args, count);
|
||||
}
|
||||
|
||||
NativeSampleModuleSpecJSI::NativeSampleModuleSpecJSI(const ObjCTurboModule::InitParams ¶ms)
|
||||
: ObjCTurboModule(params) {
|
||||
|
||||
methodMap_["getRandomNumber"] = MethodMetadata {0, __hostFunction_NativeSampleModuleSpecJSI_getRandomNumber};
|
||||
|
||||
}
|
||||
} // namespace facebook::react
|
||||
@@ -1,49 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleObjCpp
|
||||
*
|
||||
* We create an umbrella header (and corresponding implementation) here since
|
||||
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
||||
* must have a single output. More files => more genrule()s => slower builds.
|
||||
*/
|
||||
|
||||
#ifndef __cplusplus
|
||||
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
|
||||
#endif
|
||||
|
||||
// Avoid multiple includes of OSSLibraryExampleSpec symbols
|
||||
#ifndef OSSLibraryExampleSpec_H
|
||||
#define OSSLibraryExampleSpec_H
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <RCTRequired/RCTRequired.h>
|
||||
#import <RCTTypeSafety/RCTConvertHelpers.h>
|
||||
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
#import <React/RCTCxxConvert.h>
|
||||
#import <React/RCTManagedPointer.h>
|
||||
#import <ReactCommon/RCTTurboModule.h>
|
||||
#import <optional>
|
||||
#import <vector>
|
||||
|
||||
|
||||
@protocol NativeSampleModuleSpec <RCTBridgeModule, RCTTurboModule>
|
||||
|
||||
- (NSNumber *)getRandomNumber;
|
||||
|
||||
@end
|
||||
namespace facebook::react {
|
||||
/**
|
||||
* ObjC++ class for module 'NativeSampleModule'
|
||||
*/
|
||||
class JSI_EXPORT NativeSampleModuleSpecJSI : public ObjCTurboModule {
|
||||
public:
|
||||
NativeSampleModuleSpecJSI(const ObjCTurboModule::InitParams ¶ms);
|
||||
};
|
||||
} // namespace facebook::react
|
||||
|
||||
#endif // OSSLibraryExampleSpec_H
|
||||
@@ -1,26 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsCpp.js
|
||||
*/
|
||||
|
||||
#include "Props.h"
|
||||
#include <react/renderer/core/PropsParserContext.h>
|
||||
#include <react/renderer/core/propsConversions.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
SampleNativeComponentProps::SampleNativeComponentProps(
|
||||
const PropsParserContext &context,
|
||||
const SampleNativeComponentProps &sourceProps,
|
||||
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
|
||||
|
||||
opacity(convertRawProp(context, rawProps, "opacity", sourceProps.opacity, {0.0})),
|
||||
values(convertRawProp(context, rawProps, "values", sourceProps.values, {}))
|
||||
{}
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,29 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GeneratePropsH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <react/renderer/components/view/ViewProps.h>
|
||||
#include <react/renderer/core/PropsParserContext.h>
|
||||
#include <vector>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
class SampleNativeComponentProps final : public ViewProps {
|
||||
public:
|
||||
SampleNativeComponentProps() = default;
|
||||
SampleNativeComponentProps(const PropsParserContext& context, const SampleNativeComponentProps &sourceProps, const RawProps &rawProps);
|
||||
|
||||
#pragma mark - Props
|
||||
|
||||
Float opacity{0.0};
|
||||
std::vector<int> values{};
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateComponentHObjCpp.js
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <React/RCTDefines.h>
|
||||
#import <React/RCTLog.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@protocol RCTSampleNativeComponentViewProtocol <NSObject>
|
||||
- (void)changeBackgroundColor:(NSString *)color;
|
||||
@end
|
||||
|
||||
RCT_EXTERN inline void RCTSampleNativeComponentHandleCommand(
|
||||
id<RCTSampleNativeComponentViewProtocol> componentView,
|
||||
NSString const *commandName,
|
||||
NSArray const *args)
|
||||
{
|
||||
if ([commandName isEqualToString:@"changeBackgroundColor"]) {
|
||||
#if RCT_DEBUG
|
||||
if ([args count] != 1) {
|
||||
RCTLogError(@"%@ command %@ received %d arguments, expected %d.", @"SampleNativeComponent", commandName, (int)[args count], 1);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
NSObject *arg0 = args[0];
|
||||
#if RCT_DEBUG
|
||||
if (!RCTValidateTypeOfViewCommandArgument(arg0, [NSString class], @"string", @"SampleNativeComponent", commandName, @"1st")) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
NSString * color = (NSString *)arg0;
|
||||
|
||||
[componentView changeBackgroundColor:color];
|
||||
return;
|
||||
}
|
||||
|
||||
#if RCT_DEBUG
|
||||
RCTLogError(@"%@ received command %@, which is not a supported command.", @"SampleNativeComponent", commandName);
|
||||
#endif
|
||||
}
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
@@ -1,17 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateShadowNodeCpp.js
|
||||
*/
|
||||
|
||||
#include "ShadowNodes.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
extern const char SampleNativeComponentComponentName[] = "SampleNativeComponent";
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,32 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateShadowNodeH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "EventEmitters.h"
|
||||
#include "Props.h"
|
||||
#include "States.h"
|
||||
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
|
||||
#include <jsi/jsi.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
JSI_EXPORT extern const char SampleNativeComponentComponentName[];
|
||||
|
||||
/*
|
||||
* `ShadowNode` for <SampleNativeComponent> component.
|
||||
*/
|
||||
using SampleNativeComponentShadowNode = ConcreteViewShadowNode<
|
||||
SampleNativeComponentComponentName,
|
||||
SampleNativeComponentProps,
|
||||
SampleNativeComponentEventEmitter,
|
||||
SampleNativeComponentState>;
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,16 +0,0 @@
|
||||
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateStateCpp.js
|
||||
*/
|
||||
#include "States.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,29 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateStateH.js
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifdef RN_SERIALIZABLE_STATE
|
||||
#include <folly/dynamic.h>
|
||||
#endif
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
class SampleNativeComponentState {
|
||||
public:
|
||||
SampleNativeComponentState() = default;
|
||||
|
||||
#ifdef RN_SERIALIZABLE_STATE
|
||||
SampleNativeComponentState(SampleNativeComponentState const &previousState, folly::dynamic data){};
|
||||
folly::dynamic getDynamic() const {
|
||||
return {};
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,26 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleCpp.js
|
||||
*/
|
||||
|
||||
#include "OSSLibraryExampleSpecJSI.h"
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
static jsi::Value __hostFunction_NativeSampleModuleCxxSpecJSI_getRandomNumber(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
||||
return static_cast<NativeSampleModuleCxxSpecJSI *>(&turboModule)->getRandomNumber(
|
||||
rt
|
||||
);
|
||||
}
|
||||
|
||||
NativeSampleModuleCxxSpecJSI::NativeSampleModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: TurboModule("NativeSampleModule", jsInvoker) {
|
||||
methodMap_["getRandomNumber"] = MethodMetadata {0, __hostFunction_NativeSampleModuleCxxSpecJSI_getRandomNumber};
|
||||
}
|
||||
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,67 +0,0 @@
|
||||
/**
|
||||
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
||||
*
|
||||
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
||||
* once the code is regenerated.
|
||||
*
|
||||
* @generated by codegen project: GenerateModuleH.js
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ReactCommon/TurboModule.h>
|
||||
#include <react/bridging/Bridging.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
|
||||
class JSI_EXPORT NativeSampleModuleCxxSpecJSI : public TurboModule {
|
||||
protected:
|
||||
NativeSampleModuleCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
||||
|
||||
public:
|
||||
virtual double getRandomNumber(jsi::Runtime &rt) = 0;
|
||||
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class JSI_EXPORT NativeSampleModuleCxxSpec : public TurboModule {
|
||||
public:
|
||||
jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
||||
return delegate_.create(rt, propName);
|
||||
}
|
||||
|
||||
static constexpr std::string_view kModuleName = "NativeSampleModule";
|
||||
|
||||
protected:
|
||||
NativeSampleModuleCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
||||
: TurboModule(std::string{NativeSampleModuleCxxSpec::kModuleName}, jsInvoker),
|
||||
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
||||
|
||||
|
||||
private:
|
||||
class Delegate : public NativeSampleModuleCxxSpecJSI {
|
||||
public:
|
||||
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
||||
NativeSampleModuleCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
||||
|
||||
}
|
||||
|
||||
double getRandomNumber(jsi::Runtime &rt) override {
|
||||
static_assert(
|
||||
bridging::getParameterCount(&T::getRandomNumber) == 1,
|
||||
"Expected getRandomNumber(...) to have 1 parameters");
|
||||
|
||||
return bridging::callFromJs<double>(
|
||||
rt, &T::getRandomNumber, jsInvoker_, instance_);
|
||||
}
|
||||
|
||||
private:
|
||||
friend class NativeSampleModuleCxxSpec;
|
||||
T *instance_;
|
||||
};
|
||||
|
||||
Delegate delegate_;
|
||||
};
|
||||
|
||||
} // namespace facebook::react
|
||||
@@ -1,47 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#ifdef RCT_NEW_ARCH_ENABLED
|
||||
#import "OSSLibraryExampleSpec/OSSLibraryExampleSpec.h"
|
||||
#else
|
||||
#import <React/RCTBridge.h>
|
||||
#endif
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <react/debug/react_native_assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef RCT_NEW_ARCH_ENABLED
|
||||
@interface RCTNativeSampleModule : NSObject <NativeSampleModuleSpec>
|
||||
#else
|
||||
@interface RCTNativeSampleModule : NSObject <RCTBridgeModule>
|
||||
#endif
|
||||
|
||||
@end
|
||||
|
||||
@implementation RCTNativeSampleModule
|
||||
|
||||
RCT_EXPORT_MODULE();
|
||||
|
||||
#ifdef RCT_NEW_ARCH_ENABLED
|
||||
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
||||
(const facebook::react::ObjCTurboModule::InitParams &)params
|
||||
{
|
||||
return std::make_shared<facebook::react::NativeSampleModuleSpecJSI>(params);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef RCT_NEW_ARCH_ENABLED
|
||||
- (NSNumber *)getRandomNumber
|
||||
#else
|
||||
RCT_EXPORT_SYNCHRONOUS_TYPED_METHOD(NSNumber *, getRandomNumber)
|
||||
#endif
|
||||
{
|
||||
return @(arc4random_uniform(99));
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,139 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import "OSSLibraryExampleSpec/ComponentDescriptors.h"
|
||||
#import "OSSLibraryExampleSpec/EventEmitters.h"
|
||||
#import "OSSLibraryExampleSpec/Props.h"
|
||||
#import "OSSLibraryExampleSpec/RCTComponentViewHelpers.h"
|
||||
|
||||
#import "RCTFabricComponentsPlugins.h"
|
||||
|
||||
#import <React/RCTComponent.h>
|
||||
#import <React/RCTViewComponentView.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
using namespace facebook::react;
|
||||
|
||||
static UIColor *UIColorFromHexString(const std::string hexString)
|
||||
{
|
||||
unsigned rgbValue = 0;
|
||||
NSString *colorString = [NSString stringWithCString:hexString.c_str() encoding:[NSString defaultCStringEncoding]];
|
||||
NSScanner *scanner = [NSScanner scannerWithString:colorString];
|
||||
[scanner setScanLocation:1]; // bypass '#' character
|
||||
[scanner scanHexInt:&rgbValue];
|
||||
return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16) / 255.0
|
||||
green:((rgbValue & 0xFF00) >> 8) / 255.0
|
||||
blue:(rgbValue & 0xFF) / 255.0
|
||||
alpha:1.0];
|
||||
}
|
||||
|
||||
@interface RCTSampleNativeComponentComponentView : RCTViewComponentView <RCTSampleNativeComponentViewProtocol>
|
||||
|
||||
@property (nonatomic, copy) RCTBubblingEventBlock onIntArrayChanged;
|
||||
|
||||
@end
|
||||
|
||||
@implementation RCTSampleNativeComponentComponentView {
|
||||
UIView *_view;
|
||||
}
|
||||
|
||||
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
||||
{
|
||||
return concreteComponentDescriptorProvider<SampleNativeComponentComponentDescriptor>();
|
||||
}
|
||||
|
||||
// Load is not invoked if it is not defined, therefore, we must ask to update this.
|
||||
// See the Apple documentation: https://developer.apple.com/documentation/objectivec/nsobject/1418815-load?language=objc
|
||||
// "[...] but only if the newly loaded class or category implements a method that can respond."
|
||||
+ (void)load
|
||||
{
|
||||
[super load];
|
||||
}
|
||||
|
||||
- (instancetype)initWithFrame:(CGRect)frame
|
||||
{
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
static const auto defaultProps = std::make_shared<const SampleNativeComponentProps>();
|
||||
_props = defaultProps;
|
||||
|
||||
_view = [[UIView alloc] init];
|
||||
_view.backgroundColor = [UIColor redColor];
|
||||
|
||||
self.contentView = _view;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
||||
{
|
||||
const auto &oldViewProps = *std::static_pointer_cast<const SampleNativeComponentProps>(_props);
|
||||
const auto &newViewProps = *std::static_pointer_cast<const SampleNativeComponentProps>(props);
|
||||
|
||||
if (oldViewProps.values != newViewProps.values) {
|
||||
if (_eventEmitter) {
|
||||
std::vector<int> newVector = {};
|
||||
std::vector<bool> newBoolVector = {};
|
||||
std::vector<Float> newFloatVector = {};
|
||||
std::vector<double> newDoubleVector = {};
|
||||
std::vector<SampleNativeComponentEventEmitter::OnIntArrayChangedYesNos> newYesNoVector = {};
|
||||
std::vector<std::string> newStringVector = {};
|
||||
std::vector<SampleNativeComponentEventEmitter::OnIntArrayChangedLatLons> newLatLonVector = {};
|
||||
std::vector<std::vector<int>> newIntVectorVector = {};
|
||||
for (auto val : newViewProps.values) {
|
||||
newVector.push_back(val * 2);
|
||||
newBoolVector.push_back(val % 2 ? true : false);
|
||||
newFloatVector.push_back(val * 3.14);
|
||||
newDoubleVector.push_back(val / 3.14);
|
||||
newYesNoVector.push_back(
|
||||
val % 2 ? SampleNativeComponentEventEmitter::OnIntArrayChangedYesNos::Yep
|
||||
: SampleNativeComponentEventEmitter::OnIntArrayChangedYesNos::Nope);
|
||||
newStringVector.push_back(std::to_string(val));
|
||||
newLatLonVector.push_back({-1.0 * val, 2.0 * val});
|
||||
newIntVectorVector.push_back({val, val, val});
|
||||
}
|
||||
SampleNativeComponentEventEmitter::OnIntArrayChanged value = {
|
||||
newVector,
|
||||
newBoolVector,
|
||||
newFloatVector,
|
||||
newDoubleVector,
|
||||
newYesNoVector,
|
||||
newStringVector,
|
||||
newLatLonVector,
|
||||
newIntVectorVector};
|
||||
std::static_pointer_cast<const SampleNativeComponentEventEmitter>(_eventEmitter)->onIntArrayChanged(value);
|
||||
}
|
||||
}
|
||||
|
||||
[super updateProps:props oldProps:oldProps];
|
||||
}
|
||||
|
||||
- (void)onChange:(UIView *)sender
|
||||
{
|
||||
// No-op
|
||||
// std::dynamic_pointer_cast<const ViewEventEmitter>(_eventEmitter)
|
||||
// ->onChange(ViewEventEmitter::OnChange{.value = static_cast<bool>(sender.on)});
|
||||
}
|
||||
|
||||
#pragma mark - Native Commands
|
||||
|
||||
- (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
|
||||
{
|
||||
RCTSampleNativeComponentHandleCommand(self, commandName, args);
|
||||
}
|
||||
|
||||
- (void)changeBackgroundColor:(NSString *)color
|
||||
{
|
||||
_view.backgroundColor = UIColorFromHexString(std::string(color.UTF8String));
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Class<RCTComponentViewProtocol> SampleNativeComponentCls(void)
|
||||
{
|
||||
return RCTSampleNativeComponentComponentView.class;
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#import <React/RCTLog.h>
|
||||
#import <React/RCTUIManager.h>
|
||||
#import <React/RCTViewManager.h>
|
||||
|
||||
#import <string>
|
||||
|
||||
static UIColor *UIColorFromHexString(const std::string hexString)
|
||||
{
|
||||
unsigned rgbValue = 0;
|
||||
NSString *colorString = [NSString stringWithCString:hexString.c_str() encoding:[NSString defaultCStringEncoding]];
|
||||
NSScanner *scanner = [NSScanner scannerWithString:colorString];
|
||||
[scanner setScanLocation:1]; // bypass '#' character
|
||||
[scanner scanHexInt:&rgbValue];
|
||||
return [UIColor colorWithRed:((rgbValue & 0xFF0000) >> 16) / 255.0
|
||||
green:((rgbValue & 0xFF00) >> 8) / 255.0
|
||||
blue:(rgbValue & 0xFF) / 255.0
|
||||
alpha:1.0];
|
||||
}
|
||||
|
||||
@interface RCTSampleNativeComponentViewManager : RCTViewManager
|
||||
@end
|
||||
|
||||
@implementation RCTSampleNativeComponentViewManager
|
||||
|
||||
RCT_EXPORT_MODULE(SampleNativeComponent)
|
||||
|
||||
RCT_REMAP_VIEW_PROPERTY(color, backgroundColor, UIColor)
|
||||
|
||||
RCT_REMAP_VIEW_PROPERTY(opacity, alpha, CGFloat)
|
||||
|
||||
RCT_EXPORT_VIEW_PROPERTY(onColorChanged, RCTBubblingEventBlock)
|
||||
|
||||
RCT_CUSTOM_VIEW_PROPERTY(cornerRadius, CGFloat, UIView)
|
||||
{
|
||||
view.clipsToBounds = true;
|
||||
NSNumber *cornerRadius = (NSNumber *)json;
|
||||
view.layer.cornerRadius = [cornerRadius floatValue];
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(changeBackgroundColor : (nonnull NSNumber *)reactTag color : (NSString *)color)
|
||||
{
|
||||
[self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
||||
if (UIView *view = [RCTSampleNativeComponentViewManager getViewByTag:viewRegistry reactTag:reactTag]) {
|
||||
view.backgroundColor = UIColorFromHexString(std::string(color.UTF8String));
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
+ (UIView *)getViewByTag:(NSDictionary<NSNumber *, UIView *> *)viewRegistry reactTag:(nonnull NSNumber *)reactTag
|
||||
{
|
||||
UIView *view = viewRegistry[reactTag];
|
||||
if (view == nil) {
|
||||
RCTLogError(@"Cannot find view with tag #%@", reactTag);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
- (UIView *)view
|
||||
{
|
||||
UIView *view = [UIView new];
|
||||
view.backgroundColor = UIColor.redColor;
|
||||
return view;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,54 +0,0 @@
|
||||
{
|
||||
"name": "@react-native/oss-library-example",
|
||||
"version": "0.81.0-main",
|
||||
"private": true,
|
||||
"description": "Package that includes native module exapmle, native component example, targets both the old and the new architecture. It should serve as an example of a real-world OSS library.",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/facebook/react-native.git",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/facebook/react-native.git",
|
||||
"directory": "packages/react-native-test-library"
|
||||
},
|
||||
"main": "./index.js",
|
||||
"exports": {
|
||||
".": "./index.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yarn clean && babel --out-dir lib src",
|
||||
"clean": "rimraf lib",
|
||||
"codegen": "npx react-native codegen",
|
||||
"prepare": "yarn run codegen && yarn run build"
|
||||
},
|
||||
"files": [
|
||||
"generated"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.25.2",
|
||||
"@react-native/babel-preset": "0.81.0-main",
|
||||
"react-native": "1000.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "*",
|
||||
"react-native": "*"
|
||||
},
|
||||
"codegenConfig": {
|
||||
"name": "OSSLibraryExampleSpec",
|
||||
"type": "all",
|
||||
"jsSrcsDir": "src",
|
||||
"outputDir": {
|
||||
"ios": "ios",
|
||||
"android": "android/src/main"
|
||||
},
|
||||
"includesGeneratedCode": true,
|
||||
"android": {
|
||||
"javaPackageName": "com.reactnative.osslibraryexample"
|
||||
},
|
||||
"ios": {
|
||||
"componentProvider": {
|
||||
"SampleNativeComponent": "RCTSampleNativeComponentComponentView"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
* @noflow
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
dependency: {
|
||||
platforms: {
|
||||
android: {
|
||||
cmakeListsPath: '../android/src/main/jni/CMakeLists.txt',
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1,19 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow strict-local
|
||||
* @format
|
||||
*/
|
||||
|
||||
import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
|
||||
|
||||
import {TurboModuleRegistry} from 'react-native';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
+getRandomNumber: () => number;
|
||||
}
|
||||
|
||||
export default (TurboModuleRegistry.get<Spec>('NativeSampleModule'): ?Spec);
|
||||
@@ -1,59 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow strict-local
|
||||
* @format
|
||||
*/
|
||||
|
||||
import type {HostComponent} from 'react-native';
|
||||
import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
|
||||
import type {
|
||||
BubblingEventHandler,
|
||||
Double,
|
||||
Float,
|
||||
Int32,
|
||||
} from 'react-native/Libraries/Types/CodegenTypes';
|
||||
|
||||
import * as React from 'react';
|
||||
import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands';
|
||||
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
||||
|
||||
type Event = $ReadOnly<{
|
||||
values: $ReadOnlyArray<Int32>,
|
||||
boolValues: $ReadOnlyArray<boolean>,
|
||||
floats: $ReadOnlyArray<Float>,
|
||||
doubles: $ReadOnlyArray<Double>,
|
||||
yesNos: $ReadOnlyArray<'yep' | 'nope'>,
|
||||
strings: $ReadOnlyArray<string>,
|
||||
latLons: $ReadOnlyArray<{lat: Double, lon: Double}>,
|
||||
multiArrays: $ReadOnlyArray<$ReadOnlyArray<Int32>>,
|
||||
}>;
|
||||
|
||||
type NativeProps = $ReadOnly<{
|
||||
...ViewProps,
|
||||
opacity?: Float,
|
||||
values: $ReadOnlyArray<Int32>,
|
||||
|
||||
// Events
|
||||
onIntArrayChanged?: ?BubblingEventHandler<Event>,
|
||||
}>;
|
||||
|
||||
export type NativeComponentType = HostComponent<NativeProps>;
|
||||
|
||||
interface NativeCommands {
|
||||
+changeBackgroundColor: (
|
||||
viewRef: React.ElementRef<NativeComponentType>,
|
||||
color: string,
|
||||
) => void;
|
||||
}
|
||||
|
||||
export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
|
||||
supportedCommands: ['changeBackgroundColor'],
|
||||
});
|
||||
|
||||
export default (codegenNativeComponent<NativeProps>(
|
||||
'SampleNativeComponent',
|
||||
): NativeComponentType);
|
||||
@@ -54,7 +54,6 @@ def pods(target_name, options = {})
|
||||
pod 'ScreenshotManager', :path => "NativeModuleExample"
|
||||
pod 'MyNativeView', :path => "NativeComponentExample"
|
||||
pod 'NativeCxxModuleExample', :path => "NativeCxxModuleExample"
|
||||
pod 'OSSLibraryExample', :path => '../react-native-test-library'
|
||||
end
|
||||
|
||||
target 'RNTester' do
|
||||
|
||||
+197
-107
@@ -16,7 +16,7 @@ PODS:
|
||||
- hermes-engine/inspector (1000.0.0)
|
||||
- hermes-engine/inspector_chrome (1000.0.0)
|
||||
- hermes-engine/Public (1000.0.0)
|
||||
- MyNativeView (0.80.0-main):
|
||||
- MyNativeView (0.81.0-main):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
@@ -44,7 +44,7 @@ PODS:
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- NativeCxxModuleExample (0.80.0-main):
|
||||
- NativeCxxModuleExample (0.81.0-main):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
@@ -73,34 +73,6 @@ PODS:
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- OCMock (3.9.4)
|
||||
- OSSLibraryExample (0.80.0-main):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-debug
|
||||
- React-Fabric
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-ImageManager
|
||||
- React-jsi
|
||||
- React-NativeModulesApple
|
||||
- React-RCTFabric
|
||||
- React-renderercss
|
||||
- React-rendererdebug
|
||||
- React-utils
|
||||
- ReactCodegen
|
||||
- ReactCommon/turbomodule/bridging
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- RCT-Folly (2024.11.18.00):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
@@ -584,6 +556,7 @@ PODS:
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- React-Fabric
|
||||
- React-Fabric/bridging
|
||||
- React-FabricComponents
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
@@ -609,6 +582,7 @@ PODS:
|
||||
- React-debug
|
||||
- React-Fabric/animations (= 1000.0.0)
|
||||
- React-Fabric/attributedstring (= 1000.0.0)
|
||||
- React-Fabric/bridging (= 1000.0.0)
|
||||
- React-Fabric/componentregistry (= 1000.0.0)
|
||||
- React-Fabric/componentregistrynative (= 1000.0.0)
|
||||
- React-Fabric/components (= 1000.0.0)
|
||||
@@ -684,6 +658,31 @@ PODS:
|
||||
- React-utils
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- React-Fabric/bridging (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
- React-rendererdebug
|
||||
- React-runtimeexecutor
|
||||
- React-runtimescheduler
|
||||
- React-utils
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- React-Fabric/componentregistry (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
@@ -1243,11 +1242,14 @@ PODS:
|
||||
- React-FabricComponents/components/inputaccessory (= 1000.0.0)
|
||||
- React-FabricComponents/components/iostextinput (= 1000.0.0)
|
||||
- React-FabricComponents/components/modal (= 1000.0.0)
|
||||
- React-FabricComponents/components/rncore (= 1000.0.0)
|
||||
- React-FabricComponents/components/safeareaview (= 1000.0.0)
|
||||
- React-FabricComponents/components/scrollview (= 1000.0.0)
|
||||
- React-FabricComponents/components/text (= 1000.0.0)
|
||||
- React-FabricComponents/components/textinput (= 1000.0.0)
|
||||
- React-FabricComponents/components/unimplementedview (= 1000.0.0)
|
||||
- React-FabricComponents/components/virtualview (= 1000.0.0)
|
||||
- React-FabricComponents/components/virtualviewexperimental (= 1000.0.0)
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
@@ -1341,6 +1343,33 @@ PODS:
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- React-FabricComponents/components/rncore (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-Fabric
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
- React-RCTFBReactNativeSpec
|
||||
- React-rendererdebug
|
||||
- React-runtimescheduler
|
||||
- React-utils
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- React-FabricComponents/components/safeareaview (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
@@ -1476,6 +1505,60 @@ PODS:
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- React-FabricComponents/components/virtualview (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-Fabric
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
- React-RCTFBReactNativeSpec
|
||||
- React-rendererdebug
|
||||
- React-runtimescheduler
|
||||
- React-utils
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- React-FabricComponents/components/virtualviewexperimental (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- hermes-engine
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React-Core
|
||||
- React-cxxreact
|
||||
- React-debug
|
||||
- React-Fabric
|
||||
- React-featureflags
|
||||
- React-graphics
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-logger
|
||||
- React-RCTFBReactNativeSpec
|
||||
- React-rendererdebug
|
||||
- React-runtimescheduler
|
||||
- React-utils
|
||||
- ReactCommon/turbomodule/core
|
||||
- SocketRocket
|
||||
- Yoga
|
||||
- React-FabricComponents/textlayoutmanager (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
@@ -2122,7 +2205,18 @@ PODS:
|
||||
- React-utils
|
||||
- SocketRocket
|
||||
- React-runtimeexecutor (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
- fmt
|
||||
- glog
|
||||
- RCT-Folly
|
||||
- RCT-Folly/Fabric
|
||||
- React-debug
|
||||
- React-featureflags
|
||||
- React-jsi (= 1000.0.0)
|
||||
- React-utils
|
||||
- SocketRocket
|
||||
- React-RuntimeHermes (1000.0.0):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
@@ -2283,7 +2377,7 @@ PODS:
|
||||
- React-perflogger (= 1000.0.0)
|
||||
- React-utils (= 1000.0.0)
|
||||
- SocketRocket
|
||||
- ScreenshotManager (0.80.0-main):
|
||||
- ScreenshotManager (0.81.0-main):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
- fast_float
|
||||
@@ -2325,7 +2419,6 @@ DEPENDENCIES:
|
||||
- MyNativeView (from `NativeComponentExample`)
|
||||
- NativeCxxModuleExample (from `NativeCxxModuleExample`)
|
||||
- OCMock (~> 3.9.1)
|
||||
- OSSLibraryExample (from `../react-native-test-library`)
|
||||
- RCT-Folly (from `../react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTDeprecation (from `../react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
|
||||
- RCTRequired (from `../react-native/Libraries/Required`)
|
||||
@@ -2422,8 +2515,6 @@ EXTERNAL SOURCES:
|
||||
:path: NativeComponentExample
|
||||
NativeCxxModuleExample:
|
||||
:path: NativeCxxModuleExample
|
||||
OSSLibraryExample:
|
||||
:path: "../react-native-test-library"
|
||||
RCT-Folly:
|
||||
:podspec: "../react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
RCTDeprecation:
|
||||
@@ -2565,84 +2656,83 @@ SPEC CHECKSUMS:
|
||||
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
|
||||
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
|
||||
fast_float: b32c788ed9c6a8c584d114d0047beda9664e7cc6
|
||||
FBLazyVector: d3c2dd739a63c1a124e775df075dc7c517a719cb
|
||||
FBLazyVector: a67ac982f94e725e28eb5fdf00ae785a88fee122
|
||||
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
|
||||
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
|
||||
hermes-engine: fd5605ca4043c8317548d649d0b64e5dafc2a124
|
||||
MyNativeView: 9b03b64f5cd9220bf7ef49fcdfc468effe704fa0
|
||||
NativeCxxModuleExample: 2897d5f3aee8a02dd201a3dd41fbc94ada1aac5e
|
||||
hermes-engine: 3350cd88070588a0c3ebf47ea6f81ba28c7aaf9f
|
||||
MyNativeView: f9ac5b43a4d23e7d40f2e7c4337b40fc98f645cc
|
||||
NativeCxxModuleExample: 9abb81d71be6898827e6c0bb65b1715f6f3b75a2
|
||||
OCMock: 589f2c84dacb1f5aaf6e4cec1f292551fe748e74
|
||||
OSSLibraryExample: bf5b5a4238613dae3c536faff58f87528e6191cf
|
||||
RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669
|
||||
RCT-Folly: 59ec0ac1f2f39672a0c6e6cecdd39383b764646f
|
||||
RCTDeprecation: 3808e36294137f9ee5668f4df2e73dc079cd1dcf
|
||||
RCTRequired: a00614e2da5344c2cda3d287050b6cee00e21dc6
|
||||
RCTTypeSafety: 459a16418c6b413060d35434ba3e83f5b0bd2651
|
||||
React: 170a01a19ba2525ab7f11243e2df6b19bf268093
|
||||
React-callinvoker: f08f425e4043cd1998a158b6e39a6aed1fd1d718
|
||||
React-Core: d35c5cf69898fd026e5cd93a0454b1d42e999d3e
|
||||
React-CoreModules: 3ce1d43f6cc37f43759ec543ce1c0010080f1de1
|
||||
React-cxxreact: 3169b106af8f405e182d131d3a0844201e3252e2
|
||||
React-debug: 195df38487d3f48a7af04deddeb4a5c6d4440416
|
||||
React-defaultsnativemodule: 8afea5a4bd07addb523bf48489b8a684ea1bdff0
|
||||
React-domnativemodule: 8a813559774e65bc800fe489bbb454cd546f21d7
|
||||
React-Fabric: e9846203f11ab49be8b1329c76301bbd399ef2ad
|
||||
React-FabricComponents: 032d6f01f1d6966633418c0fece18f698ddb7897
|
||||
React-FabricImage: 264c9ce5241e43e25b94c8de55ac6c3c8a046472
|
||||
React-featureflags: 595651ea13c63a9f77f06d9a1973b665b4a28b7e
|
||||
React-featureflagsnativemodule: 06823479a2ee210cfa0e9c19447c2722a8d995f2
|
||||
React-graphics: 1f99b9b5515eac389f0cf9c85b03abc366d6a933
|
||||
React-hermes: 745eb45a6d0aae7e890d0aae0def54670bbd103c
|
||||
React-idlecallbacksnativemodule: 4e65f183318b8a0fbabc481a4eafc0f0d62d1cbf
|
||||
React-ImageManager: a6833445e17879933378b7c0ba45ee42115c14bc
|
||||
React-jserrorhandler: bec134a192c50338193544404d45df24fb8a19ca
|
||||
React-jsi: 4ad77650fb0ca4229569eb2532db7a87e3d12662
|
||||
React-jsiexecutor: fa5b80bdbe1ceffc33a892da20fc07b4dfa4df7a
|
||||
React-jsinspector: 10b5dc4eef2a3d05b80be2114ed676496c5bf59c
|
||||
React-jsinspectorcdp: 5fb266e5f23d3a2819ba848e9d4d0b6b00f95934
|
||||
React-jsinspectornetwork: 1655a81f3fe14789df41e063bd56dd130cc3562a
|
||||
React-jsinspectortracing: 5b0be488e06958a572e1badfe8509929ae1cc83b
|
||||
React-jsitooling: 9e563b89f94cf4baf872fe47105d60ae83f4ce4d
|
||||
React-jsitracing: ce443686f52538d1033ce7db1e7d643e866262f0
|
||||
React-logger: 116c3ae5a9906671d157aa00882a5ee75a5a7ebc
|
||||
React-Mapbuffer: fc937cfa41140d7724c559c3d16c50dd725361c8
|
||||
React-microtasksnativemodule: 09899c7389250279bdcc5384f0281bb069979855
|
||||
React-NativeModulesApple: d05b718ccd8b68c184e76dbc1efb63385197595b
|
||||
React-oscompat: 7133e0e945cda067ae36b22502df663d73002864
|
||||
React-perflogger: ada3cdf3dfc8b7cd1fabe3c91b672e23981611ab
|
||||
React-performancetimeline: e7d5849d89ee39557dcd56dfb6e7b0d49003d925
|
||||
React-RCTActionSheet: 1bf8cc8086ad1c15da3407dfb7bc9dd94dc7595d
|
||||
React-RCTAnimation: 263593e66c89bf810604b1ace15dfa382a1ca2df
|
||||
React-RCTAppDelegate: 3a99437ffa7460f85045de65f9bed6b1c47d5f09
|
||||
React-RCTBlob: 7b76230c53fe87d305eeeb250b0aae031bb6cbae
|
||||
React-RCTFabric: 2fd2ef899c7219fd39fd61c39750510f88a81434
|
||||
React-RCTFBReactNativeSpec: 4ed3b463eb26726b04ac65c73797207ecab5634c
|
||||
React-RCTImage: de404b6b0ebe53976a97e3a0dee819c83e12977b
|
||||
React-RCTLinking: 06742cfad41c506091403a414370743a4ed75af3
|
||||
React-RCTNetwork: b4577eec0092c16d8996e415e4cac7a372d6d362
|
||||
React-RCTPushNotification: ea11178d499696516e0ff9ae335edbe99b06f94b
|
||||
React-RCTRuntime: 925039e78fc530e0421c308ccc607f214f3c7be1
|
||||
React-RCTSettings: d3c2dd305ec81f7faf42762ec598d57f07fd43be
|
||||
React-RCTTest: 2db46eda60bc2228cb67622a580e8e86b00088d9
|
||||
React-RCTText: e416825b80c530647040ef91d23ffd35ccc87981
|
||||
React-RCTVibration: 1837a27fc16eeffc9509779c3334fde54c012bcc
|
||||
React-rendererconsistency: 777c894edc43dde01499189917ac54ee76ae6a6a
|
||||
React-renderercss: a9cb6ba7f49a80dc4b4f7008bae1590d12f27049
|
||||
React-rendererdebug: fea8bde927403a198742b2d940a5f1cd8230c0b4
|
||||
React-RuntimeApple: 6a0c164a8855edb4987b90da2d4d8601302de72d
|
||||
React-RuntimeCore: 6dec37113b759b76641bd028bfbbbec8cf923356
|
||||
React-runtimeexecutor: a16a24b964e964afe833a652d703e1bb39f10dc9
|
||||
React-RuntimeHermes: d4f661204d3061219a63951eb4efed4dcaf3f12f
|
||||
React-runtimescheduler: ae44fe8b4170a9d59f62e8b7d7b060c179db739d
|
||||
React-timing: 9d49179631e5e3c759e6e82d4c613c73da80a144
|
||||
React-utils: 0944df8d553d66b27f486282c42a84a969fd2f6c
|
||||
ReactAppDependencyProvider: 68f2d2cefd6c9b9f2865246be2bfe86ebd49238d
|
||||
ReactCodegen: 8fc4c8b6562a59409b5650e67f78719093d093bf
|
||||
ReactCommon: a53973ab35d399560ace331ec9e2b26db0592cec
|
||||
ReactCommon-Samples: dcc128cbf51ac38d2578791750d0a046d1b8a5e9
|
||||
ScreenshotManager: 6ac0b11c7bbd5cf1abd9448fb3b856fe6fd65ff7
|
||||
RCTRequired: 2122b76857162ff9aa7e211de2575089ffe611d6
|
||||
RCTTypeSafety: cda30ca2aadf5786d66ba137b5c06d2190e697e9
|
||||
React: 662099b139948fd652fa9dc369f2a6aece1e18b2
|
||||
React-callinvoker: 49a5a4449dbb4830fdac6341be9027ebf8ffc3bf
|
||||
React-Core: 7e0f44e57d0dc4a814c1be194e8667ca6ee052b7
|
||||
React-CoreModules: a82c6f0d605188a1261b020b4c43cd5c39a9e57f
|
||||
React-cxxreact: bec05af5ce328afa9428fafa6d33730400e4b68c
|
||||
React-debug: 40cbf9f72c96613c639f12f7fcc9a6cb8d54f588
|
||||
React-defaultsnativemodule: 68c0affa6e5c4de5db8352aac0ff53eeace95035
|
||||
React-domnativemodule: b9dc5b7141dbfb65e53039aa708f342c24ca2d30
|
||||
React-Fabric: 15cced8cd4c50826215448b633362106dcfb98d4
|
||||
React-FabricComponents: f6ef214976c812eb2bb59f8e9d10f4ada46ffe12
|
||||
React-FabricImage: 32b54b2b17d61df7b22a0ff8b78b57de1245a588
|
||||
React-featureflags: d2a5f1ee99706701567ad6ffacfefe54bf839813
|
||||
React-featureflagsnativemodule: 722fa94f9d7ac24632df7d178b845c77ac794d36
|
||||
React-graphics: aae15c16655f51e02f4ba211f108bb591d02f82a
|
||||
React-hermes: afd04a013d8e73fcea46019a38724097d410c53c
|
||||
React-idlecallbacksnativemodule: fdb1f69e1725303cd2fb302c6c104b117871dabc
|
||||
React-ImageManager: c2119408bc90c98b037eb418855eac8484b79987
|
||||
React-jserrorhandler: 710e7a368c42914e44a9065ad0f878286511c181
|
||||
React-jsi: 6b6955a311c687ce2560fac466ed7ea6ae1ba851
|
||||
React-jsiexecutor: a1837ded1bd224b94d57e36ee72bd26299cb0624
|
||||
React-jsinspector: 99852440c65d84257ed9bb1a9f6a943ab3b2dc53
|
||||
React-jsinspectorcdp: 51b7b9e98f69a5f43a200286e0f1809b8be2e7d6
|
||||
React-jsinspectornetwork: 31c2d9f486c87f670ae8d76c5eee606995e9a994
|
||||
React-jsinspectortracing: af188edab74f98d132a4170013a4073f13e02323
|
||||
React-jsitooling: c16793498697b5bf00b2b5245529f5ad1bd7dc03
|
||||
React-jsitracing: 1e5621e281f794777dd6933960b63b4001ff6688
|
||||
React-logger: 6be7039c28299972c00f0b326591085037f2224b
|
||||
React-Mapbuffer: c7da77a5d048ec7d7e1e050b3f946551241a768c
|
||||
React-microtasksnativemodule: 394af907fa98cc28f993ed949975c6f4d3d53f5f
|
||||
React-NativeModulesApple: 15bfbf94f0a1286ee7bf4fe0b0d3e8a04a9a3f26
|
||||
React-oscompat: 496762720e2a4dd97786fa08f788e3f8763404ea
|
||||
React-perflogger: 64a1b6eac6ff95474c02c3ee1734c8752a7a1da8
|
||||
React-performancetimeline: 5bfcaa23bc90980d8cc4f0d4dd92e08fbdd10638
|
||||
React-RCTActionSheet: fda681f38788c81040b6e0aebd7050580d5fd74d
|
||||
React-RCTAnimation: 983a1257c6ca45998848a2129d1ea9ada70824a6
|
||||
React-RCTAppDelegate: 15a4c95028249abb71d2769b9d5ec158ce81a9f8
|
||||
React-RCTBlob: 8986952d547b4c81e2827f7dfa9d8457b36c673b
|
||||
React-RCTFabric: 511cc7ff0f99c790330855d20ce7e7a7d28f548a
|
||||
React-RCTFBReactNativeSpec: b4a3bfa2a45af3dcdba1cd13285a7b5c7da29b21
|
||||
React-RCTImage: e4fa15c647802b7ed6c7e405d40db829e2146d02
|
||||
React-RCTLinking: dc1cc3b29036a58f7c828d1ca0a6b24ea7801a97
|
||||
React-RCTNetwork: dffe5f8de5ea63ba22baace02df4b84438e09986
|
||||
React-RCTPushNotification: 4d8081e9d2c636469b7098e137ff39d141643a18
|
||||
React-RCTRuntime: 0abb761a26d449eacfdd47f378ae365b830076c8
|
||||
React-RCTSettings: 9ba77f0aebce1bf71582ee8845db723b264039f6
|
||||
React-RCTTest: 09f99c5f8b2e5e00b9fa6b796ae81fd162843b2d
|
||||
React-RCTText: 58b4e7484e6ce4903e5a9333c9fb744b84b16a05
|
||||
React-RCTVibration: b65dc9f78e1c5d482599205e4a52ec33815c7a1c
|
||||
React-rendererconsistency: 0d60f7275a5f39b37c3753d548e72186562c3a48
|
||||
React-renderercss: 88f92ff8dc85711a2ff861f815876cf8e312fe49
|
||||
React-rendererdebug: fa30da9cdff3556e43a29c5fd5468faee8615850
|
||||
React-RuntimeApple: 415a26184ba8fc6cf372f39d351665b73f0ceeaf
|
||||
React-RuntimeCore: a875f3c5479b1fc07ca3ae0c0797c623baf6516e
|
||||
React-runtimeexecutor: 344502ff6d944ae095379ee587cea61720812751
|
||||
React-RuntimeHermes: 8e0734f0dd51840d957bc2f5216ea84a599dad03
|
||||
React-runtimescheduler: e3d95a3e38dd7c30b1faffdd808cf915fec0c991
|
||||
React-timing: 1c3682ededd5ab4158b7f065404b9c493d1f97f9
|
||||
React-utils: 99cab5ff9f585e8f6d57d97f35d2d38e1d51b4b7
|
||||
ReactAppDependencyProvider: b3db1f6073cd2d5085705f812a6eef258aa9a9d7
|
||||
ReactCodegen: 17ffed80c08ee934120f5962a19c8cdae62615f9
|
||||
ReactCommon: 8135b5504e1ddab9348bb09a7e6c829eb1b21bc6
|
||||
ReactCommon-Samples: 0fc23e4c63e23897cc41f2f6867f5358e7e60806
|
||||
ScreenshotManager: 3b0059e34e3ac8ec152874e4ac9b7a304216ecca
|
||||
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
|
||||
Yoga: c4e80f1c2235fa6236d71a49e5bb2ee74d987921
|
||||
Yoga: d4ae2f851e524b23cb324409594f60bc3f091403
|
||||
|
||||
PODFILE CHECKSUM: 8591f96a513620a2a83a0b9a125ad3fa32ea1369
|
||||
PODFILE CHECKSUM: 995beda3236c2c76801e7a4efc7fedcd390220e6
|
||||
|
||||
COCOAPODS: 1.15.2
|
||||
|
||||
-2
@@ -26,7 +26,6 @@ import com.facebook.react.defaults.DefaultReactHost
|
||||
import com.facebook.react.defaults.DefaultReactNativeHost
|
||||
import com.facebook.react.module.model.ReactModuleInfo
|
||||
import com.facebook.react.module.model.ReactModuleInfoProvider
|
||||
import com.facebook.react.osslibraryexample.OSSLibraryExamplePackage
|
||||
import com.facebook.react.popupmenu.PopupMenuPackage
|
||||
import com.facebook.react.shell.MainReactPackage
|
||||
import com.facebook.react.soloader.OpenSourceMergedSoMapping
|
||||
@@ -54,7 +53,6 @@ internal class RNTesterApplication : Application(), ReactApplication {
|
||||
return listOf(
|
||||
MainReactPackage(),
|
||||
PopupMenuPackage(),
|
||||
OSSLibraryExamplePackage(),
|
||||
object : BaseReactPackage() {
|
||||
override fun getModule(
|
||||
name: String,
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import type {RNTesterModuleExample} from '../../types/RNTesterTypes';
|
||||
import type {NativeComponentType} from '@react-native/oss-library-example';
|
||||
|
||||
import RNTesterText from '../../components/RNTesterText';
|
||||
import {
|
||||
SampleNativeComponent,
|
||||
SampleNativeComponentCommands,
|
||||
} from '@react-native/oss-library-example';
|
||||
import {NativeSampleModule} from '@react-native/oss-library-example';
|
||||
import * as React from 'react';
|
||||
import {useRef, useState} from 'react';
|
||||
import {Button, View} from 'react-native';
|
||||
import {StyleSheet} from 'react-native';
|
||||
|
||||
const colors = [
|
||||
'#0000FF',
|
||||
'#FF0000',
|
||||
'#00FF00',
|
||||
'#003300',
|
||||
'#330000',
|
||||
'#000033',
|
||||
];
|
||||
|
||||
// $FlowFixMe[value-as-type]
|
||||
const styles: StyleSheet = StyleSheet.create({
|
||||
container: {
|
||||
flex: 1,
|
||||
},
|
||||
column: {
|
||||
flex: 2,
|
||||
justifyContent: 'center',
|
||||
paddingLeft: 5,
|
||||
paddingRight: 5,
|
||||
},
|
||||
});
|
||||
|
||||
function SampleNativeComponentContainer(props: {}): React.Node {
|
||||
const ref = useRef<React.ElementRef<NativeComponentType> | null>(null);
|
||||
const [opacity, setOpacity] = useState(1.0);
|
||||
const [arrayValues, setArrayValues] = useState([1, 2, 3]);
|
||||
return (
|
||||
<View style={{flex: 1}}>
|
||||
<SampleNativeComponent
|
||||
ref={ref}
|
||||
style={{flex: 1}}
|
||||
opacity={opacity}
|
||||
values={arrayValues}
|
||||
onIntArrayChanged={event => {
|
||||
console.log(event.nativeEvent.values);
|
||||
console.log(event.nativeEvent.boolValues);
|
||||
console.log(event.nativeEvent.floats);
|
||||
console.log(event.nativeEvent.doubles);
|
||||
console.log(event.nativeEvent.yesNos);
|
||||
console.log(event.nativeEvent.strings);
|
||||
console.log(event.nativeEvent.latLons);
|
||||
console.log(event.nativeEvent.multiArrays);
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
title="Change Background"
|
||||
onPress={() => {
|
||||
let newColor = colors[Math.floor(Math.random() * 5)];
|
||||
SampleNativeComponentCommands.changeBackgroundColor(
|
||||
// $FlowFixMe[incompatible-call]
|
||||
ref.current,
|
||||
newColor,
|
||||
);
|
||||
}}
|
||||
/>
|
||||
<Button
|
||||
title="Set Opacity"
|
||||
onPress={() => {
|
||||
setOpacity(Math.random());
|
||||
setArrayValues([
|
||||
Math.floor(Math.random() * 100),
|
||||
Math.floor(Math.random() * 100),
|
||||
Math.floor(Math.random() * 100),
|
||||
]);
|
||||
}}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
function NativeSampleModuleWrapper(props: {}): React.Node {
|
||||
const [randomNumber, setRandomNumber] = useState(0);
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
<Button
|
||||
title="Get Random Number"
|
||||
onPress={() => {
|
||||
const x = NativeSampleModule?.getRandomNumber();
|
||||
if (x != null) {
|
||||
setRandomNumber(x);
|
||||
}
|
||||
}}
|
||||
/>
|
||||
<RNTesterText style={styles.column}>{randomNumber}</RNTesterText>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
exports.title = 'OSS Library Example';
|
||||
exports.description = 'OSS Library Example.';
|
||||
exports.examples = [
|
||||
{
|
||||
title: 'OSS Library Example',
|
||||
description: 'Click to change background and opacity',
|
||||
render(): React.MixedElement {
|
||||
return (
|
||||
<>
|
||||
<SampleNativeComponentContainer />
|
||||
<NativeSampleModuleWrapper />
|
||||
</>
|
||||
);
|
||||
},
|
||||
},
|
||||
] as Array<RNTesterModuleExample>;
|
||||
@@ -146,10 +146,6 @@ const Components: Array<RNTesterModuleInfo> = [
|
||||
category: 'Basic',
|
||||
module: require('../examples/Performance/PerformanceComparisonExample'),
|
||||
},
|
||||
{
|
||||
key: 'OSSLibraryExample',
|
||||
module: require('../examples/OSSLibraryExample/OSSLibraryExample'),
|
||||
},
|
||||
...RNTesterListFbInternal.Components,
|
||||
];
|
||||
|
||||
|
||||
@@ -154,10 +154,6 @@ const Components: Array<RNTesterModuleInfo> = [
|
||||
category: 'Basic',
|
||||
module: require('../examples/Performance/PerformanceComparisonExample'),
|
||||
},
|
||||
{
|
||||
key: 'OSSLibraryExample',
|
||||
module: require('../examples/OSSLibraryExample/OSSLibraryExample'),
|
||||
},
|
||||
...RNTesterListFbInternal.Components,
|
||||
];
|
||||
|
||||
|
||||
@@ -31,7 +31,6 @@ const config = {
|
||||
path.resolve(__dirname, '../normalize-color'),
|
||||
path.resolve(__dirname, '../polyfills'),
|
||||
path.resolve(__dirname, '../react-native'),
|
||||
path.resolve(__dirname, '../react-native-test-library'),
|
||||
path.resolve(__dirname, '../virtualized-lists'),
|
||||
path.resolve(__dirname, '../react-native-popup-menu-android'),
|
||||
],
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
"e2e-test-ios": "./scripts/maestro-test-ios.sh"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-native/oss-library-example": "0.81.0-main",
|
||||
"@react-native/new-app-screen": "0.81.0-main",
|
||||
"@react-native/popup-menu-android": "0.81.0-main",
|
||||
"flow-enums-runtime": "^0.0.6",
|
||||
|
||||
Reference in New Issue
Block a user