From 5e92d2e4b1a35c1971ea5a8577c90dfb3054121a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Sat, 26 Sep 2026 15:15:44 -0700 Subject: [PATCH 1/4] fix: restore Android View props on React Native 0.87 --- .../example/__tests__/nitro.views.harness.tsx | 8 ++++++- .../java/com/nitroexample/MainApplication.kt | 3 +++ .../src/views/CppHybridViewComponent.ts | 7 ++++++- .../cpp/views/RawPropsCompat.cpp | 21 +++++++++++++++++++ .../cpp/views/RawPropsCompat.hpp | 7 +++++++ .../HybridRecyclableTestViewComponent.cpp | 7 ++++++- .../c++/views/HybridTestViewComponent.cpp | 7 ++++++- 7 files changed, 56 insertions(+), 4 deletions(-) diff --git a/apps/example/__tests__/nitro.views.harness.tsx b/apps/example/__tests__/nitro.views.harness.tsx index 4de631acf..f63005c09 100644 --- a/apps/example/__tests__/nitro.views.harness.tsx +++ b/apps/example/__tests__/nitro.views.harness.tsx @@ -187,6 +187,12 @@ describe('TestView', () => { callbackSawUpdatedState = mountedView?.hasBeenCalled === true callbackFinished.resolve(undefined) }) + const wrappedCallback = callback(onSomeCallback) + const callbackWithMetadata = { + ...wrappedCallback, + // Nitro-only values must bypass folly conversion, which rejects BigInts. + metadata: 123n, + } await render( { isBlue={true} hasBeenCalled={false} colorScheme="dark" - someCallback={callback(onSomeCallback)} + someCallback={callbackWithMetadata} onLayout={({ nativeEvent }) => layout.resolve(nativeEvent.layout)} />, { timeout: RENDER_TIMEOUT } diff --git a/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt b/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt index 8ab449354..ad52dd9bd 100644 --- a/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt +++ b/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt @@ -14,6 +14,9 @@ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsProvider private val stableFlagsWithNitroViewRecycling: ReactNativeFeatureFlagsProvider = object : ReactNativeFeatureFlagsProvider by ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android() { + // Exercise Nitro's explicit dynamic-props initialization on RN 0.84-0.86. + override fun enableExclusivePropsUpdateAndroid(): Boolean = true + override fun enablePreparedTextLayout(): Boolean = false override fun enableViewRecycling(): Boolean = true diff --git a/packages/nitrogen/src/views/CppHybridViewComponent.ts b/packages/nitrogen/src/views/CppHybridViewComponent.ts index 6a697d3eb..5505d62a4 100644 --- a/packages/nitrogen/src/views/CppHybridViewComponent.ts +++ b/packages/nitrogen/src/views/CppHybridViewComponent.ts @@ -185,6 +185,7 @@ ${createFileMetadataString(`${component}.cpp`)} #include "${component}.hpp" #include +#include #include namespace ${namespace} { @@ -196,7 +197,11 @@ namespace ${namespace} { ${propsClassName}::${propsClassName}(const react::PropsParserContext& context, ${ctorIndent} const ${propsClassName}& sourceProps, ${ctorIndent} const react::RawProps& rawProps): - ${indent(propInitializers.join(',\n'), ' ')} { } + ${indent(propInitializers.join(',\n'), ' ')} { +#ifdef ANDROID + nitro::RawPropsCompat::initializeDynamicProps(*this, sourceProps, rawProps, filterObjectKeys); +#endif + } bool ${propsClassName}::filterObjectKeys(const std::string& propName) { switch (hashString(propName)) { diff --git a/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.cpp b/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.cpp index b52fb2107..b796260fb 100644 --- a/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.cpp +++ b/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.cpp @@ -9,9 +9,14 @@ #endif #include +#include #include #include +#if defined(ANDROID) && REACT_NATIVE_VERSION_MAJOR == 0 && REACT_NATIVE_VERSION_MINOR >= 84 && REACT_NATIVE_VERSION_MINOR < 87 +#include +#endif + namespace margelo::nitro::RawPropsCompat { const facebook::react::RawValue* at(const facebook::react::RawProps& props, const char* name) { @@ -32,4 +37,20 @@ facebook::react::RawPropsParser makePropsParser() { #endif } +void initializeDynamicProps([[maybe_unused]] facebook::react::Props& props, [[maybe_unused]] const facebook::react::Props& sourceProps, + [[maybe_unused]] const facebook::react::RawProps& rawProps, + [[maybe_unused]] bool (*filterObjectKeys)(const std::string&)) { +#ifdef ANDROID +#if REACT_NATIVE_VERSION_MAJOR > 0 || REACT_NATIVE_VERSION_MINOR >= 87 + // Since React Native 0.87, the base constructor no longer initializes dynamic props. + props.initializeDynamicProps(sourceProps, rawProps, filterObjectKeys); +#elif REACT_NATIVE_VERSION_MINOR >= 84 + // React Native 0.84-0.86 skips initialization only when exclusive props updates are enabled. + if (facebook::react::ReactNativeFeatureFlags::enableExclusivePropsUpdateAndroid()) { + props.initializeDynamicProps(sourceProps, rawProps, filterObjectKeys); + } +#endif +#endif +} + } // namespace margelo::nitro::RawPropsCompat diff --git a/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.hpp b/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.hpp index 3dd547b4d..01c80e1cc 100644 --- a/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.hpp +++ b/packages/react-native-nitro-modules/cpp/views/RawPropsCompat.hpp @@ -4,7 +4,10 @@ #pragma once +#include + namespace facebook::react { +class Props; class RawProps; class RawPropsParser; class RawValue; @@ -15,4 +18,8 @@ namespace margelo::nitro::RawPropsCompat { const facebook::react::RawValue* at(const facebook::react::RawProps& props, const char* name); facebook::react::RawPropsParser makePropsParser(); +// Initialize Android's dynamic props only when the React Native constructor has not already done so. +void initializeDynamicProps(facebook::react::Props& props, const facebook::react::Props& sourceProps, + const facebook::react::RawProps& rawProps, bool (*filterObjectKeys)(const std::string&)); + } // namespace margelo::nitro::RawPropsCompat diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridRecyclableTestViewComponent.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridRecyclableTestViewComponent.cpp index 032472e74..e3af0782a 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridRecyclableTestViewComponent.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridRecyclableTestViewComponent.cpp @@ -8,6 +8,7 @@ #include "HybridRecyclableTestViewComponent.hpp" #include +#include #include namespace margelo::nitro::test::views { @@ -22,7 +23,11 @@ namespace margelo::nitro::test::views { react::ViewProps(context, sourceProps, rawProps, filterObjectKeys), isBlue(nitro::ReactProp::fromRawValue("RecyclableTestView", "isBlue", rawProps, sourceProps.isBlue)), nativeDefaultValue(nitro::ReactProp>::fromRawValue("RecyclableTestView", "nativeDefaultValue", rawProps, sourceProps.nativeDefaultValue)), - hybridRef(nitro::ReactProp& /* ref */)>>>::fromRawValue("RecyclableTestView", "hybridRef", rawProps, sourceProps.hybridRef)) { } + hybridRef(nitro::ReactProp& /* ref */)>>>::fromRawValue("RecyclableTestView", "hybridRef", rawProps, sourceProps.hybridRef)) { +#ifdef ANDROID + nitro::RawPropsCompat::initializeDynamicProps(*this, sourceProps, rawProps, filterObjectKeys); +#endif + } bool HybridRecyclableTestViewProps::filterObjectKeys(const std::string& propName) { switch (hashString(propName)) { diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp index 75b5df68d..248edc859 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp @@ -8,6 +8,7 @@ #include "HybridTestViewComponent.hpp" #include +#include #include namespace margelo::nitro::test::views { @@ -25,7 +26,11 @@ namespace margelo::nitro::test::views { colorScheme(nitro::ReactProp::fromRawValue("TestView", "colorScheme", rawProps, sourceProps.colorScheme)), someCallback(nitro::ReactProp>::fromRawValue("TestView", "someCallback", rawProps, sourceProps.someCallback)), nativeDefaultValue(nitro::ReactProp>::fromRawValue("TestView", "nativeDefaultValue", rawProps, sourceProps.nativeDefaultValue)), - hybridRef(nitro::ReactProp& /* ref */)>>>::fromRawValue("TestView", "hybridRef", rawProps, sourceProps.hybridRef)) { } + hybridRef(nitro::ReactProp& /* ref */)>>>::fromRawValue("TestView", "hybridRef", rawProps, sourceProps.hybridRef)) { +#ifdef ANDROID + nitro::RawPropsCompat::initializeDynamicProps(*this, sourceProps, rawProps, filterObjectKeys); +#endif + } bool HybridTestViewProps::filterObjectKeys(const std::string& propName) { switch (hashString(propName)) { From 39dbf23edf4a9f874ed91bddb6c88f3ec6864f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Sat, 26 Sep 2026 15:46:28 -0700 Subject: [PATCH 2/4] adjust comment --- .../app/src/main/java/com/nitroexample/MainApplication.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt b/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt index ad52dd9bd..997a57407 100644 --- a/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt +++ b/apps/example/android/app/src/main/java/com/nitroexample/MainApplication.kt @@ -14,7 +14,7 @@ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlagsProvider private val stableFlagsWithNitroViewRecycling: ReactNativeFeatureFlagsProvider = object : ReactNativeFeatureFlagsProvider by ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android() { - // Exercise Nitro's explicit dynamic-props initialization on RN 0.84-0.86. + // TODO: this can be removed once we upgraded to RN 0.87. Added for being able to reproduce #1656 override fun enableExclusivePropsUpdateAndroid(): Boolean = true override fun enablePreparedTextLayout(): Boolean = false From a0895a92fb593a8439be133c1e70622df69e7438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Sat, 26 Sep 2026 15:51:38 -0700 Subject: [PATCH 3/4] test: cover BigInt view props on mount and update --- .../example/__tests__/nitro.views.harness.tsx | 26 ++++++++++++++----- apps/example/src/screens/ViewScreen.tsx | 1 + .../com/margelo/nitro/test/HybridTestView.kt | 1 + .../ios/HybridTestView.swift | 1 + .../android/c++/JHybridTestViewSpec.cpp | 9 +++++++ .../android/c++/JHybridTestViewSpec.hpp | 2 ++ .../c++/views/JHybridTestViewStateUpdater.cpp | 5 ++++ .../margelo/nitro/test/HybridTestViewSpec.kt | 6 +++++ .../ios/c++/HybridTestViewSpecSwift.hpp | 6 +++++ .../ios/c++/views/HybridTestViewComponent.mm | 6 +++++ .../ios/swift/HybridTestViewSpec.swift | 1 + .../ios/swift/HybridTestViewSpec_cxx.swift | 11 ++++++++ .../shared/c++/HybridTestViewSpec.cpp | 2 ++ .../shared/c++/HybridTestViewSpec.hpp | 2 ++ .../c++/views/HybridTestViewComponent.cpp | 2 ++ .../c++/views/HybridTestViewComponent.hpp | 3 +++ .../generated/shared/json/TestViewConfig.json | 1 + .../src/specs/TestView.nitro.ts | 2 ++ 18 files changed, 80 insertions(+), 7 deletions(-) diff --git a/apps/example/__tests__/nitro.views.harness.tsx b/apps/example/__tests__/nitro.views.harness.tsx index f63005c09..d9ae09dcd 100644 --- a/apps/example/__tests__/nitro.views.harness.tsx +++ b/apps/example/__tests__/nitro.views.harness.tsx @@ -157,6 +157,8 @@ function expectRed(actualCoverage: PixelCoverage): void { const INITIAL_SIZE = { width: 80, height: 60 } const RESIZED_SIZE = { width: 160, height: 120 } +const INITIAL_INT64_VALUE = 9_007_199_254_740_993n +const UPDATED_INT64_VALUE = -9_007_199_254_740_993n const RENDER_TIMEOUT = 4_000 const SUPPORTS_NATIVE_VIEW_RECYCLING = Platform.OS === 'ios' || Number(Platform.Version) >= 28 @@ -187,12 +189,6 @@ describe('TestView', () => { callbackSawUpdatedState = mountedView?.hasBeenCalled === true callbackFinished.resolve(undefined) }) - const wrappedCallback = callback(onSomeCallback) - const callbackWithMetadata = { - ...wrappedCallback, - // Nitro-only values must bypass folly conversion, which rejects BigInts. - metadata: 123n, - } await render( { hybridRef={callback((view) => viewRef.resolve(view))} isBlue={true} hasBeenCalled={false} + int64Value={INITIAL_INT64_VALUE} colorScheme="dark" - someCallback={callbackWithMetadata} + someCallback={callback(onSomeCallback)} onLayout={({ nativeEvent }) => layout.resolve(nativeEvent.layout)} />, { timeout: RENDER_TIMEOUT } @@ -214,6 +211,7 @@ describe('TestView', () => { expect(reportedLayout.height).toBeCloseTo(INITIAL_SIZE.height, 0) expect(mountedView.isBlue).toBe(true) expect(mountedView.hasBeenCalled).toBe(false) + expect(mountedView.int64Value).toBe(INITIAL_INT64_VALUE) expect(mountedView.colorScheme).toBe('dark') expect(mountedView.getOnDropViewCount()).toBe(0) expect(HybridTestObjectCpp.getIsViewBlue(mountedView)).toBe(true) @@ -240,6 +238,7 @@ describe('TestView', () => { hybridRef={callback((view) => initialRef.resolve(view))} isBlue={true} hasBeenCalled={false} + int64Value={INITIAL_INT64_VALUE} colorScheme="dark" someCallback={callback(initialCallback)} />, @@ -247,6 +246,7 @@ describe('TestView', () => { ) const firstView = await initialRef.promise + expect(firstView.int64Value).toBe(INITIAL_INT64_VALUE) const blueCapture = await captureView('test-view-updates') expectRenderedSize(blueCapture.size, INITIAL_SIZE) expectBlue(blueCapture.pixelCoverage) @@ -266,6 +266,7 @@ describe('TestView', () => { hybridRef={updatedHybridRef} isBlue={false} hasBeenCalled={true} + int64Value={UPDATED_INT64_VALUE} colorScheme="light" someCallback={updatedSomeCallback} /> @@ -275,6 +276,7 @@ describe('TestView', () => { expect(updatedView.equals(firstView)).toBe(true) expect(updatedView.isBlue).toBe(false) expect(updatedView.hasBeenCalled).toBe(true) + expect(updatedView.int64Value).toBe(UPDATED_INT64_VALUE) expect(updatedView.colorScheme).toBe('light') expect(updatedView.getOnDropViewCount()).toBe(0) expect(HybridTestObjectCpp.getIsViewBlue(updatedView)).toBe(false) @@ -297,6 +299,7 @@ describe('TestView', () => { hybridRef={updatedHybridRef} isBlue={false} hasBeenCalled={true} + int64Value={UPDATED_INT64_VALUE} colorScheme="light" someCallback={updatedSomeCallback} onLayout={({ nativeEvent }) => @@ -310,6 +313,7 @@ describe('TestView', () => { expect(reportedResizedLayout.height).toBeCloseTo(RESIZED_SIZE.height, 0) expect(firstView.isBlue).toBe(false) expect(firstView.hasBeenCalled).toBe(true) + expect(firstView.int64Value).toBe(UPDATED_INT64_VALUE) expect(firstView.colorScheme).toBe('light') const resizedCapture = await captureView('test-view-updates') @@ -330,6 +334,7 @@ describe('TestView', () => { hybridRef={stableHybridRef} isBlue={false} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} />, @@ -352,6 +357,7 @@ describe('TestView', () => { )} isBlue={true} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} /> @@ -377,6 +383,7 @@ describe('TestView', () => { hybridRef={stableHybridRef} isBlue={false} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={1} @@ -398,6 +405,7 @@ describe('TestView', () => { )} isBlue={false} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -422,6 +430,7 @@ describe('TestView', () => { hybridRef={isBlueUpdatedHybridRef} isBlue={true} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -442,6 +451,7 @@ describe('TestView', () => { hybridRef={isBlueUpdatedHybridRef} isBlue={true} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -467,6 +477,7 @@ describe('TestView', () => { hybridRef={callback((view) => firstRef.resolve(view))} isBlue={true} hasBeenCalled={false} + int64Value={0n} colorScheme="dark" someCallback={callback(fn())} />, @@ -494,6 +505,7 @@ describe('TestView', () => { hybridRef={callback((view) => secondRef.resolve(view))} isBlue={false} hasBeenCalled={true} + int64Value={0n} colorScheme="light" someCallback={callback(fn())} />, diff --git a/apps/example/src/screens/ViewScreen.tsx b/apps/example/src/screens/ViewScreen.tsx index c17b84864..c20576874 100644 --- a/apps/example/src/screens/ViewScreen.tsx +++ b/apps/example/src/screens/ViewScreen.tsx @@ -38,6 +38,7 @@ export function ViewScreenImpl() { someCallback={callback(() => console.log(`Callback called!`))} colorScheme="dark" hasBeenCalled={false} + int64Value={0n} onTouchEnd={() => { console.log(`Touched View #${i}!`) }} diff --git a/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt b/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt index e3f1f6e2a..9f88d1110 100644 --- a/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt +++ b/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt @@ -27,6 +27,7 @@ class HybridTestView( view.setBackgroundColor(color) } override var hasBeenCalled: Boolean = false + override var int64Value: Long = 0L override var colorScheme: ColorScheme = ColorScheme.LIGHT override var someCallback: () -> Unit = {} override var nativeDefaultValue: Double? = 42.0 diff --git a/packages/react-native-nitro-test/ios/HybridTestView.swift b/packages/react-native-nitro-test/ios/HybridTestView.swift index 56ec14ebb..f8a2e84b7 100644 --- a/packages/react-native-nitro-test/ios/HybridTestView.swift +++ b/packages/react-native-nitro-test/ios/HybridTestView.swift @@ -24,6 +24,7 @@ class HybridTestView: HybridTestViewSpec { } } var hasBeenCalled: Bool = false + var int64Value: Int64 = 0 var colorScheme: ColorScheme = .light var someCallback: () -> Void = {} var nativeDefaultValue: Double? = 42 { diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp index e80a08d8b..349ffac39 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp @@ -65,6 +65,15 @@ namespace margelo::nitro::test { static const auto method = _javaPart->javaClassStatic()->getMethod("setHasBeenCalled"); method(_javaPart, hasBeenCalled); } + int64_t JHybridTestViewSpec::getInt64Value() { + static const auto method = _javaPart->javaClassStatic()->getMethod("getInt64Value"); + auto __result = method(_javaPart); + return __result; + } + void JHybridTestViewSpec::setInt64Value(int64_t int64Value) { + static const auto method = _javaPart->javaClassStatic()->getMethod("setInt64Value"); + method(_javaPart, int64Value); + } ColorScheme JHybridTestViewSpec::getColorScheme() { static const auto method = _javaPart->javaClassStatic()->getMethod()>("getColorScheme"); auto __result = method(_javaPart); diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp index 9e88cf704..90e5c4de5 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp @@ -54,6 +54,8 @@ namespace margelo::nitro::test { void setIsBlue(bool isBlue) override; bool getHasBeenCalled() override; void setHasBeenCalled(bool hasBeenCalled) override; + int64_t getInt64Value() override; + void setInt64Value(int64_t int64Value) override; ColorScheme getColorScheme() override; void setColorScheme(ColorScheme colorScheme) override; std::function getSomeCallback() override; diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp index 25fc8c722..6adbc64e7 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp @@ -63,6 +63,11 @@ void JHybridTestViewStateUpdater::updateViewProps(jni::alias_ref /* : !newProps->hasBeenCalled.hasSameValue(oldProps->hasBeenCalled)) { hybridView->setHasBeenCalled(newProps->hasBeenCalled.get()); } + if (oldProps == nullptr + ? newProps->int64Value.isProvided() + : !newProps->int64Value.hasSameValue(oldProps->int64Value)) { + hybridView->setInt64Value(newProps->int64Value.get()); + } if (oldProps == nullptr ? newProps->colorScheme.isProvided() : !newProps->colorScheme.hasSameValue(oldProps->colorScheme)) { diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt b/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt index 6ad82b276..235857324 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt +++ b/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt @@ -39,6 +39,12 @@ abstract class HybridTestViewSpec: HybridView() { @set:Keep abstract var hasBeenCalled: Boolean + @get:DoNotStrip + @get:Keep + @set:DoNotStrip + @set:Keep + abstract var int64Value: Long + @get:DoNotStrip @get:Keep @set:DoNotStrip diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp index d2aa02b7b..d29f7f060 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp @@ -77,6 +77,12 @@ namespace margelo::nitro::test { inline void setHasBeenCalled(bool hasBeenCalled) noexcept override { _swiftPart.setHasBeenCalled(std::forward(hasBeenCalled)); } + inline int64_t getInt64Value() noexcept override { + return _swiftPart.getInt64Value(); + } + inline void setInt64Value(int64_t int64Value) noexcept override { + _swiftPart.setInt64Value(std::forward(int64Value)); + } inline ColorScheme getColorScheme() noexcept override { auto __result = _swiftPart.getColorScheme(); return static_cast(__result); diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm index dcc24aaab..fbd2444dc 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm @@ -110,6 +110,12 @@ - (void) updateProps:(const std::shared_ptr&)props : !newViewProps.hasBeenCalled.hasSameValue(oldViewProps->hasBeenCalled)) { swiftPart.setHasBeenCalled(newViewProps.hasBeenCalled.get()); } + // int64Value: int64 + if (oldViewProps == nullptr + ? newViewProps.int64Value.isProvided() + : !newViewProps.int64Value.hasSameValue(oldViewProps->int64Value)) { + swiftPart.setInt64Value(newViewProps.int64Value.get()); + } // colorScheme: enum if (oldViewProps == nullptr ? newViewProps.colorScheme.isProvided() diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift index 3c47050d4..0fd410e2b 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift @@ -12,6 +12,7 @@ public protocol HybridTestViewSpec_protocol: HybridObject, HybridView { // Properties var isBlue: Bool { get set } var hasBeenCalled: Bool { get set } + var int64Value: Int64 { get set } var colorScheme: ColorScheme { get set } var someCallback: () -> Void { get set } var nativeDefaultValue: Double? { get set } diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift index f914e8317..2dc2b215d 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift @@ -143,6 +143,17 @@ open class HybridTestViewSpec_cxx { } } + public final var int64Value: Int64 { + @inline(__always) + get { + return self.__implementation.int64Value + } + @inline(__always) + set { + self.__implementation.int64Value = newValue + } + } + public final var colorScheme: Int32 { @inline(__always) get { diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp index 02e5d36b2..bc71df0ef 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp @@ -18,6 +18,8 @@ namespace margelo::nitro::test { prototype.registerHybridSetter("isBlue", &HybridTestViewSpec::setIsBlue); prototype.registerHybridGetter("hasBeenCalled", &HybridTestViewSpec::getHasBeenCalled); prototype.registerHybridSetter("hasBeenCalled", &HybridTestViewSpec::setHasBeenCalled); + prototype.registerHybridGetter("int64Value", &HybridTestViewSpec::getInt64Value); + prototype.registerHybridSetter("int64Value", &HybridTestViewSpec::setInt64Value); prototype.registerHybridGetter("colorScheme", &HybridTestViewSpec::getColorScheme); prototype.registerHybridSetter("colorScheme", &HybridTestViewSpec::setColorScheme); prototype.registerHybridGetter("someCallback", &HybridTestViewSpec::getSomeCallback); diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp index 758e772bb..efd55dc17 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp @@ -51,6 +51,8 @@ namespace margelo::nitro::test { virtual void setIsBlue(bool isBlue) = 0; virtual bool getHasBeenCalled() = 0; virtual void setHasBeenCalled(bool hasBeenCalled) = 0; + virtual int64_t getInt64Value() = 0; + virtual void setInt64Value(int64_t int64Value) = 0; virtual ColorScheme getColorScheme() = 0; virtual void setColorScheme(ColorScheme colorScheme) = 0; virtual std::function getSomeCallback() = 0; diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp index 248edc859..68bd19f93 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp @@ -23,6 +23,7 @@ namespace margelo::nitro::test::views { react::ViewProps(context, sourceProps, rawProps, filterObjectKeys), isBlue(nitro::ReactProp::fromRawValue("TestView", "isBlue", rawProps, sourceProps.isBlue)), hasBeenCalled(nitro::ReactProp::fromRawValue("TestView", "hasBeenCalled", rawProps, sourceProps.hasBeenCalled)), + int64Value(nitro::ReactProp::fromRawValue("TestView", "int64Value", rawProps, sourceProps.int64Value)), colorScheme(nitro::ReactProp::fromRawValue("TestView", "colorScheme", rawProps, sourceProps.colorScheme)), someCallback(nitro::ReactProp>::fromRawValue("TestView", "someCallback", rawProps, sourceProps.someCallback)), nativeDefaultValue(nitro::ReactProp>::fromRawValue("TestView", "nativeDefaultValue", rawProps, sourceProps.nativeDefaultValue)), @@ -36,6 +37,7 @@ namespace margelo::nitro::test::views { switch (hashString(propName)) { case hashString("isBlue"): return true; case hashString("hasBeenCalled"): return true; + case hashString("int64Value"): return true; case hashString("colorScheme"): return true; case hashString("someCallback"): return true; case hashString("nativeDefaultValue"): return true; diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp index 8b8ad1e56..fa25270c4 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp @@ -45,6 +45,7 @@ namespace margelo::nitro::test::views { public: nitro::ReactProp isBlue; nitro::ReactProp hasBeenCalled; + nitro::ReactProp int64Value; nitro::ReactProp colorScheme; nitro::ReactProp> someCallback; nitro::ReactProp> nativeDefaultValue; @@ -54,6 +55,7 @@ namespace margelo::nitro::test::views { bool hasSameProps(const HybridTestViewProps& other) const noexcept { return isBlue.hasSameValue(other.isBlue) && hasBeenCalled.hasSameValue(other.hasBeenCalled) && + int64Value.hasSameValue(other.int64Value) && colorScheme.hasSameValue(other.colorScheme) && someCallback.hasSameValue(other.someCallback) && nativeDefaultValue.hasSameValue(other.nativeDefaultValue) && @@ -64,6 +66,7 @@ namespace margelo::nitro::test::views { bool hasAnyProvidedProps() const noexcept { return isBlue.isProvided() || hasBeenCalled.isProvided() || + int64Value.isProvided() || colorScheme.isProvided() || someCallback.isProvided() || nativeDefaultValue.isProvided() || diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json b/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json index eae6ee5b0..6d0396409 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json @@ -6,6 +6,7 @@ "validAttributes": { "isBlue": true, "hasBeenCalled": true, + "int64Value": true, "colorScheme": true, "someCallback": true, "nativeDefaultValue": true, diff --git a/packages/react-native-nitro-test/src/specs/TestView.nitro.ts b/packages/react-native-nitro-test/src/specs/TestView.nitro.ts index a9b52abf4..f2ccce55e 100644 --- a/packages/react-native-nitro-test/src/specs/TestView.nitro.ts +++ b/packages/react-native-nitro-test/src/specs/TestView.nitro.ts @@ -2,6 +2,7 @@ import type { HybridView as HybridViewAlias, HybridViewMethods, HybridViewProps, + Int64, } from 'react-native-nitro-modules' export type ColorScheme = 'light' | 'dark' @@ -9,6 +10,7 @@ export type ColorScheme = 'light' | 'dark' export interface TestViewProps extends HybridViewProps { isBlue: boolean hasBeenCalled: boolean + int64Value: Int64 colorScheme: ColorScheme someCallback: () => void nativeDefaultValue?: number From ff79274b8612c517868d91cade12c7c2742f41d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hanno=20J=2E=20G=C3=B6decke?= Date: Sat, 26 Sep 2026 15:58:35 -0700 Subject: [PATCH 4/4] test: move BigInt view coverage to standalone PR --- apps/example/__tests__/nitro.views.harness.tsx | 18 ------------------ apps/example/src/screens/ViewScreen.tsx | 1 - .../com/margelo/nitro/test/HybridTestView.kt | 1 - .../ios/HybridTestView.swift | 1 - .../android/c++/JHybridTestViewSpec.cpp | 9 --------- .../android/c++/JHybridTestViewSpec.hpp | 2 -- .../c++/views/JHybridTestViewStateUpdater.cpp | 5 ----- .../margelo/nitro/test/HybridTestViewSpec.kt | 6 ------ .../ios/c++/HybridTestViewSpecSwift.hpp | 6 ------ .../ios/c++/views/HybridTestViewComponent.mm | 6 ------ .../ios/swift/HybridTestViewSpec.swift | 1 - .../ios/swift/HybridTestViewSpec_cxx.swift | 11 ----------- .../shared/c++/HybridTestViewSpec.cpp | 2 -- .../shared/c++/HybridTestViewSpec.hpp | 2 -- .../c++/views/HybridTestViewComponent.cpp | 2 -- .../c++/views/HybridTestViewComponent.hpp | 3 --- .../generated/shared/json/TestViewConfig.json | 1 - .../src/specs/TestView.nitro.ts | 2 -- 18 files changed, 79 deletions(-) diff --git a/apps/example/__tests__/nitro.views.harness.tsx b/apps/example/__tests__/nitro.views.harness.tsx index d9ae09dcd..4de631acf 100644 --- a/apps/example/__tests__/nitro.views.harness.tsx +++ b/apps/example/__tests__/nitro.views.harness.tsx @@ -157,8 +157,6 @@ function expectRed(actualCoverage: PixelCoverage): void { const INITIAL_SIZE = { width: 80, height: 60 } const RESIZED_SIZE = { width: 160, height: 120 } -const INITIAL_INT64_VALUE = 9_007_199_254_740_993n -const UPDATED_INT64_VALUE = -9_007_199_254_740_993n const RENDER_TIMEOUT = 4_000 const SUPPORTS_NATIVE_VIEW_RECYCLING = Platform.OS === 'ios' || Number(Platform.Version) >= 28 @@ -197,7 +195,6 @@ describe('TestView', () => { hybridRef={callback((view) => viewRef.resolve(view))} isBlue={true} hasBeenCalled={false} - int64Value={INITIAL_INT64_VALUE} colorScheme="dark" someCallback={callback(onSomeCallback)} onLayout={({ nativeEvent }) => layout.resolve(nativeEvent.layout)} @@ -211,7 +208,6 @@ describe('TestView', () => { expect(reportedLayout.height).toBeCloseTo(INITIAL_SIZE.height, 0) expect(mountedView.isBlue).toBe(true) expect(mountedView.hasBeenCalled).toBe(false) - expect(mountedView.int64Value).toBe(INITIAL_INT64_VALUE) expect(mountedView.colorScheme).toBe('dark') expect(mountedView.getOnDropViewCount()).toBe(0) expect(HybridTestObjectCpp.getIsViewBlue(mountedView)).toBe(true) @@ -238,7 +234,6 @@ describe('TestView', () => { hybridRef={callback((view) => initialRef.resolve(view))} isBlue={true} hasBeenCalled={false} - int64Value={INITIAL_INT64_VALUE} colorScheme="dark" someCallback={callback(initialCallback)} />, @@ -246,7 +241,6 @@ describe('TestView', () => { ) const firstView = await initialRef.promise - expect(firstView.int64Value).toBe(INITIAL_INT64_VALUE) const blueCapture = await captureView('test-view-updates') expectRenderedSize(blueCapture.size, INITIAL_SIZE) expectBlue(blueCapture.pixelCoverage) @@ -266,7 +260,6 @@ describe('TestView', () => { hybridRef={updatedHybridRef} isBlue={false} hasBeenCalled={true} - int64Value={UPDATED_INT64_VALUE} colorScheme="light" someCallback={updatedSomeCallback} /> @@ -276,7 +269,6 @@ describe('TestView', () => { expect(updatedView.equals(firstView)).toBe(true) expect(updatedView.isBlue).toBe(false) expect(updatedView.hasBeenCalled).toBe(true) - expect(updatedView.int64Value).toBe(UPDATED_INT64_VALUE) expect(updatedView.colorScheme).toBe('light') expect(updatedView.getOnDropViewCount()).toBe(0) expect(HybridTestObjectCpp.getIsViewBlue(updatedView)).toBe(false) @@ -299,7 +291,6 @@ describe('TestView', () => { hybridRef={updatedHybridRef} isBlue={false} hasBeenCalled={true} - int64Value={UPDATED_INT64_VALUE} colorScheme="light" someCallback={updatedSomeCallback} onLayout={({ nativeEvent }) => @@ -313,7 +304,6 @@ describe('TestView', () => { expect(reportedResizedLayout.height).toBeCloseTo(RESIZED_SIZE.height, 0) expect(firstView.isBlue).toBe(false) expect(firstView.hasBeenCalled).toBe(true) - expect(firstView.int64Value).toBe(UPDATED_INT64_VALUE) expect(firstView.colorScheme).toBe('light') const resizedCapture = await captureView('test-view-updates') @@ -334,7 +324,6 @@ describe('TestView', () => { hybridRef={stableHybridRef} isBlue={false} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} />, @@ -357,7 +346,6 @@ describe('TestView', () => { )} isBlue={true} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} /> @@ -383,7 +371,6 @@ describe('TestView', () => { hybridRef={stableHybridRef} isBlue={false} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={1} @@ -405,7 +392,6 @@ describe('TestView', () => { )} isBlue={false} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -430,7 +416,6 @@ describe('TestView', () => { hybridRef={isBlueUpdatedHybridRef} isBlue={true} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -451,7 +436,6 @@ describe('TestView', () => { hybridRef={isBlueUpdatedHybridRef} isBlue={true} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={stableSomeCallback} nativeDefaultValue={2} @@ -477,7 +461,6 @@ describe('TestView', () => { hybridRef={callback((view) => firstRef.resolve(view))} isBlue={true} hasBeenCalled={false} - int64Value={0n} colorScheme="dark" someCallback={callback(fn())} />, @@ -505,7 +488,6 @@ describe('TestView', () => { hybridRef={callback((view) => secondRef.resolve(view))} isBlue={false} hasBeenCalled={true} - int64Value={0n} colorScheme="light" someCallback={callback(fn())} />, diff --git a/apps/example/src/screens/ViewScreen.tsx b/apps/example/src/screens/ViewScreen.tsx index c20576874..c17b84864 100644 --- a/apps/example/src/screens/ViewScreen.tsx +++ b/apps/example/src/screens/ViewScreen.tsx @@ -38,7 +38,6 @@ export function ViewScreenImpl() { someCallback={callback(() => console.log(`Callback called!`))} colorScheme="dark" hasBeenCalled={false} - int64Value={0n} onTouchEnd={() => { console.log(`Touched View #${i}!`) }} diff --git a/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt b/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt index 9f88d1110..e3f1f6e2a 100644 --- a/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt +++ b/packages/react-native-nitro-test/android/src/main/java/com/margelo/nitro/test/HybridTestView.kt @@ -27,7 +27,6 @@ class HybridTestView( view.setBackgroundColor(color) } override var hasBeenCalled: Boolean = false - override var int64Value: Long = 0L override var colorScheme: ColorScheme = ColorScheme.LIGHT override var someCallback: () -> Unit = {} override var nativeDefaultValue: Double? = 42.0 diff --git a/packages/react-native-nitro-test/ios/HybridTestView.swift b/packages/react-native-nitro-test/ios/HybridTestView.swift index f8a2e84b7..56ec14ebb 100644 --- a/packages/react-native-nitro-test/ios/HybridTestView.swift +++ b/packages/react-native-nitro-test/ios/HybridTestView.swift @@ -24,7 +24,6 @@ class HybridTestView: HybridTestViewSpec { } } var hasBeenCalled: Bool = false - var int64Value: Int64 = 0 var colorScheme: ColorScheme = .light var someCallback: () -> Void = {} var nativeDefaultValue: Double? = 42 { diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp index 349ffac39..e80a08d8b 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.cpp @@ -65,15 +65,6 @@ namespace margelo::nitro::test { static const auto method = _javaPart->javaClassStatic()->getMethod("setHasBeenCalled"); method(_javaPart, hasBeenCalled); } - int64_t JHybridTestViewSpec::getInt64Value() { - static const auto method = _javaPart->javaClassStatic()->getMethod("getInt64Value"); - auto __result = method(_javaPart); - return __result; - } - void JHybridTestViewSpec::setInt64Value(int64_t int64Value) { - static const auto method = _javaPart->javaClassStatic()->getMethod("setInt64Value"); - method(_javaPart, int64Value); - } ColorScheme JHybridTestViewSpec::getColorScheme() { static const auto method = _javaPart->javaClassStatic()->getMethod()>("getColorScheme"); auto __result = method(_javaPart); diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp index 90e5c4de5..9e88cf704 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/JHybridTestViewSpec.hpp @@ -54,8 +54,6 @@ namespace margelo::nitro::test { void setIsBlue(bool isBlue) override; bool getHasBeenCalled() override; void setHasBeenCalled(bool hasBeenCalled) override; - int64_t getInt64Value() override; - void setInt64Value(int64_t int64Value) override; ColorScheme getColorScheme() override; void setColorScheme(ColorScheme colorScheme) override; std::function getSomeCallback() override; diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp b/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp index 6adbc64e7..25fc8c722 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/android/c++/views/JHybridTestViewStateUpdater.cpp @@ -63,11 +63,6 @@ void JHybridTestViewStateUpdater::updateViewProps(jni::alias_ref /* : !newProps->hasBeenCalled.hasSameValue(oldProps->hasBeenCalled)) { hybridView->setHasBeenCalled(newProps->hasBeenCalled.get()); } - if (oldProps == nullptr - ? newProps->int64Value.isProvided() - : !newProps->int64Value.hasSameValue(oldProps->int64Value)) { - hybridView->setInt64Value(newProps->int64Value.get()); - } if (oldProps == nullptr ? newProps->colorScheme.isProvided() : !newProps->colorScheme.hasSameValue(oldProps->colorScheme)) { diff --git a/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt b/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt index 235857324..6ad82b276 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt +++ b/packages/react-native-nitro-test/nitrogen/generated/android/kotlin/com/margelo/nitro/test/HybridTestViewSpec.kt @@ -39,12 +39,6 @@ abstract class HybridTestViewSpec: HybridView() { @set:Keep abstract var hasBeenCalled: Boolean - @get:DoNotStrip - @get:Keep - @set:DoNotStrip - @set:Keep - abstract var int64Value: Long - @get:DoNotStrip @get:Keep @set:DoNotStrip diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp index d29f7f060..d2aa02b7b 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/HybridTestViewSpecSwift.hpp @@ -77,12 +77,6 @@ namespace margelo::nitro::test { inline void setHasBeenCalled(bool hasBeenCalled) noexcept override { _swiftPart.setHasBeenCalled(std::forward(hasBeenCalled)); } - inline int64_t getInt64Value() noexcept override { - return _swiftPart.getInt64Value(); - } - inline void setInt64Value(int64_t int64Value) noexcept override { - _swiftPart.setInt64Value(std::forward(int64Value)); - } inline ColorScheme getColorScheme() noexcept override { auto __result = _swiftPart.getColorScheme(); return static_cast(__result); diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm index fbd2444dc..dcc24aaab 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/c++/views/HybridTestViewComponent.mm @@ -110,12 +110,6 @@ - (void) updateProps:(const std::shared_ptr&)props : !newViewProps.hasBeenCalled.hasSameValue(oldViewProps->hasBeenCalled)) { swiftPart.setHasBeenCalled(newViewProps.hasBeenCalled.get()); } - // int64Value: int64 - if (oldViewProps == nullptr - ? newViewProps.int64Value.isProvided() - : !newViewProps.int64Value.hasSameValue(oldViewProps->int64Value)) { - swiftPart.setInt64Value(newViewProps.int64Value.get()); - } // colorScheme: enum if (oldViewProps == nullptr ? newViewProps.colorScheme.isProvided() diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift index 0fd410e2b..3c47050d4 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec.swift @@ -12,7 +12,6 @@ public protocol HybridTestViewSpec_protocol: HybridObject, HybridView { // Properties var isBlue: Bool { get set } var hasBeenCalled: Bool { get set } - var int64Value: Int64 { get set } var colorScheme: ColorScheme { get set } var someCallback: () -> Void { get set } var nativeDefaultValue: Double? { get set } diff --git a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift index 2dc2b215d..f914e8317 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift +++ b/packages/react-native-nitro-test/nitrogen/generated/ios/swift/HybridTestViewSpec_cxx.swift @@ -143,17 +143,6 @@ open class HybridTestViewSpec_cxx { } } - public final var int64Value: Int64 { - @inline(__always) - get { - return self.__implementation.int64Value - } - @inline(__always) - set { - self.__implementation.int64Value = newValue - } - } - public final var colorScheme: Int32 { @inline(__always) get { diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp index bc71df0ef..02e5d36b2 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.cpp @@ -18,8 +18,6 @@ namespace margelo::nitro::test { prototype.registerHybridSetter("isBlue", &HybridTestViewSpec::setIsBlue); prototype.registerHybridGetter("hasBeenCalled", &HybridTestViewSpec::getHasBeenCalled); prototype.registerHybridSetter("hasBeenCalled", &HybridTestViewSpec::setHasBeenCalled); - prototype.registerHybridGetter("int64Value", &HybridTestViewSpec::getInt64Value); - prototype.registerHybridSetter("int64Value", &HybridTestViewSpec::setInt64Value); prototype.registerHybridGetter("colorScheme", &HybridTestViewSpec::getColorScheme); prototype.registerHybridSetter("colorScheme", &HybridTestViewSpec::setColorScheme); prototype.registerHybridGetter("someCallback", &HybridTestViewSpec::getSomeCallback); diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp index efd55dc17..758e772bb 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/HybridTestViewSpec.hpp @@ -51,8 +51,6 @@ namespace margelo::nitro::test { virtual void setIsBlue(bool isBlue) = 0; virtual bool getHasBeenCalled() = 0; virtual void setHasBeenCalled(bool hasBeenCalled) = 0; - virtual int64_t getInt64Value() = 0; - virtual void setInt64Value(int64_t int64Value) = 0; virtual ColorScheme getColorScheme() = 0; virtual void setColorScheme(ColorScheme colorScheme) = 0; virtual std::function getSomeCallback() = 0; diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp index 68bd19f93..248edc859 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.cpp @@ -23,7 +23,6 @@ namespace margelo::nitro::test::views { react::ViewProps(context, sourceProps, rawProps, filterObjectKeys), isBlue(nitro::ReactProp::fromRawValue("TestView", "isBlue", rawProps, sourceProps.isBlue)), hasBeenCalled(nitro::ReactProp::fromRawValue("TestView", "hasBeenCalled", rawProps, sourceProps.hasBeenCalled)), - int64Value(nitro::ReactProp::fromRawValue("TestView", "int64Value", rawProps, sourceProps.int64Value)), colorScheme(nitro::ReactProp::fromRawValue("TestView", "colorScheme", rawProps, sourceProps.colorScheme)), someCallback(nitro::ReactProp>::fromRawValue("TestView", "someCallback", rawProps, sourceProps.someCallback)), nativeDefaultValue(nitro::ReactProp>::fromRawValue("TestView", "nativeDefaultValue", rawProps, sourceProps.nativeDefaultValue)), @@ -37,7 +36,6 @@ namespace margelo::nitro::test::views { switch (hashString(propName)) { case hashString("isBlue"): return true; case hashString("hasBeenCalled"): return true; - case hashString("int64Value"): return true; case hashString("colorScheme"): return true; case hashString("someCallback"): return true; case hashString("nativeDefaultValue"): return true; diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp index fa25270c4..8b8ad1e56 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/c++/views/HybridTestViewComponent.hpp @@ -45,7 +45,6 @@ namespace margelo::nitro::test::views { public: nitro::ReactProp isBlue; nitro::ReactProp hasBeenCalled; - nitro::ReactProp int64Value; nitro::ReactProp colorScheme; nitro::ReactProp> someCallback; nitro::ReactProp> nativeDefaultValue; @@ -55,7 +54,6 @@ namespace margelo::nitro::test::views { bool hasSameProps(const HybridTestViewProps& other) const noexcept { return isBlue.hasSameValue(other.isBlue) && hasBeenCalled.hasSameValue(other.hasBeenCalled) && - int64Value.hasSameValue(other.int64Value) && colorScheme.hasSameValue(other.colorScheme) && someCallback.hasSameValue(other.someCallback) && nativeDefaultValue.hasSameValue(other.nativeDefaultValue) && @@ -66,7 +64,6 @@ namespace margelo::nitro::test::views { bool hasAnyProvidedProps() const noexcept { return isBlue.isProvided() || hasBeenCalled.isProvided() || - int64Value.isProvided() || colorScheme.isProvided() || someCallback.isProvided() || nativeDefaultValue.isProvided() || diff --git a/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json b/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json index 6d0396409..eae6ee5b0 100644 --- a/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json +++ b/packages/react-native-nitro-test/nitrogen/generated/shared/json/TestViewConfig.json @@ -6,7 +6,6 @@ "validAttributes": { "isBlue": true, "hasBeenCalled": true, - "int64Value": true, "colorScheme": true, "someCallback": true, "nativeDefaultValue": true, diff --git a/packages/react-native-nitro-test/src/specs/TestView.nitro.ts b/packages/react-native-nitro-test/src/specs/TestView.nitro.ts index f2ccce55e..a9b52abf4 100644 --- a/packages/react-native-nitro-test/src/specs/TestView.nitro.ts +++ b/packages/react-native-nitro-test/src/specs/TestView.nitro.ts @@ -2,7 +2,6 @@ import type { HybridView as HybridViewAlias, HybridViewMethods, HybridViewProps, - Int64, } from 'react-native-nitro-modules' export type ColorScheme = 'light' | 'dark' @@ -10,7 +9,6 @@ export type ColorScheme = 'light' | 'dark' export interface TestViewProps extends HybridViewProps { isBlue: boolean hasBeenCalled: boolean - int64Value: Int64 colorScheme: ColorScheme someCallback: () => void nativeDefaultValue?: number