diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js index 60041ed64d1a..35797d73ee78 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsCpp.js @@ -165,7 +165,7 @@ function generatePropsDiffString( return ` if (${prop.name} != oldProps->${prop.name}) { if (${prop.name}.has_value()) { - result["${prop.name}"] = *${prop.name}.value(); + result["${prop.name}"] = static_cast(*${prop.name}.value()); } else { result["${prop.name}"] = folly::dynamic(nullptr); } @@ -173,7 +173,7 @@ function generatePropsDiffString( } else { return ` if (${prop.name} != oldProps->${prop.name}) { - result["${prop.name}"] = *${prop.name}; + result["${prop.name}"] = static_cast(*${prop.name}); }`; } case 'ImageSourcePrimitive': diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap index fbf62c1c987f..1e4c50935777 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsCpp-test.js.snap @@ -1141,7 +1141,7 @@ folly::dynamic ColorPropNativeComponentProps::getDiffProps( folly::dynamic result = HostPlatformViewProps::getDiffProps(prevProps); if (tintColor != oldProps->tintColor) { - result[\\"tintColor\\"] = *tintColor; + result[\\"tintColor\\"] = static_cast(*tintColor); } return result; } @@ -2180,11 +2180,11 @@ folly::dynamic ImageColorPropNativeComponentProps::getDiffProps( } if (color != oldProps->color) { - result[\\"color\\"] = *color; + result[\\"color\\"] = static_cast(*color); } if (thumbTintColor != oldProps->thumbTintColor) { - result[\\"thumbTintColor\\"] = *thumbTintColor; + result[\\"thumbTintColor\\"] = static_cast(*thumbTintColor); } if (point != oldProps->point) { diff --git a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp index 8c2b59bbd6ad..0b175931ba4d 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/image/ImageProps.cpp @@ -210,7 +210,7 @@ folly::dynamic ImageProps::getDiffProps(const Props* prevProps) const { // unset. if (tintColor != oldProps->tintColor) { if (tintColor.has_value()) { - result["tintColor"] = *tintColor.value(); + result["tintColor"] = static_cast(*tintColor.value()); } else { result["tintColor"] = folly::dynamic(nullptr); } @@ -221,7 +221,7 @@ folly::dynamic ImageProps::getDiffProps(const Props* prevProps) const { SharedColor prevTintColorValue = oldProps->tintColor.value_or(SharedColor{}); if (tintColorValue != prevTintColorValue) { - result["tintColor"] = *tintColorValue; + result["tintColor"] = static_cast(*tintColorValue); } } @@ -242,7 +242,7 @@ folly::dynamic ImageProps::getDiffProps(const Props* prevProps) const { } if (overlayColor != oldProps->overlayColor) { - result["overlayColor"] = *overlayColor; + result["overlayColor"] = static_cast(*overlayColor); } if (fadeDuration != oldProps->fadeDuration) { diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp index d8812796d475..06739a63f0f8 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp @@ -377,7 +377,7 @@ folly::dynamic HostPlatformScrollViewProps::getDiffProps( } if (endFillColor != oldProps->endFillColor) { - result["endFillColor"] = *endFillColor; + result["endFillColor"] = static_cast(*endFillColor); } return result; diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.cpp index 135463aa2d09..7872e0b7eacd 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/text/BaseTextProps.cpp @@ -369,7 +369,7 @@ void BaseTextProps::appendTextAttributesProps( const BaseTextProps* oldProps) const { if (textAttributes.foregroundColor != oldProps->textAttributes.foregroundColor) { - result["color"] = *textAttributes.foregroundColor; + result["color"] = static_cast(*textAttributes.foregroundColor); } if (textAttributes.fontFamily != oldProps->textAttributes.fontFamily) { @@ -480,7 +480,8 @@ void BaseTextProps::appendTextAttributesProps( if (textAttributes.textDecorationColor != oldProps->textAttributes.textDecorationColor) { - result["textDecorationColor"] = *textAttributes.textDecorationColor; + result["textDecorationColor"] = + static_cast(*textAttributes.textDecorationColor); } if (textAttributes.textDecorationLineType != @@ -514,7 +515,8 @@ void BaseTextProps::appendTextAttributesProps( if (textAttributes.textShadowColor != oldProps->textAttributes.textShadowColor) { - result["textShadowColor"] = *textAttributes.textShadowColor; + result["textShadowColor"] = + static_cast(*textAttributes.textShadowColor); } if (textAttributes.isHighlighted != oldProps->textAttributes.isHighlighted) { @@ -549,7 +551,8 @@ void BaseTextProps::appendTextAttributesProps( if (textAttributes.backgroundColor != oldProps->textAttributes.backgroundColor) { - result["backgroundColor"] = *textAttributes.backgroundColor; + result["backgroundColor"] = + static_cast(*textAttributes.backgroundColor); } } diff --git a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp index a9a6f1452c1c..4d8da380f8b3 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/text/platform/android/react/renderer/components/text/HostPlatformParagraphProps.cpp @@ -167,7 +167,7 @@ folly::dynamic HostPlatformParagraphProps::getDiffProps( if (selectionColor != oldProps->selectionColor) { if (selectionColor.has_value()) { - result["selectionColor"] = *selectionColor.value(); + result["selectionColor"] = static_cast(*selectionColor.value()); } else { result["selectionColor"] = folly::dynamic(nullptr); } diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp index 4c145e7beeee..af1236fd6506 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp @@ -138,7 +138,7 @@ AndroidTextInputProps::AndroidTextInputProps( "textTransform", sourceProps.textTransform, {})), - color(0 /*convertRawProp(context, rawProps, "color", sourceProps.color, {0})*/), + color(/*convertRawProp(context, rawProps, "color", sourceProps.color, {})*/), letterSpacing(convertRawProp(context, rawProps, "letterSpacing", sourceProps.letterSpacing, @@ -432,23 +432,26 @@ folly::dynamic AndroidTextInputProps::getDiffProps( } if (placeholderTextColor != oldProps->placeholderTextColor) { - result["placeholderTextColor"] = *placeholderTextColor; + result["placeholderTextColor"] = + static_cast(*placeholderTextColor); } if (cursorColor != oldProps->cursorColor) { - result["cursorColor"] = *cursorColor; + result["cursorColor"] = static_cast(*cursorColor); } if (selectionColor != oldProps->selectionColor) { - result["selectionColor"] = *selectionColor; + result["selectionColor"] = static_cast(*selectionColor); } if (selectionHandleColor != oldProps->selectionHandleColor) { - result["selectionHandleColor"] = *selectionHandleColor; + result["selectionHandleColor"] = + static_cast(*selectionHandleColor); } if (underlineColorAndroid != oldProps->underlineColorAndroid) { - result["underlineColorAndroid"] = *underlineColorAndroid; + result["underlineColorAndroid"] = + static_cast(*underlineColorAndroid); } if (maxLength != oldProps->maxLength) { @@ -575,7 +578,7 @@ folly::dynamic AndroidTextInputProps::getDiffProps( } if (textShadowColor != oldProps->textShadowColor) { - result["textShadowColor"] = *textShadowColor; + result["textShadowColor"] = static_cast(*textShadowColor); } if (textShadowRadius != oldProps->textShadowRadius) { diff --git a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h index 155427e437c1..4f7166809692 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/textinput/platform/android/react/renderer/components/androidtextinput/AndroidTextInputProps.h @@ -105,7 +105,7 @@ class AndroidTextInputProps final : public BaseTextInputProps { AndroidTextInputTextShadowOffsetStruct textShadowOffset{}; Float lineHeight{0.0}; std::string textTransform{}; - SharedColor color{0}; + SharedColor color{}; Float letterSpacing{0.0}; Float fontSize{0.0}; std::string textAlign{}; diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp index 32289a2c43f1..539ce66e6bbe 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp @@ -309,7 +309,8 @@ static void updateBorderColorPropValue( const std::optional& newColor, const std::optional& oldColor) { if (newColor != oldColor) { - result[propName] = newColor.has_value() ? *newColor.value() : NULL; + result[propName] = + newColor.has_value() ? static_cast(*newColor.value()) : NULL; } } @@ -502,11 +503,11 @@ folly::dynamic HostPlatformViewProps::getDiffProps( } if (backgroundColor != oldProps->backgroundColor) { - result["backgroundColor"] = *backgroundColor; + result["backgroundColor"] = static_cast(*backgroundColor); } if (outlineColor != oldProps->outlineColor) { - result["outlineColor"] = *outlineColor; + result["outlineColor"] = static_cast(*outlineColor); } if (outlineOffset != oldProps->outlineOffset) { @@ -532,7 +533,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps( } if (shadowColor != oldProps->shadowColor) { - result["shadowColor"] = *shadowColor; + result["shadowColor"] = static_cast(*shadowColor); } if (shadowOpacity != oldProps->shadowOpacity) { diff --git a/packages/react-native/ReactCommon/react/renderer/core/propsConversions.h b/packages/react-native/ReactCommon/react/renderer/core/propsConversions.h index 94a1e70545e8..0feca74170d4 100644 --- a/packages/react-native/ReactCommon/react/renderer/core/propsConversions.h +++ b/packages/react-native/ReactCommon/react/renderer/core/propsConversions.h @@ -17,6 +17,11 @@ namespace facebook::react { #ifdef RN_SERIALIZABLE_STATE +inline folly::dynamic toDynamic(uint32_t value) +{ + return value; +} + inline folly::dynamic toDynamic(const std::vector &arrayValue) { folly::dynamic resultArray = folly::dynamic::array(); diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h b/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h index f8be37cc06e1..cd21f2391ec9 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/BoxShadow.h @@ -30,7 +30,7 @@ struct BoxShadow { result["offsetY"] = offsetY; result["blurRadius"] = blurRadius; result["spreadDistance"] = spreadDistance; - result["color"] = *color; + result["color"] = static_cast(*color); result["inset"] = inset; return result; } diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Color.h b/packages/react-native/ReactCommon/react/renderer/graphics/Color.h index 16905f62a3d2..14b2b831cfc4 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Color.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Color.h @@ -81,7 +81,7 @@ SharedColor whiteColor(); #ifdef RN_SERIALIZABLE_STATE inline folly::dynamic toDynamic(const SharedColor &sharedColor) { - return *sharedColor; + return static_cast(*sharedColor); } #endif diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.cpp b/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.cpp index 01cf692d99dd..20c185544ef7 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.cpp +++ b/packages/react-native/ReactCommon/react/renderer/graphics/ColorStop.cpp @@ -12,7 +12,7 @@ namespace facebook::react { #ifdef RN_SERIALIZABLE_STATE folly::dynamic ColorStop::toDynamic() const { folly::dynamic result = folly::dynamic::object(); - result["color"] = *color; + result["color"] = static_cast(*color); result["position"] = position.toDynamic(); return result; } diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h b/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h index f4c1c2613080..6426241c99af 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/Filter.h @@ -100,7 +100,7 @@ struct DropShadowParams { result["offsetX"] = offsetX; result["offsetY"] = offsetY; result["standardDeviation"] = standardDeviation; - result["color"] = *color; + result["color"] = static_cast(*color); return result; } #endif diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h index bfbefc3832a3..c24bd88ad2a7 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/HostPlatformColor.h @@ -8,56 +8,80 @@ #pragma once #include +#include #include +#include namespace facebook::react { -using Color = int32_t; +struct Color { + int32_t value{0}; + bool isDefined{false}; + + constexpr Color() = default; + constexpr Color(int32_t colorValue) : value(colorValue), isDefined(true) {} + + constexpr bool operator==(const Color &otherColor) const + { + return value == otherColor.value && isDefined == otherColor.isDefined; + } + + constexpr bool operator!=(const Color &otherColor) const + { + return !(*this == otherColor); + } + + constexpr operator int32_t() const + { + return value; + } +}; namespace HostPlatformColor { -constexpr facebook::react::Color UndefinedColor = 0; +constexpr facebook::react::Color UndefinedColor{}; } inline Color hostPlatformColorFromRGBA(uint8_t r, uint8_t g, uint8_t b, uint8_t a) { - return (a & 0xff) << 24 | (r & 0xff) << 16 | (g & 0xff) << 8 | (b & 0xff); + return Color{(a & 0xff) << 24 | (r & 0xff) << 16 | (g & 0xff) << 8 | (b & 0xff)}; } inline Color hostPlatformColorFromComponents(ColorComponents components) { float ratio = 255; - return ((int)round(components.alpha * ratio) & 0xff) << 24 | ((int)round(components.red * ratio) & 0xff) << 16 | - ((int)round(components.green * ratio) & 0xff) << 8 | ((int)round(components.blue * ratio) & 0xff); + return Color{ + ((int)round(components.alpha * ratio) & 0xff) << 24 | ((int)round(components.red * ratio) & 0xff) << 16 | + ((int)round(components.green * ratio) & 0xff) << 8 | ((int)round(components.blue * ratio) & 0xff)}; } inline ColorComponents colorComponentsFromHostPlatformColor(Color color) { float ratio = 255; return ColorComponents{ - .red = (float)((color >> 16) & 0xff) / ratio, - .green = (float)((color >> 8) & 0xff) / ratio, - .blue = (float)((color >> 0) & 0xff) / ratio, - .alpha = (float)((color >> 24) & 0xff) / ratio}; + .red = (float)((color.value >> 16) & 0xff) / ratio, + .green = (float)((color.value >> 8) & 0xff) / ratio, + .blue = (float)((color.value >> 0) & 0xff) / ratio, + .alpha = (float)((color.value >> 24) & 0xff) / ratio}; } inline float alphaFromHostPlatformColor(Color color) { - return static_cast((color >> 24) & 0xff); + return static_cast((color.value >> 24) & 0xff); } inline float redFromHostPlatformColor(Color color) { - return static_cast((color >> 16) & 0xff); + return static_cast((color.value >> 16) & 0xff); } inline float greenFromHostPlatformColor(Color color) { - return static_cast((color >> 8) & 0xff); + return static_cast((color.value >> 8) & 0xff); } inline float blueFromHostPlatformColor(Color color) { - return static_cast((color >> 0) & 0xff); + return static_cast((color.value >> 0) & 0xff); } inline bool hostPlatformColorIsColorMeaningful(Color color) noexcept @@ -66,3 +90,11 @@ inline bool hostPlatformColorIsColorMeaningful(Color color) noexcept } } // namespace facebook::react + +template <> +struct std::hash { + size_t operator()(const facebook::react::Color &color) const + { + return facebook::react::hash_combine(color.value, color.isDefined); + } +}; diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h index cf5a7c2ce1f1..47b2bafe5dbd 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +++ b/packages/react-native/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h @@ -38,7 +38,7 @@ inline size_t hashGetColourArguments(int32_t surfaceId, const std::vector>()) { // Mixed array + string values, so read as a map of RawValue (a map of // vector would assert on the fallback string). diff --git a/packages/react-native/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp b/packages/react-native/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp index 1e29701ec3f4..82677cd697e3 100644 --- a/packages/react-native/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/graphics/tests/ColorTest.cpp @@ -36,3 +36,18 @@ TEST(ColorTest, testColorConversion) { EXPECT_EQ(std::round(colorComponents.blue * 10) / 10.f, 0); } } + +#ifdef ANDROID +TEST(ColorTest, testTransparentColorIsDistinctFromUndefined) { + using namespace facebook::react; + + EXPECT_NE(Color{}, Color{0}); + + SharedColor undefinedColor; + auto transparentColor = clearColor(); + + EXPECT_FALSE(undefinedColor); + EXPECT_TRUE(transparentColor); + EXPECT_NE(undefinedColor, transparentColor); +} +#endif diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api index 2e6dc7e0b4e2..53e783972bee 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api @@ -610,7 +610,6 @@ using facebook::react::CascadedBorderCurves = facebook::react::CascadedRectangle using facebook::react::CascadedBorderRadii = facebook::react::CascadedRectangleCorners; using facebook::react::CascadedBorderStyles = facebook::react::CascadedRectangleEdges; using facebook::react::CascadedBorderWidths = facebook::react::CascadedRectangleEdges; -using facebook::react::Color = int32_t; using facebook::react::ComponentDescriptorConstructor = facebook::react::ComponentDescriptor::Unique(const facebook::react::ComponentDescriptorParameters& parameters); using facebook::react::ComponentDescriptorProviderRequest = std::function; using facebook::react::ComponentHandle = int64_t; @@ -932,6 +931,7 @@ folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); +folly::dynamic facebook::react::toDynamic(uint32_t value); int facebook::react::toAndroidRepr(const facebook::react::SharedColor& color); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); @@ -7259,6 +7259,16 @@ struct facebook::react::CascadedRectangleEdgesNames { public const char* vertical; } +struct facebook::react::Color { + public bool isDefined; + public constexpr Color() = default; + public constexpr Color(int32_t colorValue); + public constexpr bool operator!=(const facebook::react::Color& otherColor) const; + public constexpr bool operator==(const facebook::react::Color& otherColor) const; + public constexpr operator int32_t() const; + public int32_t value; +} + struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -13975,6 +13985,10 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedStringBox& attributedStringBox) const; } +struct std::hash { + public size_t operator()(const facebook::react::Color& color) const; +} + struct std::hash { public size_t operator()(const facebook::react::EventAnimationDriverKey& key) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api index 7ec351405ee3..256fd7b7ad12 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api @@ -609,7 +609,6 @@ using facebook::react::CascadedBorderCurves = facebook::react::CascadedRectangle using facebook::react::CascadedBorderRadii = facebook::react::CascadedRectangleCorners; using facebook::react::CascadedBorderStyles = facebook::react::CascadedRectangleEdges; using facebook::react::CascadedBorderWidths = facebook::react::CascadedRectangleEdges; -using facebook::react::Color = int32_t; using facebook::react::ComponentDescriptorConstructor = facebook::react::ComponentDescriptor::Unique(const facebook::react::ComponentDescriptorParameters& parameters); using facebook::react::ComponentDescriptorProviderRequest = std::function; using facebook::react::ComponentHandle = int64_t; @@ -931,6 +930,7 @@ folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); +folly::dynamic facebook::react::toDynamic(uint32_t value); int facebook::react::toAndroidRepr(const facebook::react::SharedColor& color); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); @@ -7069,6 +7069,16 @@ struct facebook::react::CascadedRectangleEdgesNames { public const char* vertical; } +struct facebook::react::Color { + public bool isDefined; + public constexpr Color() = default; + public constexpr Color(int32_t colorValue); + public constexpr bool operator!=(const facebook::react::Color& otherColor) const; + public constexpr bool operator==(const facebook::react::Color& otherColor) const; + public constexpr operator int32_t() const; + public int32_t value; +} + struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -13588,6 +13598,10 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedStringBox& attributedStringBox) const; } +struct std::hash { + public size_t operator()(const facebook::react::Color& color) const; +} + struct std::hash { public size_t operator()(const facebook::react::EventAnimationDriverKey& key) const; } diff --git a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api index 6843410835c3..2f6b57a12e65 100644 --- a/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api +++ b/scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api @@ -610,7 +610,6 @@ using facebook::react::CascadedBorderCurves = facebook::react::CascadedRectangle using facebook::react::CascadedBorderRadii = facebook::react::CascadedRectangleCorners; using facebook::react::CascadedBorderStyles = facebook::react::CascadedRectangleEdges; using facebook::react::CascadedBorderWidths = facebook::react::CascadedRectangleEdges; -using facebook::react::Color = int32_t; using facebook::react::ComponentDescriptorConstructor = facebook::react::ComponentDescriptor::Unique(const facebook::react::ComponentDescriptorParameters& parameters); using facebook::react::ComponentDescriptorProviderRequest = std::function; using facebook::react::ComponentHandle = int64_t; @@ -932,6 +931,7 @@ folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); folly::dynamic facebook::react::toDynamic(const std::vector& arrayValue); +folly::dynamic facebook::react::toDynamic(uint32_t value); int facebook::react::toAndroidRepr(const facebook::react::SharedColor& color); int facebook::react::toInt(const facebook::react::DisplayType& displayType); int facebook::react::toInt(const facebook::react::LayoutDirection& layoutDirection); @@ -7250,6 +7250,16 @@ struct facebook::react::CascadedRectangleEdgesNames { public const char* vertical; } +struct facebook::react::Color { + public bool isDefined; + public constexpr Color() = default; + public constexpr Color(int32_t colorValue); + public constexpr bool operator!=(const facebook::react::Color& otherColor) const; + public constexpr bool operator==(const facebook::react::Color& otherColor) const; + public constexpr operator int32_t() const; + public int32_t value; +} + struct facebook::react::ColorComponents { public facebook::react::ColorSpace colorSpace; public float alpha; @@ -13819,6 +13829,10 @@ struct std::hash { public size_t operator()(const facebook::react::AttributedStringBox& attributedStringBox) const; } +struct std::hash { + public size_t operator()(const facebook::react::Color& color) const; +} + struct std::hash { public size_t operator()(const facebook::react::EventAnimationDriverKey& key) const; }