diff --git a/React/Fabric/RCTConversions.h b/React/Fabric/RCTConversions.h index 73e6127bae6..222e9ba8500 100644 --- a/React/Fabric/RCTConversions.h +++ b/React/Fabric/RCTConversions.h @@ -35,12 +35,24 @@ inline std::string RCTStringFromNSString(NSString *string) return std::string{string.UTF8String ?: ""}; } -inline UIColor *_Nullable RCTUIColorFromSharedColor(const facebook::react::SharedColor &sharedColor) +inline UIColor *_Nullable RCTUIColorFromSharedColor(facebook::react::SharedColor const &sharedColor) { if (!sharedColor) { return nil; } + if (*facebook::react::clearColor() == *sharedColor) { + return [UIColor clearColor]; + } + + if (*facebook::react::blackColor() == *sharedColor) { + return [UIColor blackColor]; + } + + if (*facebook::react::whiteColor() == *sharedColor) { + return [UIColor whiteColor]; + } + auto components = facebook::react::colorComponentsFromColor(sharedColor); return [UIColor colorWithRed:components.red green:components.green blue:components.blue alpha:components.alpha]; } diff --git a/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTTextPrimitivesConversions.h b/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTTextPrimitivesConversions.h index b5bbbdb1572..c78daec7b7a 100644 --- a/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTTextPrimitivesConversions.h +++ b/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTTextPrimitivesConversions.h @@ -102,6 +102,18 @@ inline static UIColor *RCTUIColorFromSharedColor(const SharedColor &sharedColor) return nil; } - auto components = colorComponentsFromColor(sharedColor); + if (*facebook::react::clearColor() == *sharedColor) { + return [UIColor clearColor]; + } + + if (*facebook::react::blackColor() == *sharedColor) { + return [UIColor blackColor]; + } + + if (*facebook::react::whiteColor() == *sharedColor) { + return [UIColor whiteColor]; + } + + auto components = facebook::react::colorComponentsFromColor(sharedColor); return [UIColor colorWithRed:components.red green:components.green blue:components.blue alpha:components.alpha]; }