From c20c09971966d566219ee1db70dff96f5ccb2bd3 Mon Sep 17 00:00:00 2001 From: Dark Knight Date: Fri, 27 Feb 2026 20:31:47 -0800 Subject: [PATCH] Revert D94052733 - S627731 (#55815) Summary: Changelog: [Internal] Reviewed By: andra-marinescu Differential Revision: D94756759 --- .../View/ReactNativeStyleAttributes.js | 6 +- .../renderer/attributedstring/conversions.h | 99 +------------------ .../components/view/tests/ConversionsTest.cpp | 26 ----- 3 files changed, 3 insertions(+), 128 deletions(-) diff --git a/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js b/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js index 12a92d96a16..9f23451b3cf 100644 --- a/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js +++ b/packages/react-native/Libraries/Components/View/ReactNativeStyleAttributes.js @@ -71,10 +71,6 @@ export const aspectRatioAttribute: AnyAttributeType = nativeCSSParsing ? true : {process: processAspectRatio}; -export const fontVariantAttribute: AnyAttributeType = nativeCSSParsing - ? true - : {process: processFontVariant}; - const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = { /** * Layout @@ -256,7 +252,7 @@ const ReactNativeStyleAttributes: {[string]: AnyAttributeType, ...} = { fontFamily: true, fontSize: true, fontStyle: true, - fontVariant: fontVariantAttribute, + fontVariant: {process: processFontVariant}, fontWeight: true, includeFontPadding: true, letterSpacing: true, diff --git a/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h b/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h index 8c16431460c..5635a692b17 100644 --- a/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h +++ b/packages/react-native/ReactCommon/react/renderer/attributedstring/conversions.h @@ -9,7 +9,6 @@ #include #include -#include #include #include #include @@ -22,8 +21,6 @@ #include #include #include -#include -#include #include #ifdef RN_SERIALIZABLE_STATE @@ -320,66 +317,7 @@ inline std::string toString(const FontStyle &fontStyle) return "normal"; } -inline std::optional fontVariantFromCSSFontVariant(CSSFontVariant cssVariant) -{ - switch (cssVariant) { - case CSSFontVariant::SmallCaps: - return FontVariant::SmallCaps; - case CSSFontVariant::OldstyleNums: - return FontVariant::OldstyleNums; - case CSSFontVariant::LiningNums: - return FontVariant::LiningNums; - case CSSFontVariant::TabularNums: - return FontVariant::TabularNums; - case CSSFontVariant::ProportionalNums: - return FontVariant::ProportionalNums; - case CSSFontVariant::StylisticOne: - return FontVariant::StylisticOne; - case CSSFontVariant::StylisticTwo: - return FontVariant::StylisticTwo; - case CSSFontVariant::StylisticThree: - return FontVariant::StylisticThree; - case CSSFontVariant::StylisticFour: - return FontVariant::StylisticFour; - case CSSFontVariant::StylisticFive: - return FontVariant::StylisticFive; - case CSSFontVariant::StylisticSix: - return FontVariant::StylisticSix; - case CSSFontVariant::StylisticSeven: - return FontVariant::StylisticSeven; - case CSSFontVariant::StylisticEight: - return FontVariant::StylisticEight; - case CSSFontVariant::StylisticNine: - return FontVariant::StylisticNine; - case CSSFontVariant::StylisticTen: - return FontVariant::StylisticTen; - case CSSFontVariant::StylisticEleven: - return FontVariant::StylisticEleven; - case CSSFontVariant::StylisticTwelve: - return FontVariant::StylisticTwelve; - case CSSFontVariant::StylisticThirteen: - return FontVariant::StylisticThirteen; - case CSSFontVariant::StylisticFourteen: - return FontVariant::StylisticFourteen; - case CSSFontVariant::StylisticFifteen: - return FontVariant::StylisticFifteen; - case CSSFontVariant::StylisticSixteen: - return FontVariant::StylisticSixteen; - case CSSFontVariant::StylisticSeventeen: - return FontVariant::StylisticSeventeen; - case CSSFontVariant::StylisticEighteen: - return FontVariant::StylisticEighteen; - case CSSFontVariant::StylisticNineteen: - return FontVariant::StylisticNineteen; - case CSSFontVariant::StylisticTwenty: - return FontVariant::StylisticTwenty; - default: - // Ligature variants (CommonLigatures, etc.) have no FontVariant equivalent - return std::nullopt; - } -} - -inline void parseProcessedFontVariant(const PropsParserContext &context, const RawValue &value, FontVariant &result) +inline void fromRawValue(const PropsParserContext &context, const RawValue &value, FontVariant &result) { result = FontVariant::Default; react_native_expect(value.hasType>()); @@ -438,6 +376,7 @@ inline void parseProcessedFontVariant(const PropsParserContext &context, const R result = (FontVariant)((int)result | (int)FontVariant::StylisticTwenty); } else { LOG(ERROR) << "Unsupported FontVariant value: " << item; + react_native_expect(false); } } } else { @@ -445,40 +384,6 @@ inline void parseProcessedFontVariant(const PropsParserContext &context, const R } } -inline void parseUnprocessedFontVariantString(const std::string &value, FontVariant &result) -{ - auto fontVariantList = parseCSSProperty(value); - if (!std::holds_alternative(fontVariantList)) { - result = FontVariant::Default; - return; - } - - result = FontVariant::Default; - for (const auto &cssVariant : std::get(fontVariantList)) { - if (auto fv = fontVariantFromCSSFontVariant(cssVariant)) { - result = (FontVariant)((int)result | (int)*fv); - } - } -} - -inline void parseUnprocessedFontVariant(const PropsParserContext &context, const RawValue &value, FontVariant &result) -{ - if (value.hasType()) { - parseUnprocessedFontVariantString((std::string)value, result); - } else { - parseProcessedFontVariant(context, value, result); - } -} - -inline void fromRawValue(const PropsParserContext &context, const RawValue &value, FontVariant &result) -{ - if (ReactNativeFeatureFlags::enableNativeCSSParsing()) { - parseUnprocessedFontVariant(context, value, result); - } else { - parseProcessedFontVariant(context, value, result); - } -} - inline std::string toString(const FontVariant &fontVariant) { auto result = std::string{}; diff --git a/packages/react-native/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp b/packages/react-native/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp index 35ae84bfc73..30286bbb084 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/view/tests/ConversionsTest.cpp @@ -7,7 +7,6 @@ #include -#include #include #include #include @@ -515,29 +514,4 @@ TEST(ConversionsTest, float_optional_undefined_for_string) { EXPECT_TRUE(result.isUndefined()); } -TEST(ConversionsTest, unprocessed_font_variant_string_single) { - FontVariant result; - parseUnprocessedFontVariantString("small-caps", result); - - EXPECT_EQ((int)result, (int)FontVariant::SmallCaps); -} - -TEST(ConversionsTest, unprocessed_font_variant_string_multiple) { - FontVariant result; - parseUnprocessedFontVariantString( - "small-caps oldstyle-nums tabular-nums", result); - - EXPECT_EQ( - (int)result, - (int)FontVariant::SmallCaps | (int)FontVariant::OldstyleNums | - (int)FontVariant::TabularNums); -} - -TEST(ConversionsTest, unprocessed_font_variant_string_invalid) { - FontVariant result; - parseUnprocessedFontVariantString("not-a-variant", result); - - EXPECT_EQ((int)result, (int)FontVariant::Default); -} - } // namespace facebook::react